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 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 <> $TMPFILE Err bitreich.org 70 i+ Err bitreich.org 70 i+ Err bitreich.org 70 i+ Err bitreich.org 70 i+ ${TITLE} Err bitreich.org 70 i+ ${DESCRIPTION} Err bitreich.org 70 i+ ${SITE} Err bitreich.org 70 i+ Err bitreich.org 70 i+ ${SITE}/logo.png Err bitreich.org 70 i+ Image of ${SITE} Err bitreich.org 70 i+ ${SITE} Err bitreich.org 70 i+ Err bitreich.org 70 i+ ${LANG} 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 <> $TMPFILE Err bitreich.org 70 i+ Err bitreich.org 70 i+ $TITLE Err bitreich.org 70 i+ Err bitreich.org 70 i+ ${PUBDATE} Err bitreich.org 70 i+ Err bitreich.org 70 i+ Err bitreich.org 70 i+EOF Err bitreich.org 70 i+ done Err bitreich.org 70 i+ Err bitreich.org 70 i+ cat <> $TMPFILE Err bitreich.org 70 i+ Err bitreich.org 70 i+ 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 .