Introduction
Introduction Statistics Contact Development Disclaimer Help
youtube: when clicking a channel, show the latest videos - frontends - front-en…
Log
Files
Refs
README
LICENSE
---
commit f47b9452628b9a68e527b7872771b08ef47e38c4
parent 2be30b4f834c64d4478e8cff231ee9b29601edc0
Author: Hiltjo Posthuma <[email protected]>
Date: Sat, 18 Feb 2023 11:32:41 +0100
youtube: when clicking a channel, show the latest videos
Diffstat:
M youtube/cgi.c | 34 +++++++++++++++++++++--------…
1 file changed, 23 insertions(+), 11 deletions(-)
---
diff --git a/youtube/cgi.c b/youtube/cgi.c
@@ -21,7 +21,7 @@ extern char **environ;
static int curpage = 1;
/* CGI parameters */
-static char rawsearch[4096], search[4096], order[16], page[64];
+static char rawsearch[4096], search[4096], order[16], page[64], channelid[256];
void
parsecgi(void)
@@ -69,6 +69,12 @@ parsecgi(void)
exit(1);
}
}
+
+ /* channel ID */
+ if ((p = getparam(query, "chan"))) {
+ if (decodeparam(channelid, sizeof(channelid), p) == -1)
+ channelid[0] = '\0';
+ }
}
int
@@ -177,13 +183,16 @@ render(struct search_response *r)
"</span><br/>\n"
"\t\t<span class=\"channel\">");
- OUT("<a href=\"?q=");
- xmlencode(videos[i].channeltitle);
- OUT("&amp;o=");
- xmlencode(order);
- OUT("\">");
- xmlencode(videos[i].channeltitle);
- OUT("</a>");
+ if (videos[i].channelid[0]) {
+ OUT("<a href=\"?chan=");
+ xmlencode(videos[i].channelid);
+ OUT("\">");
+ xmlencode(videos[i].channeltitle);
+ OUT("</a>");
+ } else {
+ xmlencode(videos[i].channeltitle);
+ }
+
if (videos[i].channelid[0] || videos[i].userid[0]) {
OUT(" | <a title=\"");
xmlencode(videos[i].channeltitle);
@@ -197,6 +206,7 @@ render(struct search_response *r)
}
OUT("\">Atom feed</a>");
}
+
OUT("</span><br/>\n");
if (videos[i].publishedat[0]) {
OUT(" <span class=\"publishedat…
@@ -272,10 +282,12 @@ main(void)
parsecgi();
- if (!rawsearch[0])
+ if (rawsearch[0])
+ r = youtube_search(rawsearch, page, order);
+ else if (channelid[0])
+ r = youtube_channel_videos(channelid);
+ else
goto show;
-
- r = youtube_search(rawsearch, page, order);
if (!r || r->nitems == 0) {
OUT("Status: 500 Internal Server Error\r\n\r\n");
exit(1);
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.