refactor: Implement common base module and model for anime downloader plugins and refactor existing modules to use them.

This commit is contained in:
2026-01-01 22:58:25 +09:00
parent 5dab969580
commit 88aeb888b3
20 changed files with 555 additions and 409 deletions

View File

@@ -93,14 +93,14 @@
const loader = document.getElementById("preloader");
const dismissLoadingScreen = async function () {
console.log("Before the delay")
// console.log("Before the delay")
// await delay(2.5);
loader.style.display = "none";
};
const get_anime_list = (type, page) => {
console.log(`type: ${type}, page: ${page}`)
// console.log(`type: ${type}, page: ${page}`)
let url = ''
let data = {"page": page, "type": type}
@@ -137,7 +137,7 @@
dataType: "json",
success: (ret) => {
current_screen_movie_data = ret
console.log('ret::>', ret)
// console.log('ret::>', ret)
if (current_screen_movie_data !== '') {
if (type === "ing") {
@@ -153,7 +153,7 @@
make_screen_movie_list(ret.data, page)
}
div_visible = true
console.log(div_visible)
// console.log(div_visible)
}
dismissLoadingScreen()
next_page = page + 1
@@ -216,7 +216,7 @@
let str = ''
let tmp = ''
console.log(data.anime_list, page)
// console.log(data.anime_list, page)
str += '<div>';
str += '<button type="button" class="btn btn-info">Page <span class="badge bg-warning">' + page + '</span></button>';
@@ -226,7 +226,7 @@
if (data.anime_list[i].wr_id !== '') {
const re = /bo_table=([^&]+)/
const bo_table = data.anime_list[i].link.match(re)
// console.log(bo_table)
// // console.log(bo_table)
request_url = './request?code=' + data.anime_list[i].code + '&amp;wr_id=' + data.anime_list[i].wr_id + '&amp;bo_table=' + bo_table[1]
} else {
request_url = './request?code=' + data.anime_list[i].code
@@ -269,7 +269,7 @@
let str = ''
let tmp = ''
console.log(data.anime_list, page)
// console.log(data.anime_list, page)
str += '<div>';
str += '<button type="button" class="btn btn-info">Page <span class="badge bg-warning">' + page + '</span></button>';
@@ -343,12 +343,12 @@
$("body").on("click", "#btn_search", function (e) {
e.preventDefault();
let query = $("#input_search").val();
console.log(query);
// console.log(query);
current_cate = "search"
current_query = query
if ($("#input_search").val() === "") {
console.log("search keyword nothing");
// console.log("search keyword nothing");
return false;
}
@@ -361,7 +361,7 @@
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (ret) {
if (ret.ret) {
console.log('ret:::', ret)
// console.log('ret:::', ret)
make_search_result_list(ret.data, 1);
next_page = page + 1
} else {
@@ -374,28 +374,28 @@
});
$('#anime_category #ing').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("ing", 1)
})
$('#anime_category #complete_anilist').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("fin", 1)
})
$('#anime_category #theater').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("theater", 1)
})
$('#anime_category #top20').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("top20", 1)
@@ -405,7 +405,7 @@
$("body").on('click', '#analysis_btn', function (e) {
e.preventDefault();
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -414,8 +414,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// console.log(ret.code)
console.log(ret.data)
// // console.log(ret.code)
// console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
@@ -443,7 +443,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
console.log('data:::>', data)
// console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -507,9 +507,9 @@
})
.then((res) => res.json())
.then((response) => {
// console.log("Success:", JSON.stringify(response));
// // console.log("Success:", JSON.stringify(response));
// {#imagesContainer.appendChild()#}
console.log("return page:::> ", String(response.page));
// console.log("return page:::> ", String(response.page));
// {#page = response.page#}
if (current_cate === 'search') {
make_search_result_list(response.data, response.page);
@@ -529,9 +529,9 @@
const {scrollTop, scrollHeight, clientHeight} = e.target.scrollingElement;
if (Math.round(scrollHeight - scrollTop) <= clientHeight) {
document.getElementById("spinner").style.display = "block";
console.log("loading");
console.log("now page::> ", page);
console.log("next_page::> ", String(next_page));
// console.log("loading");
// console.log("now page::> ", page);
// console.log("next_page::> ", String(next_page));
loadNextAnimes(current_cate, next_page);
}
};

View File

@@ -61,16 +61,16 @@
$(document).ready(function () {
const socket_url = window.location.protocol + "//" + document.domain + ":" + location.port + "/anime_downloader/anilife/queue";
console.log("Connecting to socket:", socket_url);
// console.log("Connecting to socket:", socket_url);
const socket = io.connect(socket_url);
socket.on('connect', function() {
console.log('Socket connected to anilife queue!');
// console.log('Socket connected to anilife queue!');
});
// 모든 이벤트 모니터링 (디버깅용)
socket.onAny((event, ...args) => {
console.log(`[Socket event: ${event}]`, args);
// console.log(`[Socket event: ${event}]`, args);
});
socket.on('start', function (data) {
@@ -87,7 +87,7 @@
}, 3000);
socket.on('status', function (data) {
console.log("Status update received:", data);
// console.log("Status update received:", data);
status_html(data);
});
@@ -121,7 +121,7 @@
globalSendCommand('list', null, null, null, function (data) {
current_data = data;
$("#list").html('');
console.log(data)
// console.log(data)
if (data.length == 0) {
str = "<tr><td colspan='10'><h4>작업이 없습니다.</h4><td><tr>";
} else {

View File

@@ -61,7 +61,7 @@
const loader = document.getElementById("preloader");
const dismissLoadingScreen = async function () {
console.log("Before the delay")
// console.log("Before the delay")
// await delay(2.5);
loader.style.display = "none";
};
@@ -69,7 +69,7 @@
const wait_seconds = function () {
// REFERENCE: https://www.w3schools.com/jsref/met_win_settimeout.asp
let result = setTimeout(dismissLoadingScreen, 2500);
console.log(result)
// console.log(result)
};
const init = function () {
@@ -83,11 +83,11 @@
async function myAsyncFunction() {
//Do what you want here
console.log("Before the delay")
// console.log("Before the delay")
await delay(2.5);
console.log("After the delay")
// console.log("After the delay")
//Do what you want here too
}
@@ -102,7 +102,7 @@
// e.stopPropagation()
// e.preventDefault();
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -111,8 +111,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// {#console.log(ret.code)#}
console.log(ret.data)
// {#// console.log(ret.code)#}
// console.log(ret.data)
make_program(ret.data)
$("#loader").css("display", 'none')
} else {
@@ -124,7 +124,7 @@
function make_program(data) {
current_data = data;
// console.log("current_data::", current_data)
// // console.log("current_data::", current_data)
// 에피소드 목록을 완전히 숨긴 상태로 시작 (visibility로 레이아웃 시프트 방지)
const episodeList = document.getElementById("episode_list");
@@ -255,9 +255,9 @@
}
$(function () {
console.log(params.wr_id)
console.log(findGetParameter('wr_id'))
console.log(params.code)
// console.log(params.wr_id)
// console.log(findGetParameter('wr_id'))
// console.log(params.code)
if (params.code === '') {
} else {
@@ -267,15 +267,15 @@
if ("{{arg['anilife_current_code']}}" !== "") {
if (params.code === null) {
console.log('params.code === null')
// console.log('params.code === null')
document.getElementById("code").value = "{{arg['anilife_current_code']}}";
} else if (params.code === '') {
document.getElementById("code").value = "{{arg['anilife_current_code']}}";
} else {
console.log('params code exist')
console.log(params.code)
// console.log('params code exist')
// console.log(params.code)
document.getElementById("code").value = params.code
analyze(params.wr_id, params.bo_table)
@@ -309,7 +309,7 @@
}, 100);
$("#loader").css("display", 'none');
console.log({{ arg['code'] }})
// console.log({{ arg['code'] }})
});
$("#analysis_btn").unbind("click").bind('click', function (e) {
@@ -317,7 +317,7 @@
e.stopPropagation()
$("#loader").css("display", 'block')
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -327,8 +327,8 @@
success: function (ret) {
$("#loader").css("display", 'none')
if (ret.ret === 'success' && ret.data != null) {
// {#console.log(ret.code)#}
console.log(ret.data)
// {#// console.log(ret.code)#}
// console.log(ret.data)
make_program(ret.data)
dismissLoadingScreen()
@@ -358,7 +358,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
console.log('data:::>', data)
// console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -366,7 +366,7 @@
data: {data: JSON.stringify(data)},
dataType: "json",
success: function (data) {
console.log('#add_queue_btn::data >>', data)
// console.log('#add_queue_btn::data >>', data)
if (data.ret == 'enqueue_db_append' || data.ret == 'enqueue_db_exist') {
$.notify('<strong>다운로드 작업을 추가 하였습니다.</strong>', {type: 'success'});
} else if (data.ret == 'queue_exist') {

View File

@@ -91,14 +91,14 @@
const loader = document.getElementById("preloader");
const dismissLoadingScreen = async function () {
console.log("Before the delay")
// console.log("Before the delay")
// await delay(2.5);
loader.style.display = "none";
};
const get_anime_list = (type, page) => {
console.log(`type: ${type}, page: ${page}`)
// console.log(`type: ${type}, page: ${page}`)
let url = ''
let data = {"page": page, "type": type}
@@ -138,14 +138,14 @@
$.notify("<strong>분석 실패</strong><br>" + ret.log, {
type: "warning",
});
console.log("error")
// console.log("error")
dismissLoadingScreen()
return false;
}
current_screen_movie_data = ret
console.log('ret::>', ret)
// console.log('ret::>', ret)
if (current_screen_movie_data !== '') {
if (type === "ing") {
@@ -161,7 +161,7 @@
make_screen_movie_list(ret.data, page)
}
div_visible = true
console.log(div_visible)
// console.log(div_visible)
}
dismissLoadingScreen()
next_page = page + 1
@@ -230,7 +230,7 @@
let str = ''
let tmp = ''
console.log(data.anime_list, page)
// console.log(data.anime_list, page)
str += '<div>';
str += '<button type="button" class="btn btn-info">Page <span class="badge bg-warning">' + page + '</span></button>';
@@ -240,7 +240,7 @@
if (data.anime_list[i].wr_id !== '') {
const re = /bo_table=([^&]+)/
const bo_table = data.anime_list[i].link.match(re)
// console.log(bo_table)
// // console.log(bo_table)
request_url = './request?code=' + data.anime_list[i].code + '&amp;wr_id=' + data.anime_list[i].wr_id + '&amp;bo_table=' + bo_table[1]
} else {
request_url = './request?code=' + data.anime_list[i].code
@@ -289,7 +289,7 @@
let str = ''
let tmp = ''
console.log(data.anime_list, page)
// console.log(data.anime_list, page)
str += '<div>';
str += '<button type="button" class="btn btn-info">Page <span class="badge bg-warning">' + page + '</span></button>';
@@ -368,12 +368,12 @@
$("body").on("click", "#btn_search", function (e) {
e.preventDefault();
let query = $("#input_search").val();
console.log(query);
// console.log(query);
current_cate = "search"
current_query = query
if ($("#input_search").val() === "") {
console.log("search keyword nothing");
// console.log("search keyword nothing");
return false;
}
@@ -386,7 +386,7 @@
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (ret) {
if (ret.ret) {
console.log('ret:::', ret)
// console.log('ret:::', ret)
make_search_result_list(ret.data, 1);
next_page = page + 1
} else {
@@ -400,28 +400,28 @@
});
$('#anime_category #ing').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("ing", 1)
})
$('#anime_category #complete_anilist').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("fin", 1)
})
$('#anime_category #theater').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("theater", 1)
})
$('#anime_category #top20').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("top20", 1)
@@ -431,7 +431,7 @@
$("body").on('click', '#analysis_btn', function (e) {
e.preventDefault();
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -440,8 +440,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// console.log(ret.code)
console.log(ret.data)
// // console.log(ret.code)
// console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
@@ -470,7 +470,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
console.log('data:::>', data)
// console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -534,9 +534,9 @@
})
.then((res) => res.json())
.then((response) => {
// console.log("Success:", JSON.stringify(response));
// // console.log("Success:", JSON.stringify(response));
// {#imagesContainer.appendChild()#}
console.log("return page:::> ", String(response.page));
// console.log("return page:::> ", String(response.page));
// {#page = response.page#}
if (current_cate === 'search') {
make_search_result_list(response.data, response.page);
@@ -556,9 +556,9 @@
const {scrollTop, scrollHeight, clientHeight} = e.target.scrollingElement;
if (Math.round(scrollHeight - scrollTop) <= clientHeight) {
document.getElementById("spinner").style.display = "block";
console.log("loading");
console.log("now page::> ", page);
console.log("next_page::> ", String(next_page));
// console.log("loading");
// console.log("now page::> ", page);
// console.log("next_page::> ", String(next_page));
loadNextAnimes(current_cate, next_page);
}
};

View File

@@ -281,8 +281,28 @@
}
/* Collapse Borders */
.border-left {
border-left: 3px solid rgba(255,255,255,0.1) !important;
/* Folder Browser Modal Styles */
.folder-item {
cursor: pointer;
transition: background 0.2s;
border-bottom: 1px solid rgba(255,255,255,0.05);
display: flex !important;
align-items: center;
width: 100%;
overflow: hidden;
}
.folder-item:hover {
background: rgba(255, 255, 255, 0.1);
}
.folder-item span {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex: 1;
min-width: 0;
}
.folder-item.selected {
background: rgba(59, 130, 246, 0.3) !important;
}
</style>

View File

@@ -70,7 +70,7 @@
const get_anime_list = (type, page) => {
console.log(`type: ${type}, page: ${page}`)
// console.log(`type: ${type}, page: ${page}`)
let url = ''
let data = {"page": page, "type": type}
@@ -103,7 +103,7 @@
dataType: "json",
success: (ret) => {
current_screen_movie_data = ret
console.log('ret::>', ret)
// console.log('ret::>', ret)
if (current_screen_movie_data !== '') {
if (type === "ing") {
@@ -119,7 +119,7 @@
make_screen_movie_list(ret.data, page)
}
div_visible = true
console.log(div_visible)
// console.log(div_visible)
}
next_page = page + 1
}
@@ -189,7 +189,7 @@
let str = ''
let tmp = ''
console.log(data.anime_list, page)
// console.log(data.anime_list, page)
str += '<div>';
str += '<button type="button" class="btn btn-info">Page <span class="badge bg-warning">' + page + '</span></button>';
@@ -200,7 +200,7 @@
if (data.anime_list[i].wr_id !== '') {
const re = /bo_table=([^&]+)/
const bo_table = data.anime_list[i].link.match(re)
console.log(bo_table)
// console.log(bo_table)
request_url = './request?code=' + data.anime_list[i].code + '&amp;wr_id=' + data.anime_list[i].wr_id + '&amp;bo_table=' + bo_table[1]
} else {
@@ -245,7 +245,7 @@
let str = ''
let tmp = ''
console.log(data.anime_list, page)
// console.log(data.anime_list, page)
str += '<div>';
str += '<button type="button" class="btn btn-info">Page <span class="badge bg-warning">' + page + '</span></button>';
@@ -321,12 +321,12 @@
$("body").on("click", "#btn_search", function (e) {
e.preventDefault();
let query = $("#input_search").val();
console.log(query);
// console.log(query);
current_cate = "search"
current_query = query
if ($("#input_search").val() === "") {
console.log("search keyword nothing");
// console.log("search keyword nothing");
return false;
}
@@ -339,7 +339,7 @@
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (ret) {
if (ret.ret) {
console.log('ret:::', ret)
// console.log('ret:::', ret)
make_search_result_list(ret.data, 1);
next_page = page + 1
} else {
@@ -352,21 +352,21 @@
});
$('#anime_category #ing').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("ing", 1)
})
$('#anime_category #complete_anilist').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("fin", 1)
})
$('#anime_category #theater').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("theater", 1)
@@ -376,7 +376,7 @@
$("body").on('click', '#analysis_btn', function (e) {
e.preventDefault();
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -385,8 +385,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// console.log(ret.code)
console.log(ret.data)
// // console.log(ret.code)
// console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
@@ -404,7 +404,7 @@
$("body").on("click", "#add_whitelist", function (e) {
e.preventDefault();
let data_code = $(this).attr("data-code");
console.log(data_code);
// console.log(data_code);
$.ajax({
url: "/" + package_name + "/ajax/"+sub+"/add_whitelist",
type: "POST",
@@ -440,7 +440,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
console.log('data:::>', data)
// console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -504,9 +504,9 @@
})
.then((res) => res.json())
.then((response) => {
// console.log("Success:", JSON.stringify(response));
// // console.log("Success:", JSON.stringify(response));
// {#imagesContainer.appendChild()#}
console.log("return page:::> ", String(response.page));
// console.log("return page:::> ", String(response.page));
// {#page = response.page#}
if (current_cate === 'search') {
make_search_result_list(response.data, response.page);
@@ -526,9 +526,9 @@
const {scrollTop, scrollHeight, clientHeight} = e.target.scrollingElement;
if (Math.round(scrollHeight - scrollTop) <= clientHeight) {
document.getElementById("spinner").style.display = "block";
console.log("loading");
console.log("now page::> ", page);
console.log("next_page::> ", String(next_page));
// console.log("loading");
// console.log("now page::> ", page);
// console.log("next_page::> ", String(next_page));
loadNextAnimes(current_cate, next_page);
}
};

View File

@@ -83,7 +83,7 @@
function analyze(wr_id, bo_table) {
// e.preventDefault();
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -92,8 +92,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// {#console.log(ret.code)#}
console.log(ret.data)
// {#// console.log(ret.code)#}
// console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
@@ -192,9 +192,9 @@
}
$(function () {
console.log(params.wr_id)
console.log(findGetParameter('wr_id'))
console.log(params.code)
// console.log(params.wr_id)
// console.log(findGetParameter('wr_id'))
// console.log(params.code)
if (params.code === '') {
} else {
@@ -204,15 +204,15 @@
if ("{{arg['linkkf_current_code']}}" !== "") {
if (params.code === null) {
console.log('params.code === null')
// console.log('params.code === null')
document.getElementById("code").value = "{{arg['linkkf_current_code']}}";
} else if (params.code === '') {
document.getElementById("code").value = "{{arg['linkkf_current_code']}}";
} else {
console.log('params code exist')
console.log(params.code)
// console.log('params code exist')
// console.log(params.code)
document.getElementById("code").value = params.code
analyze(params.wr_id, params.bo_table)
@@ -229,7 +229,7 @@
$(document).ready(function () {
console.log('wr_id::', params.wr_id)
// console.log('wr_id::', params.wr_id)
});
@@ -237,7 +237,7 @@
e.preventDefault();
e.stopPropagation()
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -246,8 +246,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// {#console.log(ret.code)#}
console.log(ret.data)
// {#// console.log(ret.code)#}
// console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
@@ -302,7 +302,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
console.log('data:::>', data)
// console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -310,7 +310,7 @@
data: {data: JSON.stringify(data)},
dataType: "json",
success: function (data) {
console.log('#add_queue_btn::data >>', data)
// console.log('#add_queue_btn::data >>', data)
if (data.ret == 'enqueue_db_append' || data.ret == 'enqueue_db_exist') {
$.notify('<strong>다운로드 작업을 추가 하였습니다.</strong>', {type: 'success'});
} else if (data.ret == 'queue_exist') {

View File

@@ -126,7 +126,7 @@
success: (ret) => {
current_screen_movie_data = ret;
total_page = ret.total_page;
// console.log("ret::>", ret);
// // console.log("ret::>", ret);
if (current_screen_movie_data !== "") {
make_screen_movie_list(ret, page);
@@ -175,7 +175,7 @@
dataType: "json",
success: (ret) => {
current_screen_movie_data = ret
// console.log('ret::>', ret)
// // console.log('ret::>', ret)
if (current_screen_movie_data !== '') {
if (type === "ing") {
@@ -192,7 +192,7 @@
make_screen_movie_list(ret.data, page)
}
div_visible = true
// console.log(div_visible)
// // console.log(div_visible)
}
next_page = page + 1
}
@@ -321,9 +321,9 @@
let tmp = "";
let new_anime = true;
let new_style = ''
// console.log('page a: ', page)
// console.log(data)
// console.log(data.data)
// // console.log('page a: ', page)
// // console.log(data)
// // console.log(data.data)
//console.log(data.episode)
let page_elem = "";
@@ -341,8 +341,8 @@
str += "</div>";
str += '<div id="inner_screen_movie" class="row infinite-scroll">';
for (let i in data.data) {
// console.log(i)
// console.log(data.data[i])
// // console.log(i)
// // console.log(data.data[i])
if (data.data[i].postid === data.latest_anime_code) {
new_anime = false
}
@@ -438,12 +438,12 @@
$("body").on("click", "#btn_search", function (e) {
e.preventDefault();
let query = $("#input_search").val();
// console.log(query);
// // console.log(query);
current_cate = "search"
current_query = query
if ($("#input_search").val() === "") {
// console.log("search keyword nothing");
// // console.log("search keyword nothing");
return false;
}
@@ -456,7 +456,7 @@
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (ret) {
if (ret.ret) {
// console.log('ret:::', ret)
// // console.log('ret:::', ret)
make_search_result_list(ret.data, 1);
next_page = page + 1
} else {
@@ -470,34 +470,34 @@
$("#anime_category").on("click", function (e) {
// console.log($(this))
// console.log(e)
// // console.log($(this))
// // console.log(e)
switch (e.target.id) {
case "ing":
// console.log("ing.....")
// // console.log("ing.....")
// spinner_loading.style.display = "block";
current_cate = "ing";
get_anime_list("ing", 1);
break;
case "movie":
// console.log("movie")
// // console.log("movie")
current_cate = "movie";
get_anime_list("movie", 1);
break;
case "complete_anilist":
// console.log("complete")
// // console.log("complete")
current_cate = "complete";
get_anime_list("complete", 1);
break;
case "top_view":
// console.log("top_view")
// // console.log("top_view")
current_cate = "top_view";
get_anime_list("top_view", 1);
break;
default:
// console.log("default")
// // console.log("default")
spinner_loading.style.display = "block";
current_cate = "ing";
get_anime_list(1, "ing");
@@ -512,7 +512,7 @@
$("body").on('click', '#analysis_btn', function (e) {
e.preventDefault();
const code = document.getElementById("code").value
// console.log(code)
// // console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -521,8 +521,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// console.log(ret.code)
// console.log(ret.data)
// // console.log(ret.code)
// // console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
@@ -582,7 +582,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
// console.log('data:::>', data)
// // console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -606,7 +606,7 @@
// const el = document.querySelector('img');
// const observer = lozad(el); // passing a `NodeList` (e.g. `document.querySelectorAll()`) is also valid
// observer.observe();
// console.log('scroll 세로크기:', document.body.scrollHeight)
// // console.log('scroll 세로크기:', document.body.scrollHeight)
const loadNextAnimes = (cate, page, ch) => {
// spinner.style.display = "block";
@@ -649,9 +649,9 @@
})
.then((res) => res.json())
.then((response) => {
// console.log("Success:", JSON.stringify(response));
// // console.log("Success:", JSON.stringify(response));
// {#imagesContainer.appendChild()#}
// console.log("return page:::> ", String(response.page));
// // console.log("return page:::> ", String(response.page));
// {#page = response.page#}
loader.style.display = "block";
if (current_cate === 'search') {
@@ -661,8 +661,8 @@
make_screen_movie_list(response.data, response.page);
}
// console.log(document.body.scrollHeight)
// console.log(ch)
// // console.log(document.body.scrollHeight)
// // console.log(ch)
window.scrollBy({
top: ch + 35,
left: 0,
@@ -682,9 +682,9 @@
const {scrollTop, scrollHeight, clientHeight} = e.target.scrollingElement;
if (Math.round(scrollHeight - scrollTop) <= clientHeight + 170) {
// document.getElementById("spinner").style.display = "block";
// console.log("loading");
// console.log("now page::> ", page);
// console.log("next_page::> ", String(next_page));
// // console.log("loading");
// // console.log("now page::> ", page);
// // console.log("next_page::> ", String(next_page));
loadNextAnimes(current_cate, next_page, clientHeight);
/*window.scrollBy({
top: e.target.scrollingElement.scrollHeight + 200,

View File

@@ -293,8 +293,28 @@
}
/* Collapse Borders */
.border-left {
border-left: 3px solid rgba(255,255,255,0.1) !important;
/* Folder Browser Modal Styles */
.folder-item {
cursor: pointer;
transition: background 0.2s;
border-bottom: 1px solid rgba(255,255,255,0.05);
display: flex !important;
align-items: center;
width: 100%;
overflow: hidden;
}
.folder-item:hover {
background: rgba(255, 255, 255, 0.05);
}
.folder-item span {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex: 1;
min-width: 0;
}
.folder-item.selected {
background: rgba(16, 185, 129, 0.3) !important;
}
</style>

View File

@@ -106,7 +106,7 @@
const get_anime_list = (type, page) => {
console.log(`type: ${type}, page: ${page}`)
// console.log(`type: ${type}, page: ${page}`)
let url = ''
let data = {"page": page, "type": type}
@@ -139,7 +139,7 @@
dataType: "json",
success: (ret) => {
current_screen_movie_data = ret
console.log('ret::>', ret)
// console.log('ret::>', ret)
if (current_screen_movie_data !== '') {
if (type === "ing") {
@@ -155,7 +155,7 @@
make_screen_movie_list(ret.data, page)
}
div_visible = true
console.log(div_visible)
// console.log(div_visible)
}
next_page = page + 1
}
@@ -225,7 +225,7 @@
let str = ''
let tmp = ''
console.log(data.anime_list, page)
// console.log(data.anime_list, page)
str += '<div>';
str += '<button type="button" class="btn btn-info">Page <span class="badge bg-warning">' + page + '</span></button>';
@@ -236,7 +236,7 @@
if (data.anime_list[i].wr_id !== '') {
const re = /bo_table=([^&]+)/
const bo_table = data.anime_list[i].link.match(re)
console.log(bo_table)
// console.log(bo_table)
if (bo_table != null) {
request_url = './request?code=' + data.anime_list[i].code + '&amp;wr_id=' + data.anime_list[i].wr_id + '&amp;bo_table=' + bo_table[1]
} else {
@@ -284,7 +284,7 @@
let str = ''
let tmp = ''
console.log(data.anime_list, page)
// console.log(data.anime_list, page)
str += '<div>';
str += '<button type="button" class="btn btn-info">Page <span class="badge bg-warning">' + page + '</span></button>';
@@ -360,12 +360,12 @@
$("body").on("click", "#btn_search", function (e) {
e.preventDefault();
let query = $("#input_search").val();
console.log(query);
// console.log(query);
current_cate = "search"
current_query = query
if ($("#input_search").val() === "") {
console.log("search keyword nothing");
// console.log("search keyword nothing");
return false;
}
@@ -378,7 +378,7 @@
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (ret) {
if (ret.ret) {
console.log('ret:::', ret)
// console.log('ret:::', ret)
make_search_result_list(ret.data, 1);
next_page = page + 1
} else {
@@ -391,21 +391,21 @@
});
$('#anime_category #ing').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("ing", 1)
})
$('#anime_category #complete_anilist').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("fin", 1)
})
$('#anime_category #theater').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
let spinner = document.getElementById('spinner');
spinner.style.visibility = 'visible';
get_anime_list("theater", 1)
@@ -415,7 +415,7 @@
$("body").on('click', '#analysis_btn', function (e) {
e.preventDefault();
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -424,8 +424,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// console.log(ret.code)
console.log(ret.data)
// // console.log(ret.code)
// console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
@@ -443,7 +443,7 @@
$("body").on("click", "#add_whitelist", function (e) {
e.preventDefault();
let data_code = $(this).attr("data-code");
console.log(data_code);
// console.log(data_code);
$.ajax({
url: "/" + package_name + "/ajax/" + sub + "/add_whitelist",
type: "POST",
@@ -479,7 +479,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
console.log('data:::>', data)
// console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -543,9 +543,9 @@
})
.then((res) => res.json())
.then((response) => {
// console.log("Success:", JSON.stringify(response));
// // console.log("Success:", JSON.stringify(response));
// {#imagesContainer.appendChild()#}
console.log("return page:::> ", String(response.page));
// console.log("return page:::> ", String(response.page));
// {#page = response.page#}
if (current_cate === 'search') {
make_search_result_list(response.data, response.page);
@@ -565,9 +565,9 @@
const {scrollTop, scrollHeight, clientHeight} = e.target.scrollingElement;
if (Math.round(scrollHeight - scrollTop) <= clientHeight) {
document.getElementById("spinner").style.display = "block";
console.log("loading");
console.log("now page::> ", page);
console.log("next_page::> ", String(next_page));
// console.log("loading");
// console.log("now page::> ", page);
// console.log("next_page::> ", String(next_page));
loadNextAnimes(current_cate, next_page);
}
};

View File

@@ -147,7 +147,7 @@
});
function global_sub_request_search(page, move_top = true) {
console.log('........................')
// console.log('........................')
var formData = get_formdata('#form_search')
formData += '&page=' + page;
$.ajax({
@@ -157,7 +157,7 @@
data: formData,
dataType: "json",
success: function (data) {
console.log(data)
// console.log(data)
current_data = data;
if (move_top) {
window.scrollTo(0,0);

View File

@@ -91,7 +91,7 @@
{#e.preventDefault();#}
const code = document.getElementById("code").value
console.log(code)
// // console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -100,8 +100,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// {#console.log(ret.code)#}
console.log(ret.data)
// {#// // console.log(ret.code)#}
// // console.log(ret.data)
var order_text = (ret.data.list_order === 'desc') ? '최신화부터 (역순)' : '1화부터 (정순)';
if (ret.data.list_order === undefined) {
// 로직상 list_order가 없을 수 있으므로 체크
@@ -118,7 +118,7 @@
function make_program(data) {
current_data = data;
console.log(data);
// // console.log(data);
let str = "";
@@ -226,9 +226,9 @@
}
$(function () {
console.log(params.wr_id)
console.log(findGetParameter('wr_id'))
console.log(params.code)
// // console.log(params.wr_id)
// // console.log(findGetParameter('wr_id'))
// // console.log(params.code)
if (params.code === '') {
} else {
@@ -238,15 +238,15 @@
if ("{{arg['ohli24_current_code']}}" !== "") {
if (params.code === null) {
console.log('params.code === null')
// // console.log('params.code === null')
document.getElementById("code").value = "{{arg['ohli24_current_code']}}";
} else if (params.code === '') {
document.getElementById("code").value = "{{arg['ohli24_current_code']}}";
} else {
console.log('params code exist')
console.log(params.code)
// // console.log('params code exist')
// // console.log(params.code)
document.getElementById("code").value = params.code
analyze(params.wr_id, params.bo_table)
@@ -262,15 +262,15 @@
})
$(document).ready(function () {
console.log("{{ arg['code'] }}")
console.log('wr_id::', params.wr_id)
// // console.log("{{ arg['code'] }}")
// // console.log('wr_id::', params.wr_id)
if (document.getElementById("code").value !== "") {
{#document.getElementById("analysis_btn").click()#}
$('#analysis_btn').click();
}
console.log(accessibleCount)
// // console.log(accessibleCount)
});
@@ -280,12 +280,12 @@
e.stopPropagation();
accessibleCount = accessibleCount - 1; //count부터 뺀다
console.log(accessibleCount)
// // console.log(accessibleCount)
if (accessibleCount < 0) {
alert("이미 작업이 수행중 입니다.");
} else {
const code = document.getElementById("code").value
console.log(code)
// // console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -294,17 +294,17 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// {#console.log(ret.code)#}
console.log(ret.data)
// {#// // console.log(ret.code)#}
// // console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
}
}
});
console.log(accessibleCount)
// // console.log(accessibleCount)
accessibleCount++
console.log(accessibleCount)
// // console.log(accessibleCount)
}
@@ -356,7 +356,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
console.log('data:::>', data)
// // console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -364,7 +364,7 @@
data: {data: JSON.stringify(data)},
dataType: "json",
success: function (data) {
console.log('#add_queue_btn::data >>', data)
// // console.log('#add_queue_btn::data >>', data)
if (data.ret == 'enqueue_db_append' || data.ret == 'enqueue_db_exist') {
$.notify('<strong>다운로드 작업을 추가 하였습니다.</strong>', {type: 'success'});
} else if (data.ret == 'queue_exist') {

View File

@@ -109,7 +109,7 @@
const get_anime_list = (type, page) => {
console.log(`type: ${type}, page: ${page}`)
// console.log(`type: ${type}, page: ${page}`)
let url = ''
let data = {"page": page, "type": type}
@@ -142,7 +142,7 @@
dataType: "json",
success: (ret) => {
let current_screen_movie_data = ret
console.log('ret::>', ret)
// console.log('ret::>', ret)
if (current_screen_movie_data !== '') {
if (type === "ing") {
@@ -158,7 +158,7 @@
make_screen_movie_list(ret.data, page)
}
{#div_visible = true#}
{#console.log(div_visible)#}
{#// console.log(div_visible)#}
}
next_page = page + 1
}
@@ -339,12 +339,12 @@
$("body").on("click", "#btn_search", function (e) {
e.preventDefault();
let query = $("#input_search").val();
console.log(query);
// console.log(query);
current_cate = "search"
current_query = query
if ($("#input_search").val() === "") {
console.log("search keyword nothing");
// console.log("search keyword nothing");
return false;
}
@@ -357,7 +357,7 @@
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (ret) {
if (ret.ret) {
console.log('ret:::', ret)
// console.log('ret:::', ret)
make_search_result_list(ret.data, 1);
next_page = page + 1
} else {
@@ -370,21 +370,21 @@
});
$('#anime_category #ing').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
// let spinner = document.getElementById('spinner');
// spinner.style.visibility = 'visible';
get_anime_list("ing", 1)
})
$('#anime_category #complete_anilist').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
// let spinner = document.getElementById('spinner');
// spinner.style.visibility = 'visible';
get_anime_list("fin", 1)
})
$('#anime_category #theater').on("click", function () {
// {#console.log(this.id)#}
// {#// console.log(this.id)#}
// let spinner = document.getElementById('spinner');
// spinner.style.visibility = 'visible';
get_anime_list("theater", 1)
@@ -394,7 +394,7 @@
$("body").on('click', '#analysis_btn', function (e) {
e.preventDefault();
const code = document.getElementById("code").value
console.log(code)
// console.log(code)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/analysis',
type: "POST",
@@ -403,8 +403,8 @@
dataType: "json",
success: function (ret) {
if (ret.ret === 'success' && ret.data != null) {
// console.log(ret.code)
console.log(ret.data)
// // console.log(ret.code)
// console.log(ret.data)
make_program(ret.data)
} else {
$.notify('<strong>분석 실패</strong><br>' + ret.log, {type: 'warning'});
@@ -422,7 +422,7 @@
$("body").on("click", "#add_whitelist", function (e) {
e.preventDefault();
let data_code = $(this).attr("data-code");
console.log(data_code);
// console.log(data_code);
$.ajax({
url: "/" + package_name + "/ajax/" + sub + "/add_whitelist",
type: "POST",
@@ -458,7 +458,7 @@
$("body").on('click', '#add_queue_btn', function (e) {
e.preventDefault();
data = current_data.episode[$(this).data('idx')];
console.log('data:::>', data)
// console.log('data:::>', data)
$.ajax({
url: '/' + package_name + '/ajax/' + sub + '/add_queue',
type: "POST",
@@ -522,9 +522,9 @@
})
.then((res) => res.json())
.then((response) => {
// console.log("Success:", JSON.stringify(response));
// // console.log("Success:", JSON.stringify(response));
// {#imagesContainer.appendChild()#}
console.log("return page:::> ", String(response.page));
// console.log("return page:::> ", String(response.page));
// {#page = response.page#}
if (current_cate === 'search') {
make_search_result_list(response.data, response.page);
@@ -544,9 +544,9 @@
const {scrollTop, scrollHeight, clientHeight} = e.target.scrollingElement;
if (Math.round(scrollHeight - scrollTop) <= clientHeight) {
{#document.getElementById("spinner").style.display = "block";#}
console.log("loading");
console.log("now page::> ", page);
console.log("next_page::> ", String(next_page));
// console.log("loading");
// console.log("now page::> ", page);
// console.log("next_page::> ", String(next_page));
loadNextAnimes(current_cate, next_page);
}
};

View File

@@ -329,20 +329,33 @@
/* Folder Browser Modal Styles */
.folder-item {
transition: background-color 0.15s ease;
cursor: pointer;
transition: background 0.2s;
border-bottom: 1px solid rgba(255,255,255,0.05);
display: flex !important;
align-items: center;
width: 100%;
overflow: hidden;
font-size: 0.95rem;
margin-bottom: 2px;
}
.folder-item:hover {
background-color: rgba(59, 130, 246, 0.2) !important;
background: rgba(59, 130, 246, 0.2) !important;
}
.folder-item span {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex: 1;
min-width: 0;
}
.folder-item.selected {
background: rgba(59, 130, 246, 0.3) !important;
}
.folder-item.folder-parent,
.folder-item.folder-current {
font-weight: 600;
}
.folder-item i {
font-size: 1.1rem;
}