ipotcasse - 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 ipotcasse (3743B) Err bitreich.org 70 i--- Err bitreich.org 70 i 1 #!/bin/sh Err bitreich.org 70 i 2 Err bitreich.org 70 i 3 exitp() { Err bitreich.org 70 i 4 echo "$1" Err bitreich.org 70 i 5 exit 1 Err bitreich.org 70 i 6 } Err bitreich.org 70 i 7 Err bitreich.org 70 i 8 usage() { Err bitreich.org 70 i 9 name=$(basename $0) Err bitreich.org 70 i 10 printf '%s\n' \ Err bitreich.org 70 i 11 "$name init | gen | episode TITLE FILE [ID]" \ Err bitreich.org 70 i 12 "$name init" \ Err bitreich.org 70 i 13 ': initialize the potcasse structure' \ Err bitreich.org 70 i 14 "$name gen" \ Err bitreich.org 70 i 15 ': generate the RSS file' \ Err bitreich.org 70 i 16 "$name episode TITLE FILE [ID]" \ Err bitreich.org 70 i 17 ': create the structure for a new episode and eventually copy file [FILE] in [ID]' Err bitreich.org 70 i 18 exit 0 Err bitreich.org 70 i 19 } Err bitreich.org 70 i 20 Err bitreich.org 70 i 21 init() { Err bitreich.org 70 i 22 test -f metadata.sh && exitp "You seem in a directory managed by potcasse" Err bitreich.org 70 i 23 mkdir -p episodes Err bitreich.org 70 i 24 cat << EOF > metadata.sh Err bitreich.org 70 i 25 # title of your podcst Err bitreich.org 70 i 26 TITLE= Err bitreich.org 70 i 27 Err bitreich.org 70 i 28 # base URL of your website Err bitreich.org 70 i 29 # must end with a / Err bitreich.org 70 i 30 SITE= Err bitreich.org 70 i 31 Err bitreich.org 70 i 32 # filename of the RSS file Err bitreich.org 70 i 33 RSSLINK=feed.xml Err bitreich.org 70 i 34 Err bitreich.org 70 i 35 # language for the podcast/index.html file Err bitreich.org 70 i 36 LANGUAGE=en-us Err bitreich.org 70 i 37 Err bitreich.org 70 i 38 #uncomment to use logo.png as a logo Err bitreich.org 70 i 39 #IMAGE=YES Err bitreich.org 70 i 40 EOF Err bitreich.org 70 i 41 exit 0 Err bitreich.org 70 i 42 } Err bitreich.org 70 i 43 Err bitreich.org 70 i 44 episode() { Err bitreich.org 70 i 45 test -f metadata.sh || exitp "The directory isn't managed by potcasse" Err bitreich.org 70 i 46 TITLE="$1" Err bitreich.org 70 i 47 Err bitreich.org 70 i 48 test -f "$2" || exitp "File $2 doesn't exist" Err bitreich.org 70 i 49 AUDIOFILE="$2" Err bitreich.org 70 i 50 EXT=${AUDIOFILE##*.} Err bitreich.org 70 i 51 Err bitreich.org 70 i 52 if [ -n "$3" ] Err bitreich.org 70 i 53 then Err bitreich.org 70 i 54 ID="$3" Err bitreich.org 70 i 55 else Err bitreich.org 70 i 56 ID="$(date +%Y%m%d%H)" Err bitreich.org 70 i 57 fi Err bitreich.org 70 i 58 Err bitreich.org 70 i 59 DEST="episodes/${ID}" Err bitreich.org 70 i 60 mkdir -p "$DEST" Err bitreich.org 70 i 61 cat << EOF > ${DEST}/metadata.sh Err bitreich.org 70 i 62 TITLE="$TITLE" Err bitreich.org 70 i 63 PUBDATE="$(date "+%a, %d %b %Y 00:00:00 GMT")" Err bitreich.org 70 i 64 AUDIOFILE="${ID}.${EXT}" Err bitreich.org 70 i 65 EOF Err bitreich.org 70 i 66 cp "$AUDIOFILE" "${DEST}/${ID}.${EXT}" Err bitreich.org 70 i 67 } Err bitreich.org 70 i 68 Err bitreich.org 70 i 69 gen() { Err bitreich.org 70 i 70 test -d episodes || exitp "You need to import episodes before generation" Err bitreich.org 70 i 71 TMPRSS=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX) Err bitreich.org 70 i 72 TMPHTML=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX) Err bitreich.org 70 i 73 . ./metadata.sh Err bitreich.org 70 i 74 mkdir -p output_html/episodes Err bitreich.org 70 i 75 Err bitreich.org 70 i 76 if [ -n "$IMAGE" ] Err bitreich.org 70 i 77 then Err bitreich.org 70 i 78 test -f logo.png || exitp "You defined an IMAGE, move it to $PWD/logo.png" Err bitreich.org 70 i 79 cp logo.png output_html/logo.png Err bitreich.org 70 i 80 fi Err bitreich.org 70 i 81 Err bitreich.org 70 i 82 cat <> $TMPRSS Err bitreich.org 70 i 83 Err bitreich.org 70 i 84 Err bitreich.org 70 i 85 Err bitreich.org 70 i 86 ${TITLE} Err bitreich.org 70 i 87 ${DESCRIPTION} Err bitreich.org 70 i 88 Err bitreich.org 70 i 89 ${SITE} Err bitreich.org 70 i 90 Err bitreich.org 70 i 91 ${SITE}/logo.png Err bitreich.org 70 i 92 ${TITLE} Err bitreich.org 70 i 93 ${SITE} Err bitreich.org 70 i 94 Err bitreich.org 70 i 95 ${LANGUAGE} Err bitreich.org 70 i 96 EOF Err bitreich.org 70 i 97 Err bitreich.org 70 i 98 cat <> $TMPHTML Err bitreich.org 70 i 99 Err bitreich.org 70 i 100 Err bitreich.org 70 i 101 Err bitreich.org 70 i 102 ${TITLE} Err bitreich.org 70 i 103 Err bitreich.org 70 i 104 Err bitreich.org 70 i 105 Err bitreich.org 70 i 106

Podcast episodes- ${TITLE}

Err bitreich.org 70 i 107
Err bitreich.org 70 i 108 logo Err bitreich.org 70 i 109
Err bitreich.org 70 i 110
    Err bitreich.org 70 i 111
  • RSS feed (for podcast players).
  • Err bitreich.org 70 i 112
Err bitreich.org 70 i 113
    Err bitreich.org 70 i 114 EOF Err bitreich.org 70 i 115 Err bitreich.org 70 i 116 for episode in episodes/* Err bitreich.org 70 i 117 do Err bitreich.org 70 i 118 echo "Scanning $episode" Err bitreich.org 70 i 119 . ${episode}/metadata.sh Err bitreich.org 70 i 120 SIZE=$(stat -f "%z" "${episode}/${AUDIOFILE}") Err bitreich.org 70 i 121 EXT=${AUDIOFILE##*.} Err bitreich.org 70 i 122 rsync -a "${episode}/${AUDIOFILE}" output_html/episodes/ Err bitreich.org 70 i 123 cat <> $TMPRSS Err bitreich.org 70 i 124 Err bitreich.org 70 i 125 $TITLE Err bitreich.org 70 i 126 Err bitreich.org 70 i 127 ${PUBDATE} Err bitreich.org 70 i 128 ${SITE}/episodes/${AUDIOFILE} Err bitreich.org 70 i 129 Err bitreich.org 70 i 130 Err bitreich.org 70 i 131 EOF Err bitreich.org 70 i 132 cat <> $TMPHTML Err bitreich.org 70 i 133
  • ${PUBDATE} - ${TITLE}
  • Err bitreich.org 70 i 134 EOF Err bitreich.org 70 i 135 done Err bitreich.org 70 i 136 Err bitreich.org 70 i 137 cat <> $TMPRSS Err bitreich.org 70 i 138 Err bitreich.org 70 i 139 Err bitreich.org 70 i 140 EOF Err bitreich.org 70 i 141 Err bitreich.org 70 i 142 cat <> $TMPHTML Err bitreich.org 70 i 143
Err bitreich.org 70 i 144 Err bitreich.org 70 i 145 Err bitreich.org 70 i 146 EOF Err bitreich.org 70 i 147 Err bitreich.org 70 i 148 install -m 644 "$TMPRSS" output_html/${RSSLINK} Err bitreich.org 70 i 149 install -m 644 "$TMPHTML" output_html/index.html Err bitreich.org 70 i 150 rm "$TMPRSS" "$TMPHTML" Err bitreich.org 70 i 151 } Err bitreich.org 70 i 152 Err bitreich.org 70 i 153 Err bitreich.org 70 i 154 case "$1" in Err bitreich.org 70 i 155 '') usage;; Err bitreich.org 70 i 156 help) usage;; Err bitreich.org 70 i 157 init) init ;; Err bitreich.org 70 i 158 gen) gen ;; Err bitreich.org 70 i 159 episode) [ -n "$2" ] && episode "$2" "$3" "$4" ;; Err bitreich.org 70 i 160 esac Err bitreich.org 70 .