diff --git a/LICENSE b/LICENSE
index e811e67..87c0faf 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2021 Rapenne Solène
+Copyright (c) 2021 Rapenne Solène and Vincent Finance
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/README.md b/README.md
index 643e721..081153a 100644
--- a/README.md
+++ b/README.md
@@ -6,13 +6,13 @@ potcasse, pronounced "pot kas" is meant to help people to publish and self host
* rsync (could use cp but avoid recopying audio files locally).
* a posix compatible OS (Linux, *BSD, Solaris).
-* some webserver to host the files.
+* some webserver and/or some gemini server to host the files.
# How to use
-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.
+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 and/or on a Gemini server.
-A simple `index.html` file is also generated in the process to give an easy list without using the RSS file.
+A simple `index.html` file and a simple `index.gmi` file are also generated in the process to give an easy list without using the RSS file.
## First time
@@ -27,11 +27,13 @@ It has the following variables:
+ `TITLE`: this is the podcast title.
+ `AUTHOR`: this is the podcast author (doesn't support multiples authors yet).
+ `SITE`: base HTTP URL where your podcast will be available (for example `https://tilde.example/myname/podcast/`.
++ `CAPSULE`: base Gemini URL where your podcast will be available (for example `gemini://tilde.example/myname/podcast/`.
++ `DESCRIPTION`: description of the podcast.
+ `RSSLINK`: name of the RSS feed.
-+ `IMAGE`: if value is not empty, potcasse will use the file `logo.png`.
++ `IMAGE`: if value is not empty, potcasse will use the file `logo.png` (only used on the web version)
+ `LANGUAGE`: language code (such as `fr` or `en-us`) that can be potentially used by some players.
-You will share the link `$SITE/index.html` or `$SITE/$RSSLINK` to your listeners.
+You will share the link `$SITE/index.html`, `$SITE/index.gmi` or `$SITE/$RSSLINK` to your listeners.
## New episode
@@ -53,9 +55,9 @@ potcasse episode "Episode XX: trying something weird" /path/to/audio/file this_i
potcasse gen
```
-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.
+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. It will also create or update the `output_gmi` directory according to the same scheme, in order to create a Gemini compatible version of the listing (it will not use the logo file though).
-# Real world example
+# Real world example (from *solene*)
My podcast feed is available at `https://perso.pw/lambda/feed.xml` which is on server `perso.pw` in `/var/www/htdocs/lambda/`.
diff --git a/potcasse b/potcasse
index 44fa8d4..f56b8fc 100755
--- a/potcasse
+++ b/potcasse
@@ -1,4 +1,5 @@
#!/bin/sh
+## potcasse - Based on solene's potcasse (https://tildegit.org/solene/potcasse)
exitp() {
echo "$1"
@@ -26,9 +27,14 @@ init() {
TITLE=
# base URL of your website
-# must end with a /
SITE=
+# base URL of your gemini capsule
+CAPSULE=
+
+# description of the podcast
+DESCRIPTION=
+
# filename of the RSS file
RSSLINK=feed.xml
@@ -69,9 +75,12 @@ EOF
gen() {
test -d episodes || exitp "You need to import episodes before generation"
TMPRSS=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX)
+ TMPGEMRSS=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX)
TMPHTML=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX)
+ TMPGMI=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX)
. ./metadata.sh
mkdir -p output_html/episodes
+ mkdir -p output_gmi/episodes
if [ -n "$IMAGE" ]
then
@@ -85,7 +94,7 @@ gen() {
${TITLE}${DESCRIPTION}
-
+
${SITE}
${SITE}/logo.png
@@ -95,6 +104,17 @@ gen() {
${LANGUAGE}
EOF
+ cat <> $TMPGEMRSS
+
+
+
+ ${TITLE}
+ ${DESCRIPTION}
+
+ ${CAPSULE}
+ ${LANGUAGE}
+EOF
+
cat <> $TMPHTML
@@ -103,14 +123,24 @@ EOF
-