2020-04-07 22:19:27 +00:00
<!DOCTYPE html>
< html lang = "en" dir = "ltr" >
< head >
< meta charset = "utf-8" >
< title > deemix< / title >
2020-04-11 10:51:22 +00:00
< link rel = "stylesheet" type = "text/css" href = "/public/css/style.css" >
2020-04-07 22:19:27 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=0" >
< / head >
< body >
2020-04-16 13:14:11 +00:00
< aside role = "navigation" id = "sidebar" >
2020-04-07 22:19:27 +00:00
< i class = "material-icons side_icon" > menu< / i >
2020-04-17 20:11:53 +00:00
< i id = "main_search_tablink" class = "main_tablinks" > < / i >
< i role = "link" aria-label = "home" id = "main_home_tablink" class = "material-icons side_icon main_tablinks" > home< / i >
< i role = "link" aria-label = "charts" id = "main_charts_tablink" class = "material-icons side_icon main_tablinks" > bubble_chart< / i >
< i role = "link" aria-label = "favorites" id = "main_favorites_tablink" class = "material-icons side_icon main_tablinks" > album< / i >
< i role = "link" aria-label = "link analyzer" id = "main_analyzer_tablink" class = "material-icons side_icon main_tablinks" > link< / i >
< i role = "link" aria-label = "settings" id = "main_settings_tablink" class = "material-icons side_icon main_tablinks" > settings< / i >
< i role = "link" aria-label = "about" id = "main_about_tablink" class = "material-icons side_icon main_tablinks" > info< / i >
2020-04-07 22:19:27 +00:00
< / aside >
< main id = "main_content" >
< div id = "middle_section" >
2020-04-18 08:16:58 +00:00
< header id = "search" > < input id = "searchbar" autocomplete = "off" type = "text" name = "searchbar" value = "" placeholder = "Search..." autofocus > < / header >
2020-04-08 16:43:35 +00:00
< section id = "content" > < div id = "container" >
2020-04-19 16:55:24 +00:00
<!-- <div id="v - app"><app/></div> -->
2020-04-17 19:33:46 +00:00
< div id = "search_tab" class = "main_tabcontent" >
< div class = "tab" >
< button class = "search_tablinks" id = "search_all_tab" onclick = "changeTab(event, 'search', 'main_search')" > All< / button >
< button class = "search_tablinks" id = "search_track_tab" onclick = "changeTab(event, 'search', 'track_search')" > Tracks< / button >
< button class = "search_tablinks" id = "search_album_tab" onclick = "changeTab(event, 'search', 'album_search')" > Album< / button >
< button class = "search_tablinks" id = "search_artist_tab" onclick = "changeTab(event, 'search', 'artist_search')" > Artist< / button >
< button class = "search_tablinks" id = "search_playlist_tab" onclick = "changeTab(event, 'search', 'playlist_search')" > Playlist< / button >
< / div >
< div id = "search_tab_content" >
<!-- ### Main Search Tab ### -->
< div id = "main_search" class = "search_tabcontent" >
2020-04-19 17:22:21 +00:00
< template v-for = "section in results.allTab.ORDER" >
< div v-if = "(section != 'TOP_RESULT' && results.allTab[section].data.length > 0) || (results.allTab[section].length > 0)" class = "search_section" >
2020-04-17 19:33:46 +00:00
< h1 v-on:click = "changeSearchTab(section)" > {{ names[section] }}< / h1 >
<!-- Top result -->
2020-04-19 17:22:21 +00:00
< div v-if = "section == 'TOP_RESULT'" class = "top_result clickable" v-on:click = "window[results.allTab.TOP_RESULT[0].type+'View'](event)" v-bind:data-id = "results.allTab.TOP_RESULT[0].id" >
2020-04-17 19:33:46 +00:00
< div class = "cover_container" >
2020-04-19 17:22:21 +00:00
< img v-bind:src = "results.allTab.TOP_RESULT[0].picture" v-bind:class = "(results.allTab.TOP_RESULT[0].type == 'artist' ? 'circle' : 'rounded') + ' coverart'" > < / img >
< div role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "results.allTab.TOP_RESULT[0].link" class = "download_overlay" > < i class = "material-icons" > get_app< / i > < / div >
2020-04-17 19:33:46 +00:00
< / div >
< div class = "info_box" >
2020-04-19 17:22:21 +00:00
< p class = "primary-text" > {{ results.allTab.TOP_RESULT[0].title }}< / p >
< p class = "secondary-text" > {{ results.allTab.TOP_RESULT[0].type == 'artist' ? numberWithDots(results.allTab.TOP_RESULT[0].nb_fan) + ' fans' : 'by '+results.allTab.TOP_RESULT[0].artist+' - '+results.allTab.TOP_RESULT[0].nb_song+' tracks'}}< / p >
< span class = "tag" > {{ results.allTab.TOP_RESULT[0].type.charAt(0).toUpperCase() + results.allTab.TOP_RESULT[0].type.substring(1)}}< / span >
2020-04-17 19:33:46 +00:00
< / div >
< / div >
2020-04-19 17:22:21 +00:00
< div v-else-if = "section == 'TRACK'" >
2020-04-17 19:33:46 +00:00
< table class = "tracks_table" >
2020-04-19 17:22:21 +00:00
< tr v-for = "track in results.allTab.TRACK.data.slice(0, 6)" class = "track_row" >
2020-04-17 19:33:46 +00:00
< td style = "width: 48px; text-align: center;" > < img class = "rounded coverart" v-bind:src = "'https://e-cdns-images.dzcdn.net/images/cover/'+track.ALB_PICTURE+'/32x32-000000-80-0-0.jpg'" > < / td >
< td class = "breakline" > {{track.SNG_TITLE + (track.VERSION ? ' '+track.VERSION : '')}}< / td >
2020-04-18 13:42:00 +00:00
< td class = "breakline" > < span class = "clickable" v-on:click = "artistView(event)" v-bind:data-id = "artist.ART_ID" v-for = "artist in track.ARTISTS" > {{artist.ART_NAME}} < / span > < / td >
< td class = "breakline clickable" v-on:click = "albumView(event)" v-bind:data-id = "track.ALB_ID" > {{track.ALB_TITLE}}< / td >
2020-04-17 19:33:46 +00:00
< td > {{convertDuration(track.DURATION)}}< / td >
< td role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "'https://www.deezer.com/track/'+track.SNG_ID" style = "width: 56px; text-align: center;" class = "clickable" > < i class = "material-icons" > get_app< / i > < / td >
< / tr >
< / table >
< / div >
2020-04-19 17:22:21 +00:00
< div v-else-if = "section == 'ARTIST'" class = "release_grid firstrow_only" >
< div v-for = "release in results.allTab.ARTIST.data.slice(0, 10)" class = "release clickable" v-on:click = "artistView(event)" v-bind:data-id = "release.ART_ID" >
2020-04-17 19:33:46 +00:00
< div class = "cover_container" >
2020-04-19 17:22:21 +00:00
< img class = "circle coverart" v-bind:src = "'https://e-cdns-images.dzcdn.net/images/artist/' + release.ART_PICTURE + '/156x156-000000-80-0-0.jpg'" >
< div role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "'https://deezer.com/artist/'+release.ART_ID" class = "download_overlay" > < i class = "material-icons" > get_app< / i > < / div >
2020-04-17 19:33:46 +00:00
< / div >
2020-04-19 17:22:21 +00:00
< p class = "primary-text" > {{release.ART_NAME}}< / p >
< p class = "secondary-text" > {{numberWithDots(release.NB_FAN) + ' fans'}}< / p >
< / div >
< / div >
< div v-else-if = "section == 'ALBUM'" class = "release_grid firstrow_only" >
< div v-for = "release in results.allTab.ALBUM.data.slice(0, 10)" class = "release clickable" v-on:click = "albumView(event)" v-bind:data-id = "release.ALB_ID" >
< div class = "cover_container" >
< img class = "rounded coverart" v-bind:src = "'https://e-cdns-images.dzcdn.net/images/cover/' + release.ALB_PICTURE + '/156x156-000000-80-0-0.jpg'" >
< div role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "'https://deezer.com/album/'+release.ALB_ID" class = "download_overlay" > < i class = "material-icons" > get_app< / i > < / div >
< / div >
< p class = "primary-text" > {{release.ALB_TITLE}}< / p >
< p class = "secondary-text" > {{release.ART_NAME+' - '+release.NUMBER_TRACK+' tracks'}}< / p >
< / div >
< / div >
< div v-else-if = "section == 'PLAYLIST'" class = "release_grid firstrow_only" >
< div v-for = "release in results.allTab.PLAYLIST.data.slice(0, 10)" class = "release clickable" v-on:click = "playlistView(event)" v-bind:data-id = "release.PLAYLIST_ID" >
< div class = "cover_container" >
< img class = "rounded coverart" v-bind:src = "'https://e-cdns-images.dzcdn.net/images/'+ release.PICTURE_TYPE +'/' + release.PLAYLIST_PICTURE + '/156x156-000000-80-0-0.jpg'" >
< div role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "'https://deezer.com/playlist/'+release.PLAYLIST_ID" class = "download_overlay" > < i class = "material-icons" > get_app< / i > < / div >
< / div >
< p class = "primary-text" > {{ release.TITLE }}< / p >
< p class = "secondary-text" > {{release.NB_SONG+' tracks'}}< / p >
2020-04-17 19:33:46 +00:00
< / div >
< / div >
< / div >
< / template >
2020-04-19 17:22:21 +00:00
< div v-if = "results.allTab.ORDER.every(section => section == 'TOP_RESULT' ? results.allTab[section].length == 0 : results.allTab[section].data.length == 0)" >
2020-04-17 19:33:46 +00:00
< h1 > No results< / h1 >
< / div >
< / div >
<!-- ### Track Search Tab ### -->
< div id = "track_search" class = "search_tabcontent" >
2020-04-19 17:22:21 +00:00
< div v-if = "!results.trackTab.loaded" >
< h1 > Loading< / h1 >
< / div >
< div v-else-if = "results.trackTab.data.length == 0" >
2020-04-17 19:33:46 +00:00
< h1 > No Tracks found< / h1 >
< / div >
2020-04-19 17:22:21 +00:00
< table class = "tracks_table" v-if = "results.trackTab.data.length > 0" >
2020-04-17 19:33:46 +00:00
< tr >
< th style = "width: 48px;" > < / th >
< th > Title< / th >
< th > Artists< / th >
< th > Album< / th >
< th > < i class = "material-icons" > timer< / i > < / th >
< th style = "width: 56px;" > < / th >
< / tr >
2020-04-19 17:22:21 +00:00
< tr v-for = "track in results.trackTab.data" class = "track_row" >
< td style = "width: 48px; text-align: center;" > < img class = "rounded coverart" v-bind:src = "track.album.cover_small" > < / td >
< td class = "breakline" > {{track.title + (track.title_version ? ' '+track.title_version : '')}}< / td >
< td class = "breakline" class = "clickable" v-on:click = "artistView(event)" v-bind:data-id = "track.artist.id" > {{track.artist.name}}< / td >
< td class = "breakline clickable" v-on:click = "albumView(event)" v-bind:data-id = "track.album.id" > {{track.album.title}}< / td >
< td > {{convertDuration(track.duration)}}< / td >
< td role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "track.link" style = "width: 56px; text-align: center;" class = "clickable" > < i class = "material-icons" > get_app< / i > < / td >
2020-04-17 19:33:46 +00:00
< / tr >
< / table >
< / div >
<!-- ### Album Search Tab ### -->
< div id = "album_search" class = "search_tabcontent" >
2020-04-19 17:22:21 +00:00
< div v-if = "!results.albumTab.loaded" >
< h1 > Loading< / h1 >
< / div >
< div v-else-if = "results.albumTab.data.length == 0" >
2020-04-17 19:33:46 +00:00
< h1 > No Albums found< / h1 >
< / div >
2020-04-19 17:22:21 +00:00
< div class = "release_grid" v-if = "results.albumTab.data.length > 0" >
< div v-for = "release in results.albumTab.data" class = "release clickable" v-on:click = "albumView(event)" v-bind:data-id = "release.id" >
2020-04-17 19:33:46 +00:00
< div class = "cover_container" >
2020-04-19 17:22:21 +00:00
< img class = "rounded coverart" v-bind:src = "release.cover_medium" >
< div role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "release.link" class = "download_overlay" > < i class = "material-icons" > get_app< / i > < / div >
2020-04-17 19:33:46 +00:00
< / div >
2020-04-19 17:22:21 +00:00
< p class = "primary-text" > {{ release.title }}< / p >
< p class = "secondary-text" > {{ 'by '+release.artist.name+' - '+release.nb_tracks+' tracks' }}< / p >
2020-04-17 19:33:46 +00:00
< / div >
< / div >
< / div >
<!-- ### Artist Search Tab ### -->
< div id = "artist_search" class = "search_tabcontent" >
2020-04-19 17:22:21 +00:00
< div v-if = "!results.artistTab.loaded" >
< h1 > Loading< / h1 >
< / div >
< div v-else-if = "results.artistTab.data.length == 0" >
2020-04-17 19:33:46 +00:00
< h1 > No Artists found< / h1 >
< / div >
2020-04-19 17:22:21 +00:00
< div class = "release_grid" v-if = "results.artistTab.data.length > 0" >
< div v-for = "release in results.artistTab.data" class = "release clickable" v-on:click = "artistView(event)" v-bind:data-id = "release.id" >
2020-04-17 19:33:46 +00:00
< div class = "cover_container" >
2020-04-19 17:22:21 +00:00
< img class = "circle coverart" v-bind:src = "release.picture_medium" >
< div role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "release.link" class = "download_overlay" > < i class = "material-icons" > get_app< / i > < / div >
2020-04-17 19:33:46 +00:00
< / div >
2020-04-19 17:22:21 +00:00
< p class = "primary-text" > {{ release.name }}< / p >
< p class = "secondary-text" > {{ release.nb_album + ' releases' }}< / p >
2020-04-17 19:33:46 +00:00
< / div >
< / div >
< / div >
<!-- ### Playlist Search Tab ### -->
< div id = "playlist_search" class = "search_tabcontent" >
2020-04-19 17:22:21 +00:00
< div v-if = "!results.playlistTab.loaded" >
< h1 > Loading< / h1 >
< / div >
< div v-else-if = "results.playlistTab.data.length == 0" >
2020-04-17 19:33:46 +00:00
< h1 > No Playlists found< / h1 >
< / div >
2020-04-19 17:22:21 +00:00
< div class = "release_grid" v-if = "results.playlistTab.data.length > 0" >
< div v-for = "release in results.playlistTab.data" class = "release clickable" v-on:click = "playlistView(event)" v-bind:data-id = "release.id" >
2020-04-17 19:33:46 +00:00
< div class = "cover_container" >
2020-04-19 17:22:21 +00:00
< img class = "rounded coverart" v-bind:src = "release.picture_medium" >
< div role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "release.link" class = "download_overlay" > < i class = "material-icons" > get_app< / i > < / div >
2020-04-17 19:33:46 +00:00
< / div >
2020-04-19 17:22:21 +00:00
< p class = "primary-text" > {{ release.title }}< / p >
< p class = "secondary-text" > {{ 'by '+release.user.name+' - '+release.nb_tracks+' tracks' }}< / p >
2020-04-17 19:33:46 +00:00
< / div >
< / div >
< / div >
< / div >
< / div >
2020-04-13 18:20:58 +00:00
2020-04-11 10:51:22 +00:00
< div id = "home_tab" class = "main_tabcontent" >
< h1 > Home< / h1 >
< / div >
2020-04-13 18:20:58 +00:00
2020-04-09 10:50:05 +00:00
< div id = "charts_tab" class = "main_tabcontent" > < h1 > Charts< / h1 > < / div >
2020-04-13 18:20:58 +00:00
2020-04-09 10:50:05 +00:00
< div id = "favorites_tab" class = "main_tabcontent" > < h1 > Favorites< / h1 > < / div >
2020-04-13 18:20:58 +00:00
2020-04-09 10:50:05 +00:00
< div id = "analyzer_tab" class = "main_tabcontent" > < h1 > Link Analyzer< / h1 > < / div >
2020-04-13 18:20:58 +00:00
2020-04-14 17:58:54 +00:00
< div id = "settings_tab" class = "main_tabcontent fixed_footer" >
2020-04-11 19:55:12 +00:00
< h1 > Settings< / h1 >
2020-04-18 08:08:34 +00:00
< div id = "logged_in_info" class = "inline-flex" >
2020-04-12 22:14:34 +00:00
< img id = "settings_picture" src = "" alt = "Profile Picture" class = "circle" style = "width: 125px;height:125px; margin-right: 12px;" / >
2020-04-18 08:08:34 +00:00
< div >
< p > You are logged in as < b id = "settings_username" > < / b > < / p >
2020-04-19 16:55:24 +00:00
< button id = "settings_btn_logout" > Logout< / button >
2020-04-18 08:08:34 +00:00
< / div >
2020-04-12 22:14:34 +00:00
< / div >
< div class = "inline-flex" >
< input autocomplete = "off" type = "password" id = "login_input_arl" placeholder = "ARL" / >
2020-04-19 16:55:24 +00:00
< button id = "settings_btn_copyArl" > < i class = "material-icons" > assignment< / i > < / button >
2020-04-12 22:14:34 +00:00
< / div >
< p > < a href = "https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Login+via+userToken" target = "_blank" > How do I get my own ARL?< / a > < / p >
< p > < button onclick = "loginButton()" style = "width:100%;" id = "settings_btn_updateArl" > Update ARL< / button > < / p >
2020-04-13 18:20:58 +00:00
< div id = "settings_generic_tab" >
< div class = "input_group" >
< p > Download Path< / p >
< input type = "text" v-model = "settings.downloadLocation" >
< / div >
< div class = "input_group" >
< p > Trackname template< / p >
< input type = "text" v-model = "settings.tracknameTemplate" >
< / div >
< div class = "input_group" >
< p > Album track template< / p >
< input type = "text" v-model = "settings.albumTracknameTemplate" >
< / div >
< div class = "input_group" >
2020-04-14 20:16:23 +00:00
< p > Playlist track template< / p >
2020-04-13 18:20:58 +00:00
< input type = "text" v-model = "settings.playlistTracknameTemplate" >
< / div >
2020-04-13 19:17:50 +00:00
< div class = "input_group" >
< p > Create folder for playlist< / p >
< input type = "checkbox" v-model = "settings.createPlaylistFolder" >
< / div >
2020-04-13 18:20:58 +00:00
< div class = "input_group" v-if = "settings.createPlaylistFolder" >
2020-04-15 13:16:55 +00:00
< p > Playlist folder template< / p >
2020-04-13 18:20:58 +00:00
< input type = "text" v-model = "settings.playlistNameTemplate" >
< / div >
2020-04-13 19:17:50 +00:00
< div class = "input_group" >
< p > Create folder for artist< / p >
< input type = "checkbox" v-model = "settings.createArtistFolder" >
< / div >
2020-04-13 18:20:58 +00:00
< div class = "input_group" v-if = "settings.createArtistFolder" >
< p > Artist folder template< / p >
< input type = "text" v-model = "settings.artistNameTemplate" >
< / div >
2020-04-13 19:17:50 +00:00
< div class = "input_group" >
< p > Create folder for album< / p >
< input type = "checkbox" v-model = "settings.createAlbumFolder" >
< / div >
2020-04-13 18:20:58 +00:00
< div class = "input_group" v-if = "settings.createAlbumFolder" >
< p > Album folder template< / p >
< input type = "text" v-model = "settings.albumNameTemplate" >
< / div >
2020-04-13 19:17:50 +00:00
< div class = "input_group" >
< p > Create folder for CDs< / p >
< input type = "checkbox" v-model = "settings.createCDFolder" >
< / div >
< div class = "input_group" >
< p > Create folder structure for playlists< / p >
< input type = "checkbox" v-model = "settings.createStructurePlaylist" >
< / div >
< div class = "input_group" >
< p > Create folder structure for singles< / p >
< input type = "checkbox" v-model = "settings.createSingleFolder" >
< / div >
< div class = "input_group" >
< p > Pad tracks< / p >
< input type = "checkbox" v-model = "settings.padTracks" >
< / div >
< div class = "input_group" >
< p > Overwrite padding size< / p >
< input type = "number" v-model = "settings.paddingSize" >
< / div >
< div class = "input_group" >
< p > Illegal Character replacer< / p >
< input type = "text" v-model = "settings.illegalCharacterReplacer" >
< / div >
< div class = "input_group" >
< p > Concurrent Downloads< / p >
2020-04-15 13:16:55 +00:00
< input type = "number" v-model . number = "settings.queueConcurrency" >
2020-04-13 19:17:50 +00:00
< / div >
< div class = "input_group" >
< p > Preferred Bitrate< / p >
< select v-model = "settings.maxBitrate" >
< option value = "9" > FLAC 1411kbps< / option >
< option value = "3" > MP3 320kbps< / option >
< option value = "1" > MP3 128kbps< / option >
< / select >
< / div >
< div class = "input_group" >
< p > Bitrate fallback< / p >
< input type = "checkbox" v-model = "settings.fallbackBitrate" >
< / div >
< div class = "input_group" >
< p > Search fallback< / p >
< input type = "checkbox" v-model = "settings.fallbackSearch" >
< / div >
< div class = "input_group" >
< p > Create log file for errors< / p >
< input type = "checkbox" v-model = "settings.logErrors" >
< / div >
< div class = "input_group" >
< p > Create log file for searched tracks< / p >
< input type = "checkbox" v-model = "settings.logSearched" >
< / div >
< div class = "input_group" >
< p > Create playlist file< / p >
< input type = "checkbox" v-model = "settings.createM3U8File" >
< / div >
< div class = "input_group" >
< p > Create .lyr files (Sync Lyrics)< / p >
< input type = "checkbox" v-model = "settings.syncedLyrics" >
< / div >
< div class = "input_group" >
< p > Save covers< / p >
< input type = "checkbox" v-model = "settings.saveArtwork" >
< / div >
< div class = "input_group" >
< p > Cover name template< / p >
< input type = "text" v-model = "settings.coverImageTemplate" >
< / div >
< div class = "input_group" >
< p > Save artist image< / p >
< input type = "checkbox" v-model = "settings.saveArtworkArtist" >
< / div >
< div class = "input_group" >
2020-04-14 20:16:23 +00:00
< p > Artist image name template< / p >
2020-04-13 19:17:50 +00:00
< input type = "text" v-model = "settings.artistImageTemplate" >
< / div >
< div class = "input_group" >
2020-04-14 20:16:23 +00:00
< p > Local artwork size< / p >
2020-04-15 13:16:55 +00:00
< input type = "number" min = "100" max = "1800" step = "100" v-model . number = "settings.localArtworkSize" >
2020-04-14 20:16:23 +00:00
< / div >
< div class = "input_group" >
< p > Embedded artwork size< / p >
2020-04-15 13:16:55 +00:00
< input type = "number" min = "100" max = "1800" step = "100" v-model . number = "settings.embeddedArtworkSize" >
2020-04-14 20:16:23 +00:00
< / div >
< div class = "input_group" >
2020-04-13 19:17:50 +00:00
< p > Save images as png< / p >
< input type = "checkbox" v-model = "settings.PNGcovers" >
< / div >
2020-04-16 09:49:56 +00:00
< div class = "input_group" >
< p > JPEG image quality< / p >
< input type = "number" min = "1" max = "100" v-model . number = "settings.jpegImageQuality" >
< / div >
2020-04-13 19:17:50 +00:00
< div class = "input_group" >
< p > Save playlists as compilation< / p >
2020-04-16 09:53:52 +00:00
< input type = "checkbox" v-model = "settings.tags.savePlaylistAsCompilation" >
2020-04-13 19:17:50 +00:00
< / div >
< div class = "input_group" >
< p > Remove album version from track title< / p >
< input type = "checkbox" v-model = "settings.removeAlbumVersion" >
< / div >
< div class = "input_group" >
< p > What should I do with featured artists< / p >
< select v-model = "settings.featuredToTitle" >
< option value = "0" > Nothing< / option >
< option value = "1" > Remove it from the title< / option >
< option value = "2" > Move it to the title< / option >
< / select >
< / div >
< div class = "input_group" >
< p > Title casing< / p >
< select v-model = "settings.titleCasing" >
< option value = "nothing" > Keep unchanged< / option >
< option value = "lower" > lowercase< / option >
< option value = "upper" > UPPERCASE< / option >
< option value = "start" > Start Of Each Word< / option >
< option value = "sentence" > Like a sentence< / option >
< / select >
< / div >
< div class = "input_group" >
< p > Artist casing< / p >
< select v-model = "settings.artistCasing" >
< option value = "nothing" > Keep unchanged< / option >
< option value = "lower" > lowercase< / option >
< option value = "upper" > UPPERCASE< / option >
< option value = "start" > Start Of Each Word< / option >
< option value = "sentence" > Like a sentence< / option >
< / select >
< / div >
2020-04-13 18:20:58 +00:00
< / div >
2020-04-16 08:37:02 +00:00
< div id = "settings_spotify_tab" >
< div class = "input_group" >
< p > Spotify clientID< / p >
< input type = "text" v-model = "spotifyFeatures.clientId" >
< / div >
< div class = "input_group" >
< p > Spotify Client Secret< / p >
< input type = "password" v-model = "spotifyFeatures.clientSecret" >
< / div >
< / div >
2020-04-14 17:58:54 +00:00
< footer >
2020-04-19 16:55:24 +00:00
< button id = "settings_btn_save" > Save< / button >
2020-04-14 17:58:54 +00:00
< / footer >
2020-04-11 19:55:12 +00:00
< / div >
2020-04-13 18:20:58 +00:00
2020-04-09 10:50:05 +00:00
< div id = "about_tab" class = "main_tabcontent" > < h1 > About< / h1 > < / div >
2020-04-13 18:20:58 +00:00
2020-04-18 09:17:39 +00:00
< div id = "artist_tab" class = "main_tabcontent fixed_footer image_header" >
2020-04-18 08:08:34 +00:00
< header class = "inline-flex" v-bind:style = "{ 'background-image': 'linear-gradient(to bottom, transparent 0%, var(--main-background) 100%), url(\''+image+'\')' }" >
2020-04-17 17:39:51 +00:00
< h1 > {{ title }}< / h1 >
2020-04-18 10:12:13 +00:00
< div role = "button" aria-label = "download" v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "link" class = "fab right" > < i class = "material-icons" > get_app< / i > < / div >
2020-04-17 17:39:51 +00:00
< / header >
2020-04-18 08:08:34 +00:00
< div class = "tab" >
2020-04-17 19:04:51 +00:00
< template v-for = "(item, name, index) in body" >
< button v-bind:class = "'selective' + (name==currentTab ? 'active' : '')" v-bind:href = "'#artist_' + name" v-on:click = "changeTab(name)" > {{ name }}< / button >
< / template >
2020-04-17 17:39:51 +00:00
< / div >
< table >
< thead >
< tr >
2020-04-18 08:08:34 +00:00
< th v-for = "data in head" v-on:click = "data.sortKey ? sortBy(data.sortKey) : null" v-bind:class = "{ 'sort-asc': data.sortKey == sortKey && sortOrder == 'asc', 'sort-desc': data.sortKey == sortKey && sortOrder == 'desc', 'sortable': data.sortKey, 'clickable': data.sortKey }" >
2020-04-17 17:39:51 +00:00
{{data.title}}
2020-04-18 08:08:34 +00:00
< / th >
2020-04-17 17:39:51 +00:00
< / tr >
< / thead >
< tbody >
2020-04-18 09:17:39 +00:00
< tr v-for = "release in showTable" >
< td class = "inline-flex clickable" v-on:click = "albumView(event)" v-bind:data-id = "release.id" >
< img class = "rounded" v-bind:src = "release.cover_small" style = "margin-right: 16px;" / >
< i v-if = "release.explicit_lyrics" class = "material-icons" data-tooltip = "Explicit" style = "color:#FF3B30;" > explicit< / i >
{{release.title}}
< i v-if = "checkNewRelease(release.release_date)" class = "material-icons" style = "color:#FF7300;" > fiber_new< / i >
< / td >
< td > {{release.release_date}}< / td >
< td > < i v-on:click = "addToQueue(event)" v-on:contextmenu = "openQualityModal(event)" v-bind:data-link = "release.link" class = "material-icons" > file_download< / i > < / td >
< / tr >
2020-04-17 17:39:51 +00:00
< / tbody >
< / table >
< footer >
< button onclick = "backTab()" > Back< / button >
< / footer >
< / div >
2020-04-18 09:17:39 +00:00
< div id = "tracklist_tab" class = "main_tabcontent fixed_footer image_header" >
< header v-bind:style = "{ 'background-image': 'linear-gradient(to bottom, transparent 0%, var(--main-background) 100%), url(\''+image+'\')' }" >
2020-04-17 17:39:51 +00:00
< h1 > {{ title }} < i v-if = "explicit" class = "material-icons" > explicit< / i > < / h1 >
< h2 > < span v-if = "metadata" > {{ metadata }}< / span > < span v-if = "release_date" > {{ release_date }}< / span > < / h2 >
< / header >
2020-04-18 09:17:39 +00:00
< table >
< thead >
< tr >
< th v-for = "data in head" v-html = "data.title" > < / th >
< / tr >
< / thead >
< tbody >
2020-04-18 09:40:19 +00:00
< template v-for = "track in body" >
< tr v-if = "track.type == 'track'" >
< td > < i class = "material-icons" > play_arrow< / i > < / td >
< td > {{ track.track_position }}< / td >
< td > < i v-if = "track.explicit_lyrics" class = "material-icons" > explicit< / i > {{ track.title }} < span v-if = "track.title_version" > {{track.title_version}}< / span > < / td >
2020-04-18 13:42:00 +00:00
< td class = "clickable" v-on:click = "artistView(event)" v-bind:data-id = "track.artist.id" > {{ track.artist.name }}< / td >
< td class = "clickable" v-if = "type == 'Playlist'" v-on:click = "albumView(event)" v-bind:data-id = "track.album.id" > {{ track.album.title }}< / td >
2020-04-18 09:40:19 +00:00
< td > {{ convertDuration(track.duration) }}< / td >
< td > < input class = "trackCheckbox" type = "checkbox" v-model = "track.selected" > < / td >
< / tr >
2020-04-18 10:08:43 +00:00
< tr v-else-if = "track.type == 'disc_separator'" >
2020-04-18 09:40:19 +00:00
< td colspan = "6" style = "opacity: 0.54;" > < i class = "material-icons" > album< / i > {{ track.number }}< / td >
< / tr >
< / template >
2020-04-18 09:17:39 +00:00
< / tbody >
< / table >
2020-04-18 09:40:19 +00:00
< span v-if = "label" style = "opacity: 0.40;margin-top: 8px;display: inline-block;font-size: 13px;" > {{ label }}< / span >
2020-04-17 17:39:51 +00:00
< footer >
2020-04-18 10:12:13 +00:00
< button v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "link" > Download {{ type }}< / button >
2020-04-18 12:59:58 +00:00
< button v-on:contextmenu = "openQualityModal(event)" v-on:click = "addToQueue(event)" v-bind:data-link = "selectedLinks()" > Download selection< i class = "material-icons right" > file_download< / i > < / button >
2020-04-17 17:39:51 +00:00
< button onclick = "backTab()" > Back< / button >
< / footer >
< / div >
2020-04-08 16:43:35 +00:00
< / div > < / section >
2020-04-07 22:19:27 +00:00
< / div >
2020-04-13 18:20:58 +00:00
2020-04-19 16:55:24 +00:00
< div id = "download_tab_container" class = "tab_hidden" >
< i id = "toggle_download_tab" class = "material-icons download_bar_icon" > < / i >
< div id = "queue_buttons" class = "right" >
< i id = "clean_queue" class = "material-icons download_bar_icon" > clear_all< / i >
< i id = "cancel_queue" class = "material-icons download_bar_icon" > delete_sweep< / i >
2020-04-07 22:19:27 +00:00
< / div >
2020-04-19 16:55:24 +00:00
< div id = "download_list" > < / div >
2020-04-07 22:19:27 +00:00
< / div >
< / main >
2020-04-16 11:38:59 +00:00
< div id = "modal_quality" class = "smallmodal" >
<!-- Modal content -->
< div class = "smallmodal-content" >
2020-04-19 16:55:24 +00:00
< button class = "quality-button" data-quality-value = "9" > Download FLAC< / button > < br >
< button class = "quality-button" data-quality-value = "3" > Download MP3 320kbps< / button > < br >
< button class = "quality-button" data-quality-value = "1" > Download MP3 128kbps< / button > < br >
< button class = "quality-button" data-quality-value = "15" > Download 360 Reality Audio [HQ]< / button > < br >
< button class = "quality-button" data-quality-value = "14" > Download 360 Reality Audio [MQ]< / button > < br >
< button class = "quality-button" data-quality-value = "13" > Download 360 Reality Audio [LQ]< / button > < br >
2020-04-16 11:38:59 +00:00
< / div >
< / div >
2020-04-07 22:19:27 +00:00
< / body >
2020-04-16 17:57:34 +00:00
< script type = "text/javascript" src = "/public/js/vendor/httpVueLoader.js" > < / script >
< script type = "text/javascript" src = "/public/js/vendor/socket.io.js" > < / script >
< script type = "text/javascript" src = "/public/js/vendor/jquery-3.3.1.min.js" > < / script >
< script type = "text/javascript" src = "/public/js/vendor/vue.min.js" > < / script >
2020-04-17 17:39:51 +00:00
< script type = "text/javascript" src = "/public/js/vendor/lodash.min.js" > < / script >
2020-04-16 17:57:34 +00:00
< script type = "text/javascript" src = "/public/js/vendor/toastify.js" > < / script >
2020-04-17 19:33:46 +00:00
<!-- <script type="text/javascript" src="/public/js/app/v - app.js"></script> -->
2020-04-14 17:58:54 +00:00
< script type = "text/javascript" src = "/public/js/app/app.js" > < / script >
2020-04-19 16:55:24 +00:00
< script type = "text/javascript" src = "/public/js/app/settings.js" > < / script >
2020-04-17 17:39:51 +00:00
< script type = "text/javascript" src = "/public/js/app/tabs.js" > < / script >
< script type = "text/javascript" src = "/public/js/app/stackedTabs.js" > < / script >
2020-04-14 17:58:54 +00:00
< script type = "text/javascript" src = "/public/js/app/utils.js" > < / script >
< script type = "text/javascript" src = "/public/js/app/search.js" > < / script >
< script type = "text/javascript" src = "/public/js/app/downloadList.js" > < / script >
2020-04-07 22:19:27 +00:00
< / html >