Skip to content

Commit 784434c

Browse files
committed
added decorator and getattr
1 parent 3685395 commit 784434c

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

src/class_sqlThread.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,17 @@
2020
# pylint: disable=attribute-defined-outside-init,protected-access
2121

2222

23+
def db_upgrade(func):
24+
"""upgrade the migration"""
25+
def inner(*args, **kwargs):
26+
reference = args[0]
27+
item = '''SELECT value FROM settings WHERE key='version';'''
28+
parameters = ''
29+
reference.cur.execute(item, parameters)
30+
func(reference, int(reference.cur.fetchall()[0][0]))
31+
return inner
32+
33+
2334
class sqlThread(threading.Thread):
2435
"""A thread for all SQL operations"""
2536

@@ -41,6 +52,14 @@ def update_sent(self):
4152
'''update sent set status='broadcastqueued' where status='broadcastpending' ''')
4253
self.conn.commit()
4354

55+
@db_upgrade
56+
def upgrade_migrations(self, currentVersion):
57+
versionList = ['versionThree', 'versionTwo', 'versionThree',
58+
'versionFour', 'versionFive', 'versionSix', 'versionSeven',
59+
'versionEight', 'versionNine', 'versionTen']
60+
if currentVersion < 11:
61+
getattr(self, versionList[currentVersion - 1])()
62+
4463
def versionTwo(self):
4564
"""
4665
method for getting rid of the first20bytesofencryptedmessage field in
@@ -393,20 +412,7 @@ def run(self): # pylint: disable=too-many-locals, too-many-branches, too-many-s
393412

394413
self.update_sent()
395414

396-
item = '''SELECT value FROM settings WHERE key='version';'''
397-
parameters = ''
398-
self.cur.execute(item, parameters)
399-
currentVersion = int(self.cur.fetchall()[0][0])
400-
versionDict = {
401-
1: self.versionThree, 2: self.versionTwo,
402-
3: self.versionThree, 4: self.versionFour,
403-
5: self.versionFive, 6: self.versionSix,
404-
7: self.versionSeven, 8: self.versionEight,
405-
9: self.versionNine, 10: self.versionTen,
406-
}
407-
408-
if currentVersion in versionDict.keys():
409-
versionDict[currentVersion]()
415+
self.upgrade_migrations()
410416

411417
# Are you hoping to add a new option to the keys.dat file of existing
412418
# Bitmessage users or modify the SQLite database? Add it right

0 commit comments

Comments
 (0)