from pymongo import MongoClient from datetime import datetime from config import Config # MongoDB setup client = MongoClient(Config.MONGODB_URI) db = client[Config.DB_NAME] # Collections articles_collection = db['articles'] subscribers_collection = db['subscribers'] rss_feeds_collection = db['rss_feeds'] def init_db(): """Initialize database with indexes""" # Create unique index on article links to prevent duplicates articles_collection.create_index('link', unique=True) # Create index on created_at for faster sorting articles_collection.create_index('created_at') # Create unique index on subscriber emails subscribers_collection.create_index('email', unique=True) # Create index on subscribed_at subscribers_collection.create_index('subscribed_at') # Create unique index on RSS feed URLs rss_feeds_collection.create_index('url', unique=True) # Initialize default RSS feeds if collection is empty if rss_feeds_collection.count_documents({}) == 0: default_feeds = [ { 'name': 'Süddeutsche Zeitung München', 'url': 'https://www.sueddeutsche.de/muenchen/rss', 'active': True, 'created_at': datetime.utcnow() }, { 'name': 'Münchner Merkur', 'url': 'https://www.merkur.de/muenchen/rss', 'active': True, 'created_at': datetime.utcnow() }, { 'name': 'Abendzeitung München', 'url': 'https://www.abendzeitung-muenchen.de/rss', 'active': True, 'created_at': datetime.utcnow() } ] rss_feeds_collection.insert_many(default_feeds) print(f"Initialized {len(default_feeds)} default RSS feeds") print("Database initialized with indexes")