Skip to content

Commit 62b08f6

Browse files
committed
Fix duplicates issue
1 parent 1e4846d commit 62b08f6

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

lib/backend.php

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,26 @@ public function getListing($FOLDER, $showdel) {
137137
if ($results)
138138
foreach($results as $result)
139139
foreach($results2 as $result2)
140-
if ($result['id'] != $result2['id'] && $result['name'] == $result2['name'] && $result['grouping'] == $result2['grouping'] && $result['mtime'] == $result2['mtime']) {
140+
if ($result['id'] != $result2['id'] && $result['name'] == $result2['name'] && $result['grouping'] == $result2['grouping']) {
141141
// We have a duplicate that should not exist. Need to remove the offending record first
142-
$delid = $result['id'];
143-
if ($result['id'] > $result2['id'])
142+
$delid = -1;
143+
if ($result['mtime'] == $result2['mtime']) {
144+
// If the mtime's match, delete the oldest ID.
145+
$delid = $result['id'];
146+
if ($result['id'] > $result2['id'])
147+
$delid = $result2['id'];
148+
} elseif ($result['mtime'] > $result2['mtime']) {
149+
// Again, delete the oldest
144150
$delid = $result2['id'];
145-
$delquery = \OCP\DB::prepare("DELETE FROM *PREFIX*ownnote WHERE id=?");
146-
$delquery->execute(Array($delid));
147-
$requery = true;
151+
} elseif ($result['mtime'] < $result2['mtime']) {
152+
// The only thing left is if result is older
153+
$delid = $result['id'];
154+
}
155+
if ($delid != -1) {
156+
$delquery = \OCP\DB::prepare("DELETE FROM *PREFIX*ownnote WHERE id=?");
157+
$delquery->execute(Array($delid));
158+
$requery = true;
159+
}
148160
}
149161
if ($requery) {
150162
$query = \OCP\DB::prepare("SELECT id, name, grouping, mtime, deleted FROM *PREFIX*ownnote WHERE uid=? ORDER BY name");

0 commit comments

Comments
 (0)