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.rakumod30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/App/MediaControl/DB.rakumod b/lib/App/MediaControl/DB.rakumod
index 34716c5..96fc6cd 100644
--- a/lib/App/MediaControl/DB.rakumod
+++ b/lib/App/MediaControl/DB.rakumod
@@ -141,4 +141,34 @@ class App::MediaControl::DB {
END
}
}
+
+ method mark-entry-watched(Int:D() $id) {
+ self!db: {
+ .query(q:to/END/,:$id,:time(time));
+ UPDATE files
+ SET watched_time=$time
+ WHERE id=$id
+ END
+ }
+ }
+
+ method get-recently-watched-folders(Int:D() $limit=20) {
+ self!db: {
+ .query(qq:to/END/, :$limit).hashes;
+ WITH recent(id,watched_time) AS (
+ SELECT parent_id AS id, MAX(watched_time) AS watched_time
+ FROM files
+ WHERE is_dir=false
+ AND watched_time IS NOT NULL
+ AND parent_id IS NOT NULL
+ GROUP BY parent_id
+ ORDER BY watched_time DESC
+ LIMIT $limit
+ )
+ SELECT files.id, files.name, files.is_dir, recent.watched_time
+ FROM files
+ JOIN recent ON files.id=recent.id
+ END
+ }
+ }
}