Skip to content

Commit 63ee2af

Browse files
committed
deletion fix
1 parent f999acc commit 63ee2af

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

module/database/FileDatabase.py

+41-1
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ def deletePackage(self, id):
152152

153153
p = self.getPackage(id)
154154
oldorder = p.order
155+
queue = p.queue
155156

156157
if not p:
157158
if id in self.packageCache: del self.packageCache[id]
@@ -175,7 +176,11 @@ def deletePackage(self, id):
175176

176177
packs = self.packageCache.values()
177178
for pack in packs:
179+
<<<<<<< mine
180+
if pack.queue == queue and pack.order > oldorder:
181+
=======
178182
if pack.queue == p.queue and p.order < oldorder:
183+
>>>>>>> theirs
179184
pack.order -= 1
180185
pack.notifyChange()
181186

@@ -193,6 +198,7 @@ def deleteLink(self, id):
193198
e = RemoveEvent("file", id, "collector" if not f.package().queue else "queue")
194199

195200
oldorder = f.order
201+
package = f.package
196202

197203
if id in self.core.threadManager.processingIds():
198204
self.cache[id].abortDownload()
@@ -210,7 +216,7 @@ def deleteLink(self, id):
210216

211217
pyfiles = self.cache.values()
212218
for pyfile in pyfiles:
213-
if pyfile.packageid == f["package"] and pyfile.order > oldorder:
219+
if pyfile.packageid == package and pyfile.order > oldorder:
214220
pyfile.order -= 1
215221
pyfile.notifyChange()
216222

@@ -574,6 +580,11 @@ def restartFailed(self):
574580
""" restart all failed links """
575581
self.db.restartFailed()
576582

583+
@lock
584+
@change
585+
def fixPackageOrder(self, queue=0):
586+
self.db.fixPackageOrder(queue)
587+
577588
class FileMethods():
578589
@style.queue
579590
def filecount(self, queue):
@@ -882,6 +893,35 @@ def restartFailed(self):
882893
self.c.execute("UPDATE links SET status=3,error='' WHERE status IN (8, 9)")
883894

884895

896+
@style.queue
897+
def fixPackageOrder(self, queue=0):
898+
found = 0
899+
order = 0
900+
i = 0
901+
self.c.execute("SELECT count(*) FROM packages WHERE queue = ?", (queue, ))
902+
count = self.c.fetchone()[0]
903+
if count == 0:
904+
return
905+
while order < count:
906+
self.c.execute("SELECT id FROM packages WHERE packageorder = ? AND queue = ?", (i, queue))
907+
all = self.c.fetchall()
908+
if len(all) == 0:
909+
i += 1
910+
elif len(all) == 1:
911+
self.c.execute("UPDATE packages SET packageorder=? WHERE id = ?", (order, all[0][0]))
912+
order += 1
913+
i += 1
914+
elif len(all) > 1:
915+
self.c.execute("UPDATE packages SET packageorder=? WHERE id = ?", (order, all[0][0]))
916+
order += 1
917+
i += len(all)
918+
del all[0]
919+
self.c.execute("UPDATE packages SET packageorder=packageorder+? WHERE packageorder >= ? AND queue=?", (len(all), order, queue))
920+
for r in all:
921+
self.c.execute("UPDATE packages SET packageorder=? WHERE id = ?", order, r[0])
922+
order += 1
923+
924+
885925
@style.queue
886926
def findDuplicates(self, id, folder, filename):
887927
""" checks if filename exists with different id and same package """

pyLoadCore.py

+3
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,9 @@ def setupDB(self):
472472

473473
self.files = FileHandler(self)
474474
self.db.manager = self.files #ugly?
475+
476+
self.files.fixPackageOrder(0)
477+
self.files.fixPackageOrder(1)
475478

476479
def init_webserver(self):
477480
if self.config['webinterface']['activated']:

0 commit comments

Comments
 (0)