import sqlite3 import tomli with open("sources.toml", "rb") as f: sources = tomli.load(f) con = sqlite3.connect("articles.db") con.execute("CREATE TABLE IF NOT EXISTS articles(source, category, url, text);") article_count = len(list(con.execute("SELECT url FROM articles"))) left_article_count = len(list(con.execute("SELECT url FROM articles WHERE category = 'left'"))) right_article_count = len(list(con.execute("SELECT url FROM articles WHERE category = 'right'"))) source_count = 0 left_source_count = 0 right_source_count = 0 left_sources = [] right_sources = [] for source_id, source_info in sources.items(): source_count += 1 if source_info["category"] == "left": left_source_count += 1 source_list = left_sources else: right_source_count += 1 source_list = right_sources source_list.append({ "name": source_info["name"], "sort": source_info.get("sort", source_info["name"]), "count": len(list(con.execute("SELECT url FROM articles WHERE source = ?", (source_id,)))), }) left_sources.sort(key=lambda x: x["sort"]) right_sources.sort(key=lambda x: x["sort"]) left_breakdown = "\n".join([f"* {source['name']}: {source['count']}" for source in left_sources]) right_breakdown = "\n".join([f"* {source['name']}: {source['count']}" for source in right_sources]) con.commit() con.close() print(f"""\ This model contains a total of {article_count} articles from {source_count} sources. ## Left {left_breakdown} Left total: {left_article_count} articles from {left_source_count} sources ## Right {right_breakdown} Right total: {right_article_count} articles from {right_source_count} sources""")