add subscribe_user method and rename some variables

This commit is contained in:
mitsuha_s 2022-05-28 22:00:04 +00:00
parent a5422cab39
commit 319a21472f

View file

@ -4,29 +4,33 @@ class Database():
self.conn = sqlite3.connect(path) self.conn = sqlite3.connect(path)
self.cur = self.conn.cursor() self.cur = self.conn.cursor()
self.cur.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER, telegram_id NUMERIC NOT NULL UNIQUE, PRIMARY KEY(id))') self.cur.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER, telegram_id NUMERIC NOT NULL UNIQUE, PRIMARY KEY(id))')
self.cur.execute('CREATE TABLE IF NOT EXISTS feeds (id INTEGER, link TEXT NOT NULL UNIQUE, PRIMARY KEY(id))') self.cur.execute('CREATE TABLE IF NOT EXISTS feeds (id INTEGER, url TEXT NOT NULL UNIQUE, PRIMARY KEY(id))')
self.cur.execute('CREATE TABLE IF NOT EXISTS subscribes (user_id INTEGER, feed_id INTEGER, FOREIGN KEY(user_id) REFERENCES users(id), FOREIGN KEY(feed_id) REFERENCES feeds(id))') self.cur.execute('CREATE TABLE IF NOT EXISTS subscribes (user_id INTEGER, feed_id INTEGER, FOREIGN KEY(user_id) REFERENCES users(id), FOREIGN KEY(feed_id) REFERENCES feeds(id))')
self.cur.execute('CREATE TABLE IF NOT EXISTS feeds_last_items (feed_id INTEGER, link TEXT NOT NULL UNIQUE, title TEXT, description TEXT, date NUMERIC, FOREIGN KEY(feed_id) REFERENCES feeds(id))') self.cur.execute('CREATE TABLE IF NOT EXISTS feeds_last_items (feed_id INTEGER, url TEXT NOT NULL UNIQUE, title TEXT, description TEXT, date NUMERIC, FOREIGN KEY(feed_id) REFERENCES feeds(id))')
def add_user(self, telegram_id: str) -> int: def add_user(self, telegram_id: str) -> int:
self.cur.execute('INSERT INTO users (telegram_id) VALUES (:telegram_id)', {'telegram_id': telegram_id}) self.cur.execute('INSERT INTO users (telegram_id) VALUES (?)', (telegram_id,))
self.conn.commit() self.conn.commit()
return self.cur.lastrowid return self.cur.lastrowid
def find_user(self, telegram_id: str) -> int | None: def find_user(self, telegram_id: str) -> int | None:
self.cur.execute('SELECT id FROM users WHERE telegram_id = :telegram_id', {'telegram_id': telegram_id}) self.cur.execute('SELECT id FROM users WHERE telegram_id = ?', (telegram_id,))
user_id = self.cur.fetchone() row = self.cur.fetchone()
if user_id is None: if row is None:
return None return None
return user_id[0] return row[0]
def add_feed(self, link: str) -> int: def add_feed(self, url: str) -> int:
self.cur.execute('INSERT INTO feeds (link) VALUES (:link)', {'link': link}) self.cur.execute('INSERT INTO feeds (url) VALUES (?)', (url,))
self.conn.commit() self.conn.commit()
return self.cur.lastrowid return self.cur.lastrowid
def subscribe_user(self, user_id: int, feed_id: int):
self.cur.execute('INSERT INTO subscribes (user_id, feed_id) VALUES (?, ?)', (user_id, feed_id))
self.conn.commit()
def delete_feed(self, feed_id: int) -> None: def delete_feed(self, feed_id: int) -> None:
self.cur.execute('DELETE FROM feeds WHERE id = :feed_id', {'feed_id': feed_id}) self.cur.execute('DELETE FROM feeds WHERE id = ?', (feed_id,))
self.conn.commit() self.conn.commit()
def get_feeds(): def get_feeds():