feat: Add CDNDania downloader, enhance mobile responsiveness for anime request templates, and refine Ohli24 episode numbering.

This commit is contained in:
2025-12-29 19:36:07 +09:00
parent d07d551e4c
commit 460b93fb95
6 changed files with 1170 additions and 25 deletions

View File

@@ -491,8 +491,10 @@
.episode-info {
flex: 1;
display: flex;
flex-direction: column;
gap: 2px;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: 10px;
min-width: 0;
}
@@ -501,6 +503,8 @@
font-weight: 600;
font-size: 14px;
line-height: 1.3;
flex: 1;
min-width: 0;
}
.episode-filename {
@@ -509,6 +513,8 @@
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex-shrink: 0;
max-width: 40%;
}
/* 에피소드 액션 버튼 */
@@ -529,10 +535,225 @@
transform: scale(0.85);
}
/* 반응형 */
/* 모바일 반응형 - Bootstrap 모든 레이아웃 강제 덮어쓰기 */
@media (max-width: 768px) {
/* 전체 페이지 기본 설정 */
body {
overflow-x: hidden !important;
padding: 0 !important;
margin: 0 !important;
}
/* 모든 컨테이너/row 폭 100% 강제 */
.container, .container-fluid, .container-sm, .container-md, .container-lg,
.row, form, #program_list, #program_auto_form, #episode_list {
width: 100% !important;
max-width: 100% !important;
padding-left: 10px !important;
padding-right: 10px !important;
margin-left: 0 !important;
margin-right: 0 !important;
box-sizing: border-box !important;
}
/* form-group 및 모든 col 클래스 */
.form-group, .form-inline,
[class*="col-"] {
flex: 0 0 100% !important;
max-width: 100% !important;
width: 100% !important;
padding-left: 0 !important;
padding-right: 0 !important;
}
/* row 마진 제거 */
.row {
margin-left: 0 !important;
margin-right: 0 !important;
}
/* 상단 정보 카드 */
.card.p-lg-5, .card.border-light {
width: calc(100% - 20px) !important;
max-width: 100% !important;
padding: 15px !important;
margin: 10px !important;
border-radius: 12px !important;
box-sizing: border-box !important;
}
.card.p-lg-5 > .row {
display: flex !important;
flex-direction: column !important;
width: 100% !important;
margin: 0 !important;
}
/* 메인 썸네일 - 중앙 정렬 */
.card.p-lg-5 > .row > [class*="col-"]:first-child {
flex: 0 0 100% !important;
max-width: 100% !important;
text-align: center !important;
margin-bottom: 15px !important;
padding: 0 !important;
}
.card.p-lg-5 > .row > [class*="col-"]:first-child img {
width: 70% !important;
max-width: 220px !important;
height: auto !important;
border-radius: 10px !important;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4) !important;
}
/* 정보 테이블 각 행 - 카드 스타일 */
.card.p-lg-5 .row .row {
display: flex !important;
flex-direction: row !important;
flex-wrap: nowrap !important;
align-items: flex-start !important;
width: 100% !important;
max-width: 100% !important;
margin: 0 0 6px 0 !important;
padding: 10px 12px !important;
background: rgba(255, 255, 255, 0.06) !important;
border-radius: 8px !important;
box-sizing: border-box !important;
}
/* 정보 라벨 */
.card.p-lg-5 .row .row > [class*="col-"]:first-child {
flex: 0 0 60px !important;
max-width: 60px !important;
min-width: 60px !important;
font-size: 11px !important;
font-weight: 600 !important;
color: #94a3b8 !important;
text-align: left !important;
padding: 0 5px 0 0 !important;
}
/* 정보 값 */
.card.p-lg-5 .row .row > [class*="col-"]:last-child {
flex: 1 1 auto !important;
max-width: none !important;
font-size: 12px !important;
color: #e2e8f0 !important;
word-break: break-word !important;
text-align: left !important;
padding: 0 !important;
}
/* 버튼 그룹 */
.form-inline {
display: flex !important;
flex-wrap: wrap !important;
gap: 6px !important;
margin-bottom: 10px !important;
}
.form-inline .btn {
font-size: 11px;
padding: 6px 10px;
}
.form-inline input.form-control {
width: 100% !important;
margin-bottom: 8px !important;
}
/* 에피소드 목록 - 화면 폭에 꽉 차게 */
.episode-list-container {
grid-template-columns: 1fr;
display: flex !important;
flex-direction: column !important;
gap: 8px !important;
width: 100% !important;
max-width: 100% !important;
padding: 0 !important;
margin: 15px 0 !important;
box-sizing: border-box !important;
}
.episode-card {
display: flex !important;
align-items: center !important;
width: 100% !important;
max-width: 100% !important;
padding: 10px 12px !important;
gap: 10px !important;
margin: 0 !important;
box-sizing: border-box !important;
}
.episode-thumb {
width: 40px !important;
min-width: 40px !important;
height: 40px !important;
flex-shrink: 0 !important;
}
.episode-info {
flex: 1 !important;
min-width: 0 !important;
flex-direction: row !important;
align-items: center !important;
justify-content: space-between !important;
}
.episode-title {
font-size: 12px !important;
flex: 1 !important;
min-width: 0 !important;
}
.episode-filename {
font-size: 10px !important;
color: #64748b !important;
flex-shrink: 0 !important;
max-width: 35% !important;
margin-left: 8px !important;
}
.episode-actions {
display: flex !important;
flex-wrap: wrap !important;
gap: 6px !important;
margin-top: 5px !important;
}
.episode-actions .btn {
font-size: 10px !important;
padding: 4px 10px !important;
}
.episode-actions .toggle {
transform: scale(0.85) !important;
}
}
/* 더 작은 화면 (400px 이하) */
@media (max-width: 400px) {
.episode-thumb {
width: 35px !important;
min-width: 35px !important;
height: 35px !important;
}
.episode-num {
font-size: 9px !important;
}
.episode-title {
font-size: 11px !important;
}
.episode-filename {
max-width: 30% !important;
}
.episode-actions .btn {
font-size: 9px !important;
padding: 3px 8px !important;
}
}