Skip to content
Commits on Source (2)
...@@ -3,3 +3,4 @@ ...@@ -3,3 +3,4 @@
!poca.xml !poca.xml
!crontab !crontab
!entrypoint !entrypoint
!kodi_scan
...@@ -20,6 +20,7 @@ RUN apk add --update --no-cache --virtual .lxml-build build-base git libxslt-dev ...@@ -20,6 +20,7 @@ RUN apk add --update --no-cache --virtual .lxml-build build-base git libxslt-dev
RUN mkdir --mode 777 db Podcasts RUN mkdir --mode 777 db Podcasts
COPY --chown=root:root crontab ./ COPY --chown=root:root crontab ./
COPY --chown=root:root poca.xml ./ COPY --chown=root:root poca.xml ./
COPY --chown=root:root kodi_scan /usr/local/bin/
COPY --chown=root:root entrypoint /usr/local/sbin/docker-entrypoint COPY --chown=root:root entrypoint /usr/local/sbin/docker-entrypoint
VOLUME db Podcasts VOLUME db Podcasts
ENTRYPOINT ["docker-entrypoint"] ENTRYPOINT ["docker-entrypoint"]
......
0 */4 * * * poca --config ./ || wget --spider https://notify.shore.co.il/send?message=Poca%20job%20failed. 0 */4 * * * ( poca --config ./ && kodi_scan ) || wget --spider https://notify.shore.co.il/send?message=Poca%20job%20failed.
#!/usr/bin/env python3
"""Trigger a Kodi audio library update."""
import json
import urllib.request
KODI_RPC_URL = "http://172.18.0.1:8080/jsonrpc"
if __name__ == "__main__":
headers = {"content-type": "application/json"}
request_data = {
"jsonrpc": "2.0",
"id": "transmission",
"method": "AudioLibrary.Scan",
}
req = urllib.request.Request(
KODI_RPC_URL,
headers=headers,
data=json.dumps(request_data).encode(),
)
# pylint: disable-next=consider-using-with
urllib.request.urlopen(req) # nosec
<poca version="0.8"> <poca version="0.8">
<!-- Please see detailed configuration documentation online: <!-- Please see detailed configuration documentation online:
https://github.com/brokkr/poca/wiki/Configuration --> https://github.com/brokkr/poca/wiki/Configuration -->
<!-- The meaning of the settings options are briefly as follows:
* base_dir: Directory containing the individual subscription folders
* id3encoding: Encoding to use on metadata (utf8 or latin1)
* id3removev1: Should we remove id3v1, only keeping v2 (yes or no)
* useragent: _Fallback_ user agent if connection is rejected for
default python user agent. Leave empty not to use a fallback.
* email logging setup not included by default, see wiki for details.
-->
<settings> <settings>
<base_dir>./Podcasts</base_dir> <base_dir>./Podcasts</base_dir>
<filenames>restrictive</filenames>
<id3encoding>utf8</id3encoding> <id3encoding>utf8</id3encoding>
<id3removev1>yes</id3removev1> <id3removev1>yes</id3removev1>
<useragent/> <useragent/>
</settings> </settings>
<!-- Defaults take the same options as any single subscription. A
setting here, e.g. max_number, is applied to all subscriptions but
always overruled by sub-specific settings. Non-overruling settings in
metadata and filters are combined, e.g. a sub-specific 'artist' tag and
a global 'genre' tag -->
<defaults> <defaults>
</defaults> <max_number>5</max_number>
</defaults>
<subscriptions> <subscriptions>
<!-- The meaning of the subscription options are brifly as follows:
* category: A category attribute on a subscription tag is helpful in
organizing the output of 'poca-subscribe list'.
* state: A state attribute is either 'active' or 'inactive'. inactive
subs are not updated. subs without state attribute are active.
* title: Name used for the folder of the subscription (required)
* url: The address of the rss feed (required)
* max_number: Max number of files to keep in subscription (optional)
* from_the_top: Get oldest files first, not newest (optional)
* metadata: Override id3 header fields with these values
(see https://github.com/brokkr/poca/wiki/ID3-frames for details)
* filters: Contains one or more of following tags (all optional)
* filename: Filename of the entry must match this string/regex
* title: Same as above, only for the title in the rss
* hour: The hour (24h-format) at which the entry was published.
* weekdays: Only entries from one of these weekdays (as integers)
* after_date: Only use entries published after date specified.
-->
<subscription> <subscription>
<url>https://feeds.twit.tv/floss.xml</url> <url>https://feeds.twit.tv/floss.xml</url>
<title>Floss Weekly</title> <title>Floss Weekly</title>
<max_number>4</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>Bad Voltage</title> <title>Bad Voltage</title>
<url>https://www.badvoltage.org/feed/mp3/</url> <url>https://www.badvoltage.org/feed/mp3/</url>
<max_number>4</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>BSD Now</title> <title>BSD Now</title>
<url>https://www.bsdnow.tv/rss</url> <url>https://www.bsdnow.tv/rss</url>
<max_number>4</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>bsdtalk</title> <title>bsdtalk</title>
<url>http://feeds.feedburner.com/Bsdtalk</url> <url>http://feeds.feedburner.com/Bsdtalk</url>
<max_number>3</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>Hanselminutes</title> <title>Hanselminutes</title>
<url>https://hanselminutes.com/subscribe</url> <url>https://hanselminutes.com/subscribe</url>
<max_number>5</max_number>
<rename divider="-" space="-">
<title/>
<date/>
</rename>
</subscription> </subscription>
<subscription> <subscription>
<title>No Agenda</title> <title>No Agenda</title>
<url>http://feed.nashownotes.com/rss.xml</url> <url>http://feed.nashownotes.com/rss.xml</url>
<max_number>8</max_number> <max_number>10</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>Security Now</title> <title>Security Now</title>
<url>https://feeds.twit.tv/sn.xml</url> <url>https://feeds.twit.tv/sn.xml</url>
<max_number>4</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>The Stack Overflow Podcast</title> <title>The Stack Overflow Podcast</title>
<url>https://feeds.simplecast.com/XA_851k3</url> <url>https://feeds.simplecast.com/XA_851k3</url>
<max_number>4</max_number>
<rename divider="-" space="-">
<title/>
<date/>
</rename>
</subscription> </subscription>
<subscription> <subscription>
<title>This Developer's Life</title> <title>This Developer's Life</title>
<url>http://feeds.feedburner.com/thisdeveloperslife</url> <url>http://feeds.feedburner.com/thisdeveloperslife</url>
<max_number>3</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>Reversim</title> <title>Reversim</title>
<url>https://feed.reversim.com/</url> <url>https://feed.reversim.com/</url>
<max_number>5</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>On The Metal</title> <title>On The Metal</title>
<url>https://feeds.transistor.fm/on-the-metal-0294649e-ec23-4eab-975a-9eb13fd94e06</url> <url>https://feeds.transistor.fm/on-the-metal-0294649e-ec23-4eab-975a-9eb13fd94e06</url>
<max_number>5</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>The Pornhub Podcast with Asa Akira</title> <title>The Pornhub Podcast with Asa Akira</title>
<url>https://feeds.soundcloud.com/users/soundcloud:users:392064213/sounds.rss</url> <url>https://feeds.soundcloud.com/users/soundcloud:users:392064213/sounds.rss</url>
<max_number>5</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>CoRecursive: Coding Stories</title> <title>CoRecursive: Coding Stories</title>
...@@ -120,13 +72,14 @@ ...@@ -120,13 +72,14 @@
<subscription> <subscription>
<title>עושים היסטוריה עם רן לוי Osim Historia With Ran Levi</title> <title>עושים היסטוריה עם רן לוי Osim Historia With Ran Levi</title>
<url>https://www.spreaker.com/show/4227531/episodes/feed</url> <url>https://www.spreaker.com/show/4227531/episodes/feed</url>
<max_number>8</max_number>
</subscription> </subscription>
<subscription> <subscription>
<title>על הדרך</title> <title>על הדרך</title>
<url>https://feeds.buzzsprout.com/1738407.rss</url> <url>https://feeds.buzzsprout.com/1738407.rss</url>
</subscription> </subscription>
<subscription> <subscription>
<title>The Lunduke Journal of Technology (private feed for nimrod+mailinglists@shore.co.il)</title> <title>The Lunduke Journal of Technology</title>
<url>https://api.substack.com/feed/podcast/462466/private/e8b25eee-6a46-497d-83b4-22142a663296.rss</url> <url>https://api.substack.com/feed/podcast/462466/private/e8b25eee-6a46-497d-83b4-22142a663296.rss</url>
</subscription> </subscription>
</subscriptions> </subscriptions>
......