ifirst version - 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 7d50f07ca06423a5d0c93ce190093920f551c669 /scm/potcasse/commit/7d50f07ca06423a5d0c93ce190093920f551c669.gph bitreich.org 70
hAuthor: Solene Rapenne <solene@perso.pw> URL:mailto:solene@perso.pw bitreich.org 70
iDate: Tue, 20 Jul 2021 22:13:55 +0200 Err bitreich.org 70
i Err bitreich.org 70
ifirst version Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i A potcasse | 116 ++++++++++++++++++++++++++++++ Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 116 insertions(+), 0 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/potcasse b/potcasse /scm/potcasse/file/potcasse.gph bitreich.org 70
i@@ -0,0 +1,116 @@ Err bitreich.org 70
i+#!/bin/sh Err bitreich.org 70
i+ Err bitreich.org 70
i+exitp() { Err bitreich.org 70
i+ echo "$1" Err bitreich.org 70
i+ exit 1 Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+usage() { Err bitreich.org 70
i+ name=$(basename $0) Err bitreich.org 70
i+ printf '%s\n' \ Err bitreich.org 70
i+ "$name init | gen | episode TITLE FILE [ID]" \ Err bitreich.org 70
i+ "$name init" \ Err bitreich.org 70
i+ ': initialize the potcasse structure' \ Err bitreich.org 70
i+ "$name gen" \ Err bitreich.org 70
i+ ': generate the RSS file' \ Err bitreich.org 70
i+ "$name episode TITLE FILE [ID]" \ Err bitreich.org 70
i+ ': create the structure for a new episode and eventually copy file [FILE] in [ID]' Err bitreich.org 70
i+ exit 0 Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+init() { Err bitreich.org 70
i+ test -f metadata.sh && exitp "You seem in a directory managed by potcasse" Err bitreich.org 70
i+ mkdir -p episodes Err bitreich.org 70
i+ cat << EOF > metadata.sh Err bitreich.org 70
i+SITE= Err bitreich.org 70
i+LANG=en-us Err bitreich.org 70
i+#uncomment to use logo.png as a logo Err bitreich.org 70
i+#IMAGE=YES Err bitreich.org 70
i+EOF Err bitreich.org 70
i+ exit 0 Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+episode() { Err bitreich.org 70
i+ test -f metadata.sh || exitp "The directory isn't managed by potcasse" Err bitreich.org 70
i+ TITLE="$1" Err bitreich.org 70
i+ Err bitreich.org 70
i+ test -f "$2" || exitp "File $2 doesn't exist" Err bitreich.org 70
i+ AUDIOFILE="$2" Err bitreich.org 70
i+ EXT=${AUDIOFILE##*.} Err bitreich.org 70
i+ Err bitreich.org 70
i+ if [ -n "$3" ] Err bitreich.org 70
i+ then Err bitreich.org 70
i+ ID="$3" Err bitreich.org 70
i+ else Err bitreich.org 70
i+ ID="$(date +%Y%m%d%H)" Err bitreich.org 70
i+ fi Err bitreich.org 70
i+ Err bitreich.org 70
i+ DEST="episodes/${ID}" Err bitreich.org 70
i+ mkdir -p "$DEST" Err bitreich.org 70
i+ cat << EOF > ${DEST}/metadata.sh Err bitreich.org 70
i+TITLE="$TITLE" Err bitreich.org 70
i+PUBDATE="$(date "+%a, %d %b %Y 00:00:00 GMT")" Err bitreich.org 70
i+AUDIOFILE="${ID}.${EXT}" Err bitreich.org 70
i+EOF Err bitreich.org 70
i+ cp "$AUDIOFILE" "${DEST}/${ID}.${EXT}" Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+gen() { Err bitreich.org 70
i+ TMPFILE=$(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+ if [ -n "$IMAGE" ] Err bitreich.org 70
i+ then Err bitreich.org 70
i+ test -f logo.png || exitp "You defined an IMAGE, move it to $PWD/logo.png" 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+<?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+ <title>${TITLE}</title> Err bitreich.org 70
i+ <description>${DESCRIPTION}</description> Err bitreich.org 70
i+ <link>${SITE}</link> Err bitreich.org 70
i+ <image> Err bitreich.org 70
i+ <url>${SITE}/logo.png</url> Err bitreich.org 70
i+ <title>Image of ${SITE}</title> Err bitreich.org 70
i+ <link>${SITE}</link> Err bitreich.org 70
i+ </image> Err bitreich.org 70
i+ <language>${LANG}</language> 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+ . ${episode}/metadata.sh 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+ <item> Err bitreich.org 70
i+ <title>$TITLE</title> Err bitreich.org 70
i+ <description></description> Err bitreich.org 70
i+ <pubDate>${PUBDATE}</pubDate> 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+ done Err bitreich.org 70
i+ Err bitreich.org 70
i+ cat <<EOF >> $TMPFILE 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+ Err bitreich.org 70
i+ Err bitreich.org 70
i+case "$1" in Err bitreich.org 70
i+ '') usage;; Err bitreich.org 70
i+ help) usage;; Err bitreich.org 70
i+ init) init ;; Err bitreich.org 70
i+ gen) gen ;; Err bitreich.org 70
i+ episode) [ -n "$2" ] && episode "$2" "$3" "$4" ;; Err bitreich.org 70
i+esac Err bitreich.org 70
.
Response:
text/plain