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.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 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 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:
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()
return self.cur.lastrowid
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})
user_id = self.cur.fetchone()
if user_id is None:
self.cur.execute('SELECT id FROM users WHERE telegram_id = ?', (telegram_id,))
row = self.cur.fetchone()
if row is None:
return None
return user_id[0]
return row[0]
def add_feed(self, link: str) -> int:
self.cur.execute('INSERT INTO feeds (link) VALUES (:link)', {'link': link})
def add_feed(self, url: str) -> int:
self.cur.execute('INSERT INTO feeds (url) VALUES (?)', (url,))
self.conn.commit()
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:
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()
def get_feeds():