aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-10-04 11:59:22 -0700
committerPinapelz <yukais@pinapelz.com>2025-10-04 11:59:22 -0700
commit81906842665debc9c390c917e8e2e3a030d8c1c7 (patch)
tree0dadeef5360ef165f44794fbbc25085d6fbfdd0d
parenta6df2f7648748817a547b50f1effbdb92b2a572d (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.py2
-rw-r--r--bemani/iidx.py3
-rw-r--r--bemani/sdvx.py2
-rw-r--r--constants.py2
-rw-r--r--generate.py6
-rw-r--r--news_feed.py24
-rw-r--r--sega/chuni_intl.py10
-rw-r--r--sega/chuni_jp.py6
-rw-r--r--sega/maimaidx_intl.py2
-rw-r--r--sega/maimaidx_jp.py2
-rw-r--r--sega/ongeki_jp.py34
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)
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage