init
This commit is contained in:
63
database.py
Normal file
63
database.py
Normal file
@@ -0,0 +1,63 @@
|
||||
import sqlite3
|
||||
|
||||
|
||||
class database:
|
||||
def __check_database(self):
|
||||
cur = self._db.execute('SELECT * FROM main.sqlite_master;')
|
||||
self._exist_tables = {}
|
||||
for i in cur:
|
||||
if i[0] == 'table':
|
||||
self._exist_tables[i[1]] = i
|
||||
for i in ['config', 'RSSList']:
|
||||
if i not in self._exist_tables:
|
||||
return False
|
||||
return True
|
||||
|
||||
def __create_table(self):
|
||||
if 'config' not in self._exist_tables:
|
||||
self._db.execute(f'''CREATE TABLE config (
|
||||
version1 INT,
|
||||
version2 INT,
|
||||
version3 INT,
|
||||
version4 INT
|
||||
);''')
|
||||
self.__write_version()
|
||||
if 'RSSList' not in self._exist_tables:
|
||||
self._db.execute(f'''CREATE TABLE RSSList (
|
||||
title TEXT,
|
||||
url TEXT,
|
||||
interval INT,
|
||||
lastupdatetime INT,
|
||||
type INT,
|
||||
id TEXT,
|
||||
PRIMARY KEY (url)
|
||||
);''')
|
||||
if 'userList' not in self._exist_tables:
|
||||
self._db.execute('''CREATE TABLE userList (
|
||||
userId INT,
|
||||
id TEXT
|
||||
)''')
|
||||
if 'channelList' not in self._exist_tables:
|
||||
self._db.execute('''CREATE TABLE channelList (
|
||||
channelId INT,
|
||||
id TEXT
|
||||
)''')
|
||||
if 'hashList' not in self._exist_tables:
|
||||
self._db.execute('''CREATE TABLE hashList (
|
||||
id TEXT,
|
||||
hash TEXT,
|
||||
PRIMARY KEY (hash)
|
||||
)''')
|
||||
self._db.commit()
|
||||
|
||||
def __init__(self):
|
||||
self._version = [1, 0, 0, 0]
|
||||
self._db = sqlite3.connect('data.db')
|
||||
ok = self.__check_database()
|
||||
if not ok:
|
||||
self.__create_table()
|
||||
|
||||
def __write_version(self):
|
||||
self._db.execute(
|
||||
f'INSERT INTO config VALUES ({self._version[0]}, {self._version[1]}, {self._version[2]}, {self._version[3]});')
|
||||
self._db.commit()
|
||||
Reference in New Issue
Block a user