From 96019367e8f72eac26abd3b7a908c2b914bd1ae1 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Fri, 17 Nov 2023 13:24:42 -0800 Subject: v2: add initial Next JS files, remove static templates --- html_builders/builder.py | 109 ----------------------------------------------- 1 file changed, 109 deletions(-) delete mode 100644 html_builders/builder.py (limited to 'html_builders/builder.py') diff --git a/html_builders/builder.py b/html_builders/builder.py deleted file mode 100644 index e51bfc3..0000000 --- a/html_builders/builder.py +++ /dev/null @@ -1,109 +0,0 @@ -from jinja2 import Environment, FileSystemLoader -import html_builders.elements as elements -import html_builders.graphs as graphs -import html_builders.tables as tables -import os -import time - -MENU_ITEMS = [ - ("Nijitracker", "https://nijitracker.com"), - ("Pettantracker", "https://nijitracker.com/pettantrack") -] - - -def build_ranking_page(server, CONFIG: dict, exclude_channels: list = []): - page_path = os.path.join(CONFIG["PATH"]["root_html"], "index.html") - if not os.path.exists(page_path): - os.makedirs(os.path.dirname(page_path), exist_ok=True) - file_loader = FileSystemLoader("templates") - env = Environment(loader=file_loader) - template = env.get_template("ranking.html") - - input_dict = { - "meta_image_url": CONFIG["WEBSITE"]["icon"], - "meta_description": CONFIG["WEBSITE"]["description"], - "meta_title": CONFIG["WEBSITE"]["title"], - "title_banner": elements.build_title_banner( - CONFIG["WEBSITE"]["title"], - MENU_ITEMS - ), - "ranking_graph": graphs.plot_subscriber_count_over_time(server, CONFIG["TABLES"]["historical"], exclude_channels=exclude_channels), - "divider": "Last Updated: " + time.strftime('%Y-%m-%d %H:%M:%S') + " " + CONFIG["WEBSITE"]["timezone"], - "ranking_table": tables.generate_html_table(server, CONFIG["TABLES"]["live"], CONFIG["TABLES"]["daily"]), - "footer": CONFIG["WEBSITE"]["footer_message"] - } - output = template.render(input_dict) - with open(page_path, "w", encoding="utf-8") as f: - f.write(output) - -def build_individual_page(server, CONFIG: dict, channel_data: str): - def transform_sql_string(string: str) -> str: - return string.encode("ascii", "ignore").decode().replace("'", "''") - channel_id = channel_data["id"] - desc = channel_data["description"] - pfp = channel_data["photo"] - sub_count = channel_data["subscriber_count"] - channel_name = channel_data["english_name"] - if channel_name is None: - channel_name = channel_data["name"] - channel_name = transform_sql_string(channel_name) - sub_count_str = "{:,.0f}".format(int(sub_count)) - page_path = os.path.join(CONFIG["PATH"]["root_html"], channel_name + ".html") - file_loader = FileSystemLoader("templates") - env = Environment(loader=file_loader) - template = env.get_template("individual.html") - input_dict = { - "meta_image_url": CONFIG["WEBSITE"]["icon"], - "meta_description": CONFIG["WEBSITE"]["description"], - "meta_title": channel_name + " - " + CONFIG["WEBSITE"]["title"], - "homepage_url": CONFIG["WEBSITE"]["homepage"], - "sub_text": sub_count_str + " Subscribers", - "name": channel_name, - "profile_pic": pfp, - "description": desc, - "channel_id": channel_id, - "projection_card": elements.build_projection_card(server, CONFIG["TABLES"]["historical"], int(sub_count), channel_name, timezone = CONFIG["WEBSITE"]["timezone"]), - "subscriber_trend": graphs.plot_subscriber_count_over_time(server, CONFIG["TABLES"]["historical"], gtitle = "Subscriber Count Over Time for " + channel_name, overrideQuery = f"SELECT name, subscriber_count, timestamp, channel_id FROM {CONFIG['TABLES']['historical']} WHERE channel_id = '{channel_id}' ORDER by timestamp DESC", markers = "lines+markers"), - "divider": "Recent Subscriber Data:", - "weekly_trend": graphs.plot_subscriber_count_over_time(server, CONFIG["TABLES"]["historical"], gtitle = "Weekly Subscriber Count Over Time for " + channel_name, overrideQuery = f"SELECT name, subscriber_count, timestamp, channel_id FROM {CONFIG['TABLES']['historical']} WHERE channel_id = '{channel_id}' AND timestamp >= DATE_SUB(NOW(), INTERVAL 7 DAY) ORDER by timestamp DESC", markers = "lines+markers"), - "full_table_url": "/tables/"+channel_name - } - output = template.render(input_dict) - with open(page_path, "w", encoding="utf-8") as f: - f.write(output) - -def build_table_page(server, CONFIG: dict, channel_data: str): - def transform_sql_string(string: str) -> str: - return string.encode("ascii", "ignore").decode().replace("'", "''") - channel_id = channel_data["id"] - desc = channel_data["description"] - pfp = channel_data["photo"] - sub_count = channel_data["subscriber_count"] - channel_name = channel_data["english_name"] - if channel_name is None: - channel_name = channel_data["name"] - channel_name = transform_sql_string(channel_name) - - file_loader = FileSystemLoader("templates") - env = Environment(loader=file_loader) - template = env.get_template("full_table.html") - - input_dict = { - "meta_image_url": CONFIG["WEBSITE"]["icon"], - "meta_description": CONFIG["WEBSITE"]["description"], - "meta_title": channel_name + " - " + CONFIG["WEBSITE"]["title"], - "homepage_url": CONFIG["WEBSITE"]["homepage"], - "sub_text": channel_name, - "full_table": tables.generate_individual_table(server, CONFIG["TABLES"]["historical"], channel_name), - "name": channel_name, - "profile_pic": pfp, - "description": desc, - "channel_id": channel_id, - } - output = template.render(input_dict) - page_path = os.path.join("tables", channel_name + ".html") - with open(page_path, "w", encoding="utf-8") as f: - f.write(output) - - - \ No newline at end of file -- cgit v1.2.3