Compare commits
9 Commits
dec47f900b
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 9779d82ad7 | |||
| 1bebd593f7 | |||
| 62356738bb | |||
| 4da03ab7ff | |||
| 0ad6c9c59a | |||
| bfb7436b07 | |||
| c091ce916a | |||
| 602b39d9bf | |||
| 88d0a8ff05 |
@@ -130,11 +130,14 @@ class LogicOhli24(LogicModuleBase):
|
||||
if sub == "analysis":
|
||||
# code = req.form['code']
|
||||
code = request.form["code"]
|
||||
|
||||
wr_id = request.form.get("wr_id", None)
|
||||
bo_table = request.form.get("bo_table", None)
|
||||
data = []
|
||||
# print(code)
|
||||
# logger.info("code::: %s", code)
|
||||
P.ModelSetting.set("ohli24_current_code", code)
|
||||
data = self.get_series_info(code)
|
||||
data = self.get_series_info(code, wr_id, bo_table)
|
||||
self.current_data = data
|
||||
return jsonify({"ret": "success", "data": data, "code": code})
|
||||
elif sub == "anime_list":
|
||||
@@ -142,6 +145,18 @@ class LogicOhli24(LogicModuleBase):
|
||||
cate = request.form["type"]
|
||||
page = request.form["page"]
|
||||
|
||||
data = self.get_anime_info(cate, page)
|
||||
# self.current_data = data
|
||||
return jsonify(
|
||||
{"ret": "success", "cate": cate, "page": page, "data": data}
|
||||
)
|
||||
elif sub == "complete_list":
|
||||
data = []
|
||||
|
||||
cate = request.form["type"]
|
||||
logger.debug("cate", cate)
|
||||
page = request.form["page"]
|
||||
|
||||
data = self.get_anime_info(cate, page)
|
||||
# self.current_data = data
|
||||
return jsonify(
|
||||
@@ -208,9 +223,9 @@ class LogicOhli24(LogicModuleBase):
|
||||
P.ModelSetting.get_int("ohli24_max_ffmpeg_process_count")
|
||||
)
|
||||
|
||||
def get_series_info(self, code):
|
||||
def get_series_info(self, code, wr_id, bo_table):
|
||||
code_type = "c"
|
||||
# _code = None
|
||||
|
||||
try:
|
||||
if (
|
||||
self.current_data is not None
|
||||
@@ -242,7 +257,22 @@ class LogicOhli24(LogicModuleBase):
|
||||
url = P.ModelSetting.get("ohli24_url") + "/e/" + code
|
||||
else:
|
||||
url = P.ModelSetting.get("ohli24_url") + "/e/" + code
|
||||
|
||||
if wr_id is not None:
|
||||
# print(len(wr_id))
|
||||
if len(wr_id) > 0:
|
||||
url = (
|
||||
P.ModelSetting.get("ohli24_url")
|
||||
+ "/bbs/board.php?bo_table="
|
||||
+ bo_table
|
||||
+ "&wr_id="
|
||||
+ wr_id
|
||||
)
|
||||
else:
|
||||
pass
|
||||
|
||||
logger.debug("url:::> %s", url)
|
||||
|
||||
# self.current_headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
|
||||
# AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/96.0.4664.110 Whale/3.12.129.46 Safari/537.36',
|
||||
# 'Referer': url }
|
||||
@@ -265,6 +295,7 @@ class LogicOhli24(LogicModuleBase):
|
||||
"_grade",
|
||||
"_total_chapter",
|
||||
"_show_time",
|
||||
"_release_year",
|
||||
]
|
||||
description_dict = {
|
||||
"원제": "_otit",
|
||||
@@ -281,6 +312,7 @@ class LogicOhli24(LogicModuleBase):
|
||||
"등급": "_grade",
|
||||
"총화수": "_total_chapter",
|
||||
"상영시간": "_show_time",
|
||||
"개봉년도": "_release_year",
|
||||
}
|
||||
|
||||
list_body_li = tree.xpath('//ul[@class="list-body"]/li')
|
||||
@@ -320,7 +352,10 @@ class LogicOhli24(LogicModuleBase):
|
||||
span = item.xpath(".//span//text()")
|
||||
logger.info(span)
|
||||
key = description_dict[span[0]]
|
||||
try:
|
||||
des[key] = item.xpath(".//span/text()")[1]
|
||||
except IndexError:
|
||||
des[key] = ""
|
||||
|
||||
logger.info(f"des::>> {des}")
|
||||
image = image.replace("..", P.ModelSetting.get("ohli24_url"))
|
||||
@@ -391,7 +426,9 @@ class LogicOhli24(LogicModuleBase):
|
||||
entity = {}
|
||||
entity["link"] = item.xpath(".//a/@href")[0]
|
||||
entity["code"] = entity["link"].split("/")[-1]
|
||||
entity["title"] = item.xpath(".//div[@class='post-title']/text()")[0]
|
||||
entity["title"] = item.xpath(".//div[@class='post-title']/text()")[
|
||||
0
|
||||
].strip()
|
||||
entity["image_link"] = item.xpath(".//div[@class='img-item']/img/@src")[
|
||||
0
|
||||
].replace("..", P.ModelSetting.get("ohli24_url"))
|
||||
@@ -623,7 +660,7 @@ class Ohli24QueueEntity(FfmpegQueueEntity):
|
||||
# logger.info('match groups:: %s', match.groups())
|
||||
# logger.info('match group3:: %s', match.group(3))
|
||||
# print('packed_script==>', packed_script)
|
||||
logger.debug(unpack_script)
|
||||
# logger.debug(unpack_script)
|
||||
|
||||
p1 = re.compile(r"(\"tracks\".*\])\,\"captions\"", re.MULTILINE | re.DOTALL)
|
||||
m2 = re.search(
|
||||
@@ -685,6 +722,8 @@ class Ohli24QueueEntity(FfmpegQueueEntity):
|
||||
|
||||
self.url = stream_info[1].strip()
|
||||
match = re.compile(r'NAME="(?P<quality>.*?)"').search(stream_info[0])
|
||||
self.quality = "720P"
|
||||
if match is not None:
|
||||
self.quality = match.group("quality")
|
||||
logger.info(self.quality)
|
||||
|
||||
|
||||
69
plugin.py
69
plugin.py
@@ -6,8 +6,10 @@
|
||||
# @Software: PyCharm
|
||||
|
||||
import os, traceback
|
||||
|
||||
# third-party
|
||||
from flask import Blueprint
|
||||
|
||||
# sjva 공용
|
||||
from framework.logger import get_logger
|
||||
from framework import app, path_data
|
||||
@@ -17,56 +19,71 @@ from plugin import get_model_setting, Logic, default_route, PluginUtil
|
||||
|
||||
#######################################################################
|
||||
|
||||
|
||||
class P(object):
|
||||
package_name = __name__.split('.')[0]
|
||||
package_name = __name__.split(".")[0]
|
||||
logger = get_logger(package_name)
|
||||
blueprint = Blueprint(package_name, package_name, url_prefix='/%s' % package_name,
|
||||
template_folder=os.path.join(os.path.dirname(__file__), 'templates'))
|
||||
blueprint = Blueprint(
|
||||
package_name,
|
||||
package_name,
|
||||
url_prefix="/%s" % package_name,
|
||||
template_folder=os.path.join(os.path.dirname(__file__), "templates"),
|
||||
static_folder="static",
|
||||
)
|
||||
menu = {
|
||||
'main': [package_name, u'애니 다운로드'],
|
||||
'sub': [
|
||||
['ohli24', u'OHLI24'], ['linkkf', u'LINKKF'], ['log', u'로그']
|
||||
"main": [package_name, "애니 다운로드"],
|
||||
"sub": [["ohli24", "OHLI24"], ["linkkf", "LINKKF"], ["log", "로그"]],
|
||||
"category": "vod",
|
||||
"sub2": {
|
||||
"ohli24": [
|
||||
["setting", "설정"],
|
||||
["request", "요청"],
|
||||
["queue", "큐"],
|
||||
["category", "분류"],
|
||||
["list", "목록"],
|
||||
],
|
||||
'category': 'vod',
|
||||
'sub2': {
|
||||
'ohli24': [
|
||||
['setting', u'설정'], ['request', u'요청'], ['queue', u'큐'], ['category', u'분류'], ['list', u'목록']
|
||||
"linkkf": [
|
||||
["setting", "설정"],
|
||||
["request", "요청"],
|
||||
["queue", "큐"],
|
||||
["list", "목록"],
|
||||
],
|
||||
'linkkf': [
|
||||
['setting', u'설정'], ['request', u'요청'], ['queue', u'큐'], ['list', u'목록']
|
||||
],
|
||||
}
|
||||
},
|
||||
}
|
||||
plugin_info = {
|
||||
'version': '0.1.1.0',
|
||||
'name': 'anime_downloader',
|
||||
'category_name': 'vod',
|
||||
'icon': '',
|
||||
'developer': 'soju6jan && projectdx',
|
||||
'description': u'비디오 다운로드',
|
||||
'home': 'http://yommi.duckdns.org:20080/projectdx/anime-downloader',
|
||||
'more': '',
|
||||
"version": "0.1.1.0",
|
||||
"name": "anime_downloader",
|
||||
"category_name": "vod",
|
||||
"icon": "",
|
||||
"developer": "soju6jan && projectdx",
|
||||
"description": "비디오 다운로드",
|
||||
"home": "http://yommi.duckdns.org:20080/projectdx/anime-downloader",
|
||||
"more": "",
|
||||
}
|
||||
ModelSetting = get_model_setting(package_name, logger)
|
||||
logic = None
|
||||
module_list = None
|
||||
home_module = 'ohli24'
|
||||
home_module = "ohli24"
|
||||
|
||||
|
||||
# 초기화 함수
|
||||
def initialize():
|
||||
try:
|
||||
app.config['SQLALCHEMY_BINDS'][P.package_name] = 'sqlite:///%s' % (
|
||||
os.path.join(path_data, 'db', '{package_name}.db'.format(package_name=P.package_name)))
|
||||
app.config["SQLALCHEMY_BINDS"][P.package_name] = "sqlite:///%s" % (
|
||||
os.path.join(
|
||||
path_data, "db", "{package_name}.db".format(package_name=P.package_name)
|
||||
)
|
||||
)
|
||||
PluginUtil.make_info_json(P.plugin_info, __file__)
|
||||
from .logic_ohli24 import LogicOhli24
|
||||
from .logic_linkkf import LogicLinkkf
|
||||
|
||||
# P.module_list = [LogicOhli24(P), LogicLinkkf(P)]
|
||||
P.module_list = [LogicOhli24(P)]
|
||||
P.logic = Logic(P)
|
||||
default_route(P)
|
||||
except Exception as e:
|
||||
P.logger.error('Exception:%s', e)
|
||||
P.logger.error("Exception:%s", e)
|
||||
P.logger.error(traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
23
static/img_loader_x200.svg
Normal file
23
static/img_loader_x200.svg
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: rgb(241, 242, 243); display: block; shape-rendering: auto;" width="200px" height="200px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
|
||||
<g transform="translate(27.166666666666664,27.166666666666664)">
|
||||
<rect x="-18.5" y="-18.5" width="37" height="37" fill="#85a2b6">
|
||||
<animateTransform attributeName="transform" type="scale" repeatCount="indefinite" dur="1s" keyTimes="0;1" values="1.1;1" begin="-0.3s"></animateTransform>
|
||||
</rect>
|
||||
</g>
|
||||
<g transform="translate(72.83333333333333,27.166666666666664)">
|
||||
<rect x="-18.5" y="-18.5" width="37" height="37" fill="#bbcedd">
|
||||
<animateTransform attributeName="transform" type="scale" repeatCount="indefinite" dur="1s" keyTimes="0;1" values="1.1;1" begin="-0.2s"></animateTransform>
|
||||
</rect>
|
||||
</g>
|
||||
<g transform="translate(27.166666666666664,72.83333333333333)">
|
||||
<rect x="-18.5" y="-18.5" width="37" height="37" fill="#dce4eb">
|
||||
<animateTransform attributeName="transform" type="scale" repeatCount="indefinite" dur="1s" keyTimes="0;1" values="1.1;1" begin="0s"></animateTransform>
|
||||
</rect>
|
||||
</g>
|
||||
<g transform="translate(72.83333333333333,72.83333333333333)">
|
||||
<rect x="-18.5" y="-18.5" width="37" height="37" fill="#fdfdfd">
|
||||
<animateTransform attributeName="transform" type="scale" repeatCount="indefinite" dur="1s" keyTimes="0;1" values="1.1;1" begin="-0.1s"></animateTransform>
|
||||
</rect>
|
||||
</g>
|
||||
<!-- [ldio] generated by https://loading.io/ --></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
23
static/ohli24/img_loader_x200.svg
Normal file
23
static/ohli24/img_loader_x200.svg
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: rgb(241, 242, 243); display: block; shape-rendering: auto;" width="200px" height="200px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
|
||||
<g transform="translate(27.166666666666664,27.166666666666664)">
|
||||
<rect x="-18.5" y="-18.5" width="37" height="37" fill="#85a2b6">
|
||||
<animateTransform attributeName="transform" type="scale" repeatCount="indefinite" dur="1s" keyTimes="0;1" values="1.1;1" begin="-0.3s"></animateTransform>
|
||||
</rect>
|
||||
</g>
|
||||
<g transform="translate(72.83333333333333,27.166666666666664)">
|
||||
<rect x="-18.5" y="-18.5" width="37" height="37" fill="#bbcedd">
|
||||
<animateTransform attributeName="transform" type="scale" repeatCount="indefinite" dur="1s" keyTimes="0;1" values="1.1;1" begin="-0.2s"></animateTransform>
|
||||
</rect>
|
||||
</g>
|
||||
<g transform="translate(27.166666666666664,72.83333333333333)">
|
||||
<rect x="-18.5" y="-18.5" width="37" height="37" fill="#dce4eb">
|
||||
<animateTransform attributeName="transform" type="scale" repeatCount="indefinite" dur="1s" keyTimes="0;1" values="1.1;1" begin="0s"></animateTransform>
|
||||
</rect>
|
||||
</g>
|
||||
<g transform="translate(72.83333333333333,72.83333333333333)">
|
||||
<rect x="-18.5" y="-18.5" width="37" height="37" fill="#fdfdfd">
|
||||
<animateTransform attributeName="transform" type="scale" repeatCount="indefinite" dur="1s" keyTimes="0;1" values="1.1;1" begin="-0.1s"></animateTransform>
|
||||
</rect>
|
||||
</g>
|
||||
<!-- [ldio] generated by https://loading.io/ --></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -48,6 +48,7 @@
|
||||
type="text/javascript"
|
||||
src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"
|
||||
></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js" integrity="sha512-jNDtFf7qgU0eH/+Z42FG4fw3w7DM/9zbgNPe3wfJlCylVDTT3IgKW5r92Vy9IHa6U50vyMz5gRByIu4YIXFtaQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script type="text/javascript">
|
||||
const package_name = "{{arg['package_name'] }}";
|
||||
const sub = "{{arg['sub'] }}";
|
||||
@@ -134,9 +135,10 @@
|
||||
|
||||
tmp = '<div class="col-6 col-sm-4 col-md-3">';
|
||||
tmp += '<div class="card">';
|
||||
tmp += '<img class="lozad" data-src="' + data.anime_list[i].image_link + '" />';
|
||||
// tmp += '<img class="lozad" data-src="' + data.anime_list[i].image_link + '" />';
|
||||
tmp += '<img class="lazyload" src="../static/img_loader_x200.svg" data-original="' + data.anime_list[i].image_link + '" />';
|
||||
tmp += '<div class="card-body">'
|
||||
{#tmp += '<button id="code_button" data-code="' + data.episode[i].code + '" type="button" class="btn btn-primary code-button bootstrap-tooltip" data-toggle="button" data-tooltip="true" aria-pressed="true" autocomplete="off" data-placement="top">' +#}
|
||||
// {#tmp += '<button id="code_button" data-code="' + data.episode[i].code + '" type="button" class="btn btn-primary code-button bootstrap-tooltip" data-toggle="button" data-tooltip="true" aria-pressed="true" autocomplete="off" data-placement="top">' +#}
|
||||
// {# '<span data-tooltip-text="'+data.episode[i].title+'">' + data.episode[i].code + '</span></button></div>';#}
|
||||
tmp += '<h5 class="card-title">' + data.anime_list[i].title + '</h5>';
|
||||
tmp += '<p class="card-text">' + data.anime_list[i].code + '</p>';
|
||||
@@ -165,6 +167,11 @@
|
||||
|
||||
}
|
||||
|
||||
$("img.lazyload").lazyload({
|
||||
threshold : 10,
|
||||
effect : "fadeIn",
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function make_search_result_list(data, page) {
|
||||
@@ -261,6 +268,11 @@
|
||||
document.getElementById("screen_movie_list").innerHTML = str;
|
||||
}
|
||||
|
||||
$("img.lazyload").lazyload({
|
||||
threshold : 10,
|
||||
effect : "fadeIn",
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -444,6 +456,7 @@
|
||||
console.log("return page:::> ", response.page);
|
||||
// {#page = response.page#}
|
||||
make_screen_movie_list(response.data, response.page);
|
||||
|
||||
page++;
|
||||
next_page++;
|
||||
})
|
||||
|
||||
@@ -210,6 +210,7 @@
|
||||
data: {data:JSON.stringify(data)},
|
||||
dataType: "json",
|
||||
success: function (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') {
|
||||
|
||||
Reference in New Issue
Block a user