mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-07-14 10:02:25 +03:00
Move check version and create tables from __init__
This commit is contained in:
parent
516a2e7435
commit
85151428a7
|
@ -48,69 +48,76 @@ class SQLiteSession(MemorySession):
|
||||||
c.execute("select name from sqlite_master "
|
c.execute("select name from sqlite_master "
|
||||||
"where type='table' and name='version'")
|
"where type='table' and name='version'")
|
||||||
if c.fetchone():
|
if c.fetchone():
|
||||||
# Tables already exist, check for the version
|
self._check_database_version(c)
|
||||||
c.execute("select version from version")
|
|
||||||
version = c.fetchone()[0]
|
|
||||||
if version < CURRENT_VERSION:
|
|
||||||
self._upgrade_database(old=version)
|
|
||||||
c.execute("delete from version")
|
|
||||||
c.execute("insert into version values (?)", (CURRENT_VERSION,))
|
|
||||||
self.save()
|
|
||||||
|
|
||||||
# These values will be saved
|
|
||||||
c.execute('select * from sessions')
|
|
||||||
tuple_ = c.fetchone()
|
|
||||||
if tuple_:
|
|
||||||
self._dc_id, self._server_address, self._port, key, \
|
|
||||||
self._takeout_id = tuple_
|
|
||||||
self._auth_key = AuthKey(data=key)
|
|
||||||
|
|
||||||
c.close()
|
|
||||||
else:
|
else:
|
||||||
# Tables don't exist, create new ones
|
self._create_database(c)
|
||||||
self._create_table(
|
|
||||||
c,
|
def _check_database_version(self, c):
|
||||||
"version (version integer primary key)"
|
|
||||||
,
|
# Tables already exist, check for the version
|
||||||
"""sessions (
|
c.execute("select version from version")
|
||||||
dc_id integer primary key,
|
version = c.fetchone()[0]
|
||||||
server_address text,
|
if version < CURRENT_VERSION:
|
||||||
port integer,
|
self._upgrade_database(old=version)
|
||||||
auth_key blob,
|
c.execute("delete from version")
|
||||||
takeout_id integer
|
|
||||||
)"""
|
|
||||||
,
|
|
||||||
"""entities (
|
|
||||||
id integer primary key,
|
|
||||||
hash integer not null,
|
|
||||||
username text,
|
|
||||||
phone integer,
|
|
||||||
name text,
|
|
||||||
date integer
|
|
||||||
)"""
|
|
||||||
,
|
|
||||||
"""sent_files (
|
|
||||||
md5_digest blob,
|
|
||||||
file_size integer,
|
|
||||||
type integer,
|
|
||||||
id integer,
|
|
||||||
hash integer,
|
|
||||||
primary key(md5_digest, file_size, type)
|
|
||||||
)"""
|
|
||||||
,
|
|
||||||
"""update_state (
|
|
||||||
id integer primary key,
|
|
||||||
pts integer,
|
|
||||||
qts integer,
|
|
||||||
date integer,
|
|
||||||
seq integer
|
|
||||||
)"""
|
|
||||||
)
|
|
||||||
c.execute("insert into version values (?)", (CURRENT_VERSION,))
|
c.execute("insert into version values (?)", (CURRENT_VERSION,))
|
||||||
self._update_session_table()
|
|
||||||
c.close()
|
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
|
# These values will be saved
|
||||||
|
c.execute('select * from sessions')
|
||||||
|
tuple_ = c.fetchone()
|
||||||
|
if tuple_:
|
||||||
|
self._dc_id, self._server_address, self._port, key, \
|
||||||
|
self._takeout_id = tuple_
|
||||||
|
self._auth_key = AuthKey(data=key)
|
||||||
|
|
||||||
|
c.close()
|
||||||
|
|
||||||
|
def _create_database(self, c):
|
||||||
|
# Tables don't exist, create new ones
|
||||||
|
self._create_table(
|
||||||
|
c,
|
||||||
|
"version (version integer primary key)"
|
||||||
|
,
|
||||||
|
"""sessions (
|
||||||
|
dc_id integer primary key,
|
||||||
|
server_address text,
|
||||||
|
port integer,
|
||||||
|
auth_key blob,
|
||||||
|
takeout_id integer
|
||||||
|
)"""
|
||||||
|
,
|
||||||
|
"""entities (
|
||||||
|
id integer primary key,
|
||||||
|
hash integer not null,
|
||||||
|
username text,
|
||||||
|
phone integer,
|
||||||
|
name text,
|
||||||
|
date integer
|
||||||
|
)"""
|
||||||
|
,
|
||||||
|
"""sent_files (
|
||||||
|
md5_digest blob,
|
||||||
|
file_size integer,
|
||||||
|
type integer,
|
||||||
|
id integer,
|
||||||
|
hash integer,
|
||||||
|
primary key(md5_digest, file_size, type)
|
||||||
|
)"""
|
||||||
|
,
|
||||||
|
"""update_state (
|
||||||
|
id integer primary key,
|
||||||
|
pts integer,
|
||||||
|
qts integer,
|
||||||
|
date integer,
|
||||||
|
seq integer
|
||||||
|
)"""
|
||||||
|
)
|
||||||
|
c.execute("insert into version values (?)", (CURRENT_VERSION,))
|
||||||
|
self._update_session_table()
|
||||||
|
c.close()
|
||||||
|
self.save()
|
||||||
|
|
||||||
def clone(self, to_instance=None):
|
def clone(self, to_instance=None):
|
||||||
cloned = super().clone(to_instance)
|
cloned = super().clone(to_instance)
|
||||||
cloned.save_entities = self.save_entities
|
cloned.save_entities = self.save_entities
|
||||||
|
|
Loading…
Reference in New Issue
Block a user