52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
|
|
import config
|
||
|
|
import sqlite3
|
||
|
|
import json
|
||
|
|
|
||
|
|
class CalendarDatabase(object):
|
||
|
|
def __init__(self):
|
||
|
|
self.db = None
|
||
|
|
|
||
|
|
def open(self):
|
||
|
|
if (self.is_database_valid()):
|
||
|
|
raise Exception('Databade is opened')
|
||
|
|
|
||
|
|
if config.CustomConfig['database-type'] == 'sqlite':
|
||
|
|
self.db = sqlite3.connect(config.CustomConfig['database-config']['url'])
|
||
|
|
elif config.CustomConfig['database-type'] == 'mysql':
|
||
|
|
raise Exception('Not implemented database')
|
||
|
|
else:
|
||
|
|
raise Exception('Unknow database type')
|
||
|
|
|
||
|
|
def init(self, username, password):
|
||
|
|
if (self.is_database_valid()):
|
||
|
|
raise Exception('Databade is opened')
|
||
|
|
|
||
|
|
self.open()
|
||
|
|
with open('sql/sqlite.sql', 'r', encoding='utf-8') as fsql:
|
||
|
|
cursor = self.db.cursor()
|
||
|
|
cursor.executescript(fsql.read())
|
||
|
|
cursor.close()
|
||
|
|
self.db.commit()
|
||
|
|
|
||
|
|
#todo: finish init
|
||
|
|
|
||
|
|
|
||
|
|
def close(self):
|
||
|
|
self.check_database()
|
||
|
|
self.db.close()
|
||
|
|
self.db = None
|
||
|
|
|
||
|
|
def check_database(self):
|
||
|
|
if (not self.is_database_valid()):
|
||
|
|
raise Exception('Databade is None')
|
||
|
|
|
||
|
|
def is_database_valid(self):
|
||
|
|
return not (self.db == None)
|
||
|
|
|
||
|
|
# operation function
|
||
|
|
def login_step1(self, username):
|
||
|
|
self.check_database()
|
||
|
|
|
||
|
|
def login_step2(self, username, password):
|
||
|
|
self.check_database()
|