This commit is contained in:
Carl Pearson
2024-10-14 05:58:03 -06:00
parent 30a2407e46
commit 54536bfa3c
8 changed files with 75 additions and 15 deletions

View File

@@ -651,11 +651,13 @@ func startDownload(originalID uint, videoURL string, audioOnly bool) {
}
audio := media.Audio{
MediaFile: media.MediaFile{
Length: mediaMeta.length,
Size: mediaMeta.size,
},
OriginalID: originalID,
Filename: dlFilename,
Source: "original",
Length: mediaMeta.length,
Size: mediaMeta.size,
}
fmt.Println("create Audio", audio)
if db.Create(&audio).Error != nil {
@@ -672,14 +674,16 @@ func startDownload(originalID uint, videoURL string, audioOnly bool) {
}
video := media.Video{
MediaFile: media.MediaFile{
Length: mediaMeta.length,
Size: mediaMeta.size,
},
OriginalID: originalID,
Filename: dlFilename,
Source: "original",
FPS: mediaMeta.fps,
Width: mediaMeta.width,
Height: mediaMeta.height,
Length: mediaMeta.length,
Size: mediaMeta.size,
}
log.Debugln("create Video", video)
if db.Create(&video).Error != nil {

View File

@@ -11,30 +11,31 @@ const (
Failed Status = "failed"
)
type MediaFile struct {
Size int64
Length float64
Type string
Codec string
}
type Audio struct {
gorm.Model
MediaFile
OriginalID uint // Original.ID
Source string // "original", "transcode"
Bps uint
Length float64
Size int64
Type string
Codec string
Filename string
Status Status
}
type Video struct {
gorm.Model
MediaFile
OriginalID uint // Original.ID
Source string // "original", "transcode"
Filename string
Width uint
Height uint
FPS float64
Length float64
Size int64
Type string
Codec string
Status Status
}

View File

@@ -1,7 +1,7 @@
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 20px;
padding: 0;
box-sizing: border-box;
}

35
static/style/header.css Normal file
View File

@@ -0,0 +1,35 @@
header {
background-color: #333;
color: white;
padding: 1rem;
width: 100dvw;
box-sizing: border-box;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
}
.nav-links {
list-style: none;
display: flex;
gap: 1rem;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
}
.nav-links a:hover {
text-decoration: underline;
}

View File

@@ -6,11 +6,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/static/style/common.css">
<link rel="stylesheet" href="/static/style/download.css">
{{template "header-css" .}}
{{template "footer-css" .}}
<title>Download Video</title>
</head>
<body>
{{template "header" .}}
<h1>Download Video</h1>
<form method="POST">
<input type="url" name="url" placeholder="Video URL" required>

16
templates/header.html Normal file
View File

@@ -0,0 +1,16 @@
{{define "header"}}
<header>
<nav>
<div class="logo">yt-dlp Site</div>
<ul class="nav-links">
<li><a href="/videos">Videos</a></li>
<li><a href="/download">Download</a></li>
<li><a href="/logout">Logout</a></li>
</ul>
</nav>
</header>
{{end}}
{{define "header-css"}}
<link rel="stylesheet" href="/static/style/header.css">
{{end}}

View File

@@ -8,13 +8,13 @@
<link rel="stylesheet" href="/static/style/common.css">
<link rel="stylesheet" href="/static/style/video.css">
<link rel="stylesheet" href="/static/style/media-card.css">
{{template "header-css" .}}
{{template "footer-css" .}}
</head>
<body>
{{template "header" .}}
<h1>{{.original.Title}}</h1>
<div class="media-grid">
{{range .videos}}
<div class="media-card">

View File

@@ -9,10 +9,12 @@
<link rel="stylesheet" href="/static/style/common.css">
<link rel="stylesheet" href="/static/style/videos.css">
<link rel="stylesheet" href="/static/style/video-card.css">
{{template "header-css" .}}
{{template "footer-css" .}}
</head>
<body>
{{template "header" .}}
<h1>Downloaded Videos</h1>
<div class="video-list">