From be61a9c7ae6404ade01c05538c745264150a28f6 Mon Sep 17 00:00:00 2001 From: DylanDeFaoite Date: Thu, 6 Nov 2025 15:44:45 +0000 Subject: [PATCH] ADD requirements.txt & Database class --- connectors/reddit_connector.py | 2 ++ db/database.py | 26 ++++++++++++++++++++++++++ requirements.txt | 2 ++ 3 files changed, 30 insertions(+) create mode 100644 db/database.py create mode 100644 requirements.txt diff --git a/connectors/reddit_connector.py b/connectors/reddit_connector.py index 42806ae..c392291 100644 --- a/connectors/reddit_connector.py +++ b/connectors/reddit_connector.py @@ -8,6 +8,7 @@ class RedditConnector(BaseConnector): self.url = "https://www.reddit.com/" self.source_name = "Reddit" + # Public Methods # def get_top_posts(self, limit: int = 10, timeframe: str = 'day') -> list[Post]: params = { 'limit': limit, @@ -52,6 +53,7 @@ class RedditConnector(BaseConnector): data = self._fetch_data(url, params) return self._parse_posts(data) + ## Private Methods ## def _parse_posts(self, data) -> list[Post]: posts = [] for item in data['data']['children']: diff --git a/db/database.py b/db/database.py new file mode 100644 index 0000000..3ca1576 --- /dev/null +++ b/db/database.py @@ -0,0 +1,26 @@ +# To connect to PostgreSQL database +import psycopg2 +from psycopg2 import sql +from psycopg2.extras import RealDictCursor +from typing import List, Dict, Any, Optional + +class Database: + def __init__(self, db_name: str, user: str, password: str, host: str = 'localhost', port: int = 5432): + self.connection = psycopg2.connect( + dbname=db_name, + user=user, + password=password, + host=host, + port=port + ) + self.connection.autocommit = True + + def execute_query(self, query: str, params: Optional[tuple] = None): + with self.connection.cursor(cursor_factory=RealDictCursor) as cursor: + cursor.execute(query, params) + if cursor.description: + return cursor.fetchall() + return [] + + def close(self): + self.connection.close() \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..abb5e40 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +psycopg2==2.9.11 +psycopg2-binary==2.9.11