From 2b7f711641e9f0db78accce04e698d5fcd5f41ee Mon Sep 17 00:00:00 2001 From: Rob Canning Date: Fri, 19 Jan 2024 01:50:32 +0100 Subject: [PATCH] added pypika for db queries --- database/show.db | Bin 532480 -> 446464 bytes html/templates/episode.jinja | 29 ++++- mk_music_library_db.py | 93 ++++++++------- mk_show.py | 178 +++++++++++++++++----------- playlists/track_playout_history.txt | 22 ++-- runme.sh | 2 +- 6 files changed, 196 insertions(+), 128 deletions(-) diff --git a/database/show.db b/database/show.db index 0bcd59e6eb9180a22f0baa4494cf7272bcd5afb3..6b52de323831f18656065f1192e1660bf2ec176c 100644 GIT binary patch delta 53828 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 Rf%;yWI+eHwg#};l{{TiRlB@s# delta 84380 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 G;rtIkSNAvo diff --git a/html/templates/episode.jinja b/html/templates/episode.jinja index c7c9132..93471b1 100644 --- a/html/templates/episode.jinja +++ b/html/templates/episode.jinja @@ -107,14 +107,35 @@ + + + + + +

This weeks playlist:

- {% for track in episode_playlist[1:] %} - -

{{track}}

-
+ {% for track in episode_playlist[0:] %} +

{{track}}

{% endfor %} + + + + + + + + + + + + + + + + +
diff --git a/mk_music_library_db.py b/mk_music_library_db.py index a01235a..7a9300d 100755 --- a/mk_music_library_db.py +++ b/mk_music_library_db.py @@ -7,6 +7,9 @@ from tinytag import TinyTag from random import shuffle import sqlite3, json import uuid +#import pypika # sql query builder +from pypika import Query, Table, Field, Column + conn = '' music_library_path = "/home/rob/antena/music/" @@ -15,35 +18,37 @@ conn = sqlite3.connect("database/show.db") #TODO fix getting bandcamp urls into db labelnames = [("sploh", "https://sploh.bandcamp.com"), ("terraformer"), ("pharamafabric") ] +# todo find album with no album name +mus_lib = Query \ + .create_table("MUSIC_LIBRARY") \ + .columns( + Column("id", "INT", nullable=True), + Column("label", "VARCHAR(100)", nullable=True), + Column("album", "VARCHAR(100)", nullable=True), + Column("track", "VARCHAR(200)", nullable=True), + Column("artist", "VARCHAR(120)", nullable=True), + Column("genre", "VARCHAR(120)", nullable=True), + Column("trackdur", "FLOAT", nullable=True), + Column("year", "INT", nullable=True), + Column("url", "VARCHAR(120)", nullable=True), + Column("path", "VARCHAR(120)", nullable=False), + Column("lastplay", "DATETINE", nullable=True), + Column("comment", "VARCHAR(120)", nullable=True))\ + .unique("path") \ + .primary_key("path") + def database_create(conn): # the MUSIC LIBRARY TABLE #TODO UNIQUE constraint prevents duplicats but what if tracks are in another locaton?fixme - conn.execute('''CREATE TABLE IF NOT EXISTS MUSICLIB( - ID INTEGER PRIMARY KEY AUTOINCREMENT, - LABEL TEXT NOT NULL, - ALBUM TEXT , - TRACK TEXT , - ARTIST TEXT , - GENRE TEXT , - TRACKDUR TEXT , - YEAR TEXT, - URL TEXT, - PATH TEXT UNIQUE, - LASTPLAY TEXT, - COMMENT TEXT - );''') - - print("Table created successfully"); - -####################################################### + conn.execute(str(mus_lib)) + print('''MUSIC LIBRARY Table created successfully'''); def mk_db_entry(conn): - - import os - + print("ADDING TRACKS TO DATABASE > > > one moment please! "); label_url = "https://fixme.bandcamp.com/" - + for subdir, dirs, files in os.walk(music_library_path): + for file in files: for m in [".flac", ".FLAC", ".mp3"]: # get audio files if m in file: @@ -51,26 +56,32 @@ def mk_db_entry(conn): label = filepath.parts[5] # get LABEL etc name from path track = TinyTag.get(os.path.join(subdir, file))# get metadata from file cursor = conn.cursor() - - cursor.execute("INSERT OR IGNORE INTO MUSICLIB (\ - ID, LABEL, ALBUM, TRACK, ARTIST,\ - GENRE, TRACKDUR, YEAR, URL, PATH, LASTPLAY, COMMENT) \ - VALUES (NULL, ?, ?, ?, ?,?, ?,?,?,?,?,? )",\ - [label, track.album, track.title, track.artist, \ - track.genre, track.duration, track.year, label_url, str(filepath), "last_played", track.comment]); + + mus_lib = Table('MUSIC_LIBRARY') + q = mus_lib.insert(1, label, track.album, track.title, track.artist, \ + track.genre, track.duration, track.year, \ + label_url, str(filepath), "last_played", track.comment) + cursor.execute(str(q)); conn.commit() - # print("DB Record created successfully"); - - # track = TinyTag.get(i) - # detail = str(track.artist) + " | " + str(track.album) + \ - # " | " + str(track.title) + " | " + str(track.year) + \ - # " | " + str(timedelta(seconds=round(track.duration))) - # show_info.append("" + detail) - -#def insert_track(conn, track): + +def count_tracks(conn): + query = f"SELECT COUNT(*) FROM MUSIC_LIBRARY" + cursor = conn.cursor() + cursor.execute(query) + result = cursor.fetchone() + row_count = result[0] + print(f'''\n WHOOP! THE MUSIC LIBRARY CONTAINS {row_count} TRACKS!! +--------------------------------------------''') - -database_create(conn) -mk_db_entry(conn) +def main(): + + database_create(conn) + mk_db_entry(conn) + count_tracks(conn) + +if __name__ == "__main__": + main() + + diff --git a/mk_show.py b/mk_show.py index 82a101d..e85c889 100755 --- a/mk_show.py +++ b/mk_show.py @@ -7,6 +7,7 @@ from tinytag import TinyTag from random import shuffle import sqlite3, json import uuid +from pypika import Query, Table, Field, Column #from mk_web import * @@ -44,29 +45,47 @@ def set_episode_date(input_date): print(episode_date) conn = '' -def database_create(): +def database_create_episodes_table(): # the show database global conn conn = sqlite3.connect("database/show.db") - #cursor = conn.cursor() - #cursor.execute("DROP TABLE SHOW") - #conn.commit() + q = Query \ + .create_table("EPISODES") \ + .columns( + Column("id", "INT", nullable=True), + Column("episode", "INT", nullable=True), + Column("date", 'DATETIME', nullable=True), + Column("album", "VARCHAR(200)", nullable=True), + Column("track", "VARCHAR(120)", nullable=True), + Column("artist", "VARCHAR(120)", nullable=True), + Column("trackdur", "FLOAT", nullable=True), + Column("genre", "VARCHAR(120)", nullable=True), + Column("year", 'DATETIME', nullable=True), + Column("path", "VARCHAR(120)", nullable=False))\ + .primary_key("path") + #.unique("path") \ + #TODO get the unique path back into action find bug + conn.execute(str(q)) + + + + + print("EPISODES Table created successfully"); + + + + + + + + + + + + - conn.execute('''CREATE TABLE IF NOT EXISTS SHOW( - ID INTEGER PRIMARY KEY AUTOINCREMENT, - EPISODE INT NOT NULL, - DATE TEXT NOT NULL, - ALBUM TEXT , - TRACK TEXT NOT NULL, - ARTIST TEXT NOT NULL, - TRACKDUR FLOAT NOT NULL, - GENRE TEXT NOT NULL, - YEAR TEXT NOT NULL, - PATH TEXT NOT NULL - );''') - print("Table created successfully"); def create_intro(episode_playlist): intropath = path + "audio/texts/clips/this_is" @@ -104,25 +123,31 @@ def create_episode_playlist(episode_playlist: list, complete_playlist:list): while episode_duration < 60 * 60 and track_count < 12 : cursor = conn.cursor() - cursor.execute("SELECT * FROM MUSICLIB ORDER BY RANDOM() LIMIT 1 ;") - r = cursor.fetchall() - for t in r: - song = str(t[9]) - track_label = str(t[1]) - track_album = str(t[2]) - track_title = str(t[3]) - track_artist = str(t[4]) - track_duration = float(t[6]) - track_genre = str(t[5]) - track_year = str(t[7]) - + cursor.execute("SELECT * FROM MUSIC_LIBRARY ORDER BY RANDOM() LIMIT 1 ;") + r = cursor.fetchone() # FETCH ONE RANDOM TRACK FROM THE DATABASE + print(str(r)+"ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss") + # for t in r: + song = str(r[9]) + track_label = str(r[1]) + track_album = str(r[2]) + track_title = str(r[3]) + track_artist = str(r[4]) + track_duration = float(r[6]) + track_genre = str(r[5]) + track_year = str(r[7]) track_path = '/'.join(song.split('/')[0:-1]) + + # SOME LOGIC TO SEE IF WE ALLOW THAT TRACK OR NOT + + + # TODO here we need to append to DB not the static file if track_artist not in artists_played: if check_archive(track_title) is True: if track_duration > min_track_dur * 60: if int(track_duration) < max_track_dur * 60: episode_playlist.append(song.rstrip()) # if 'not in' is true then add the song art = string=re.sub("\(.*?\)","",track_artist) + print(art + "?????????????????????????????????????????????????????????????????????????????????????") # shorten verbose artist names such as trojnik Trojnik (Cene Resnik, Tomaž Grom, Vid Drašler) art = string=re.sub("and","&",art) artist_abreviated.append(art) @@ -133,17 +158,16 @@ def create_episode_playlist(episode_playlist: list, complete_playlist:list): track_year = 0000 - #long_string = json.dumps(["' SomeWord"]) - - print([episode_number, episode_date, \ - track_album, track_title, track_artist, \ - track_duration, track_year, track_path]) + e = Table('EPISODES') + q = e.insert(1, episode_number, episode_date, \ + track_album, track_title, track_artist, \ + track_duration,track_genre, track_year, track_path) - cursor.execute("INSERT INTO SHOW (\ - ID, EPISODE, DATE, ALBUM, TRACK, ARTIST, TRACKDUR, YEAR, PATH) \ - VALUES (NULL, ?, ?, ?, ?, ?,?,?,? )", [episode_number, episode_date, \ - track_album, track_title, track_artist, \ - track_duration, track_year, track_path]); + cursor.execute(str(q)) + # ID, EPISODE, DATE, ALBUM, TRACK, ARTIST, TRACKDUR, YEAR, PATH) \ + # VALUES (NULL, ?, ?, ?, ?, ?,?,?,? )", [episode_number, episode_date, \ + # track_album, track_title, track_artist, \ + # track_duration, track_year, track_path]); conn.commit() print("sqlite: Episode track successfully inserted into SHOW table"); @@ -219,7 +243,7 @@ def combine_images(columns, space, images, variants:int): [len(s) for s in [''.join(artist_abreviated[6:9])]][0] > str_length_thresh or \ [len(s) for s in [''.join(artist_abreviated[9:12])]][0] > str_length_thresh: print('''one of the lines is longer than fits the page... - ...................shuffling the list for a better look''') + ...................shuffling the list for a better look: {0}'''.format(artist_abreviated)) random.shuffle(artist_abreviated) @@ -353,13 +377,14 @@ def create_podcast(episode_playlist: list): # get length of final show / podcast playlist_length = len(playlist) / (1000*60) - # save the entire poidcast + # save the entire poidcast as FLAC # with open("html/episode/{0}/show.flac".format(episode_number), 'wb') as out_f: # print("FLAC output file opened...writing to file...") # playlist.export(out_f, format='flac') # print("FLAC audio file exported...") - + + # save the entire poidcast as MP3 with open("html/episode/{0}/show.mp3".format(episode_number), 'wb') as out_f: print("MP3 output file opened...writing to file...") playlist.export(out_f, format='mp3') @@ -381,7 +406,7 @@ def create_html_homepage_from_template(episode_playlist): episode_artists = [] for i in range(10): artists = [] - cursor.execute("SELECT ARTIST FROM SHOW WHERE EPISODE=?", [i]) + cursor.execute("SELECT artist FROM EPISODES WHERE episode=?", [i]) rows = cursor.fetchall() for artist in rows: @@ -402,17 +427,18 @@ def create_html_homepage_from_template(episode_playlist): episodes = reversed(episodes) # reversed order to most recent episode appears first in list cursor = conn.cursor() - cursor.execute('SELECT * FROM SHOW WHERE EPISODE=?', [episode_number]) + cursor.execute('SELECT * FROM EPISODES WHERE episode=?', [episode_number]) r = cursor.fetchall() + for t in r: song = str(t[0]) - track_label = str(t[1]) + #track_label = str(t[1]) track_album = str(t[2]) track_title = str(t[3]) track_artist = str(t[4]) track_duration = float(t[6]) - track_genre = str(t[5]) - track_year = str(t[7]) + track_genre = str(t[7]) + track_year = str(t[8]) detail = str(track_artist) + " | " + str(track_album) + \ " | " + str(track_title) + " | " + str(track_year) + \ @@ -442,27 +468,33 @@ def create_html_episode_from_template(episode_playlist): # maybe a jinja2 template loop here instead cursor = conn.cursor() - cursor.execute('SELECT * FROM SHOW WHERE EPISODE=?', [episode_number]) + + e = Table('EPISODES') + q = Query.from_(e).select( + e.episode + ).where( + e.episode == episode_number) +# raw 'SELECT * FROM EPISODES WHERE EPISODE=?', [episode_number] + cursor.execute('SELECT * FROM EPISODES WHERE EPISODE=?', [episode_number]) + r = cursor.fetchall() for t in r: song = str(t[0]) - track_label = str(t[1]) - track_album = str(t[2]) - track_title = str(t[3]) - track_artist = str(t[4]) + #track_label = str(t[1]) + track_album = str(t[3]) + track_title = str(t[4]) + track_artist = str(t[5]).upper() track_duration = float(t[6]) - track_genre = str(t[5]) - track_year = str(t[7]) + track_genre = str(t[7]) + track_year = str(t[8]) - # for i in episode_playlist: # liar od files - #for i in cur: # liar od files - - #track = TinyTag.get(i) detail = str(track_artist) + " | " + str(track_album) + \ " | " + str(track_title) + " | " + str(track_year) + \ " | " + str(timedelta(seconds=round(track_duration))) show_info.append("" + detail) + #TODO FIX THIS UP TO SEND COLUMNS FROM LIST TO JINJA + output_from_parsed_template = episode_template.render(\ show_name=show_name, episode_author="Rob Canning",\ episode_duration=episode_duration, \ @@ -490,25 +522,29 @@ def create_RSS_XML_from_template(): +def main(): -database_create() - -set_episode_date(input_date) -create_episode_playlist(episode_playlist, complete_playlist) -create_show_coverart(episode_playlist, 1) #episode_duration = 100 -#create_animated_gif() + database_create_episodes_table() + set_episode_date(input_date) + create_episode_playlist(episode_playlist, complete_playlist) + create_show_coverart(episode_playlist, 1) #episode_duration = 100 + #create_animated_gif() + create_intro(episode_playlist) + create_pls_file() + create_html_episode_from_template(episode_playlist) + create_html_homepage_from_template(episode_playlist) + create_RSS_XML_from_template() + conn.close() + create_podcast(episode_playlist) -create_intro(episode_playlist) -create_pls_file() -create_html_homepage_from_template(episode_playlist) -create_html_episode_from_template(episode_playlist) -create_RSS_XML_from_template() -conn.close() -create_podcast(episode_playlist) +main() + + + #convert -delay 100 -loop 0 html/episode/2/img/show_cover_2024-01-12* animatedGIF.gif diff --git a/playlists/track_playout_history.txt b/playlists/track_playout_history.txt index 3735aff..d4290f3 100644 --- a/playlists/track_playout_history.txt +++ b/playlists/track_playout_history.txt @@ -1,13 +1,13 @@ +Stampede +Vrtnice +zvoki iz dnevne sobe +jez +The Left Eye +NeoPogo - FeS2 +BE CREEP - Burnt Dreams +Zlatko Kaučič, Tomaž Grom - Torn Memories Of Folklore - Raztrgana folklora spomina - 08 Almost The Same +The Mother (Act VII) 一点一滴 -BE CREEP - LIVE -Todestriebe -The Great White Buffalo -Liqweed -Keep An Eye On That Ice Cream -Kaverna -Jošt Drašler - The Balloon Catcher - 03 Water Balloon -Magie de la Pleine Lune -Domen Gnezda - Misnomer II - 16 Misnomer 38 -All is silent, All is dead -Exit Lover +Jean-Luc Guionnet & Samo Kutin - Kopaš - 02 02 +Vertex diff --git a/runme.sh b/runme.sh index a0963e2..bf41a03 100755 --- a/runme.sh +++ b/runme.sh @@ -8,7 +8,7 @@ rm html/index.html show_dates=(2024-03-03 2024-03-10 2024-03-17 2024-03-24 2024-03-31 2024-03-31 2024-03-31 2024-03-31 2024-03-31 ) -counter= # set this as input argument to set what episode to start creating from... +counter=0 # set this as input argument to set what episode to start creating from... episodes=12 # set this as another input argument for how many episodes to produce