diff options
author | dakkar <dakkar@thenautilus.net> | 2021-12-31 16:24:27 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2021-12-31 16:24:27 +0000 |
commit | f0042c548660476f728af7f79eb74c890d45b787 (patch) | |
tree | 67b2b2e3fda73c5e1bdb796c525b7f439d60ef40 /lib/App/MediaControl/DB.rakumod | |
parent | actually pass pairs (diff) | |
download | media-control-f0042c548660476f728af7f79eb74c890d45b787.tar.gz media-control-f0042c548660476f728af7f79eb74c890d45b787.tar.bz2 media-control-f0042c548660476f728af7f79eb74c890d45b787.zip |
recent (broken)
Diffstat (limited to 'lib/App/MediaControl/DB.rakumod')
-rw-r--r-- | lib/App/MediaControl/DB.rakumod | 30 |
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 + } + } } |