Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- import sqlite3
- from sqlite3 import Error
- FILE = 'messages.db'
- class DataBase:
- def __init__(self, playlist_table, fields):
- self.PLAYLIST_TABLE = playlist_table
- self.conn = None
- try:
- self.conn = sqlite3.connect(FILE)
- except Error as e:
- print(e)
- self.cursor = self.conn.cursor()
- self._create_table(fields)
- @property
- def row_length(self):
- query = f"SELECT COUNT() FROM {self.PLAYLIST_TABLE}"
- self.cursor.execute(query)
- return self.cursor.fetchone()[0]
- @staticmethod
- def close():
- sqlite3.connect(FILE).close()
- def _create_table(self, fields):
- query = (f"CREATE TABLE IF NOT EXISTS {self.PLAYLIST_TABLE}\n"
- # f" (name TEXT, sender TEXT, content TEXT, time Date, "
- f" ({fields}, "
- f"id INTEGER PRIMARY KEY AUTOINCREMENT)")
- self.cursor.execute(query)
- self.conn.commit()
- def delete_all_records(self):
- query = f"DELETE FROM {self.PLAYLIST_TABLE}"
- self.cursor.execute(query)
- self.conn.commit()
- def delete_record(self, id):
- query = f"DELETE FROM {self.PLAYLIST_TABLE} WHERE id=?"
- self.cursor.execute(query, (id,))
- self.conn.commit()
- def save_record(self, dialog_name, sender_id, msg, date):
- """
- Сюда в параметры нужно передать список(?) полей для каждой конкретной таблицы,
- а потом переписать запрос и экзекут
- save_record(self, fields): ... self.execute(query, (fields[???]))
- """
- query = f"INSERT INTO {self.PLAYLIST_TABLE} VALUES (?, ?, ?, ?)"
- self.cursor.execute(query, (sender_id, msg, date, None))
- self.conn.commit()
- ...
- def main():
- messages = database.DataBase('Messages', 'name TEXT, sender TEXT, content TEXT, time Date')
- dialogs = database.DataBase('Dialogs', 'name TEXT')
- async for dialog in client.iter_dialogs():
- async for msg in client.iter_messages(dialog):
- messages.save_record(msg.chat.username, msg.sender_id, msg.message, msg.date)
- print(messages.row_length)
- database.DataBase.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement