mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-05-11 10:35:50 +08:00
Fix #249
This commit is contained in:
@@ -87,10 +87,12 @@ class DataOperator(DataConnector):
|
||||
return self._cursor.rowcount == 1
|
||||
|
||||
def update_rss(self, title_raw, rss_set: str):
|
||||
# Update rss and select all data
|
||||
# Update rss and added
|
||||
self._cursor.execute(
|
||||
"""
|
||||
UPDATE bangumi SET rss_link = :rss_link WHERE title_raw = :title_raw
|
||||
UPDATE bangumi
|
||||
SET rss_link = :rss_link AND added = 0
|
||||
WHERE title_raw = :title_raw
|
||||
""",
|
||||
{"rss_link": rss_set, "title_raw": title_raw},
|
||||
)
|
||||
@@ -159,11 +161,10 @@ class DataOperator(DataConnector):
|
||||
for title in title_dict.copy().keys():
|
||||
for title_raw, rss_set in data:
|
||||
if title_raw in title:
|
||||
if rss_link in rss_set:
|
||||
title_dict.pop(title)
|
||||
else:
|
||||
if rss_link not in rss_set:
|
||||
rss_set += "," + rss_link
|
||||
self.update_rss(title_raw, rss_set)
|
||||
title_dict.pop(title)
|
||||
break
|
||||
return title_dict
|
||||
|
||||
|
||||
@@ -13,6 +13,21 @@ class RSSAnalyser:
|
||||
def __init__(self):
|
||||
self._title_analyser = TitleParser()
|
||||
|
||||
def official_title_parser(self, data: BangumiData, mikan_title: str):
|
||||
if settings.rss_parser.parser_type == "mikan":
|
||||
data.official_title = mikan_title
|
||||
elif settings.rss_parser.parser_type == "tmdb":
|
||||
tmdb_title, season, year = self._title_analyser.tmdb_parser(
|
||||
data.official_title,
|
||||
data.season,
|
||||
settings.rss_parser.language
|
||||
)
|
||||
data.official_title = tmdb_title
|
||||
data.year = year
|
||||
data.season = season
|
||||
else:
|
||||
pass
|
||||
|
||||
def rss_to_data(self, rss_link: str, full_parse: bool = True) -> list[BangumiData]:
|
||||
with RequestContent() as req:
|
||||
rss_torrents = req.get_torrents(rss_link)
|
||||
@@ -31,22 +46,10 @@ class RSSAnalyser:
|
||||
raw=raw_title, rss_link=rss_link, _id=_id
|
||||
)
|
||||
if data and data.title_raw not in [i.title_raw for i in new_data]:
|
||||
poster_link, official_title = req.get_mikan_info(homepage)
|
||||
poster_link, mikan_title = req.get_mikan_info(homepage)
|
||||
data.poster_link = poster_link
|
||||
# Official title type
|
||||
if settings.rss_parser.parser_type == "mikan":
|
||||
data.official_title = official_title
|
||||
elif settings.rss_parser.parser_type == "tmdb":
|
||||
official_title, season, year = self._title_analyser.tmdb_parser(
|
||||
data.official_title,
|
||||
data.season,
|
||||
settings.rss_parser.language
|
||||
)
|
||||
data.official_title = official_title
|
||||
data.year = year
|
||||
data.season = season
|
||||
else:
|
||||
pass
|
||||
self.official_title_parser(data, mikan_title)
|
||||
if not full_parse:
|
||||
op.insert(data)
|
||||
return [data]
|
||||
@@ -67,5 +70,5 @@ class RSSAnalyser:
|
||||
if __name__ == '__main__':
|
||||
from module.conf import setup_logger
|
||||
setup_logger()
|
||||
link = "https://mikanani.me/RSS/Bangumi?bangumiId=2906&subgroupid=552"
|
||||
link = "https://mikan.estrella.cloud/RSS/Bangumi?bangumiId=2906&subgroupid=552"
|
||||
data = RSSAnalyser().rss_to_data(link)
|
||||
|
||||
Reference in New Issue
Block a user