diff --git a/data/images/delete.png b/data/images/delete.png deleted file mode 100644 index 803ba2fe..00000000 Binary files a/data/images/delete.png and /dev/null differ diff --git a/data/images/header.png b/data/images/header.png deleted file mode 100644 index a040880e..00000000 Binary files a/data/images/header.png and /dev/null differ diff --git a/data/images/nav-link-selected.png b/data/images/nav-link-selected.png deleted file mode 100644 index 4e0f99b1..00000000 Binary files a/data/images/nav-link-selected.png and /dev/null differ diff --git a/data/images/remove.png b/data/images/remove.png deleted file mode 100644 index 9db471b6..00000000 Binary files a/data/images/remove.png and /dev/null differ diff --git a/data/images/screen/album.PNG b/data/images/screen/album.PNG new file mode 100644 index 00000000..80508f17 Binary files /dev/null and b/data/images/screen/album.PNG differ diff --git a/data/images/screen/library.PNG b/data/images/screen/library.PNG new file mode 100644 index 00000000..0e500e33 Binary files /dev/null and b/data/images/screen/library.PNG differ diff --git a/data/images/screen/settings.PNG b/data/images/screen/settings.PNG new file mode 100644 index 00000000..43d91c39 Binary files /dev/null and b/data/images/screen/settings.PNG differ diff --git a/data/images/table-header.png b/data/images/table-header.png deleted file mode 100644 index 459672b8..00000000 Binary files a/data/images/table-header.png and /dev/null differ diff --git a/data/interfaces/default/upcoming.html b/data/interfaces/default/upcoming.html index dd7e6ffc..51bfed4c 100644 --- a/data/interfaces/default/upcoming.html +++ b/data/interfaces/default/upcoming.html @@ -18,7 +18,7 @@
- +
${album['ArtistName']} ${album['AlbumTitle']} @@ -32,6 +32,7 @@
+

Mark selected albums as

+

Wanted Albums

diff --git a/data/interfaces/lover/album.html b/data/interfaces/lover/album.html deleted file mode 100644 index 1e38f419..00000000 --- a/data/interfaces/lover/album.html +++ /dev/null @@ -1,128 +0,0 @@ -<%inherit file="base.html" /> -<%! - from headphones import db, helpers - myDB = db.DBConnection() -%> - -<%def name="headerIncludes()"> -
- -
- - -<%def name="body()"> -
-

<- Back to ${album['ArtistName']}

-
- albumart -

${album['AlbumTitle']}

-

${album['ArtistName']}

-
- <% - totalduration = myDB.action("SELECT SUM(TrackDuration) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] - totaltracks = len(myDB.select("SELECT TrackTitle from tracks WHERE AlbumID=?", [album['AlbumID']])) - try: - albumduration = helpers.convert_milliseconds(totalduration) - except: - albumduration = 'n/a' - - %> -

Tracks: ${totaltracks}

-

Duration: ${albumduration}

- %if description: -

Description:

- ${description['Summary']} - %endif -
-
-
- - - - - - - - - - - %for track in tracks: - <% - if track['Location']: - grade = 'A' - location = track['Location'] - else: - grade = 'X' - location = '' - - if track['BitRate']: - bitrate = str(track['BitRate']/1000) + ' kbps' - else: - bitrate = '' - - try: - trackduration = helpers.convert_milliseconds(track['TrackDuration']) - except: - trackduration = 'n/a' - %> - - - - - - - - %endfor - <% - unmatched = myDB.select('SELECT * from have WHERE ArtistName LIKE ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']]) - %> - %if unmatched: - %for track in unmatched: - <% - duration = helpers.convert_seconds(float(track['TrackLength'])) - %> - - - - - - - - %endfor - %endif - -
#Track TitleDurationLocal FileBit Rate
${track['TrackNumber']}${track['TrackTitle']}${trackduration}${location}${bitrate}
${track['TrackNumber']}${track['TrackTitle']}${duration}${track['Location']}${int(track['BitRate'])/1000} kbps
-
- - - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/lover/artist.html b/data/interfaces/lover/artist.html deleted file mode 100644 index 164658a2..00000000 --- a/data/interfaces/lover/artist.html +++ /dev/null @@ -1,146 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import db -%> - -<%def name="headerIncludes()"> -
- -
- - -<%def name="body()"> -
-

${artist['ArtistName']}

- %if artist['Status'] == 'Loading': -

(Album information for this artist is currently being loaded)

- %endif -
- -

Mark selected albums as - - -

- - - - - - - - - - - - - - - %for album in albums: - <% - if album['Status'] == 'Skipped': - grade = 'Z' - elif album['Status'] == 'Wanted': - grade = 'X' - elif album['Status'] == 'Snatched': - grade = 'C' - else: - grade = 'A' - - myDB = db.DBConnection() - totaltracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=?', [album['AlbumID']])) - havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=? AND Location IS NOT NULL', [album['AlbumID']])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']])) - - try: - percent = (havetracks*100.0)/totaltracks - if percent > 100: - percent = 100 - except (ZeroDivisionError, TypeError): - percent = 0 - totaltracks = '?' - - avgbitrate = myDB.action("SELECT AVG(BitRate) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] - if avgbitrate: - bitrate = str(int(avgbitrate)/1000) + ' kbps' - else: - bitrate = '' - - %> - - - - - - - - - - - %endfor - -
NameDateTypeStatusHaveBitrate
${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}${album['Status']} - %if album['Status'] == 'Skipped': - [want] - %elif album['Status'] == 'Wanted': - [skip] - %else: - [retry][new] - %endif -
${havetracks}/${totaltracks}
${bitrate}
-
- - -<%def name="headIncludes()"> - - %if artist['Status'] == 'Loading': - - %endif - - -<%def name="javascriptIncludes()"> - - - diff --git a/data/interfaces/lover/base.html b/data/interfaces/lover/base.html deleted file mode 100644 index 7053f803..00000000 --- a/data/interfaces/lover/base.html +++ /dev/null @@ -1,107 +0,0 @@ -<% - import headphones - from headphones import version -%> - - - - - - - - - - - Headphones - ${title} - - - - - - - - - ${next.headIncludes()} - - - - -
-
- % if not headphones.CURRENT_VERSION: -
- You're running an unknown version of Headphones. Click here to update -
- % elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win': -
- A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Click here to update -
- % endif - - - -
- ${next.headerIncludes()} -
-
- -
- ${next.body()} -
- - -
- - - - ${next.javascriptIncludes()} - - - - - - - - -<%def name="javascriptIncludes()"> -<%def name="headIncludes()"> -<%def name="headerIncludes()"> diff --git a/data/interfaces/lover/config.html b/data/interfaces/lover/config.html deleted file mode 100644 index 09b3e014..00000000 --- a/data/interfaces/lover/config.html +++ /dev/null @@ -1,503 +0,0 @@ -<%inherit file="base.html"/> -<%! - import headphones -%> - -<%def name="headerIncludes()"> -
- -
- -<%def name="body()"> -
-

-

-
-
-

Web Interface

- - - - - - - - - - - - - - - - -
-

HTTP Host:

-
- i.e. localhost or 0.0.0.0 -
-

HTTP Username:

- -
-

HTTP Port:

- -
-

HTTP Password:

- -
-

Launch Browser on Startup:

-
-
-
-

Download Settings

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

SABnzbd:

-
-

SABnzbd Host:


- - usually http://localhost:8080 -
-

SABnzbd Username:

-
-

SABnzbd API:

-
-

SABnzbd Password:

-
-

SABnzbd Category:

-
-

Music Download Directory:


- - Full path to the directory where SAB downloads your music
- i.e. /Users/name/Downloads/music
-
-

Use Black Hole:

-
-

Black Hole Directory:


- - Folder your Download program watches for NZBs -
-

Usenet Retention:

-
-



Torrent:

-
-

Black Hole Directory:


- - Folder your Download program watches for Torrents -
-

Minimum seeders:


- - Number of minimum seeders a torrent must have to be accepted -
-

Music Download Directory:


- - Full path to the directory where your torrent client downloads your music
- i.e. /Users/name/Downloads/music
-
-
-
-

Search Providers

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

SABnzbd:

-
-

NZBMatrix:

-
-

NZBMatrix Username:

- -
-

NZBMatrix API:

- -
-

Newznab:

-
-

Newznab Host:

-
- i.e. http://nzb.su -
-

Newznab API:

- -
-

NZBs.org:

-
- -

NZBs.org UID:

- - -
- -

NZBs.org Hash:

- - -
-

Newzbin:

-
-

Newzbin UID:

- - -
-

Newzbin Password:

- -
-

Torrent:


-
-

Isohunt:


-
-

Mininova:


-
-

Kick Ass Torrents:

-
-
-
-

Quality & Post Processing

- - - - - - - - - - -
-

Album Quality:


-

Highest Quality excluding Lossless

-

Highest Quality including Lossless

-

Lossless Only

-

Preferred Bitrate: - kbps

- Auto-Detect Preferred Bitrate -
-

Post-Processing:

-

Move downloads to Destination Folder

-

Rename files

-

Correct metadata

-

Delete leftover files (.m3u, .nfo, .sfv, .nzb, etc.)

-

Add album art as 'folder.jpg' to album folder

-

Embed album art in each file

-

Embed lyrics

-
-
- -

Path to Destination folder:

-
- i.e. /Users/name/Music/iTunes or /Volumes/share/music -
-
-
-

Advanced Settings

- - - - - - - - - - - -
-

Renaming Options:

-
-

Folder Format:


- Use: artist, album, year, releasetype and first (first letter in artist name)
- E.g.: first/artist/album [year] = G/Girl Talk/All Day [2010]
-

-

File Format:

-
- Use: tracknumber, title, artist, album and year -
-

Miscellaneous:

-
-

Automatically Include Extras When Adding an Artist

- (EPs, Compilations, Live Albums, Remix Albums and Singles) -

-

Interface: -

-

Log Directory:

-
-

Re-Encoding Options:

- Note: this option requires the lame or ffmpeg encoder -

-

Re-encode downloads during postprocessing

-
-
-

Only re-encode lossless files (.flac)

-
- <% - if config['encoder'] == 'lame': - lameselect = 'selected="selected"' - ffmpegselect = '' - else: - lameselect = '' - ffmpegselect = 'selected="selected"' - %> -

Encoder: - - Format:

-
- -

Audio Properties:

-
-

VBR/CBR: - - Quality:

- -
-

Bitrate: - - <% - if config["samplingfrequency"] == 44100: - freq44100 = 'selected="selected"' - freq48000 = '' - else: - freq44100 = '' - freq48000 = 'selected="selected"' - %> - Sampling:

-
-
-

Advanced Encoding Options:

-

- (ignores audio properties) -

- -
-

Path to Encoder:

-
-
-

Prowl Notification:


-

Enable Prowl Notifications


-
-

API key:



-

Notify on snatch?


-

Priority (-2,-1,0,1 or 2):

-
-
-

Muscbrainz Mirror: -

-
- -


- (Web Interface changes require a restart to take effect) - - - -<%def name="javascriptIncludes()"> - - diff --git a/data/interfaces/lover/extras.html b/data/interfaces/lover/extras.html deleted file mode 100644 index d9dbbe2f..00000000 --- a/data/interfaces/lover/extras.html +++ /dev/null @@ -1,13 +0,0 @@ -<%inherit file="base.html" /> -<%def name="body()"> -

-

Artists You Might Like

-
- -
-
- diff --git a/data/interfaces/lover/history.html b/data/interfaces/lover/history.html deleted file mode 100644 index ac7c4f6d..00000000 --- a/data/interfaces/lover/history.html +++ /dev/null @@ -1,85 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import helpers -%> - -<%def name="headerIncludes()"> -
- -
- - -<%def name="body()"> -
- History -
- - - - - - - - - - - - %for item in history: - <% - if item['Status'] == 'Processed': - grade = 'A' - elif item['Status'] == 'Snatched': - grade = 'C' - elif item['Status'] == 'Unprocessed': - grade = 'X' - else: - grade = 'U' - - fileid = 'unknown' - if item['URL'].find('nzb') != -1: - fileid = 'nzb' - if item['URL'].find('torrent') != -1: - fileid = 'torrent' - %> - - - - - - - - %endfor - -
Date AddedFile NameSizeStatus
${item['DateAdded']}${item['Title']} [${fileid}][album page]${helpers.bytes_to_mb(item['Size'])}${item['Status']}[retry][new]
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/lover/index.html b/data/interfaces/lover/index.html deleted file mode 100644 index 83a594b6..00000000 --- a/data/interfaces/lover/index.html +++ /dev/null @@ -1,86 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import helpers -%> - -<%def name="body()"> - - - - - - - - - - - %for artist in artists: - <% - totaltracks = artist['TotalTracks'] - havetracks = artist['HaveTracks'] - if not havetracks: - havetracks = 0 - try: - percent = (havetracks*100.0)/totaltracks - if percent > 100: - percent = 100 - except (ZeroDivisionError, TypeError): - percent = 0 - totaltracks = '?' - - if artist['ReleaseDate'] and artist['LatestAlbum']: - releasedate = artist['ReleaseDate'] - albumdisplay = '%s (%s)' % (artist['LatestAlbum'], artist['ReleaseDate']) - if releasedate > helpers.today(): - grade = 'A' - else: - grade = 'Z' - elif artist['LatestAlbum']: - releasedate = '' - grade = 'Z' - albumdisplay = '%s' % artist['LatestAlbum'] - else: - releasedate = '' - grade = 'Z' - albumdisplay = 'None' - - if artist['Status'] == 'Paused': - grade = 'X' - - %> - - - - - - - %endfor - -
Artist NameStatusLatest AlbumHave
${artist['ArtistName']}${artist['Status']}${albumdisplay}
${havetracks}/${totaltracks}
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/lover/logs.html b/data/interfaces/lover/logs.html deleted file mode 100644 index 98004034..00000000 --- a/data/interfaces/lover/logs.html +++ /dev/null @@ -1,60 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import helpers -%> - -<%def name="body()"> - - - - - - - - - - %for line in lineList: - <% - timestamp, message, level, threadname = line - - if level == 'WARNING' or level == 'ERROR': - grade = 'X' - else: - grade = 'Z' - %> - - - - - - %endfor - -
TimestampLevelMessage
${timestamp}${level}${message}
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/lover/manage.html b/data/interfaces/lover/manage.html deleted file mode 100644 index cf5a476a..00000000 --- a/data/interfaces/lover/manage.html +++ /dev/null @@ -1,74 +0,0 @@ -<%inherit file="base.html" /> -<%! - import headphones - from headphones.helpers import checked -%> -<%def name="headerIncludes()"> -
- -
- - -<%def name="body()"> -
-

-

-
-

Scan Music Library


- Where do you keep your music?

- You can put in any directory, and it will scan for audio files in that folder - (including all subdirectories)

For example: '/Users/name/Music' -

- It may take a while depending on how many files you have. You can navigate away from the page
- as soon as you click 'Submit' -

-
- %if headphones.MUSIC_DIR: - - %else: - - %endif -
-

Automatically add new artists

-

-
-
- -
-

Import Last.FM Artists


- Enter the username whose artists you want to import:

-
- <% - if headphones.LASTFM_USERNAME: - lastfmvalue = headphones.LASTFM_USERNAME - else: - lastfmvalue = 'Last.fm Username' - %> - -


-
- -
-

Placeholder :-)


-

-
- -


-
- -
-

Force Search


-

Force Check for Wanted Albums

-

Force Update Active Artists

-

Force Post-Process Albums in Download Folder



-

Check for Headphones Updates

-
- \ No newline at end of file diff --git a/data/interfaces/lover/manageartists.html b/data/interfaces/lover/manageartists.html deleted file mode 100644 index 368d653c..00000000 --- a/data/interfaces/lover/manageartists.html +++ /dev/null @@ -1,82 +0,0 @@ -<%inherit file="base.html" /> - -<%def name="body()"> -
-

Manage Artists

-

-
-

- - selected artists - -

- - - - - - - - - - - %for artist in artists: - <% - if artist['Status'] == 'Paused': - grade = 'X' - elif artist['Status'] == 'Loading': - grade = 'C' - else: - grade = 'Z' - - if artist['ReleaseDate'] and artist['LatestAlbum']: - releasedate = artist['ReleaseDate'] - albumdisplay = '%s (%s)' % (artist['LatestAlbum'], artist['ReleaseDate']) - elif artist['LatestAlbum']: - releasedate = '' - albumdisplay = '%s' % artist['LatestAlbum'] - else: - releasedate = '' - albumdisplay = 'None' - %> - - - - - - - %endfor - -
Artist NameStatusLatest Album
${artist['ArtistName']}${artist['Status']}${albumdisplay}
-
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/lover/managenew.html b/data/interfaces/lover/managenew.html deleted file mode 100644 index bea493b2..00000000 --- a/data/interfaces/lover/managenew.html +++ /dev/null @@ -1,52 +0,0 @@ -<%inherit file="base.html" /> -<%! - import headphones -%> -<%def name="body()"> -
-

Manage New Artists

-

Scan Music Library

-
-
-

- Add selected artists - -

- - - - - - - - - %for artist in headphones.NEW_ARTISTS: - - - - - %endfor - -
Artist Name
${artist}
-
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/lover/searchresults.html b/data/interfaces/lover/searchresults.html deleted file mode 100644 index b02fedd6..00000000 --- a/data/interfaces/lover/searchresults.html +++ /dev/null @@ -1,70 +0,0 @@ -<%inherit file="base.html" /> - -<%def name="body()"> - -
-

Search Results

-

- - - - %if type == 'album': - - %endif - - - - - - - %if searchresults: - %for result in searchresults: - <% - if result['score'] == 100: - grade = 'A' - else: - grade = 'Z' - %> - - %if type == 'album': - - %endif - - - %if type == 'album': - - %else: - - %endif - - %endfor - %endif - -
Album NameArtist NameScore
${result['title']}${result['uniquename']}${result['score']}Add this albumAdd this artist
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/lover/shutdown.html b/data/interfaces/lover/shutdown.html deleted file mode 100644 index be7ca21d..00000000 --- a/data/interfaces/lover/shutdown.html +++ /dev/null @@ -1,13 +0,0 @@ -<%inherit file="base.html"/> - -<%def name="headIncludes()"> - - - -<%def name="body()"> -
-
-

Headphones is ${message}

-
-
- \ No newline at end of file diff --git a/data/interfaces/lover/upcoming.html b/data/interfaces/lover/upcoming.html deleted file mode 100644 index 5c209056..00000000 --- a/data/interfaces/lover/upcoming.html +++ /dev/null @@ -1,86 +0,0 @@ -<%inherit file="base.html" /> -<%def name="body()"> -
-

Upcoming Albums

- - - - - - - - - - - - - %for album in upcoming: - - - - - - - - - %endfor - -
ArtistAlbum NameRelease DateTypeStatus
${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}${album['Status']}
-
- -
-

Mark selected albums as - - -

-
-

Wanted Albums

- - - - - - - - - - - - - %for album in wanted: - - - - - - - - %endfor - -
ArtistAlbum NameRelease DateType
- ${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}
- -
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/album.html b/data/interfaces/remix/album.html deleted file mode 100644 index 1e38f419..00000000 --- a/data/interfaces/remix/album.html +++ /dev/null @@ -1,128 +0,0 @@ -<%inherit file="base.html" /> -<%! - from headphones import db, helpers - myDB = db.DBConnection() -%> - -<%def name="headerIncludes()"> -
- -
- - -<%def name="body()"> -
-

<- Back to ${album['ArtistName']}

-
- albumart -

${album['AlbumTitle']}

-

${album['ArtistName']}

-
- <% - totalduration = myDB.action("SELECT SUM(TrackDuration) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] - totaltracks = len(myDB.select("SELECT TrackTitle from tracks WHERE AlbumID=?", [album['AlbumID']])) - try: - albumduration = helpers.convert_milliseconds(totalduration) - except: - albumduration = 'n/a' - - %> -

Tracks: ${totaltracks}

-

Duration: ${albumduration}

- %if description: -

Description:

- ${description['Summary']} - %endif -
-
- - - - - - - - - - - - %for track in tracks: - <% - if track['Location']: - grade = 'A' - location = track['Location'] - else: - grade = 'X' - location = '' - - if track['BitRate']: - bitrate = str(track['BitRate']/1000) + ' kbps' - else: - bitrate = '' - - try: - trackduration = helpers.convert_milliseconds(track['TrackDuration']) - except: - trackduration = 'n/a' - %> - - - - - - - - %endfor - <% - unmatched = myDB.select('SELECT * from have WHERE ArtistName LIKE ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']]) - %> - %if unmatched: - %for track in unmatched: - <% - duration = helpers.convert_seconds(float(track['TrackLength'])) - %> - - - - - - - - %endfor - %endif - -
#Track TitleDurationLocal FileBit Rate
${track['TrackNumber']}${track['TrackTitle']}${trackduration}${location}${bitrate}
${track['TrackNumber']}${track['TrackTitle']}${duration}${track['Location']}${int(track['BitRate'])/1000} kbps
-
-
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/artist.html b/data/interfaces/remix/artist.html deleted file mode 100644 index fced33c4..00000000 --- a/data/interfaces/remix/artist.html +++ /dev/null @@ -1,143 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import db -%> - -<%def name="headerIncludes()"> -
- -
- - -<%def name="body()"> -
-

${artist['ArtistName']}

- %if artist['Status'] == 'Loading': -

(Album information for this artist is currently being loaded)

- %endif -
- -

Mark selected albums as - - -

- - - - - - - - - - - - - - - %for album in albums: - <% - if album['Status'] == 'Skipped': - grade = 'Z' - elif album['Status'] == 'Wanted': - grade = 'X' - elif album['Status'] == 'Snatched': - grade = 'C' - else: - grade = 'A' - - myDB = db.DBConnection() - totaltracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=?', [album['AlbumID']])) - havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=? AND Location IS NOT NULL', [album['AlbumID']])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']])) - - try: - percent = (havetracks*100.0)/totaltracks - if percent > 100: - percent = 100 - except (ZeroDivisionError, TypeError): - percent = 0 - totaltracks = '?' - - avgbitrate = myDB.action("SELECT AVG(BitRate) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] - if avgbitrate: - bitrate = str(int(avgbitrate)/1000) + ' kbps' - else: - bitrate = '' - - %> - - - - - - - - - - - %endfor - -
NameDateTypeStatusHaveBitrate
${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}${album['Status']} - %if album['Status'] == 'Skipped': - [want] - %elif album['Status'] == 'Wanted': - [skip] - %else: - [retry][new] - %endif -
${havetracks}/${totaltracks}
${bitrate}
-
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/base.html b/data/interfaces/remix/base.html deleted file mode 100755 index 5476e27d..00000000 --- a/data/interfaces/remix/base.html +++ /dev/null @@ -1,107 +0,0 @@ -<% - import headphones - from headphones import version -%> - - - - - - - - - - - Headphones::Remix - ${title} - - - - - - - - - ${next.headIncludes()} - - - - -
-
- % if not headphones.CURRENT_VERSION: -
- You're running an unknown version of Headphones. Click here to update -
- % elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win': -
- A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Click here to update -
- % endif - - - -
- ${next.headerIncludes()} -
-
- -
- ${next.body()} -
- - -
- - - - ${next.javascriptIncludes()} - - - - - - - - -<%def name="javascriptIncludes()"> -<%def name="headIncludes()"> -<%def name="headerIncludes()"> diff --git a/data/interfaces/remix/config.html b/data/interfaces/remix/config.html deleted file mode 100644 index 29727398..00000000 --- a/data/interfaces/remix/config.html +++ /dev/null @@ -1,487 +0,0 @@ -<%inherit file="base.html"/> -<%! - import headphones -%> - -<%def name="headerIncludes()"> -
- -
- -<%def name="body()"> -
-

-

-
-
-

Web Interface

- - - - - - - - - - - - - - - - -
-

HTTP Host:

-
- i.e. localhost or 0.0.0.0 -
-

HTTP Username:

- -
-

HTTP Port:

- -
-

HTTP Password:

- -
-

Launch Browser on Startup:

-
-
-
-

Download Settings

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

SABnzbd:

-
-

SABnzbd Host:


- - usually http://localhost:8080 -
-

SABnzbd Username:

-
-

SABnzbd API:

-
-

SABnzbd Password:

-
-

SABnzbd Category:

-
-

Music Download Directory:


- - Full path to the directory where SAB downloads your music
- i.e. /Users/name/Downloads/music
-
-

Use Black Hole:

-
-

Black Hole Directory:


- - Folder your Download program watches for NZBs -
-

Usenet Retention:

-
-



Torrent:

-
-

Black Hole Directory:


- - Folder your Download program watches for Torrents -
-

Minimum seeders:


- - Number of minimum seeders a torrent must have to be accepted -
-

Music Download Directory:


- - Full path to the directory where your torrent client downloads your music
- i.e. /Users/name/Downloads/music
-
-
-
-

Search Providers

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

SABnzbd:

-
-

NZBMatrix:

-
-

NZBMatrix Username:

- -
-

NZBMatrix API:

- -
-

Newznab:

-
-

Newznab Host:

-
- i.e. http://nzb.su -
-

Newznab API:

- -
-

NZBs.org:

-
- -

NZBs.org UID:

- - -
- -

NZBs.org Hash:

- - -
-

Newzbin:

-
-

Newzbin UID:

- - -
-

Newzbin Password:

- -
-



Torrent:


-
-

Isohunt:


-
-

Mininova:


-
-

Kick Ass Torrents:

-
-
-
-

Quality & Post Processing

- - - - - - - - - - -
-

Album Quality:


-

Highest Quality excluding Lossless

-

Highest Quality including Lossless

-

Lossless Only

-

Preferred Bitrate: - kbps

- Auto-Detect Preferred Bitrate -
-

Post-Processing:

-

Move downloads to Destination Folder

-

Rename files

-

Correct metadata

-

Delete leftover files (.m3u, .nfo, .sfv, .nzb, etc.)

-

Add album art as 'folder.jpg' to album folder

-

Embed album art in each file

-

Embed lyrics

-
-
- -

Path to Destination folder:

-
- i.e. /Users/name/Music/iTunes or /Volumes/share/music -
-
-
-

Advanced Settings

- - - - - - - - - - -
-

Renaming Options:

-
-

Folder Format:


- Use: artist, album, year, releasetype and first (first letter in artist name)
- E.g.: first/artist/album [year] = G/Girl Talk/All Day [2010]
-

-

File Format:

-
- Use: tracknumber, title, artist, album and year -
-

Miscellaneous:

-
-

Automatically Include Extras When Adding an Artist

- (EPs, Compilations, Live Albums, Remix Albums and Singles) -

-

Interface: -

-

Log Directory:

-
-

Re-Encoding Options:

- Note: this option requires the lame or ffmpeg encoder -

-

Re-encode downloads during postprocessing

-
-
-

Only re-encode lossless files (.flac)

-
- <% - if config['encoder'] == 'lame': - lameselect = 'selected="selected"' - ffmpegselect = '' - else: - lameselect = '' - ffmpegselect = 'selected="selected"' - %> -

Encoder: - - Format:

-
- -

Audio Properties:

-
-

VBR/CBR: - - Quality:

- -
-

Bitrate: - - <% - if config["samplingfrequency"] == 44100: - freq44100 = 'selected="selected"' - freq48000 = '' - else: - freq44100 = '' - freq48000 = 'selected="selected"' - %> - Sampling:

-
-
-

Advanced Encoding Options:

-

- (ignores audio properties) -

- -
-

Path to Encoder:

-
-
-

Prowl Notification:

-
-

Enabled Prowl Notification


-
-

API key:



-

Notify on snatch?


-

Priority (-2,-1,0,1 or 2):

-
-
-
- -


- (Web Interface changes require a restart to take effect) - - - -<%def name="javascriptIncludes()"> - - diff --git a/data/interfaces/remix/extras.html b/data/interfaces/remix/extras.html deleted file mode 100644 index d9dbbe2f..00000000 --- a/data/interfaces/remix/extras.html +++ /dev/null @@ -1,13 +0,0 @@ -<%inherit file="base.html" /> -<%def name="body()"> -

-

Artists You Might Like

-
- -
-
- diff --git a/data/interfaces/remix/history.html b/data/interfaces/remix/history.html deleted file mode 100644 index ac7c4f6d..00000000 --- a/data/interfaces/remix/history.html +++ /dev/null @@ -1,85 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import helpers -%> - -<%def name="headerIncludes()"> -
- -
- - -<%def name="body()"> -
- History -
- - - - - - - - - - - - %for item in history: - <% - if item['Status'] == 'Processed': - grade = 'A' - elif item['Status'] == 'Snatched': - grade = 'C' - elif item['Status'] == 'Unprocessed': - grade = 'X' - else: - grade = 'U' - - fileid = 'unknown' - if item['URL'].find('nzb') != -1: - fileid = 'nzb' - if item['URL'].find('torrent') != -1: - fileid = 'torrent' - %> - - - - - - - - %endfor - -
Date AddedFile NameSizeStatus
${item['DateAdded']}${item['Title']} [${fileid}][album page]${helpers.bytes_to_mb(item['Size'])}${item['Status']}[retry][new]
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/index.html b/data/interfaces/remix/index.html deleted file mode 100644 index 83a594b6..00000000 --- a/data/interfaces/remix/index.html +++ /dev/null @@ -1,86 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import helpers -%> - -<%def name="body()"> - - - - - - - - - - - %for artist in artists: - <% - totaltracks = artist['TotalTracks'] - havetracks = artist['HaveTracks'] - if not havetracks: - havetracks = 0 - try: - percent = (havetracks*100.0)/totaltracks - if percent > 100: - percent = 100 - except (ZeroDivisionError, TypeError): - percent = 0 - totaltracks = '?' - - if artist['ReleaseDate'] and artist['LatestAlbum']: - releasedate = artist['ReleaseDate'] - albumdisplay = '%s (%s)' % (artist['LatestAlbum'], artist['ReleaseDate']) - if releasedate > helpers.today(): - grade = 'A' - else: - grade = 'Z' - elif artist['LatestAlbum']: - releasedate = '' - grade = 'Z' - albumdisplay = '%s' % artist['LatestAlbum'] - else: - releasedate = '' - grade = 'Z' - albumdisplay = 'None' - - if artist['Status'] == 'Paused': - grade = 'X' - - %> - - - - - - - %endfor - -
Artist NameStatusLatest AlbumHave
${artist['ArtistName']}${artist['Status']}${albumdisplay}
${havetracks}/${totaltracks}
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/logs.html b/data/interfaces/remix/logs.html deleted file mode 100644 index 98004034..00000000 --- a/data/interfaces/remix/logs.html +++ /dev/null @@ -1,60 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import helpers -%> - -<%def name="body()"> - - - - - - - - - - %for line in lineList: - <% - timestamp, message, level, threadname = line - - if level == 'WARNING' or level == 'ERROR': - grade = 'X' - else: - grade = 'Z' - %> - - - - - - %endfor - -
TimestampLevelMessage
${timestamp}${level}${message}
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/manage.html b/data/interfaces/remix/manage.html deleted file mode 100644 index cf5a476a..00000000 --- a/data/interfaces/remix/manage.html +++ /dev/null @@ -1,74 +0,0 @@ -<%inherit file="base.html" /> -<%! - import headphones - from headphones.helpers import checked -%> -<%def name="headerIncludes()"> -
- -
- - -<%def name="body()"> -
-

-

-
-

Scan Music Library


- Where do you keep your music?

- You can put in any directory, and it will scan for audio files in that folder - (including all subdirectories)

For example: '/Users/name/Music' -

- It may take a while depending on how many files you have. You can navigate away from the page
- as soon as you click 'Submit' -

-
- %if headphones.MUSIC_DIR: - - %else: - - %endif -
-

Automatically add new artists

-

-
-
- -
-

Import Last.FM Artists


- Enter the username whose artists you want to import:

-
- <% - if headphones.LASTFM_USERNAME: - lastfmvalue = headphones.LASTFM_USERNAME - else: - lastfmvalue = 'Last.fm Username' - %> - -


-
- -
-

Placeholder :-)


-

-
- -


-
- -
-

Force Search


-

Force Check for Wanted Albums

-

Force Update Active Artists

-

Force Post-Process Albums in Download Folder



-

Check for Headphones Updates

-
- \ No newline at end of file diff --git a/data/interfaces/remix/manageartists.html b/data/interfaces/remix/manageartists.html deleted file mode 100644 index 368d653c..00000000 --- a/data/interfaces/remix/manageartists.html +++ /dev/null @@ -1,82 +0,0 @@ -<%inherit file="base.html" /> - -<%def name="body()"> -
-

Manage Artists

-

-
-

- - selected artists - -

- - - - - - - - - - - %for artist in artists: - <% - if artist['Status'] == 'Paused': - grade = 'X' - elif artist['Status'] == 'Loading': - grade = 'C' - else: - grade = 'Z' - - if artist['ReleaseDate'] and artist['LatestAlbum']: - releasedate = artist['ReleaseDate'] - albumdisplay = '%s (%s)' % (artist['LatestAlbum'], artist['ReleaseDate']) - elif artist['LatestAlbum']: - releasedate = '' - albumdisplay = '%s' % artist['LatestAlbum'] - else: - releasedate = '' - albumdisplay = 'None' - %> - - - - - - - %endfor - -
Artist NameStatusLatest Album
${artist['ArtistName']}${artist['Status']}${albumdisplay}
-
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/managenew.html b/data/interfaces/remix/managenew.html deleted file mode 100644 index bea493b2..00000000 --- a/data/interfaces/remix/managenew.html +++ /dev/null @@ -1,52 +0,0 @@ -<%inherit file="base.html" /> -<%! - import headphones -%> -<%def name="body()"> -
-

Manage New Artists

-

Scan Music Library

-
-
-

- Add selected artists - -

- - - - - - - - - %for artist in headphones.NEW_ARTISTS: - - - - - %endfor - -
Artist Name
${artist}
-
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/searchresults.html b/data/interfaces/remix/searchresults.html deleted file mode 100644 index b02fedd6..00000000 --- a/data/interfaces/remix/searchresults.html +++ /dev/null @@ -1,70 +0,0 @@ -<%inherit file="base.html" /> - -<%def name="body()"> - -
-

Search Results

-

- - - - %if type == 'album': - - %endif - - - - - - - %if searchresults: - %for result in searchresults: - <% - if result['score'] == 100: - grade = 'A' - else: - grade = 'Z' - %> - - %if type == 'album': - - %endif - - - %if type == 'album': - - %else: - - %endif - - %endfor - %endif - -
Album NameArtist NameScore
${result['title']}${result['uniquename']}${result['score']}Add this albumAdd this artist
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/remix/shutdown.html b/data/interfaces/remix/shutdown.html deleted file mode 100644 index be7ca21d..00000000 --- a/data/interfaces/remix/shutdown.html +++ /dev/null @@ -1,13 +0,0 @@ -<%inherit file="base.html"/> - -<%def name="headIncludes()"> - - - -<%def name="body()"> -
-
-

Headphones is ${message}

-
-
- \ No newline at end of file diff --git a/data/interfaces/remix/style.css b/data/interfaces/remix/style.css deleted file mode 100755 index 28fc9c97..00000000 --- a/data/interfaces/remix/style.css +++ /dev/null @@ -1,298 +0,0 @@ -/* HTML5 ✰ Boilerplate */ - -html, body, div, span, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, -small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, figcaption, figure, -footer, header, hgroup, menu, nav, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; -} - -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} - -blockquote, q { quotes: none; } -blockquote:before, blockquote:after, -q:before, q:after { content: ''; content: none; } -ins { background-color: #ff9; color: #000; text-decoration: none; } -mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; } -del { text-decoration: line-through; } -abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; } -table { border-collapse: collapse; border-spacing: 0; } -hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } -input, select { vertical-align: middle; } - -body { font:13px/1.231 sans-serif; *font-size:small; } -select, input, textarea, button { font:99% sans-serif; } -pre, code, kbd, samp { font-family: monospace, sans-serif; } - -html { overflow-y: scroll; } -a:hover, a:active { outline: none; } -ul, ol { margin-left: 2em; } -ol { list-style-type: decimal; } -nav ul, nav li { margin: 0; list-style:none; list-style-image: none; } -small { font-size: 85%; } -strong, th { font-weight: bold; } -td { vertical-align: top; } - -sub, sup { font-size: 75%; line-height: 0; position: relative; } -sup { top: -0.5em; } -sub { bottom: -0.25em; } - -pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 15px; } -textarea { overflow: auto; } -.ie6 legend, .ie7 legend { margin-left: -7px; } -input[type="radio"] { vertical-align: text-bottom; } -input[type="checkbox"] { vertical-align: bottom; } -.ie7 input[type="checkbox"] { vertical-align: baseline; } -.ie6 input { vertical-align: text-bottom; } -label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; } -button, input, select, textarea { margin: 0; } -input:valid, textarea:valid { } -input:invalid, textarea:invalid { border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red; } -.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; } - -::-moz-selection{ background: grey; color:#fff; text-shadow: none; } -::selection { background: grey; color:#fff; text-shadow: none; } - -button { width: auto; overflow: visible; } -.ie7 img { -ms-interpolation-mode: bicubic; } - -body, select, input, textarea { color: #444; } -h1, h2, h3, h4, h5, h6 { font-weight: bold; } - -/* - // ========================================== \\ - || || - || Custom Styles || - || || - \\ ========================================== // -*/ - -a:link { - color: orange; - text-decoration: none; - } -a:visited { - color: orange; - text-decoration: none; - } -a:hover { /*this effect is not shown in NN4.xx*/ - color: #999999; - text-decoration: underline; - } -a:active {/*colour in NN4.xx is red*/ - color: #5E2612; - text-decoration: underline; - } -a.blue { - color: blue; - } - -container { } - -body { background-color: black; min-width: 935px; } - -header { min-height: 68px; width: 100%; min-width: 935px; padding-left: 0px; padding-right: 10px; background-color: #black; position: fixed; z-index: 998; } - -h1 { font-size: 24px; } -h2 { font-size: 20px; } -h3 { font-size: 16px; } - -p.indented { padding-top: 20px; margin-left: 20px; font-size: 14px; } -p.center { text-align: center; font-size: 18px; } -.smalltext2 { font-size: 11px; margin-left: 45px; } - -div#updatebar { text-align: center; min-width: 970px; width: 100%; background-color: light-blue; float: left; } -div#logo { float: left; padding-left: 10px; } - -ul#nav { margin: 25px 0 0 0; float: left; list-style-type: none; } -ul#nav li { margin: 40px 0px auto 10px; display: inline; } -ul#nav li a { padding: 5px; font-size: 16px; font-weight: bold; color: white; text-decoration: none; } -ul#nav li a:hover { background-color: #a3e532; } - -div#subhead_container { height: 30px; width:100%; min-width: 1000px; background-color: blue; float: left; list-style-type: none; z-index: 998; overflow: hidden; } -ul#subhead_menu { margin-top: 5px; } -ul#subhead_menu li { width: 100%; height: 100%; display: inline; } -ul#subhead_menu li a { padding: 5px 15px 10px 15px; vertical-align: middle; color: white; font-size: 16px; text-decoration: none; } -ul#subhead_menu li a:hover { width: 100%; height: 100%; background-color: #grey; } - -div#searchbar { margin: 24px 30px auto auto; float: right; } - -div#main { margin: 0; padding: 80px 0 0 0; } - -.table_wrapper { border-radius: 20px; -webkit-border-radius: 20px; -moz-border-radius: 20px; width: 88%; margin: 20px auto 0 auto; padding: 25px; background-color: white; position: relative; min-height: 200px; clear: both; _height: 302px; zoom: 1; } -.manage_wrapper { width: 88%; margin: 20px auto 0 auto; padding: 25px; min-height: 150px; clear: both; _height: 302px; zoom: 1; } -.table_wrapper_left { padding: 25px; background-color: #ffffff; float: left; width: 40%; min-height: 100px; margin-top: 25px; margin-left: 30px; margin-right: auto; -moz-border-radius: 20px; border-radius: 20px; } -.table_wrapper_right{ padding: 25px; background-color: #ffffff; width: 40%; min-height: 100px; margin-top: 25px; margin-left: auto; margin-right: 30px; -moz-border-radius: 20px; border-radius: 20px; } - -.configtable { font-size: 14px; line-height:18px; } -.configtable td { width: 350px; padding: 10px; } -.configtable td#middle { vertical-align: middle; } - -table#artist_table { background-color: white; width: 100%; padding: 20px; } - -table#artist_table th#name { text-align: left; min-width: 200px; } -table#artist_table th#status { text-align: left; min-width: 50px; } -table#artist_table th#album { text-align: left; min-width: 300px; } -table#artist_table th#have { text-align: center; } -table#artist_table td#name { vertical-align: middle; text-align: left; min-width:200px; } -table#artist_table td#status { vertical-align: middle; text-align: left; min-width: 50px; } -table#artist_table td#album { vertical-align: middle; text-align: left; min-width: 300px; } -table#artist_table td#have { vertical-align: middle; } - -div#paddingheader { padding-top: 48px; font-size: 24px; font-weight: bold; text-align: center; } -div#nopaddingheader { font-size: 24px; font-weight: bold; text-align: center; } -table#album_table { background-color: white; } - -table#album_table th#select { vertical-align: middle; text-align: left; min-width: 25px; } -table#album_table th#albumart { text-align: left; min-width: 50px; } -table#album_table th#albumname { text-align: center; min-width: 150px; } -table#album_table th#reldate { width: 175px; text-align: center; min-width: 100px; } -table#album_table th#status { width: 175px; text-align: center; min-width: 100px; } -table#album_table th#type { width: 175px; text-align: center; min-width: 100px; } -table#album_table td#select { vertical-align: middle; text-align: left; } -table#album_table td#albumart { vertical-align: middle; text-align: left; } -table#album_table td#albumname { vertical-align: middle; text-align: center; } -table#album_table td#reldate { vertical-align: middle; text-align: center; } -table#album_table td#status { vertical-align: middle; text-align: center; } -table#album_table td#type { vertical-align: middle; text-align: center; } -table#album_table td#have { vertical-align: middle; } - -img.albumArt { float: left; padding-right: 5px; } -div#albumheader { padding-top: 48px; height: 200px; } -div#track_wrapper { padding-top: 20px; text-align: center; font-size: 16px; } - -table#track_table th#number { text-align: right; min-width: 20px; } -table#track_table th#name { text-align: center; min-width: 350px; } -table#track_table th#duration { width: 175px; text-align: center; min-width: 100px; } -table#track_table th#have { width: 175px; text-align: center; min-width: 100px; } - -table#track_table td#number { vertical-align: middle; text-align: right; } -table#track_table td#name { vertical-align: middle; text-align: center; } -table#track_table td#duration { vertical-align: middle; text-align: center; } -table#track_table td#have { vertical-align: middle; text-align: center; } - -table#history_table { background-color: white; width: 100%; } - -table#log_table { background-color: white; } - -table#log_table th#timestamp { text-align: left; min-width: 150px; } -table#log_table th#level { text-align: left; min-width: 60px; } -table#log_table th#message { text-align: left; min-width: 500px; } - -table#upcoming_table th#albumart { text-align: center; min-width: 50px; } -table#upcoming_table th#albumname { text-align: center; min-width: 200px; } -table#upcoming_table th#artistname { text-align: center; min-width: 150px; } -table#upcoming_table th#reldate { text-align: center; min-width: 100px; } -table#upcoming_table th#type { text-align: center; min-width: 75px; } - -table#upcoming_table td#select { vertical-align: middle; text-align: center; } -table#upcoming_table td#albumart { vertical-align: middle; text-align: center; min-width: 50px; } -table#upcoming_table td#albumname { vertical-align: middle; text-align: center; min-width: 200px; } -table#upcoming_table td#artistname { vertical-align: middle; text-align: center; min-width: 150px; } -table#upcoming_table td#reldate { vertical-align: middle; text-align: center; min-width: 100px; } -table#upcoming_table td#type { vertical-align: middle; text-align: center; min-width: 75px; } -table#upcoming_table td#status { vertical-align: middle; text-align: center; } - -table#wanted_table th#albumart { text-align: center; min-width: 50px; } -table#wanted_table th#albumname { text-align: center; min-width: 200px; } -table#wanted_table th#artistname { text-align: center; min-width: 150px; } -table#wanted_table th#reldate { text-align: center; min-width: 100px; } -table#wanted_table th#type { text-align: center; min-width: 75px; } - -table#wanted_table td#select { vertical-align: middle; text-align: center; } -table#wanted_table td#albumart { vertical-align: middle; text-align: center; min-width: 50px; } -table#wanted_table td#albumname { vertical-align: middle; text-align: center; min-width: 200px; } -table#wanted_table td#artistname { vertical-align: middle; text-align: center; min-width: 150px; } -table#wanted_table td#reldate { vertical-align: middle; text-align: center; min-width: 100px; } -table#wanted_table td#type { vertical-align: middle; text-align: center; min-width: 75px; } -table#wanted_table td#status { vertical-align: middle; text-align: center; } - -table#searchresults_table th#albumname { text-align: left; min-width: 225px; } -table#searchresults_table th#artistname { text-align: center; min-width: 325px; } -table#searchresults_table th#score { text-align: center; min-width: 75px; } - -table#searchresults_table td#albumname { vertical-align: middle; text-align: left; min-width: 200px; } -table#searchresults_table td#artistname { vertical-align: middle; text-align: left; min-width: 300px; } -table#searchresults_table td#score { vertical-align: middle; text-align: center; min-width: 75px; } - -div.progress-container { border: 1px solid #ccc; width: 100px; height: 14px; margin: 2px 5px 2px 0; padding: 1px; float: left; background: white; } -div.progress-container > div { background-color: #a3e532; height: 14px; } -.havetracks { font-size: 13px; margin-left: 36px; padding-bottom: 3px; vertical-align: middle; } - -footer { margin: 20px auto 20px auto; } -div#version { text-align: center; font-weight: bold; } -div#donate { text-align: center; margin: 20px auto 20px auto; } - -div#shutdown{ text-align: center; vertical-align: middle; } - -.cloudtag { padding-top: 30px; font-size:16px; } -#cloud a.tag1 { font-size: 0.7em; font-weight: 100; } -#cloud a.tag2 { font-size: 0.8em; font-weight: 200; } -#cloud a.tag3 { font-size: 0.9em; font-weight: 300; } -#cloud a.tag4 { font-size: 1.0em; font-weight: 400; } -#cloud a.tag5 { font-size: 1.2em; font-weight: 500; } -#cloud a.tag6 { font-size: 1.4em; font-weight: 600; } -#cloud a.tag7 { font-size: 1.6em; font-weight: 700; } -#cloud a.tag8 { font-size: 1.8em; font-weight: 800; } -#cloud a.tag9 { font-size: 2.2em; font-weight: 900; } -#cloud a.tag10 { font-size: 2.5em; font-weight: 900; } - -#cloud { padding: 2px; line-height: 1.5em; text-align: center; } -#cloud a { padding: 0px; } -#cloud { margin: 0; } -#cloud li { display: inline; } - - - -.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; } -.hidden { display: none; visibility: hidden; } -.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } -.visuallyhidden.focusable:active, -.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } -.invisible { visibility: hidden; } -.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; } -.clearfix:after { clear: both; } -.clearfix { zoom: 1; } - - -@media all and (orientation:portrait) { - -} - -@media all and (orientation:landscape) { - -} - -@media screen and (max-device-width: 480px) { - - html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } -} - - -@media print { - * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; - -ms-filter: none !important; } - a, a:visited { color: #444 !important; text-decoration: underline; } - a[href]:after { content: " (" attr(href) ")"; } - abbr[title]:after { content: " (" attr(title) ")"; } - .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } - pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } - thead { display: table-header-group; } - tr, img { page-break-inside: avoid; } - @page { margin: 0.5cm; } - p, h2, h3 { orphans: 3; widows: 3; } - h2, h3{ page-break-after: avoid; } -} \ No newline at end of file diff --git a/data/interfaces/remix/upcoming.html b/data/interfaces/remix/upcoming.html deleted file mode 100644 index 5c209056..00000000 --- a/data/interfaces/remix/upcoming.html +++ /dev/null @@ -1,86 +0,0 @@ -<%inherit file="base.html" /> -<%def name="body()"> -
-

Upcoming Albums

- - - - - - - - - - - - - %for album in upcoming: - - - - - - - - - %endfor - -
ArtistAlbum NameRelease DateTypeStatus
${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}${album['Status']}
-
- -
-

Mark selected albums as - - -

-
-

Wanted Albums

- - - - - - - - - - - - - %for album in wanted: - - - - - - - - %endfor - -
ArtistAlbum NameRelease DateType
- ${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}
- -
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file