Advertisement
Guest User

Untitled

a guest
Feb 11th, 2020
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.30 KB | None | 0 0
  1. # coding: utf-8
  2.  
  3. import sqlite3
  4. from sqlite3 import Error
  5.  
  6. FILE = 'messages.db'
  7.  
  8.  
  9. class DataBase:
  10.  
  11.     def __init__(self, playlist_table, fields):
  12.         self.PLAYLIST_TABLE = playlist_table
  13.         self.conn = None
  14.         try:
  15.             self.conn = sqlite3.connect(FILE)
  16.         except Error as e:
  17.             print(e)
  18.  
  19.         self.cursor = self.conn.cursor()
  20.         self._create_table(fields)
  21.  
  22.     @property
  23.     def row_length(self):
  24.         query = f"SELECT COUNT() FROM {self.PLAYLIST_TABLE}"
  25.         self.cursor.execute(query)
  26.         return self.cursor.fetchone()[0]
  27.  
  28.     @staticmethod
  29.     def close():
  30.         sqlite3.connect(FILE).close()
  31.  
  32.     def _create_table(self, fields):
  33.         query = (f"CREATE TABLE IF NOT EXISTS {self.PLAYLIST_TABLE}\n"
  34.                  # f"                    (name TEXT, sender TEXT, content TEXT, time Date, "
  35.                  f" ({fields}, "
  36.                  f"id INTEGER PRIMARY KEY AUTOINCREMENT)")
  37.         self.cursor.execute(query)
  38.         self.conn.commit()
  39.  
  40.     def delete_all_records(self):
  41.         query = f"DELETE FROM {self.PLAYLIST_TABLE}"
  42.         self.cursor.execute(query)
  43.         self.conn.commit()
  44.  
  45.     def delete_record(self, id):
  46.         query = f"DELETE FROM {self.PLAYLIST_TABLE} WHERE id=?"
  47.         self.cursor.execute(query, (id,))
  48.         self.conn.commit()
  49.  
  50.     def save_record(self, dialog_name, sender_id, msg, date):
  51.         """
  52.        Сюда в параметры нужно передать список(?) полей для каждой конкретной таблицы,
  53.        а потом переписать запрос и экзекут
  54.         save_record(self, fields): ... self.execute(query, (fields[???]))
  55.        """
  56.         query = f"INSERT INTO {self.PLAYLIST_TABLE} VALUES (?, ?, ?, ?)"
  57.         self.cursor.execute(query, (sender_id, msg, date, None))
  58.         self.conn.commit()
  59. ...
  60. def main():
  61.     messages = database.DataBase('Messages', 'name TEXT, sender TEXT, content TEXT, time Date')
  62.     dialogs = database.DataBase('Dialogs', 'name TEXT')
  63.     async for dialog in client.iter_dialogs():
  64.         async for msg in client.iter_messages(dialog):
  65.             messages.save_record(msg.chat.username, msg.sender_id, msg.message, msg.date)
  66.     print(messages.row_length)
  67.     database.DataBase.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement