Skip to content

Commit 8da02bd

Browse files
committed
<fix>1.修复日志不落盘的问题 2.修复fc2,javbus爬虫 3.添加默认windows特权目录跳过
1 parent c4cfe61 commit 8da02bd

File tree

5 files changed

+65
-14
lines changed

5 files changed

+65
-14
lines changed

config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ scanner:
1515
# 哪些后缀的文件应当视为影片?
1616
filename_extensions: [.3gp, .avi, .f4v, .flv, .iso, .m2ts, .m4v, .mkv, .mov, .mp4, .mpeg, .rm, .rmvb, .ts, .vob, .webm, .wmv, .strm, .mpg]
1717
# 扫描影片文件时忽略指定的文件夹
18-
ignored_folder_name_pattern: ['^\.', '^#recycle$', '^#整理完成$', '^#不要扫描$']
18+
ignored_folder_name_pattern: ['^\.', '^#recycle$', '^#整理完成$','^#未整理$', '^#不要扫描$', 'System Volume Information','\$RECYCLE.BIN']
1919
# 匹配番号时忽略小于指定大小的文件
2020
# 格式要求:https://docs.pydantic.dev/2.0/usage/types/bytesize/
2121
minimum_size: 232MiB
@@ -29,7 +29,7 @@ network:
2929
# 各个站点的免代理地址。地址失效时软件会自动尝试获取新地址,你也可以手动设置
3030
proxy_free:
3131
avsox: 'https://avsox.click'
32-
javbus: 'https://www.seedmm.help'
32+
javbus: 'https://www.seedmm.help' #已失效,自己开个代理吧
3333
javdb: 'https://javdb368.com'
3434
javlib: 'https://www.y78k.com'
3535
# 网络问题导致抓取数据失败时的重试次数,通常3次就差不多了

javsp/__main__.py

Lines changed: 53 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,56 @@
2626
from javsp.cropper import Cropper, get_cropper
2727

2828

29-
# 将StreamHandler的stream修改为TqdmOut,以与Tqdm协同工作
30-
root_logger = logging.getLogger()
31-
for handler in root_logger.handlers:
32-
if type(handler) == logging.StreamHandler:
33-
handler.stream = TqdmOut
29+
def setup_logging():
30+
"""配置日志系统,同时输出到控制台和文件"""
31+
from javsp.lib import resource_path
32+
33+
# 清除现有的handlers,避免重复
34+
root_logger = logging.getLogger()
35+
root_logger.handlers.clear()
36+
37+
# 设置日志级别
38+
root_logger.setLevel(logging.INFO)
39+
40+
# 创建日志格式
41+
formatter = logging.Formatter(
42+
'%(asctime)s - %(name)s - %(levelname)s - %(message)s',
43+
datefmt='%Y-%m-%d %H:%M:%S'
44+
)
45+
46+
# 配置控制台输出(重定向到TqdmOut)
47+
console_handler = logging.StreamHandler(TqdmOut)
48+
console_handler.setLevel(logging.INFO) # 控制台只显示INFO及以上级别
49+
console_handler.setFormatter(formatter)
50+
root_logger.addHandler(console_handler)
51+
52+
# 配置文件输出到JavSP.log
53+
log_file = os.path.join(resource_path('.'), 'JavSP.log')
54+
file_handler = logging.FileHandler(log_file, encoding='utf-8')
55+
file_handler.setLevel(logging.DEBUG) # 文件记录DEBUG及以上所有级别
56+
file_handler.setFormatter(formatter)
57+
root_logger.addHandler(file_handler)
58+
59+
# 为filemove logger配置独立的文件处理器
60+
filemove_handler = logging.FileHandler(
61+
os.path.join(resource_path('.'), 'FileMove.log'),
62+
encoding='utf-8'
63+
)
64+
filemove_handler.setLevel(logging.DEBUG)
65+
filemove_handler.setFormatter(formatter)
66+
67+
filemove_logger = logging.getLogger('filemove')
68+
filemove_logger.addHandler(filemove_handler)
69+
filemove_logger.setLevel(logging.DEBUG)
70+
# 防止日志向上传播到root logger造成重复
71+
filemove_logger.propagate = False
72+
73+
print(f"日志配置完成: 控制台输出 + 文件输出到 {log_file}")
74+
75+
# 设置日志系统
76+
setup_logging()
3477

78+
# 获取主logger
3579
logger = logging.getLogger('main')
3680

3781

@@ -45,7 +89,7 @@
4589
from javsp.web.exceptions import *
4690
from javsp.web.translate import translate_movie_info
4791

48-
from javsp.config import Cfg, CrawlerID
92+
from javsp.config import Cfg, CrawlerID, UseJavDBCover
4993
from javsp.prompt import prompt
5094

5195
actressAliasMap = {}
@@ -523,9 +567,9 @@ def check_step(result, msg='步骤错误'):
523567
if movie != all_movies[-1] and Cfg().crawler.sleep_after_scraping > Duration(0):
524568
time.sleep(Cfg().crawler.sleep_after_scraping.total_seconds())
525569
return_movies.append(movie)
526-
# except Exception as e:
527-
# logger.debug(e, exc_info=True)
528-
# logger.error(f'整理失败: {e}')
570+
except Exception as e:
571+
# logger.debug(e, exc_info=True)
572+
logger.error(f'整理失败: {e}')
529573
finally:
530574
inner_bar.close()
531575
return return_movies

javsp/file.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def scan_movies(root: str) -> List[Movie]:
3636
for name in dirnames.copy():
3737
if ignore_folder_name_pattern.match(name):
3838
dirnames.remove(name)
39+
continue # 直接跳过,防止因为没有访问权限到下面又报错
3940
# 移除有nfo的文件夹
4041
if Cfg().scanner.skip_nfo_dir:
4142
if any(file.lower().endswith(".nfo") for file in os.listdir(os.path.join(dirpath, name)) if isinstance(file, str)):

javsp/web/base.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@
2121
__all__ = ['Request', 'get_html', 'post_html', 'request_get', 'resp2html', 'is_connectable', 'download', 'get_resp_text', 'read_proxy']
2222

2323

24-
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'}
24+
headers = {
25+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
26+
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
27+
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
28+
'Connection': 'keep-alive',
29+
'Upgrade-Insecure-Requests': '1',
30+
}
2531

2632
logger = logging.getLogger(__name__)
2733
# 删除js脚本相关的tag,避免网页检测到没有js运行环境时强行跳转,影响调试

javsp/web/fc2.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ def parse_data(movie: MovieInfo):
5656
# FC2没有制作商和发行商的区分,作为个人市场,影片页面的'by'更接近于制作商
5757
producer = container.xpath("//li[text()='by ']/a/text()")[0]
5858
genre = container.xpath("//a[@class='tag tagTag']/text()")
59-
date_str = container.xpath("//div[@class='items_article_Releasedate']/p/text()")[0]
60-
publish_date = date_str[-10:].replace('/', '-') # '販売日 : 2017/11/30'
59+
date_str = container.xpath("//div[@class='items_article_softDevice'][2]/p/text()")[0]
60+
publish_date = date_str.split(' : ')[1].replace('/', '-') # '販売日 : 2017/11/30'
6161
preview_pics = container.xpath("//ul[@data-feed='sample-images']/li/a/@href")
6262

6363
if Cfg().crawler.hardworking:

0 commit comments

Comments
 (0)