RSS Feed now working
parent
59e9a079e8
commit
cc587f60b3
BIN
database/show.db
BIN
database/show.db
Binary file not shown.
|
@ -3,7 +3,8 @@
|
||||||
import feedparser
|
import feedparser
|
||||||
|
|
||||||
#d = feedparser.parse('http://www.reddit.com/r/python/.rss')
|
#d = feedparser.parse('http://www.reddit.com/r/python/.rss')
|
||||||
d = feedparser.parse('file:///home/rob/antena/html/podcast_rss.xml')
|
#d = feedparser.parse('file:///home/rob/uho/html/podcast_rss.xml')
|
||||||
|
d = feedparser.parse('https://uho.rizom.si/podcast_rss.xml')
|
||||||
|
|
||||||
for post in d.entries:
|
for post in d.entries:
|
||||||
# print(post.title + ": " + post.link + "")
|
# print(post.title + ": " + post.link + "")
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<title>{{show_name}}</title>
|
<title>{{show_name}}</title>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link rel="icon" type="image/x-icon" href="images/favicon.ico">
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:200,300,400,700,900">
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:200,300,400,700,900">
|
||||||
<link rel="stylesheet" href="../../fonts/icomoon/style.css">
|
<link rel="stylesheet" href="../../fonts/icomoon/style.css">
|
||||||
|
|
||||||
|
@ -269,9 +269,9 @@
|
||||||
<div class="block-16">
|
<div class="block-16">
|
||||||
<figure>
|
<figure>
|
||||||
<a href="{{show_url}}/{{show_rss}}">
|
<a href="{{show_url}}/{{show_rss}}">
|
||||||
<img src="episode/1/img/cover0.png" alt="podcast" class="img-fluid rounded">
|
<img src="episode/1/img/cover0.jpeg" alt="podcast" class="img-fluid rounded">
|
||||||
</a>
|
</a>
|
||||||
</figure>
|
"P", palette=Image.ADAPTIVE, colors=256</figure>
|
||||||
<a href="{{show_url}}/{{show_rss}}">{{show_url}}/{{show_rss}}</a>
|
<a href="{{show_url}}/{{show_rss}}">{{show_url}}/{{show_rss}}</a>
|
||||||
</div>
|
</div>
|
||||||
You can also subscribe to our RSS feed via Soundcloud <a href="https://soundcloud.com/uho-podcast" class="pl-3 pr-3"><span class="icon-soundcloud"></span></a> or Youtube <a href="https://www.youtube.com/@uho.podcast" class="pl-3 pr-3"><span class="icon-youtube"></span></a>
|
You can also subscribe to our RSS feed via Soundcloud <a href="https://soundcloud.com/uho-podcast" class="pl-3 pr-3"><span class="icon-soundcloud"></span></a> or Youtube <a href="https://www.youtube.com/@uho.podcast" class="pl-3 pr-3"><span class="icon-youtube"></span></a>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>{{show_name}}</title>
|
<title>{{show_name}}</title>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link rel="icon" type="image/x-icon" href="images/favicon.ico">
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:200,300,400,700,900">
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:200,300,400,700,900">
|
||||||
<link rel="stylesheet" href="fonts/icomoon/style.css">
|
<link rel="stylesheet" href="fonts/icomoon/style.css">
|
||||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||||
|
@ -92,14 +92,13 @@
|
||||||
<div class="row align-items-center justify-content-center text-center">
|
<div class="row align-items-center justify-content-center text-center">
|
||||||
|
|
||||||
<div class="col-md-12" data-aos="fade-up" data-aos-delay="400">
|
<div class="col-md-12" data-aos="fade-up" data-aos-delay="400">
|
||||||
<h2 class="text-white font-weight-light mb-2 display-4">{{show_name}}</h2>
|
<h2 class="tex font-weight-light mb-2 display-4">The Podcast {{show_name}}!</h2>
|
||||||
<p class="text-white font-weight-light">{{about_show}}</p>
|
<p class="tex font-weight-light mb-2 display-4">The best alternative music from Slovenia, every week.</p>
|
||||||
<h4 class="text-white font-weight-light mb-2 display-4" style="color: white; background-color: black;" >Latest Episode: # {{episode_number}}</h4>
|
|
||||||
<p class="text-white font-weight-light" style="color: white; background-color: black;" >This week music from: {{episode_artists}}</p>
|
|
||||||
|
|
||||||
<p><a href="episode/{{episode_number}}/index.html" class="btn btn-primary btn-sm py-3 px-4 small">Episode Details and Player</a></p>
|
<!-- <p class="text-white font-weight-light" style="color: white; background-color: black;" >Latest Episode: #{{episode_number}} with music from: {{episode_artists}}</p> -->
|
||||||
|
|
||||||
|
<p><a href="episode/{{episode_number}}/index.html" class="btn btn-primary btn-sm py-3 px-4 small">Episode #{{episode_number}} Details and Player</a></p>
|
||||||
<div class="text-white mb-4"><span class="text-white">Presented by: {{episode_author}} / Zavod Rizoma | {{episode_date}}</span>
|
<div class="text-white mb-4"><span class="text-white">Presented by: {{episode_author}} / Zavod Rizoma | {{episode_date}}</span>
|
||||||
|
|
||||||
<div class="player">
|
<div class="player">
|
||||||
<audio id="player2" preload="none" controls style="max-width: 100%">
|
<audio id="player2" preload="none" controls style="max-width: 100%">
|
||||||
<source src="episode/{{episode_number}}/show.mp3" type="audio/mp3">
|
<source src="episode/{{episode_number}}/show.mp3" type="audio/mp3">
|
||||||
|
@ -108,8 +107,6 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="text-white font-weight-light">{{show_url}}</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -142,14 +139,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container" data-aos="fade-up">
|
<div class="container" data-aos="fade-up">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 text-center">
|
<div class="col-md-12 text-center">
|
||||||
|
@ -270,7 +259,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
<h3 class="footer-heading mb-4">About The {{show_name}} Podcast</h3>
|
<h3 class="footer-heading mb-4">About The Podcast {{show_name}}</h3>
|
||||||
<p>{{about_show}}</p>
|
<p>{{about_show}}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -338,15 +327,14 @@
|
||||||
|
|
||||||
<h3 class="footer-heading mb-4">Follow Us on Social Media</h3>
|
<h3 class="footer-heading mb-4">Follow Us on Social Media</h3>
|
||||||
|
|
||||||
We are on most of the social media platforms, please follow us and tell your friends about the podcast!
|
We are on most of the social media platforms, please follow us and tell your friends about the podcast!
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<a href="https://www.facebook.com/profile.php?id=61555936138715" class="pl-0 pr-3"><span class="icon-facebook"></span></a>
|
<a href="https://www.facebook.com/profile.php?id=61555936138715" class="pl-0 pr-3"><span class="icon-facebook"></span></a>
|
||||||
<a href="https://twitter.com/uho_podcast" class="pl-3 pr-3"><span class="icon-twitter"></span></a>
|
<a href="https://twitter.com/uho_podcast" class="pl-3 pr-3"><span class="icon-twitter"></span></a>
|
||||||
<a href="https://www.instagram.com/uho.podcast" class="pl-3 pr-3"><span class="icon-instagram"></span></a>
|
<a href="https://www.instagram.com/uho.podcast" class="pl-3 pr-3"><span class="icon-instagram"></span></a>
|
||||||
<a href="https://www.youtube.com/@uho.podcast" class="pl-3 pr-3"><span class="icon-youtube"></span></a>
|
<a href="https://www.youtube.com/@uho.podcast" class="pl-3 pr-3"><span class="icon-youtube"></span></a>
|
||||||
<a href="https://soundcloud.com/uho-podcast" class="pl-3 pr-3"><span class="icon-soundcloud"></span></a>
|
<a href="https://soundcloud.com/uho-podcast" class="pl-3 pr-3"><span class="icon-soundcloud"></span></a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<p></p>
|
<p></p>
|
||||||
<p></p>
|
<p></p>
|
||||||
|
@ -372,7 +360,7 @@
|
||||||
<div class="block-16">
|
<div class="block-16">
|
||||||
<figure>
|
<figure>
|
||||||
<a href="{{show_url}}/{{show_rss}}">
|
<a href="{{show_url}}/{{show_rss}}">
|
||||||
<img src="episode/1/img/cover0.png" alt="podcast" class="img-fluid rounded">
|
<img src="images/podcast-main.jpeg" alt="podcast" class="img-fluid rounded">
|
||||||
</a>
|
</a>
|
||||||
</figure>
|
</figure>
|
||||||
<a href="{{show_url}}/{{show_rss}}">{{show_url}}/{{show_rss}}</a>
|
<a href="{{show_url}}/{{show_rss}}">{{show_url}}/{{show_rss}}</a>
|
||||||
|
|
|
@ -1,49 +1,44 @@
|
||||||
|
|
||||||
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
<channel>
|
<channel>
|
||||||
<title>Hiking Treks</title> <link>https://www.apple.com/itunes/podcasts/</link>
|
<title>The Podcast UHO!</title> <link>https://uho.rizom.si/podcast_rss.xml</link>
|
||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<copyright>© 2019 John Appleseed</copyright>
|
<copyright>© 2024 Zavod Rizoma</copyright>
|
||||||
<itunes:author>The Sunset Explorers</itunes:author>
|
<itunes:author>Zavod Rizoma</itunes:author>
|
||||||
<description> {{short_description}} </description>
|
<description>{{about_show}}</description>
|
||||||
<itunes:type>serial</itunes:type>
|
<itunes:summary>{{about_show}}</itunes:summary>
|
||||||
<itunes:owner> <itunes:name>{{show_name}}</itunes:name>
|
<itunes:type>music</itunes:type>
|
||||||
<itunes:email>{{show_email}}</itunes:email>
|
<itunes:owner>
|
||||||
|
<itunes:name>{{show_name}}</itunes:name>
|
||||||
|
<itunes:email>{{show_email}}</itunes:email>
|
||||||
</itunes:owner>
|
</itunes:owner>
|
||||||
<itunes:image
|
<itunes:image href="https://uho.rizom.si/images/podcast-main.jpeg"/>
|
||||||
href="{{show_image}}"
|
<itunes:category text="Music"/>
|
||||||
/>
|
|
||||||
<itunes:category text="Music">
|
|
||||||
<itunes:category text="Independent Music"/> </itunes:category>
|
|
||||||
<itunes:explicit>false</itunes:explicit>
|
<itunes:explicit>false</itunes:explicit>
|
||||||
|
|
||||||
{% for rss_item in range(episode_number) %}
|
{% for rss_item in episodes %}
|
||||||
<item>
|
<item>
|
||||||
<itunes:episodeType>podcast</itunes:episodeType>
|
<title>#{{rss_item.episode_number}} : {{rss_item.episode_artists}} {{rss_item.episode_date[0][0]}} </title> <link>https://uho.rizom.si/episode/{{rss_item.episode_number}}</link>
|
||||||
<itunes:title>{{show_name}} Episode # {{episode_number}}</itunes:title>
|
<itunes:episodeType>full</itunes:episodeType>
|
||||||
<description>
|
<itunes:title>The Podcast UHO! Episode # {{rss_item.episode_number}}</itunes:title>
|
||||||
<content:encoded>
|
<itunes:summary>{{rss_item.episode_artists}} For full playlist details see: https://uho.rizom.si/episode/{{rss_item.eepisode_number}}
|
||||||
<![CDATA[{{show_short_description}} Listen on
|
</itunes:summary>
|
||||||
<a
|
<itunes:image href="{{rss_item.episode_image}}"/>
|
||||||
href="{{show_url}}">Rizoma Podcasts Homepage</a>.]]>
|
<description>{{rss_item.episode_artists}} For full playlist details see: https://uho.rizom.si/episode/{{rss_item.episode_number}}
|
||||||
</content:encoded>
|
|
||||||
</description>
|
</description>
|
||||||
<enclosure
|
<enclosure
|
||||||
length="{{episode_duration}}"
|
length="{{rss_item.episode_duration[0]}}"
|
||||||
type="audio/mpeg"
|
type="audio/mpeg"
|
||||||
url="{{episde_mp3_url}}"
|
url="{{rss_item.episode_mp3_url}}"
|
||||||
/>
|
/>
|
||||||
<guid>aae20190418</guid>
|
|
||||||
<pubDate>{{episode_pub_date}}</pubDate>
|
<guid>{{rss_item.episode_number}}</guid>
|
||||||
<!-- <pubDate>Tue, 8 Jan 2019 01:15:00 GMT</pubDate> -->
|
|
||||||
<itunes:duration>{{episode_duration}}</itunes:duration>
|
<pubDate>{{rss_item.episode_date[0][0]}}</pubDate>
|
||||||
|
<itunes:duration>{{rss_item.episode_duration[0]}}</itunes:duration>
|
||||||
<itunes:explicit>false</itunes:explicit>
|
<itunes:explicit>false</itunes:explicit>
|
||||||
</item>
|
</item>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</channel>
|
</channel>
|
||||||
</rss
|
</rss>
|
||||||
|
|
|
@ -13,7 +13,7 @@ import uuid
|
||||||
from pypika import Query, Table, Field, Column
|
from pypika import Query, Table, Field, Column
|
||||||
|
|
||||||
music_library_path = "/home/rob/uho/music/"
|
music_library_path = "/home/rob/uho/music/"
|
||||||
conn = sqlite3.connect("database/show.db")
|
conn = sqlite3.connect("database/uho_music.db")
|
||||||
|
|
||||||
#TODO fix getting bandcamp urls into db
|
#TODO fix getting bandcamp urls into db
|
||||||
labelnames = [("sploh", "https://sploh.bandcamp.com"), ("terraformer"), ("pharamafabric") ]
|
labelnames = [("sploh", "https://sploh.bandcamp.com"), ("terraformer"), ("pharamafabric") ]
|
||||||
|
|
120
mk_show.py
120
mk_show.py
|
@ -31,14 +31,13 @@ args = parser.parse_args()
|
||||||
|
|
||||||
path = pathlib.Path.cwd()
|
path = pathlib.Path.cwd()
|
||||||
|
|
||||||
show_name = "UhO"
|
show_name = "UHO"
|
||||||
show_url = "https://uho.rizom.si"
|
show_url = "https://uho.rizom.si"
|
||||||
show_rss = "podcast_rss.xml"
|
show_rss = "podcast_rss.xml"
|
||||||
show_email = "uho.podcast@gmail.com"
|
show_email = "uho.podcast@gmail.com"
|
||||||
episode_author="Rob Canning"
|
episode_author="Rob Canning"
|
||||||
|
|
||||||
show_short_description = '''The UhO! podcast presents an eclectic selection of independent music from Slovenia. The show aims to deliver as broad a range of genres as possible; banging techno, sludge, math rock, contemporary classical, doom, free improvisation, noise music, glitch, jazz skronk, field recordings, ambient, drone....etc etc... whatever the genre, you can be sure you are listening to the latest and most inovative music on offer in this part of the world. Hosted and compiled by Rob Canning, the show is published weekly by Zavod Rizoma and is broadcast in Slovenia on FM by mariborski radio študent: MARŠ. It as also available as a podcast. Use our RSS feed or search for UhO Podcast where ever you subscribe to podcasts'''
|
show_short_description = '''The UhO! podcast presents an eclectic selection of independent music from Slovenia. The show aims to deliver as broad a range of genres as possible; banging techno, sludge, math rock, contemporary classical, doom, free improvisation, noise music, glitch, jazz skronk, field recordings, ambient, drone....etc etc... whatever the genre, you can be sure you are listening to the latest and most innovative music on offer in this part of the world. Hosted and compiled by Rob Canning, the show is published weekly by Zavod Rizoma and is broadcast in Slovenia on FM by mariborski radio študent: MARŠ. It as also available as a podcast. Use our RSS feed or search for UhO Podcast where ever you subscribe to podcasts'''
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
episode_number = args.episode
|
episode_number = args.episode
|
||||||
|
@ -50,6 +49,8 @@ archive = []
|
||||||
#artists_played = []
|
#artists_played = []
|
||||||
artist_abreviated = []
|
artist_abreviated = []
|
||||||
|
|
||||||
|
episode_artists = []
|
||||||
|
|
||||||
# sqlite database connection
|
# sqlite database connection
|
||||||
conn = sqlite3.connect("database/show.db")
|
conn = sqlite3.connect("database/show.db")
|
||||||
|
|
||||||
|
@ -435,7 +436,7 @@ def combine_images(columns, space, images, variants:int):
|
||||||
background_width = width_max*columns + (space*columns)-space
|
background_width = width_max*columns + (space*columns)-space
|
||||||
background_height = height_max*rows + (space*rows)-space
|
background_height = height_max*rows + (space*rows)-space
|
||||||
#background = Image.new('RGBA', (background_width, background_height), (0, 0, 0, 255))
|
#background = Image.new('RGBA', (background_width, background_height), (0, 0, 0, 255))
|
||||||
background = Image.new('RGBA', (width_max*columns , height_max*columns), (0, 0, 0, 255))
|
background = Image.new('RGB', (width_max*columns , height_max*columns), (0, 0, 0, 255))
|
||||||
|
|
||||||
x = 0
|
x = 0
|
||||||
y = 0
|
y = 0
|
||||||
|
@ -496,8 +497,9 @@ def combine_images(columns, space, images, variants:int):
|
||||||
im.text((1540,1888), '''{0} '''\
|
im.text((1540,1888), '''{0} '''\
|
||||||
.format(show_url, show_name, episode_date,episode_number), fill="white", font=mf_h4)
|
.format(show_url, show_name, episode_date,episode_number), fill="white", font=mf_h4)
|
||||||
|
|
||||||
show_cover = 'img/cover{2}.png'.format(episode_number,episode_date, variants)
|
show_cover = 'img/cover{2}.jpg'.format(episode_number,episode_date, variants)
|
||||||
background.save("html/" + "episode/{0}/{1}".format(episode_number, show_cover))
|
background.convert("P", palette=Image.ADAPTIVE, colors=256)
|
||||||
|
background.save("html/" + "episode/{0}/{1}".format(episode_number, show_cover), optimize=True)
|
||||||
#convert -delay 100 -loop 0 html/episode/2/img/show_cover_2024-01-12* animatedGIF.gif
|
#convert -delay 100 -loop 0 html/episode/2/img/show_cover_2024-01-12* animatedGIF.gif
|
||||||
return show_cover
|
return show_cover
|
||||||
|
|
||||||
|
@ -541,7 +543,7 @@ def create_show_coverart(variants):
|
||||||
def create_animated_gif():
|
def create_animated_gif():
|
||||||
|
|
||||||
# filepaths
|
# filepaths
|
||||||
fp_in = "/home/rob/uho/html/episode/2/img/*.png".format(episode_number)
|
fp_in = "/home/rob/uho/html/episode/2/img/*.jpg".format(episode_number)
|
||||||
fp_out = "/home/rob/uho/html/episode/2/img/show_cover.gif"
|
fp_out = "/home/rob/uho/html/episode/2/img/show_cover.gif"
|
||||||
|
|
||||||
# use exit stack to automatically close opened images
|
# use exit stack to automatically close opened images
|
||||||
|
@ -563,7 +565,7 @@ def create_animated_gif():
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
|
||||||
def create_podcast():
|
def create_podcast():
|
||||||
|
#TODO normalise-audio the wav fills before conversion to flac then replay-gain
|
||||||
print('''------------------------
|
print('''------------------------
|
||||||
creating show audio
|
creating show audio
|
||||||
------------------------''')
|
------------------------''')
|
||||||
|
@ -611,7 +613,7 @@ def create_podcast():
|
||||||
|
|
||||||
# Insert a midshow CTA between track 6 outro and track 7 intro --------
|
# Insert a midshow CTA between track 6 outro and track 7 intro --------
|
||||||
|
|
||||||
final_playlist.insert(24, get_midshow_CTA()) # <-----------------------
|
# final_playlist.insert(24, get_midshow_CTA()) # <-----------------------
|
||||||
|
|
||||||
# ------------ MAIN SHOW STRUCTURE ENDS HERE --------------------------
|
# ------------ MAIN SHOW STRUCTURE ENDS HERE --------------------------
|
||||||
|
|
||||||
|
@ -646,7 +648,6 @@ def create_podcast():
|
||||||
print(track)
|
print(track)
|
||||||
playlist = playlist.append(track)
|
playlist = playlist.append(track)
|
||||||
|
|
||||||
|
|
||||||
# TODO CLI flag to generate FLAC
|
# TODO CLI flag to generate FLAC
|
||||||
# save the entire poidcast as FLAC
|
# save the entire poidcast as FLAC
|
||||||
# with open("html/episode/{0}/show.flac".format(episode_number), 'wb') as out_f:
|
# with open("html/episode/{0}/show.flac".format(episode_number), 'wb') as out_f:
|
||||||
|
@ -661,7 +662,7 @@ def create_podcast():
|
||||||
playlist.export(out_f, format='mp3',\
|
playlist.export(out_f, format='mp3',\
|
||||||
tags={'title': str('Uho! Episode #{0} '.format(episode_number)),\
|
tags={'title': str('Uho! Episode #{0} '.format(episode_number)),\
|
||||||
'artist': 'https://uho.rizom.si',\
|
'artist': 'https://uho.rizom.si',\
|
||||||
'album': 'THE UHO PODCAST',\
|
'album': 'The Podcast UHO!',\
|
||||||
'comments': 'https://uho.rizom.si'})
|
'comments': 'https://uho.rizom.si'})
|
||||||
|
|
||||||
print("MP3 audio file exported...")
|
print("MP3 audio file exported...")
|
||||||
|
@ -683,7 +684,7 @@ def create_html_homepage_from_template():
|
||||||
conn = sqlite3.connect("database/show.db")
|
conn = sqlite3.connect("database/show.db")
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
episode_artists = []
|
#global episode_artists
|
||||||
|
|
||||||
#TODO fix this - now it reports zero
|
#TODO fix this - now it reports zero
|
||||||
# get number of episodes from DB
|
# get number of episodes from DB
|
||||||
|
@ -700,7 +701,7 @@ def create_html_homepage_from_template():
|
||||||
for artist in rows:
|
for artist in rows:
|
||||||
art = string=re.sub("\(.*?\)","", artist[0])
|
art = string=re.sub("\(.*?\)","", artist[0])
|
||||||
# shorten verbose artist names such as trojnik Trojnik (Cene Resnik, Tomaž Grom, Vid Drašler)
|
# shorten verbose artist names such as trojnik Trojnik (Cene Resnik, Tomaž Grom, Vid Drašler)
|
||||||
artist = string=re.sub("and","&",art)
|
artist = string=re.sub("and","+",art)
|
||||||
artists.append(artist)
|
artists.append(artist)
|
||||||
episode_artists.append(artists)
|
episode_artists.append(artists)
|
||||||
|
|
||||||
|
@ -743,7 +744,7 @@ def create_html_homepage_from_template():
|
||||||
episode_artists=str(episode_artists[episode_number])\
|
episode_artists=str(episode_artists[episode_number])\
|
||||||
.strip("[").strip("]").strip('\'').strip('\''), \
|
.strip("[").strip("]").strip('\'').strip('\''), \
|
||||||
about_show=show_short_description, \
|
about_show=show_short_description, \
|
||||||
episode_image="img/cover0.png".format(episode_number))
|
episode_image="img/cover0.jpg".format(episode_number))
|
||||||
|
|
||||||
with open("html/index.html".format(episode_number), "w") as episode_page:
|
with open("html/index.html".format(episode_number), "w") as episode_page:
|
||||||
episode_page.write(output_from_parsed_template)
|
episode_page.write(output_from_parsed_template)
|
||||||
|
@ -788,13 +789,15 @@ def parse_db_episode():
|
||||||
# populate the jinja html template for the EPISODE
|
# populate the jinja html template for the EPISODE
|
||||||
|
|
||||||
output_from_parsed_template = episode_template.render(\
|
output_from_parsed_template = episode_template.render(\
|
||||||
show_name=show_name, episode_author=episode_author,\
|
episode_artists=episode_artists,\
|
||||||
episode_number=episode_number, show_url=show_url, show_rss=show_rss,\
|
show_name=show_name,\
|
||||||
episode_duration=timedelta(seconds=round(episode_duration)), \
|
episode_author=episode_author,\
|
||||||
episode_date=episode_date, about_show=show_short_description, \
|
episode_number=episode_number, show_url=show_url, \
|
||||||
episode_playlist=playlist_table, \
|
show_rss=show_rss,\
|
||||||
episode_image="img/cover0.png".format(episode_number))
|
episode_duration=timedelta(seconds=round(episode_duration)),\
|
||||||
|
episode_date=episode_date, about_show=show_short_description,\
|
||||||
|
episode_playlist=playlist_table,\
|
||||||
|
episode_image="img/cover0.jpg".format(episode_number))
|
||||||
return output_from_parsed_template
|
return output_from_parsed_template
|
||||||
|
|
||||||
def create_html_episode_from_template(episode_number, episode_duration):
|
def create_html_episode_from_template(episode_number, episode_duration):
|
||||||
|
@ -851,23 +854,72 @@ def create_html_episode_from_template(episode_number, episode_duration):
|
||||||
episode_page.write(output_from_parsed_template)
|
episode_page.write(output_from_parsed_template)
|
||||||
|
|
||||||
def create_RSS_XML_from_template():
|
def create_RSS_XML_from_template():
|
||||||
|
playlist_table = []
|
||||||
|
|
||||||
set_episode_date(input_date)
|
set_episode_date(input_date)
|
||||||
|
|
||||||
env = Environment(loader=FileSystemLoader('html/templates'))
|
env = Environment(loader=FileSystemLoader('html/templates'))
|
||||||
rss_template = env.get_template('show_RSS.jinja.xml')
|
rss_template = env.get_template('show_RSS.jinja.xml')
|
||||||
output_from_parsed_template = \
|
|
||||||
rss_template.render(\
|
cursor = conn.cursor()
|
||||||
show_name=show_name, \
|
|
||||||
episode_number=int(episode_number), episode_author=episode_author, \
|
cursor.execute('SELECT MAX(episode) FROM EPISODES')
|
||||||
show_url=show_url,\
|
|
||||||
episode_duration=timedelta(seconds=round(episode_duration)),\
|
num_eps = cursor.fetchone()[0]
|
||||||
about_show=show_short_description, \
|
num_eps = num_eps+1
|
||||||
episode_image="img/cover0.png".format(episode_number))
|
|
||||||
|
for i in range(num_eps):
|
||||||
with open("html/show_rss.xml".format(episode_number), "w") as rss_page:
|
artists = []
|
||||||
rss_page.write(output_from_parsed_template)
|
cursor.execute("SELECT artist FROM EPISODES WHERE episode=? ORDER BY track_number ASC", [i])
|
||||||
|
rows = cursor.fetchall()
|
||||||
|
|
||||||
|
for artist in rows:
|
||||||
|
art = string=re.sub("\(.*?\)","", artist[0])
|
||||||
|
# shorten verbose artist names such as trojnik Trojnik (Cene Resnik, Tomaž Grom, Vid Drašler)
|
||||||
|
artist = string=re.sub("and","+",art)
|
||||||
|
artists.append(artist)
|
||||||
|
episode_artists.append(artists)
|
||||||
|
|
||||||
|
dates = []
|
||||||
|
cursor.execute("SELECT date FROM EPISODES WHERE episode=? ORDER BY track_number ASC", [i])
|
||||||
|
d = cursor.fetchone()
|
||||||
|
dates.append(d)
|
||||||
|
|
||||||
|
trackdurs = []
|
||||||
|
cursor.execute("SELECT trackdur FROM EPISODES WHERE episode=? ORDER BY track_number ASC", [i])
|
||||||
|
td = cursor.fetchone()
|
||||||
|
trackdurs.append(str(60*60))
|
||||||
|
# TODO this is not what i need here - i need a final episode duraton so for now putting in a dummy value
|
||||||
|
|
||||||
|
episodes = []
|
||||||
|
for i in range(num_eps): # get this from new table EPISODE_STATS number of tracks in DB
|
||||||
|
#print(episode_artists[i])
|
||||||
|
an_episode = dict(date="2012-02-", \
|
||||||
|
episode_artists=str(episode_artists[i])\
|
||||||
|
.strip("[").strip("]").strip("\'"), episode_number=i, \
|
||||||
|
episode_date=dates, episode_mp3_url=show_url+"/episode/"+str(i)+"/show.mp3",\
|
||||||
|
episode_duration=trackdurs)
|
||||||
|
|
||||||
|
episodes.append(an_episode)
|
||||||
|
# reversed order to most recent episode appears first in list
|
||||||
|
print(episodes)
|
||||||
|
|
||||||
|
episodes = reversed(episodes[0:episode_number])
|
||||||
|
#TODO remove single quptes not working in episode_artists
|
||||||
|
# populate the jinja html template for the EPISODE
|
||||||
|
#''.join(random.choice((str.upper,str.lower))(x) for x in show_name)
|
||||||
|
output_from_parsed_template = rss_template.render(\
|
||||||
|
show_name=show_name, show_url=show_url, show_rss=show_rss, \
|
||||||
|
episodes=episodes, episode_author=episode_author,\
|
||||||
|
episode_date=episode_date,\
|
||||||
|
episode_duration=episode_duration, episode_number=episode_number, \
|
||||||
|
episode_artists=str(episode_artists[episode_number])\
|
||||||
|
.strip("[").strip("]").strip('\'').strip('\''), \
|
||||||
|
about_show=show_short_description, \
|
||||||
|
episode_image="img/cover0.jpg".format(episode_number))
|
||||||
|
with open("html/podcast_rss.xml".format(episode_number), "w") as rss_page:
|
||||||
|
rss_page.write(output_from_parsed_template)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
||||||
# playlist options
|
# playlist options
|
||||||
|
@ -879,7 +931,7 @@ def main():
|
||||||
elif args.playlist=="keep":
|
elif args.playlist=="keep":
|
||||||
print("working with playlist from database... ")
|
print("working with playlist from database... ")
|
||||||
elif args.playlist=="edit":
|
elif args.playlist=="edit":
|
||||||
print("edit the playlist...")
|
print("edit the playlishttps://uho.rizom.si/podcast_rss.xmlt...")
|
||||||
modify_playlist(conn, episode_number, episode_duration)
|
modify_playlist(conn, episode_number, episode_duration)
|
||||||
else:
|
else:
|
||||||
print("not creating new show....")
|
print("not creating new show....")
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Featured Labels
|
||||||
|
|
||||||
|
BETON RECORDS
|
||||||
|
KAMIZDAT
|
||||||
|
MENT FESTIVAL
|
||||||
|
PHARMAFABRIK
|
||||||
|
TERRAFORMER_RF
|
||||||
|
DEBILA
|
||||||
|
KAPA RECORDS
|
||||||
|
NATURE SCENE RECORDS
|
||||||
|
MOONLEE RECORDS
|
||||||
|
SPLOH
|
||||||
|
ZARŠ
|
||||||
|
|
||||||
|
+ MANY SELF_RELEASES
|
Loading…
Reference in New Issue