- Done. The media platform now tracks sources as either local uploads or remote URLs.
Changed: [includes/db.php (line 43)](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php:43) adds source_type and source_url, with an automatic migration for existing SQLite databases. [admin/add.php (line 260)](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/add.php:260) and [admin/edit.php (line 383)](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/edit.php:383) now let each source be an upload or an external URL. [index.php (line 226)](/Users/tyemeclifford/Documents/GH/mediaplayer/index.php:226) and [embed.php (line 193)](/Users/tyemeclifford/Documents/GH/mediaplayer/embed.php:193) resolve playback URLs based on where the source lives. [catalogue.php (line 79)](/Users/tyemeclifford/Documents/GH/mediaplayer/catalogue.php:79) now has public search for published videos only. [README.md (line 63)](/Users/tyemeclifford/Documents/GH/mediaplayer/README.md:63) documents local vs remote sources and public search.
This commit is contained in:
+11
-5
@@ -15,10 +15,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$id = (int)$_POST['id'];
|
||||
$v = get_video_by_id($id);
|
||||
if ($v) {
|
||||
// Remove source files + thumbnail
|
||||
// Remove local source files + thumbnail
|
||||
foreach ($v['sources'] as $s) {
|
||||
$f = MEDIA_DIR . $s['file_path'];
|
||||
if (file_exists($f)) unlink($f);
|
||||
if (source_is_local($s)) {
|
||||
$f = MEDIA_DIR . $s['file_path'];
|
||||
if ($s['file_path'] && file_exists($f)) unlink($f);
|
||||
}
|
||||
}
|
||||
if ($v['thumbnail']) {
|
||||
$t = MEDIA_DIR . $v['thumbnail'];
|
||||
@@ -57,7 +59,8 @@ $offset = ($page - 1) * $per_page;
|
||||
$list_stmt = $db->prepare("
|
||||
SELECT v.id, v.title, v.slug, v.thumbnail, v.duration, v.published, v.sort_order,
|
||||
v.created_at,
|
||||
COUNT(vs.id) AS source_count
|
||||
COUNT(vs.id) AS source_count,
|
||||
SUM(CASE WHEN vs.source_type='remote' THEN 1 ELSE 0 END) AS remote_count
|
||||
FROM videos v
|
||||
LEFT JOIN video_sources vs ON vs.video_id = v.id
|
||||
$where_sql
|
||||
@@ -230,7 +233,10 @@ render_head('Admin — TyClifford.com', '
|
||||
<?= $v['duration'] ? format_duration((int)$v['duration']) : '—' ?>
|
||||
</td>
|
||||
<td style="font-family:'Share Tech Mono',monospace;font-size:.7rem;color:var(--text-2);">
|
||||
<?= $v['source_count'] ?> file<?= $v['source_count'] != 1 ? 's' : '' ?>
|
||||
<?= $v['source_count'] ?> source<?= $v['source_count'] != 1 ? 's' : '' ?>
|
||||
<?php if ((int)$v['remote_count'] > 0): ?>
|
||||
<span style="color:var(--text-3);"> · <?= (int)$v['remote_count'] ?> URL<?= (int)$v['remote_count'] != 1 ? 's' : '' ?></span>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge <?= $v['published'] ? 'badge-green' : 'badge-gray' ?>">
|
||||
|
||||
Reference in New Issue
Block a user