aboutsummaryrefslogtreecommitdiff
path: root/lib/App/MediaControl/DB.rakumod
diff options
context:
space:
mode:
Diffstat (limited to 'lib/App/MediaControl/DB.rakumod')
-rw-r--r--lib/App/MediaControl/DB.rakumod16
1 files changed, 6 insertions, 10 deletions
diff --git a/lib/App/MediaControl/DB.rakumod b/lib/App/MediaControl/DB.rakumod
index e69efad..dd26e22 100644
--- a/lib/App/MediaControl/DB.rakumod
+++ b/lib/App/MediaControl/DB.rakumod
@@ -10,8 +10,8 @@ class App::MediaControl::DB {
# we need an explicit LEAVE block because on 2021.10, `will
# leave { .finish }` kills precomp
LEAVE { .finish with $conn };
- $conn.begin;
$conn.execute('PRAGMA foreign_keys=true');
+ $conn.begin;
KEEP { .commit with $conn };
return $code($conn) with $conn;
}
@@ -91,15 +91,11 @@ class App::MediaControl::DB {
}
}
- method remove-entry(Str:D() :$path! is copy, Str:D() :$name!) {
- $path ~~ s{<!after '/'>$} = '/';
- $path ~~ s{<!before '/'>^} = '/';
-
+ method remove-entry(Int:D() $id) {
self!db: {
- .query(q:to/END/, :$path, :$name);
+ .query(q:to/END/, :$id);
DELETE FROM files
- WHERE name=$name
- AND path=$path
+ WHERE id=$id
END
}
}
@@ -110,7 +106,7 @@ class App::MediaControl::DB {
my ($clause, @binds) = {*};
self!db: {
.query(qq:to/END/,|@binds).hashes;
- SELECT id, name, is_dir, watched_time
+ SELECT id, path, name, is_dir, watched_time
FROM files
WHERE parent_id $clause
ORDER BY name ASC
@@ -168,7 +164,7 @@ class App::MediaControl::DB {
ORDER BY watched_time DESC
LIMIT ?
)
- SELECT files.id, files.name, files.is_dir, recent.watched_time
+ SELECT files.id, files.path, files.name, files.is_dir, recent.watched_time
FROM files
JOIN recent ON files.id=recent.id
END