MCPcopy
hub / github.com/pyload/pyload / DatabaseBackend

Class DatabaseBackend

module/database/DatabaseBackend.py:111–286  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109 self.done.wait()
110
111class DatabaseBackend(Thread):
112 subs = []
113 def __init__(self, core):
114 Thread.__init__(self)
115 self.setDaemon(True)
116 self.core = core
117
118 self.jobs = Queue()
119
120 self.setuplock = Event()
121
122 style.setDB(self)
123
124 def setup(self):
125 self.start()
126 self.setuplock.wait()
127
128 def run(self):
129 """main loop, which executes commands"""
130 convert = self._checkVersion() #returns None or current version
131
132 self.conn = sqlite3.connect("files.db")
133 chmod("files.db", 0600)
134
135 self.c = self.conn.cursor() #compatibility
136
137 if convert is not None:
138 self._convertDB(convert)
139
140 self._createTables()
141 self._migrateUser()
142
143 self.conn.commit()
144
145 self.setuplock.set()
146
147 while True:
148 j = self.jobs.get()
149 if j == "quit":
150 self.c.close()
151 self.conn.close()
152 break
153 j.processJob()
154
155 @style.queue
156 def shutdown(self):
157 self.conn.commit()
158 self.jobs.put("quit")
159
160 def _checkVersion(self):
161 """ check db version and delete it if needed"""
162 if not exists("files.version"):
163 f = open("files.version", "wb")
164 f.write(str(DB_VERSION))
165 f.close()
166 return
167
168 f = open("files.version", "rb")

Callers 4

setupDBMethod · 0.90
conf_basicMethod · 0.90
set_userMethod · 0.90
DatabaseBackend.pyFile · 0.85

Calls 2

DatabaseJobClass · 0.85
putMethod · 0.45

Tested by

no test coverage detected