From 9e67c1d51a4896e827bd2226b338975907a7a08f Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Thu, 13 Feb 2025 08:08:58 +0100
Subject: [PATCH] In file view, add play button.

---
 src/templates/file_data.tmpl | 2 +-
 src/ytplom/http.py           | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/templates/file_data.tmpl b/src/templates/file_data.tmpl
index 8564dff..c3f4dc8 100644
--- a/src/templates/file_data.tmpl
+++ b/src/templates/file_data.tmpl
@@ -23,7 +23,7 @@ input[type=submit].dangerous { color: red; }
 
 <tr>
 <th>present:</th>
-<td>{% if file.present %}<a href="/{{page_names.download}}/{{file.yt_id}}">yes</a>{% else %}no{% endif %}</td>
+<td>{% if file.present %}<a href="/{{page_names.download}}/{{file.yt_id}}">yes</a> <input type="submit" name="play" value="play" />{% else %}no{% endif %}</td>
 </tr>
 
 <tr>
diff --git a/src/ytplom/http.py b/src/ytplom/http.py
index c91100c..443355c 100644
--- a/src/ytplom/http.py
+++ b/src/ytplom/http.py
@@ -118,6 +118,12 @@ class _TaskHandler(PlomHttpHandler):
 
     def _receive_file_data(self) -> None:
         digest = Hash.from_b64(self.path_toks[2])
+        if self.postvars.has_key('play'):
+            with DbConn() as conn:
+                file = VideoFile.get_one(conn, digest)
+            self.server.player.inject_and_play(file)
+            self._redirect(Path(self.postvars.first_for('redir_target')))
+            return
         if not (self.server.config.allow_file_edit  # also if whitelist, …
                 and self.server.config.whitelist_tags_display.empty):
             self.send_http(b'no way', code=403)  # … cuz input form under …
-- 
2.30.2