new_videos_templ.go
26036 bytes
1// Code generated by templ - DO NOT EDIT.
2
3// templ: version: v0.3.1020
4package pages
5
6//lint:file-ignore SA4006 This context is only used if a nested component is present.
7
8import "github.com/a-h/templ"
9import templruntime "github.com/a-h/templ/runtime"
10
11import (
12 "fmt"
13
14 "github.com/TheEdgeOfRage/ytrssil-api/models"
15)
16
17func ProgressBar(video models.Video) templ.Component {
18 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
19 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
20 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
21 return templ_7745c5c3_CtxErr
22 }
23 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
24 if !templ_7745c5c3_IsBuffer {
25 defer func() {
26 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
27 if templ_7745c5c3_Err == nil {
28 templ_7745c5c3_Err = templ_7745c5c3_BufErr
29 }
30 }()
31 }
32 ctx = templ.InitializeContext(ctx)
33 templ_7745c5c3_Var1 := templ.GetChildren(ctx)
34 if templ_7745c5c3_Var1 == nil {
35 templ_7745c5c3_Var1 = templ.NopComponent
36 }
37 ctx = templ.ClearChildren(ctx)
38 if video.ProgressSeconds > 0 {
39 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<div id=\"")
40 if templ_7745c5c3_Err != nil {
41 return templ_7745c5c3_Err
42 }
43 var templ_7745c5c3_Var2 string
44 templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("progress-%s", video.ID))
45 if templ_7745c5c3_Err != nil {
46 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 11, Col: 48}
47 }
48 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var2)
49 if templ_7745c5c3_Err != nil {
50 return templ_7745c5c3_Err
51 }
52 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "\" class=\"progress\" role=\"progressbar\" style=\"height: 6px\"><div class=\"progress-bar\" style=\"")
53 if templ_7745c5c3_Err != nil {
54 return templ_7745c5c3_Err
55 }
56 var templ_7745c5c3_Var3 string
57 templ_7745c5c3_Var3, templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues(fmt.Sprintf("background: #b11; width: %d%%", video.ProgressPercentage()))
58 if templ_7745c5c3_Err != nil {
59 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 12, Col: 109}
60 }
61 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
62 if templ_7745c5c3_Err != nil {
63 return templ_7745c5c3_Err
64 }
65 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\"></div></div>")
66 if templ_7745c5c3_Err != nil {
67 return templ_7745c5c3_Err
68 }
69 } else {
70 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "<div id=\"")
71 if templ_7745c5c3_Err != nil {
72 return templ_7745c5c3_Err
73 }
74 var templ_7745c5c3_Var4 string
75 templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("progress-%s", video.ID))
76 if templ_7745c5c3_Err != nil {
77 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 15, Col: 48}
78 }
79 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var4)
80 if templ_7745c5c3_Err != nil {
81 return templ_7745c5c3_Err
82 }
83 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "\" style=\"height: 6px\"></div>")
84 if templ_7745c5c3_Err != nil {
85 return templ_7745c5c3_Err
86 }
87 }
88 return nil
89 })
90}
91
92func thumbnail(video models.Video) templ.Component {
93 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
94 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
95 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
96 return templ_7745c5c3_CtxErr
97 }
98 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
99 if !templ_7745c5c3_IsBuffer {
100 defer func() {
101 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
102 if templ_7745c5c3_Err == nil {
103 templ_7745c5c3_Err = templ_7745c5c3_BufErr
104 }
105 }()
106 }
107 ctx = templ.InitializeContext(ctx)
108 templ_7745c5c3_Var5 := templ.GetChildren(ctx)
109 if templ_7745c5c3_Var5 == nil {
110 templ_7745c5c3_Var5 = templ.NopComponent
111 }
112 ctx = templ.ClearChildren(ctx)
113 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<a target=\"_blank\" rel=\"noopener\" data-open-in-safari href=\"")
114 if templ_7745c5c3_Err != nil {
115 return templ_7745c5c3_Err
116 }
117 var templ_7745c5c3_Var6 templ.SafeURL
118 templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(video.WatchURL()))
119 if templ_7745c5c3_Err != nil {
120 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 24, Col: 40}
121 }
122 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
123 if templ_7745c5c3_Err != nil {
124 return templ_7745c5c3_Err
125 }
126 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "\" style=\"display: block; overflow: hidden; position: relative\"")
127 if templ_7745c5c3_Err != nil {
128 return templ_7745c5c3_Err
129 }
130 if video.IsShort {
131 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, " class=\"pillarbox\"")
132 if templ_7745c5c3_Err != nil {
133 return templ_7745c5c3_Err
134 }
135 }
136 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, ">")
137 if templ_7745c5c3_Err != nil {
138 return templ_7745c5c3_Err
139 }
140 if video.IsShort {
141 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "<img src=\"")
142 if templ_7745c5c3_Err != nil {
143 return templ_7745c5c3_Err
144 }
145 var templ_7745c5c3_Var7 string
146 templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("https://img.youtube.com/vi/%s/0.jpg", video.ID))
147 if templ_7745c5c3_Err != nil {
148 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 32, Col: 70}
149 }
150 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var7)
151 if templ_7745c5c3_Err != nil {
152 return templ_7745c5c3_Err
153 }
154 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "\" class=\"card-img-top\" alt=\"")
155 if templ_7745c5c3_Err != nil {
156 return templ_7745c5c3_Err
157 }
158 var templ_7745c5c3_Var8 string
159 templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.ResolveAttributeValue(video.Title)
160 if templ_7745c5c3_Err != nil {
161 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 34, Col: 21}
162 }
163 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var8)
164 if templ_7745c5c3_Err != nil {
165 return templ_7745c5c3_Err
166 }
167 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "\" style=\"width: 100%; aspect-ratio: 16/9; object-fit: contain;\"> <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" focusable=\"false\" style=\"pointer-events: none; width: 2rem; height: 2rem; z-index: 2; position: absolute; bottom: 0.5rem; left: 0.5rem;\" fill=\"white\"><path d=\"m13.974 2.052-8 4.7a4 4 0 00.385 7.097l.942.423-1.327.78a4 4 0 004.052 6.897l8-4.7a4.001 4.001 0 00-.384-7.096L16.7 9.73l1.326-.78a4 4 0 10-4.052-6.897ZM10 15V9l5 3-5 3Z\"></path></svg> ")
168 if templ_7745c5c3_Err != nil {
169 return templ_7745c5c3_Err
170 }
171 } else {
172 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<img src=\"")
173 if templ_7745c5c3_Err != nil {
174 return templ_7745c5c3_Err
175 }
176 var templ_7745c5c3_Var9 string
177 templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("https://img.youtube.com/vi/%s/0.jpg", video.ID))
178 if templ_7745c5c3_Err != nil {
179 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 48, Col: 70}
180 }
181 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var9)
182 if templ_7745c5c3_Err != nil {
183 return templ_7745c5c3_Err
184 }
185 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "\" class=\"card-img-top\" alt=\"")
186 if templ_7745c5c3_Err != nil {
187 return templ_7745c5c3_Err
188 }
189 var templ_7745c5c3_Var10 string
190 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.ResolveAttributeValue(video.Title)
191 if templ_7745c5c3_Err != nil {
192 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 50, Col: 21}
193 }
194 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10)
195 if templ_7745c5c3_Err != nil {
196 return templ_7745c5c3_Err
197 }
198 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "\" style=\"width: 100%; aspect-ratio: 16/9; object-fit: cover;\"> ")
199 if templ_7745c5c3_Err != nil {
200 return templ_7745c5c3_Err
201 }
202 }
203 if video.IsLive {
204 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<span focusable=\"false\" class=\"text-white bg-danger px-1 py-1 rounded fw-bold\" style=\"pointer-events: none; z-index: 2; position: absolute; bottom: 0.2rem; right: 0.2rem;\">LIVE</span>")
205 if templ_7745c5c3_Err != nil {
206 return templ_7745c5c3_Err
207 }
208 } else {
209 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<span focusable=\"false\" class=\"text-body bg-body bg-opacity-75 px-1 py-1 rounded\" style=\"pointer-events: none; z-index: 2; position: absolute; bottom: 0.2rem; right: 0.2rem;\">")
210 if templ_7745c5c3_Err != nil {
211 return templ_7745c5c3_Err
212 }
213 var templ_7745c5c3_Var11 string
214 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(video.Duration())
215 if templ_7745c5c3_Err != nil {
216 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 68, Col: 22}
217 }
218 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
219 if templ_7745c5c3_Err != nil {
220 return templ_7745c5c3_Err
221 }
222 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "</span>")
223 if templ_7745c5c3_Err != nil {
224 return templ_7745c5c3_Err
225 }
226 }
227 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</a>")
228 if templ_7745c5c3_Err != nil {
229 return templ_7745c5c3_Err
230 }
231 templ_7745c5c3_Err = ProgressBar(video).Render(ctx, templ_7745c5c3_Buffer)
232 if templ_7745c5c3_Err != nil {
233 return templ_7745c5c3_Err
234 }
235 return nil
236 })
237}
238
239func VideoCard(video models.Video) templ.Component {
240 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
241 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
242 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
243 return templ_7745c5c3_CtxErr
244 }
245 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
246 if !templ_7745c5c3_IsBuffer {
247 defer func() {
248 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
249 if templ_7745c5c3_Err == nil {
250 templ_7745c5c3_Err = templ_7745c5c3_BufErr
251 }
252 }()
253 }
254 ctx = templ.InitializeContext(ctx)
255 templ_7745c5c3_Var12 := templ.GetChildren(ctx)
256 if templ_7745c5c3_Var12 == nil {
257 templ_7745c5c3_Var12 = templ.NopComponent
258 }
259 ctx = templ.ClearChildren(ctx)
260 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<div id=\"")
261 if templ_7745c5c3_Err != nil {
262 return templ_7745c5c3_Err
263 }
264 var templ_7745c5c3_Var13 string
265 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("video-card-%s", video.ID))
266 if templ_7745c5c3_Err != nil {
267 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 76, Col: 49}
268 }
269 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var13)
270 if templ_7745c5c3_Err != nil {
271 return templ_7745c5c3_Err
272 }
273 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "\" class=\"video-card col-md-3 p-2\" data-title=\"")
274 if templ_7745c5c3_Err != nil {
275 return templ_7745c5c3_Err
276 }
277 var templ_7745c5c3_Var14 string
278 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.ResolveAttributeValue(video.Title)
279 if templ_7745c5c3_Err != nil {
280 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 76, Col: 108}
281 }
282 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14)
283 if templ_7745c5c3_Err != nil {
284 return templ_7745c5c3_Err
285 }
286 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\" data-channel-name=\"")
287 if templ_7745c5c3_Err != nil {
288 return templ_7745c5c3_Err
289 }
290 var templ_7745c5c3_Var15 string
291 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.ResolveAttributeValue(video.ChannelName)
292 if templ_7745c5c3_Err != nil {
293 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 76, Col: 148}
294 }
295 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var15)
296 if templ_7745c5c3_Err != nil {
297 return templ_7745c5c3_Err
298 }
299 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\"><div class=\"card\">")
300 if templ_7745c5c3_Err != nil {
301 return templ_7745c5c3_Err
302 }
303 templ_7745c5c3_Err = thumbnail(video).Render(ctx, templ_7745c5c3_Buffer)
304 if templ_7745c5c3_Err != nil {
305 return templ_7745c5c3_Err
306 }
307 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "<div class=\"card-body\"><p class=\"card-title text-truncate mb-0\">")
308 if templ_7745c5c3_Err != nil {
309 return templ_7745c5c3_Err
310 }
311 var templ_7745c5c3_Var16 string
312 templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(video.Title)
313 if templ_7745c5c3_Err != nil {
314 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 80, Col: 58}
315 }
316 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
317 if templ_7745c5c3_Err != nil {
318 return templ_7745c5c3_Err
319 }
320 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</p><p class=\"d-flex justify-content-between\"><a target=\"_blank\" rel=\"noopener\" data-open-in-safari href=\"")
321 if templ_7745c5c3_Err != nil {
322 return templ_7745c5c3_Err
323 }
324 var templ_7745c5c3_Var17 templ.SafeURL
325 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinURLErrs(fmt.Sprintf("https://www.youtube.com/channel/%s", video.ChannelID))
326 if templ_7745c5c3_Err != nil {
327 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 86, Col: 79}
328 }
329 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
330 if templ_7745c5c3_Err != nil {
331 return templ_7745c5c3_Err
332 }
333 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "\" class=\"card-text fw-light link-light link-underline-opacity-0\">")
334 if templ_7745c5c3_Err != nil {
335 return templ_7745c5c3_Err
336 }
337 var templ_7745c5c3_Var18 string
338 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(video.ChannelName)
339 if templ_7745c5c3_Err != nil {
340 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 88, Col: 25}
341 }
342 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
343 if templ_7745c5c3_Err != nil {
344 return templ_7745c5c3_Err
345 }
346 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "</a> <span>")
347 if templ_7745c5c3_Err != nil {
348 return templ_7745c5c3_Err
349 }
350 var templ_7745c5c3_Var19 string
351 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(video.HumanizedPublishTime())
352 if templ_7745c5c3_Err != nil {
353 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 90, Col: 36}
354 }
355 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
356 if templ_7745c5c3_Err != nil {
357 return templ_7745c5c3_Err
358 }
359 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</span></p><div class=\"d-flex justify-content-between\"><form data-signals=\"{progress: ''}\" data-on:submit__prevent=\"")
360 if templ_7745c5c3_Err != nil {
361 return templ_7745c5c3_Err
362 }
363 var templ_7745c5c3_Var20 string
364 templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("$progress = evt.target.querySelector('input').value; @patch('/videos/%s/progress')", video.ID))
365 if templ_7745c5c3_Err != nil {
366 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 96, Col: 139}
367 }
368 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var20)
369 if templ_7745c5c3_Err != nil {
370 return templ_7745c5c3_Err
371 }
372 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "\" class=\"d-flex\"><input type=\"text\" placeholder=\"mm:ss/11m22s\" class=\"form-control\" style=\"width: 50%\"> <button type=\"submit\" class=\"btn btn-primary ms-3\"><i class=\"bi bi-clock\"></i></button></form><div class=\"d-flex gap-2\">")
373 if templ_7745c5c3_Err != nil {
374 return templ_7745c5c3_Err
375 }
376 if video.IsDownloaded() {
377 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "<a href=\"")
378 if templ_7745c5c3_Err != nil {
379 return templ_7745c5c3_Err
380 }
381 var templ_7745c5c3_Var21 templ.SafeURL
382 templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(fmt.Sprintf("/videos/%s/file", video.ID)))
383 if templ_7745c5c3_Err != nil {
384 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 105, Col: 70}
385 }
386 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
387 if templ_7745c5c3_Err != nil {
388 return templ_7745c5c3_Err
389 }
390 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "\" data-open-in-safari class=\"btn btn-success\"><i class=\"bi bi-download\"></i></a> ")
391 if templ_7745c5c3_Err != nil {
392 return templ_7745c5c3_Err
393 }
394 } else if video.IsDownloading() {
395 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<button class=\"btn btn-primary\" disabled data-on-interval__duration.2s=\"")
396 if templ_7745c5c3_Err != nil {
397 return templ_7745c5c3_Err
398 }
399 var templ_7745c5c3_Var22 string
400 templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("@get('/videos/%s/card')", video.ID))
401 if templ_7745c5c3_Err != nil {
402 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 115, Col: 88}
403 }
404 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var22)
405 if templ_7745c5c3_Err != nil {
406 return templ_7745c5c3_Err
407 }
408 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "\"><span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span></button> ")
409 if templ_7745c5c3_Err != nil {
410 return templ_7745c5c3_Err
411 }
412 } else if video.DownloadFailed() {
413 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<button type=\"button\" class=\"btn btn-danger\" title=\"")
414 if templ_7745c5c3_Err != nil {
415 return templ_7745c5c3_Err
416 }
417 var templ_7745c5c3_Var23 string
418 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("Download failed: %s", *video.DownloadError))
419 if templ_7745c5c3_Err != nil {
420 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 123, Col: 71}
421 }
422 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var23)
423 if templ_7745c5c3_Err != nil {
424 return templ_7745c5c3_Err
425 }
426 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\" data-video-id=\"")
427 if templ_7745c5c3_Err != nil {
428 return templ_7745c5c3_Err
429 }
430 var templ_7745c5c3_Var24 string
431 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.ResolveAttributeValue(video.ID)
432 if templ_7745c5c3_Err != nil {
433 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 124, Col: 31}
434 }
435 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var24)
436 if templ_7745c5c3_Err != nil {
437 return templ_7745c5c3_Err
438 }
439 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "\" data-video-title=\"")
440 if templ_7745c5c3_Err != nil {
441 return templ_7745c5c3_Err
442 }
443 var templ_7745c5c3_Var25 string
444 templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.ResolveAttributeValue(video.Title)
445 if templ_7745c5c3_Err != nil {
446 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 125, Col: 37}
447 }
448 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var25)
449 if templ_7745c5c3_Err != nil {
450 return templ_7745c5c3_Err
451 }
452 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "\" onclick=\"openResolutionModal(this)\"><i class=\"bi bi-exclamation-triangle\"></i></button> ")
453 if templ_7745c5c3_Err != nil {
454 return templ_7745c5c3_Err
455 }
456 } else {
457 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<button type=\"button\" class=\"btn btn-outline-primary\" data-video-id=\"")
458 if templ_7745c5c3_Err != nil {
459 return templ_7745c5c3_Err
460 }
461 var templ_7745c5c3_Var26 string
462 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.ResolveAttributeValue(video.ID)
463 if templ_7745c5c3_Err != nil {
464 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 134, Col: 31}
465 }
466 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var26)
467 if templ_7745c5c3_Err != nil {
468 return templ_7745c5c3_Err
469 }
470 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "\" data-video-title=\"")
471 if templ_7745c5c3_Err != nil {
472 return templ_7745c5c3_Err
473 }
474 var templ_7745c5c3_Var27 string
475 templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.ResolveAttributeValue(video.Title)
476 if templ_7745c5c3_Err != nil {
477 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 135, Col: 37}
478 }
479 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var27)
480 if templ_7745c5c3_Err != nil {
481 return templ_7745c5c3_Err
482 }
483 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "\" onclick=\"openResolutionModal(this)\"><i class=\"bi bi-download\"></i></button> ")
484 if templ_7745c5c3_Err != nil {
485 return templ_7745c5c3_Err
486 }
487 }
488 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<button data-on:click=\"")
489 if templ_7745c5c3_Err != nil {
490 return templ_7745c5c3_Err
491 }
492 var templ_7745c5c3_Var28 string
493 templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("@patch('/videos/%s/watch')", video.ID))
494 if templ_7745c5c3_Err != nil {
495 return templ.Error{Err: templ_7745c5c3_Err, FileName: `pages/new_videos.templ`, Line: 142, Col: 74}
496 }
497 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28)
498 if templ_7745c5c3_Err != nil {
499 return templ_7745c5c3_Err
500 }
501 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "\" class=\"btn btn-danger\"><i class=\"bi bi-check-circle\"></i></button></div></div></div></div></div>")
502 if templ_7745c5c3_Err != nil {
503 return templ_7745c5c3_Err
504 }
505 return nil
506 })
507}
508
509func NewVideosPage(videos []models.Video) templ.Component {
510 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
511 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
512 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
513 return templ_7745c5c3_CtxErr
514 }
515 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
516 if !templ_7745c5c3_IsBuffer {
517 defer func() {
518 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
519 if templ_7745c5c3_Err == nil {
520 templ_7745c5c3_Err = templ_7745c5c3_BufErr
521 }
522 }()
523 }
524 ctx = templ.InitializeContext(ctx)
525 templ_7745c5c3_Var29 := templ.GetChildren(ctx)
526 if templ_7745c5c3_Var29 == nil {
527 templ_7745c5c3_Var29 = templ.NopComponent
528 }
529 ctx = templ.ClearChildren(ctx)
530 templ_7745c5c3_Var30 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
531 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
532 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
533 if !templ_7745c5c3_IsBuffer {
534 defer func() {
535 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
536 if templ_7745c5c3_Err == nil {
537 templ_7745c5c3_Err = templ_7745c5c3_BufErr
538 }
539 }()
540 }
541 ctx = templ.InitializeContext(ctx)
542 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<div class=\"row\">")
543 if templ_7745c5c3_Err != nil {
544 return templ_7745c5c3_Err
545 }
546 for _, video := range videos {
547 templ_7745c5c3_Err = VideoCard(video).Render(ctx, templ_7745c5c3_Buffer)
548 if templ_7745c5c3_Err != nil {
549 return templ_7745c5c3_Err
550 }
551 }
552 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "</div>")
553 if templ_7745c5c3_Err != nil {
554 return templ_7745c5c3_Err
555 }
556 return nil
557 })
558 templ_7745c5c3_Err = BaseLayout("ytrssil - New Videos", "new").Render(templ.WithChildren(ctx, templ_7745c5c3_Var30), templ_7745c5c3_Buffer)
559 if templ_7745c5c3_Err != nil {
560 return templ_7745c5c3_Err
561 }
562 return nil
563 })
564}
565
566var _ = templruntime.GeneratedTemplate