ipotcasse: generate an index.html file listing episodes and linking the feed - potcasse - Podcast publication made easy Err bitreich.org 70
hgit clone git://bitreich.org/potcasse git://hg6vgqziawt5s4dj.onion/potcasse URL:git://bitreich.org/potcasse git://hg6vgqziawt5s4dj.onion/potcasse bitreich.org 70
1Log /scm/potcasse/log.gph bitreich.org 70
1Files /scm/potcasse/files.gph bitreich.org 70
1Refs /scm/potcasse/refs.gph bitreich.org 70
1Tags /scm/potcasse/tag bitreich.org 70
1README /scm/potcasse/file/README.md.gph bitreich.org 70
1LICENSE /scm/potcasse/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 1d1105f240f63af0cb57ce2649b7c71eefb70959 /scm/potcasse/commit/1d1105f240f63af0cb57ce2649b7c71eefb70959.gph bitreich.org 70
1parent 840b6c097f826bd21ce64c2b5a4188c3fdcff19a /scm/potcasse/commit/840b6c097f826bd21ce64c2b5a4188c3fdcff19a.gph bitreich.org 70
hAuthor: Solene Rapenne <solene@perso.pw> URL:mailto:solene@perso.pw bitreich.org 70
iDate: Tue, 20 Jul 2021 23:19:11 +0200 Err bitreich.org 70
i Err bitreich.org 70
ipotcasse: generate an index.html file listing episodes and linking the feed Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M README.md | 4 +++- Err bitreich.org 70
i M potcasse | 41 ++++++++++++++++++++++++++----- Err bitreich.org 70
i Err bitreich.org 70
i2 files changed, 38 insertions(+), 7 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/README.md b/README.md /scm/potcasse/file/README.md.gph bitreich.org 70
i@@ -11,6 +11,8 @@ potcasse is meant to help people to publish and self host a podcast easily witho Err bitreich.org 70
i Err bitreich.org 70
i The idea is to regroup audio files with their metadata in a directory and generate the structure that you will publish on a web server. Err bitreich.org 70
i Err bitreich.org 70
i+A simple `index.html` file is also generated in the process to give an easy list without using the RSS file. Err bitreich.org 70
i+ Err bitreich.org 70
i ## First time Err bitreich.org 70
i Err bitreich.org 70
i ``` Err bitreich.org 70
i@@ -49,7 +51,7 @@ potcasse episode "Episode XX: trying something weird" /path/to/audio/file this_i Err bitreich.org 70
i potcasse gen Err bitreich.org 70
i ``` Err bitreich.org 70
i Err bitreich.org 70
i-this will create or update the `output_html` directory with your audio files, the RSS file and the logo file if any. Err bitreich.org 70
i+this will create or update the `output_html` directory with your audio files, the RSS file, an index.html file listing all the episodes and the logo file if any. Err bitreich.org 70
i Err bitreich.org 70
i # Real world example Err bitreich.org 70
i Err bitreich.org 70
1diff --git a/potcasse b/potcasse /scm/potcasse/file/potcasse.gph bitreich.org 70
i@@ -58,7 +58,8 @@ EOF Err bitreich.org 70
i Err bitreich.org 70
i gen() { Err bitreich.org 70
i test -d episodes || exitp "You need to import episodes before generation" Err bitreich.org 70
i- TMPFILE=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX) Err bitreich.org 70
i+ TMPRSS=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX) Err bitreich.org 70
i+ TMPHTML=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX) Err bitreich.org 70
i . ./metadata.sh Err bitreich.org 70
i mkdir -p output_html/episodes Err bitreich.org 70
i Err bitreich.org 70
i@@ -68,7 +69,7 @@ gen() { Err bitreich.org 70
i cp logo.png output_html/logo.png Err bitreich.org 70
i fi Err bitreich.org 70
i Err bitreich.org 70
i- cat <<EOF >> $TMPFILE Err bitreich.org 70
i+ cat <<EOF >> $TMPRSS Err bitreich.org 70
i <?xml version="1.0" encoding="UTF-8"?> Err bitreich.org 70
i <rss version="2.0"> Err bitreich.org 70
i <channel> Err bitreich.org 70
i@@ -83,6 +84,23 @@ gen() { Err bitreich.org 70
i <language>${LANG}</language> Err bitreich.org 70
i EOF Err bitreich.org 70
i Err bitreich.org 70
i+ cat <<EOF >> $TMPHTML Err bitreich.org 70
i+<!DOCTYPE html> Err bitreich.org 70
i+<html lang="${LANG}"> Err bitreich.org 70
i+ <head> Err bitreich.org 70
i+ <title>${TITLE}</title> Err bitreich.org 70
i+ </head> Err bitreich.org 70
i+ <body> Err bitreich.org 70
i+ <h1>Podcast episodes- ${TITLE}</h1> Err bitreich.org 70
i+ <div> Err bitreich.org 70
i+ <img src="logo.png" width=200 height=200 alt="logo" /> Err bitreich.org 70
i+ </div> Err bitreich.org 70
i+ <ul> Err bitreich.org 70
i+ <li><a href="${RSSLINK}">RSS feed</a> (for podcast players).</li> Err bitreich.org 70
i+ </ul> Err bitreich.org 70
i+ <ul> Err bitreich.org 70
i+EOF Err bitreich.org 70
i+ Err bitreich.org 70
i for episode in episodes/* Err bitreich.org 70
i do Err bitreich.org 70
i echo "Scanning $episode" Err bitreich.org 70
i@@ -90,7 +108,7 @@ EOF Err bitreich.org 70
i SIZE=$(stat -f "%z" "${episode}/${AUDIOFILE}") Err bitreich.org 70
i EXT=${AUDIOFILE##*.} Err bitreich.org 70
i rsync -a "${episode}/${AUDIOFILE}" output_html/episodes/ Err bitreich.org 70
i- cat <<EOF >> $TMPFILE Err bitreich.org 70
i+ cat <<EOF >> $TMPRSS Err bitreich.org 70
i <item> Err bitreich.org 70
i <title>$TITLE</title> Err bitreich.org 70
i <description></description> Err bitreich.org 70
i@@ -98,14 +116,25 @@ EOF Err bitreich.org 70
i <enclosure url="${SITE}/episodes/${AUDIOFILE}" length="${SIZE}" type="audio/${EXT}" /> Err bitreich.org 70
i </item> Err bitreich.org 70
i EOF Err bitreich.org 70
i+ cat <<EOF >> $TMPHTML Err bitreich.org 70
i+ <li>${PUBDATE} - <a href="episodes/${AUDIOFILE}">${TITLE}</a></li> Err bitreich.org 70
i+EOF Err bitreich.org 70
i done Err bitreich.org 70
i Err bitreich.org 70
i- cat <<EOF >> $TMPFILE Err bitreich.org 70
i+ cat <<EOF >> $TMPRSS Err bitreich.org 70
i </channel> Err bitreich.org 70
i </rss> Err bitreich.org 70
i EOF Err bitreich.org 70
i- install -m 644 "$TMPFILE" output_html/${RSSLINK} Err bitreich.org 70
i- rm "$TMPFILE" Err bitreich.org 70
i+ Err bitreich.org 70
i+ cat <<EOF >> $TMPHTML Err bitreich.org 70
i+ </ul> Err bitreich.org 70
i+ </body> Err bitreich.org 70
i+</html> Err bitreich.org 70
i+EOF Err bitreich.org 70
i+ Err bitreich.org 70
i+ install -m 644 "$TMPRSS" output_html/${RSSLINK} Err bitreich.org 70
i+ install -m 644 "$TMPHTML" output_html/index.html Err bitreich.org 70
i+ rm "$TMPRSS" "$TMPHTML" Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i Err bitreich.org 70
.
Response:
text/plain