
## MASTER DATABASE TABLES ##
## Erroneous_Data
## Last_Played_Tracks
## Last Run_Additions
## Last-Run_Deletions
## New_Dupe_Tracks
## Reviewed_Dupe_Tracks
## Track_List
## URI_Change
## tmp_played

## Create Simple HTML files from MASTER Database Tables
## 1. Last_Run_Additions
## 2. Last_Run_Deletions
## 3. New_Dupe_Tracks
## 4. URI_Change
## 5. Last_Played_Tracks

import sqlite3
from sqlite3 import Error 

print('Create Simple HTML files from MASTER Database Tables:')
print('Version 2.0 ~ 05-10-22') 
## Add your own database name (no need for full path if running 'xxxx.py' in same folder ##

## Format HTML for HEADER, BODY, CSS, TABLE and basic layout details.
head = "<html><head><title>Viking Utilities</title>"
extcss = "<link href='endless.css' rel='stylesheet' type='text/css' />"
body = "</head><body><table border='0' align='center' cellpadding='3' cellspacing='15' bgcolor='#EFEFEF'><tr><td height='60'><h2 align='center'>ENDLESS PLAYLIST MANAGEMENT SYSTEM</h2></td></tr><tr><td>"
main = "<table border='0' align='center' cellpadding='3' cellspacing='3'><tr>"
menu0 = "<td><a href='index.html'>MAIN</a></td>"
menu1 = "<td><a href='additions.html'>LAST ADDED</a></td>"
menu2 = "<td><a href='deletions.html'>LAST DELETED</a></td>"
menu3 = "<td><a href='duplicates.html'>DUPLICATES</a></td>"
menu4 = "<td><a href='urichanges.html'>URI CHANGES</a></td>"
menu5 = "<td><a href='last-played.html'>LAST PLAYED</a></td></tr></table></td></tr><tr><td>"
bulk = head + extcss + body + main + menu0 + menu1 + menu2 + menu3 + menu4 + menu5
footer = "</table><tr><td height='50' align='center'>VIKING UTILITIES ~ 2022</td></tr></table></body></html>"

conn = None
filename = "Endless Feed.db"

try:
      conn = sqlite3.connect(filename)
      print("Create Database Connection:")

      ## 1) Last Run Additions:
      sql = ("SELECT * FROM Last_Run_Additions")    
      curr = conn.cursor()
      curr.execute(sql)
      rows = curr.fetchall()
    
      ## Replicate HTML Header plus data Table for "Last Run Additions":
      html = bulk + "<table border='1' cellpadding='2' cellspacing='2' bgcolor='#efefef'><tr><td colspan='5'><b>Last Run Additions:</b></td></tr>"
      
      ## Header Row Labels:
      html = html + "<tr><th>#</th><th>URI</th><th>TRACK</th><th>ARTIST</th><th>REVIEWED</th></tr>"

      tr = 1
      for row in rows:
            html = html + "<tr><td>" + str(tr) + "</td><td><a href=" + str(row[0]) + ">" + str(row[0]) + "</a></td><td>" + str(row[1]) + "</td>"
            html = html + "<td>" + str(row[2]) + "</td><td>" + str(row[3]) + "</td></tr>"
            tr = tr + 1
      html = html + footer

      
      file = open("additions.html", "w")
      file.write(html)
      file.close

      ##==========================================================================

      ## 2) Last Run Deletions:
      sql = ("SELECT * FROM Last_Run_Deletions")    
      curr = conn.cursor()
      curr.execute(sql)
      rows = curr.fetchall()

      ## Replicate HTML Header plus data Table for "Last Run Deletions":
      html = bulk + "<table border='1' cellpadding='2' cellspacing='2' bgcolor='#efefef'><tr><td colspan='5'><b>Last Run Deletions:</b></td></tr>"
      
      ## Header Row Labels:
      html = html + "<tr><th>#</th><th>URI</th><th>TRACK</th><th>ARTIST</th><th>ALBUM</th></tr>"

      tr = 1
      for row in rows:
            html = html + "<tr><td>" + str(tr) + "</td><td><a href=" + str(row[0]) + ">" + str(row[0]) + "</a></td><td>" + str(row[1]) + "</td>"  
            html = html + "<td>" + str(row[2]) + "</td><td>" + str(row[3]) + "</td></tr>"
            tr = tr + 1
      html = html + footer

      file = open("deletions.html", "w")
      file.write(html)
      file.close

      ##==========================================================================

      ## 3. Duplicated tracks:
      sql = ("SELECT * FROM New_Dupe_Tracks")    
      curr = conn.cursor()
      curr.execute(sql)
      rows = curr.fetchall()

      ## Replicate HTML Header plus data Table for "Duplicated tracks":    
      html = bulk + "<table border='1' cellpadding='2' cellspacing='2' bgcolor='#efefef'><tr><td colspan='5'><b>Duplicate Track List:</b></td></tr>"

      ## Header Row Labels:
      html = html + "<tr><th>#</th><th>URI</th><th>TRACK</th><th>ARTIST</th><th>REVIEWED</th></tr>"

      tr = 1
      for row in rows:
            html = html + "<tr><td>" + str(tr) + "</td><td><a href=" + str(row[0]) + ">" + str(row[0]) + "</a></td><td>" + str(row[1]) + "</td>"
            html = html + "<td>" + str(row[2]) + "</td><td>" + str(row[3]) + "</td></tr>"
            tr = tr + 1
      html = html + footer

      file = open("duplicates.html", "w")
      file.write(html)
      file.close

      ##==========================================================================

      ## 4) URI Changes:
      sql = ("SELECT * FROM URI_Change")    
      curr = conn.cursor()
      curr.execute(sql)
      rows = curr.fetchall()

      ## Replicate HTML Header plus data Table for "URI Changes":
      html = bulk + "<table border='1' cellpadding='2' cellspacing='2'bgcolor='#efefef'><tr><td colspan='5'><b>URI Changes:</b></td></tr>"

      ## Header Row Labels:
      html = html + "<tr><th>#</th><th>CHANGED</th><th>OLD URI</th><th>NEW URI</th><th>TRACK</th><th>ARTIST</th></tr>"
      
      tr = 1
      for row in rows:
            html = html + "<tr><td>" + str(tr) + "</td><td>" + str(row[0]) + "</td><td><a href=" + str(row[1]) + ">" + str(row[1]) + "</a></td></td>"
            html = html + "<td><a href=" + str(row[2]) + ">" + str(row[2]) + "</a></td><td>" + str(row[3]) + "</td>"
            html = html + "<td>" + str(row[4]) + "</td></tr>"
            tr = tr + 1
      html = html + footer

      file = open("urichanges.html", "w")
      file.write(html)
      file.close

      ##==========================================================================

      ## 5).Last_Played_Tracks
      sql = ("SELECT * FROM Last_Played_Tracks ORDER BY LAST_PLAYED DESC")
      ### sql = ("SELECT * FROM Last_Played_Tracks WHERE PLAY_COUNT = 0 ORDER BY LAST_PLAYED DESC")  
      curr = conn.cursor()
      curr.execute(sql)
      rows = curr.fetchall()

      ## Replicate HTML Header plus data Table for "Last Played":  
      html = bulk + "<table border='1' cellpadding='2' cellspacing='2' bgcolor='#efefef'><tr><td colspan='6'><b>Last Played:</b></td></tr>"

      ## Header Row Labels:
      html = html + "<tr><th>#</th><th>URI</th><th>TRACK</th><th>ARTIST</th><th>PLAYED</<th><th>COUNT</th></tr>"

      tr = 1
      for row in rows:
            html = html + "<tr><td>" + str(tr) + "</td><td><a href=" + str(row[0]) + ">" + str(row[0]) + "</a></td><td>" + str(row[1]) + "</td>"  
            html = html + "<td>" + str(row[2]) + "</td><td>" + str(row[3]) + "</td><td>" + str(row[4]) + "</td></tr>"
            tr = tr + 1
      html = html + footer

      file = open("last-played.html", "w")
      file.write(html)
      file.close

except Error as e:       
            print(e)  
finally:
      if conn:
            conn.close()
print('All done...')

