aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--constants.py2
-rw-r--r--generate.py5
-rw-r--r--networks/myt.py41
-rw-r--r--news_feed.py4
4 files changed, 52 insertions, 0 deletions
diff --git a/constants.py b/constants.py
index 9b0d3c7..0c7b7bc 100644
--- a/constants.py
+++ b/constants.py
@@ -25,6 +25,8 @@ MUSIC_DIVER_NEWS="https://mypage.musicdiver.jp/api/news?lang=en"
TAIKO_BLOG_SITE="https://taiko-ch.net/blog/"
+MYT_SOLIPS_UPDATE_SITE="https://www.solips.app/"
+
ADD_EN_TRANSLATION=True # Only takes effect if an API key is provided in .env
class CHUNITHM_VERSION(Enum):
diff --git a/generate.py b/generate.py
index 90d40cc..58e90ec 100644
--- a/generate.py
+++ b/generate.py
@@ -110,6 +110,9 @@ def generate_music_diver_news_file():
def generate_taiko_news_file():
return generate_news_file("taiko_news", constants.TAIKO_BLOG_SITE)
+def generate_myt_changelog():
+ return generate_news_file("myt_news", constants.MYT_SOLIPS_UPDATE_SITE)
+
if __name__ == "__main__":
log_output("JOB START", "TASK")
if not os.path.exists(OUTPUT_DIR):
@@ -131,6 +134,8 @@ if __name__ == "__main__":
music_diver_news_data = generate_music_diver_news_file()
taiko_news_data = generate_taiko_news_file()
+ generate_myt_changelog()
+
news = create_merged_feed(
iidx_news_data,
sdvx_news_data,
diff --git a/networks/myt.py b/networks/myt.py
new file mode 100644
index 0000000..369d61a
--- /dev/null
+++ b/networks/myt.py
@@ -0,0 +1,41 @@
+from bs4 import BeautifulSoup
+from datetime import datetime
+import time
+
+def parse_changelog_to_news_format(html: str):
+ soup = BeautifulSoup(html, "html.parser")
+ news_items = []
+
+ sections = soup.select("div.py-4")
+ for section in sections:
+ date_tag = section.find("h4")
+ ul = section.find("ul")
+ if not date_tag or not ul:
+ continue
+
+ date_str = date_tag.text.strip()
+ try:
+ date_obj = datetime.strptime(date_str, "%B %dth, %Y")
+ except ValueError:
+ try:
+ date_obj = datetime.strptime(date_str, "%B %d, %Y")
+ except ValueError:
+ continue
+ timestamp = int(time.mktime(date_obj.timetuple()))
+
+ entries = [li.text.strip() for li in ul.find_all("li")]
+ content = "\n".join(f"• {entry}" for entry in entries)
+
+ news_item = {
+ "date": date_str,
+ "identifier": "MYT_NETWORK",
+ "type": None,
+ "timestamp": timestamp,
+ "headline": f"MYT CHANGELOG ({date_str})",
+ "content": content,
+ "url": None,
+ "images": []
+ }
+ news_items.append(news_item)
+
+ return news_items
diff --git a/news_feed.py b/news_feed.py
index 62af645..0ec42b8 100644
--- a/news_feed.py
+++ b/news_feed.py
@@ -30,6 +30,7 @@ import sega.maimaidx_intl as maimaidx_intl
import sega.ongeki_jp as ongeki_jp
import taito.music_diver as music_diver
import bandai_namco.taiko as taiko
+import networks.myt as myt
import constants
import translate
@@ -118,6 +119,9 @@ def get_news(news_url: str, version=None) -> list:
site_data = download_site_as_html(news_url)
news_posts = sorted(taiko.parse_taiko_blog_site(site_data), key=lambda x: x['timestamp'], reverse=True)
+ elif news_url == constants.MYT_SOLIPS_UPDATE_SITE:
+ site_data = download_site_as_html(news_url)
+ news_posts = sorted(myt.parse_changelog_to_news_format(site_data), key=lambda x: x['timestamp'], reverse=True)
else:
news_posts = []
return news_posts
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage