diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-10-04 11:59:22 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-10-04 11:59:22 -0700 |
| commit | 81906842665debc9c390c917e8e2e3a030d8c1c7 (patch) | |
| tree | 0dadeef5360ef165f44794fbbc25085d6fbfdd0d | |
| parent | a6df2f7648748817a547b50f1effbdb92b2a572d (diff) | |
refactor: remove game version specific identifiers
many of these will continue to work for a long time anyways without necessary updates
| -rw-r--r-- | bemani/ddr.py | 2 | ||||
| -rw-r--r-- | bemani/iidx.py | 3 | ||||
| -rw-r--r-- | bemani/sdvx.py | 2 | ||||
| -rw-r--r-- | constants.py | 2 | ||||
| -rw-r--r-- | generate.py | 6 | ||||
| -rw-r--r-- | news_feed.py | 24 | ||||
| -rw-r--r-- | sega/chuni_intl.py | 10 | ||||
| -rw-r--r-- | sega/chuni_jp.py | 6 | ||||
| -rw-r--r-- | sega/maimaidx_intl.py | 2 | ||||
| -rw-r--r-- | sega/maimaidx_jp.py | 2 | ||||
| -rw-r--r-- | sega/ongeki_jp.py | 34 |
11 files changed, 51 insertions, 42 deletions
diff --git a/bemani/ddr.py b/bemani/ddr.py index 9651c48..b5ae93c 100644 --- a/bemani/ddr.py +++ b/bemani/ddr.py @@ -50,7 +50,7 @@ def parse_ddr_world_news_site(html: str): news_entries.append({ "date": date_iso, - "identifier": "DDR_WORLD", + "identifier": "DDR", "type": None, "timestamp": timestamp, "headline": headline, diff --git a/bemani/iidx.py b/bemani/iidx.py index 521d4f9..de7f34c 100644 --- a/bemani/iidx.py +++ b/bemani/iidx.py @@ -7,6 +7,7 @@ KEY_TERMS_TL = [ ("クプロ", "QPro") ] +# Legacy code. e-amuse feed provides better data def parse_pinky_crush_news_site(html: str): base_url = "https://p.eagate.573.jp" type_map = { @@ -54,7 +55,7 @@ def parse_pinky_crush_news_site(html: str): content = re.sub(r'\s*/\s*', '/', content) news_items.append({ "date": date_str, - "identifier": "IIDX_PINKY_CRUSH", + "identifier": "IIDX", "type": type_map[type_class], "timestamp": timestamp, "headline": headline, diff --git a/bemani/sdvx.py b/bemani/sdvx.py index 6b1d857..9d5a33b 100644 --- a/bemani/sdvx.py +++ b/bemani/sdvx.py @@ -38,7 +38,7 @@ def parse_exceed_gear_news_site(html: str): entries.append({ 'date': date_str, - 'identifier': 'SOUND_VOLTEX_EXCEED_GEAR', + 'identifier': 'SOUND_VOLTEX', 'type': None, 'timestamp': timestamp, 'headline': headline_text, diff --git a/constants.py b/constants.py index 30452cc..fb5aff8 100644 --- a/constants.py +++ b/constants.py @@ -48,10 +48,12 @@ RSS_FEED_URL="https://arcade-news.pinapelz.com" class CHUNITHM_VERSION(Enum): LUMINOUS_PLUS = 1 VERSE = 2 + X_VERSE = 3 class MAIMAIDX_VERSION(Enum): PRISM = 1 PRISM_PLUS = 2 + CIRCLE = 3 class ONGEKI_VERSION(Enum): REFRESH = 1 diff --git a/generate.py b/generate.py index f067447..1c611b0 100644 --- a/generate.py +++ b/generate.py @@ -202,12 +202,12 @@ def generate_gitadora_news_file(): return news def generate_chunithm_jp_news_file(): - news = generate_news_file("chunithm_jp_news", constants.CHUNITHM_JP_NEWS_SITE, constants.CHUNITHM_VERSION.VERSE) + news = generate_news_file("chunithm_jp_news", constants.CHUNITHM_JP_NEWS_SITE, constants.CHUNITHM_VERSION.X_VERSE) attempt_broadcast_notifications(news, "New information for CHUNITHM (Japan ver.)", "chunithm_jp") return news def generate_maimaidx_jp_news_file(): - news = generate_news_file("maimaidx_jp_news", constants.MAIMAIDX_JP_NEWS_SITE, constants.MAIMAIDX_VERSION.PRISM_PLUS) + news = generate_news_file("maimaidx_jp_news", constants.MAIMAIDX_JP_NEWS_SITE, constants.MAIMAIDX_VERSION.CIRCLE) attempt_broadcast_notifications(news, "New information for maimai DX (Japan ver.)", "maimaidx_jp") return news @@ -217,7 +217,7 @@ def generate_ongeki_jp_news_file(): return news def generate_maimaidx_intl_news_file(): - news = generate_news_file("maimaidx_intl_news", constants.MAIMAIDX_INTL_NEWS_SITE, constants.MAIMAIDX_VERSION.PRISM) + news = generate_news_file("maimaidx_intl_news", constants.MAIMAIDX_INTL_NEWS_SITE, constants.MAIMAIDX_VERSION.PRISM_PLUS) attempt_broadcast_notifications(news, "New information for maimai DX (International ver.)", "maimaidx_intl") return news diff --git a/news_feed.py b/news_feed.py index 214b0f3..6f58a48 100644 --- a/news_feed.py +++ b/news_feed.py @@ -122,50 +122,48 @@ def get_news(news_url: str, version=None) -> list: elif news_url == constants.CHUNITHM_JP_NEWS_SITE: site_data = download_site_as_html(news_url) - if version == constants.CHUNITHM_VERSION.VERSE: - news_posts = sorted(chunithm_jp.parse_chuni_jp_verse_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) + if version == [ constants.CHUNITHM_VERSION.VERSE, constants.CHUNITHM_VERSION.X_VERSE ]: + news_posts = sorted(chunithm_jp.parse_chuni_jp_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) news_posts = translate.add_translate_text_to_en(news_posts) if constants.CHUNI_RECURSIVE_IMAGE: for i in range(len(news_posts)): if not news_posts[i]["url"]: continue post_site_data = download_site_as_html(news_posts[i]["url"]) - post_images = chunithm_jp.parse_chuni_jp_verse_post_images(post_site_data) + post_images = chunithm_jp.parse_chuni_jp_post_images(post_site_data) news_posts[i]["images"].extend([image for image in post_images if not any(existing_image['image'] == image['image'] for existing_image in news_posts[i]["images"])]) elif news_url == constants.CHUNITHM_INTL_NEWS_SITE: site_data = download_site_as_html(news_url) - if version == constants.CHUNITHM_VERSION.LUMINOUS_PLUS: - news_posts = sorted(chuni_intl.parse_chuni_intl_luminous_plus_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) - elif version == constants.CHUNITHM_VERSION.VERSE: - news_posts = sorted(chuni_intl.parse_chuni_intl_verse_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) + if version in [constants.CHUNITHM_VERSION.LUMINOUS_PLUS, constants.CHUNITHM_VERSION.VERSE]: + news_posts = sorted(chuni_intl.parse_chuni_intl_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) if constants.CHUNI_RECURSIVE_IMAGE: for i in range(len(news_posts)): if not news_posts[i]["url"]: continue post_site_data = download_site_as_html(news_posts[i]["url"]) - post_images = chuni_intl.parse_chuni_intl_verse_post_images(post_site_data) + post_images = chuni_intl.parse_chuni_intl_post_images(post_site_data) news_posts[i]["images"].extend([image for image in post_images if not any(existing_image['image'] == image['image'] for existing_image in news_posts[i]["images"])]) elif news_url == constants.MAIMAIDX_JP_NEWS_SITE: site_data = download_site_as_html(news_url) - if version == constants.MAIMAIDX_VERSION.PRISM_PLUS: - news_posts = sorted(maimaidx_jp.parse_maimaidx_jp_prism_plus_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) + if version in [ constants.MAIMAIDX_VERSION.PRISM_PLUS, constants.MAIMAIDX_VERSION.CIRCLE ]: + news_posts = sorted(maimaidx_jp.parse_maimaidx_jp_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) news_posts = translate.add_translate_text_to_en(news_posts) elif news_url == constants.MAIMAIDX_INTL_NEWS_SITE: scraper = SiteScraper(headless=True) site_data = scraper.get_page_source(news_url) scraper.close() - if version == constants.MAIMAIDX_VERSION.PRISM: - news_posts = sorted(maimaidx_intl.parse_maimaidx_intl_prism_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) + if version in [ constants.MAIMAIDX_VERSION.PRISM, constants.MAIMAIDX_VERSION.PRISM_PLUS ]: + news_posts = sorted(maimaidx_intl.parse_maimaidx_intl_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) _attach_llm_summaries(news_posts, "maimai DX International") elif news_url == constants.ONGEKI_JP_NEWS_SITE: site_data = download_site_as_html(news_url) if version == constants.ONGEKI_VERSION.REFRESH: - news_posts = sorted(ongeki_jp.parse_ongeki_refresh_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) + news_posts = sorted(ongeki_jp.parse_ongeki_news_site(site_data), key=lambda x: x['timestamp'], reverse=True) news_posts = translate.add_translate_text_to_en(news_posts) elif news_url == constants.IDAC_NEWS_SITE: diff --git a/sega/chuni_intl.py b/sega/chuni_intl.py index d00a01b..a6c4b5f 100644 --- a/sega/chuni_intl.py +++ b/sega/chuni_intl.py @@ -95,11 +95,7 @@ def make_image_extractor(version: ParserVersion): raise ValueError("Unknown Parser Version") -parse_chuni_intl_luminous_plus_news_site = make_chuni_intl_parser( - "CHUNITHM_INTL_LUMINOUS_PLUS", ParserVersion.ALPHA +parse_chuni_intl_news_site = make_chuni_intl_parser( + "CHUNITHM_INTL", ParserVersion.ALPHA ) - -parse_chuni_intl_verse_news_site = make_chuni_intl_parser( - "CHUNITHM_INTL_VERSE", ParserVersion.ALPHA -) -parse_chuni_intl_verse_post_images = make_image_extractor(ParserVersion.ALPHA) +parse_chuni_intl_post_images = make_image_extractor(ParserVersion.ALPHA) diff --git a/sega/chuni_jp.py b/sega/chuni_jp.py index b69abec..452e153 100644 --- a/sega/chuni_jp.py +++ b/sega/chuni_jp.py @@ -108,7 +108,7 @@ def make_image_extractor(version: ParserVersion): raise ValueError("Unknown Parser Version") -parse_chuni_jp_verse_news_site = make_chuni_jp_parser( - "CHUNITHM_JP_VERSE", ParserVersion.ALPHA +parse_chuni_jp_news_site = make_chuni_jp_parser( + "CHUNITHM_JP", ParserVersion.ALPHA ) -parse_chuni_jp_verse_post_images = make_image_extractor(ParserVersion.ALPHA) +parse_chuni_jp_post_images = make_image_extractor(ParserVersion.ALPHA) diff --git a/sega/maimaidx_intl.py b/sega/maimaidx_intl.py index f11033d..4ec69cb 100644 --- a/sega/maimaidx_intl.py +++ b/sega/maimaidx_intl.py @@ -45,4 +45,4 @@ def make_maimaidx_intl_parser(identifier: str, parser: ParserVersion): if parser == ParserVersion.ALPHA: return alpha_parser -parse_maimaidx_intl_prism_news_site = make_maimaidx_intl_parser("MAIMAIDX_INTL_PRISM", ParserVersion.ALPHA) +parse_maimaidx_intl_news_site = make_maimaidx_intl_parser("MAIMAIDX_INTL", ParserVersion.ALPHA) diff --git a/sega/maimaidx_jp.py b/sega/maimaidx_jp.py index c5670ce..712d672 100644 --- a/sega/maimaidx_jp.py +++ b/sega/maimaidx_jp.py @@ -57,4 +57,4 @@ def make_maimaidx_jpn_parser(identifier: str, parser: ParserVersion): if parser == ParserVersion.ALPHA: return alpha_parser -parse_maimaidx_jp_prism_plus_news_site = make_maimaidx_jpn_parser("MAIMAIDX_JPN_PRISM_PLUS", ParserVersion.ALPHA) +parse_maimaidx_jp_news_site = make_maimaidx_jpn_parser("MAIMAIDX", ParserVersion.ALPHA) diff --git a/sega/ongeki_jp.py b/sega/ongeki_jp.py index 7c45281..f9c2dc4 100644 --- a/sega/ongeki_jp.py +++ b/sega/ongeki_jp.py @@ -1,10 +1,13 @@ -from bs4 import BeautifulSoup -from datetime import datetime import time +from datetime import datetime from enum import Enum +from bs4 import BeautifulSoup + + class ParserVersion(Enum): - ALPHA=1 + ALPHA = 1 + def make_ongeki_parser(identifier: str, parser: ParserVersion): def alpha_parser(html: str): @@ -21,8 +24,16 @@ def make_ongeki_parser(identifier: str, parser: ParserVersion): image_link = url if image_url else None date_type_text = li.select_one(".p-news__listTextUpper") - date_text = date_type_text.text.strip().split("/")[0].strip() if date_type_text else None - type_text = date_type_text.text.strip().split("/")[-1].strip() if "/" in date_type_text.text else None + date_text = ( + date_type_text.text.strip().split("/")[0].strip() + if date_type_text + else None + ) + type_text = ( + date_type_text.text.strip().split("/")[-1].strip() + if "/" in date_type_text.text + else None + ) timestamp = None if date_text: @@ -40,17 +51,18 @@ def make_ongeki_parser(identifier: str, parser: ParserVersion): "headline": None, "content": image_alt, "url": url, - 'is_ai_summary': False, - "images": [{ - "image": image_url, - "link": image_link - }] if image_url else [] + "is_ai_summary": False, + "images": [{"image": image_url, "link": image_link}] + if image_url + else [], } items.append(entry) return items + if parser == ParserVersion.ALPHA: return alpha_parser -parse_ongeki_refresh_news_site = make_ongeki_parser("ONGEKI_JPN_REFRESH", ParserVersion.ALPHA) + +parse_ongeki_news_site = make_ongeki_parser("ONGEKI_JPN", ParserVersion.ALPHA) |
