Update 4.3.0
[DeezloaderRemix.git] / app / views / index.ejs
index ad866838dbfade89b43c236d526d283a7ea0aaf3..38680da40ce1a6677fc67e369d8d405c05919158 100644 (file)
@@ -8,6 +8,16 @@
        <link rel="stylesheet" type="text/css" href="css/animate.css">
        <link rel="stylesheet" type="text/css" href="css/style.css"/>
        <link rel="stylesheet" type="text/css" href="css/darkMode.css" name="darkMode" disabled/>
+       <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png"/>
+       <link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png"/>
+       <link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png"/>
+       <link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#5bbad5"/>
+       <link rel="shortcut icon" href="/favicons/favicon.ico"/>
+       <meta name="msapplication-TileColor" content="#23232c"/>
+       <link rel="manifest" href="/manifest.json"/>
+       <meta name="msapplication-config" content="/favicons/browserconfig.xml"/>
+       <meta name="theme-color" content="#23232c"/>
+       <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=0">
        <script type='text/javascript'>
                if (eval(localStorage.darkMode)){
                        document.getElementsByName("darkMode")[0].removeAttribute("disabled");
@@ -16,7 +26,7 @@
        <meta charset="utf-8"/>
 </head>
 <body>
-<span id="appVersionFallback" hidden>4.2.3</span>
+<span id="appVersionFallback" hidden>4.3.0</span>
 
 <div id="title-bar" class="deezloader-black">
        <div class="resize-padding" style="width: 100%; height: 3px;"></div>
        <div class="resize-padding" style="position: absolute; top:0; right:0px; width: 3px; height: 31px;"></div>
 </div>
 
-<!--#############################################INITIALIZING-SCREEN############################################-->
-<div id="initializing" class="valign-wrapper">
-       <div class="modal-content container" id="login-page">
+<!--##############################################MODAL_LOGIN##############################################-->
+<div id="modal_login" class="modal valign-wrapper modal-fixed-footer">
+       <div class="modal-content" id="login-page">
                <div class="card">
                        <div class="card-content">
                                <span class="card-title"><%= __('Please login to your deezer account')%>.</span>
                                <h6 class="red-text" id="login-res-text"></h6>
-                               <div id="login-form-client-mode">
-                                       <div class="input-field col s12">
-                                               <input autocomplete="off" type="text" id="modal_login_input_username"/>
-                                               <label for="modal_login_input_username"><%= __('Email')%></label>
-                                       </div>
-                                       <div class="input-field col s12">
-                                               <input autocomplete="off" type="password" id="modal_login_input_password"/>
-                                               <label for="modal_login_input_password"><%= __('Password')%></label>
-                                       </div>
-                                       <input id="modal_login_input_captchaResponse" type="hidden" value=""/>
-                                       <!--<iframe id="modal_login_iframe_captcha" src="cap://deezer.com/"></iframe>-->
+                               <div class="input-field col s12">
+                                       <input autocomplete="off" type="text" id="modal_login_input_username"/>
+                                       <label for="modal_login_input_username"><%= __('Email')%></label>
                                </div>
-                               <div id="login-form-server-mode">
-                                       <div class="input-field col s12">
-                                               <input autocomplete="off" type="password" id="modal_login_input_userToken"/>
-                                               <label for="modal_login_input_userToken"><%= __('userToken')%></label>
-                                       </div>
-                                       <p><a href="https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Login+via+userToken" target="_blank"><%= __('How do I get my userToken?')%></a></p>
+                               <div class="input-field col s12">
+                                       <input autocomplete="off" type="password" id="modal_login_input_password"/>
+                                       <label for="modal_login_input_password"><%= __('Password')%></label>
                                </div>
+                               <input id="modal_login_input_captchaResponse" type="hidden" value=""/>
+                               <!--<iframe id="modal_login_iframe_captcha" src="cap://deezer.com/"></iframe>-->
                        </div>
                        <div class="card-action row">
-                               <a href="#" class="deezloader-primary col s12 m2 waves-effect waves-light btn" id="modal_login_btn_login"><%= __('Log in')%></a>
-                               <a href="#" class="deezloader-secondary col s12 m2 waves-effect waves-light btn" id="modal_login_btn_signup"><%= __('Sign up')%></a>
+                               <button class="deezloader-primary col s12 m2 waves-effect waves-light btn" id="modal_login_btn_login"><%= __('Log in')%></button>
+                               <button class="deezloader-secondary col s12 m2 waves-effect waves-light btn" id="modal_login_btn_signup"><%= __('Sign up')%></button>
                        </div>
                </div>
        </div>
+       <div class="modal-footer">
+               <button class="modal-close waves-effect btn-flat"><%= __('Close')%></button>
+       </div>
 </div>
-
 <!--#############################################MODAL_SETTINGS############################################-->
 <div id="modal_settings" class="modal modal-fixed-footer">
        <div class="modal-content">
                <h4 class="col s12"><%= __('Settings')%></h4>
 
+               <h6 class="col s12 secondary-text"><%= __('Deezer Login')%></h6><hr>
+               <div class="row">
+                       <div class="col s12 hide" id="logged_in_info">
+                               <img id="modal_settings_picture" src="" alt="Profile Picture" class="circle left" style="height:125px; margin-right: 12px;"/>
+                               <p><%= __('You are logged in as')%> <b id="modal_settings_username"></b></p>
+                               <button class="waves-effect waves-light btn" id="modal_settings_btn_logout"><%= __('Logout')%></button>
+                       </div>
+                       <p class="col s12" id="login_email_btn_container">
+                               <a href="#modal_login" class="modal-trigger waves-effect waves-light btn" id="login_email_btn" style="width:100%;"><%= __('Login with e-mail')%></a>
+                       </p>
+                       <h6 class="red-text" id="login-res-text2"></h6>
+                       <div class="inline-input-group col s12">
+                               <input autocomplete="off" type="password" id="modal_login_input_userToken" placeholder="<%= __('userToken')%>"/>
+                               <label for="modal_login_input_userToken"></label>
+                               <button class="btn btn-input btn-flat deezloader-primary white-text" id="modal_settings_btn_copyArl"><i class="material-icons">assignment</i></button>
+                       </div>
+                       <p class="col s12"><a href="https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Login+via+userToken" target="_blank"><%= __('How do I get my userToken?')%></a></p>
+                       <p class="col s12"><button class="deezloader-secondary waves-effect waves-light btn" style="width:100%;" id="modal_settings_btn_updateArl"><%= __('Update userToken')%></button></p>
+               </div>
+
                <h6 class="col s12 secondary-text"><%= __('Path Settings')%></h6><hr>
                <div class="row">
                        <div class="input-field col s12">
                        <div class="input-field col s12">
                                <input autocomplete="off" type="text" id="modal_settings_input_trackNameTemplate"/>
                                <label for="modal_settings_input_trackNameTemplate"><%= __('Tracknames template')%> <i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
-                                       data-tooltip="<%= __('Supported variables are')%>: %title%, %album%, %artist%, %year%, %date%, %label%, %number%, %disc%, %isrc%, %explicit%, %genre%">info_outline</i></label>
+                                       data-tooltip="<%= __('Supported variables are')%>: %title%, %album%, %artist%, %year%, %date%, %label%, %number%, %disc%, %isrc%, %explicit%, %genre%, %track_id%, %album_id%">info_outline</i></label>
                        </div>
                </div>
 
                <div class="row">
-                       <div class="input-field col s12 m6">
+                       <div class="input-field col s12">
                                <input autocomplete="off" type="text" id="modal_settings_input_albumTrackNameTemplate"/>
                                <label for="modal_settings_input_albumTrackNameTemplate"><%= __('Album tracknames template')%> <i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
-                                       data-tooltip="<%= __('Supported variables are')%>: %title%, %album%, %artist%, %year%, %date%, %label%, %number%, %disc%, %isrc%, %explicit%, %genre%">info_outline</i></label>
-                       </div>
-                       <div class="input-field col s12 m6">
-                               <input autocomplete="off" type="text" id="modal_settings_input_albumNameTemplate"/>
-                               <label for="modal_settings_input_albumNameTemplate"><%= __('Album names template')%> <i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
-                                       data-tooltip="<%= __('Supported variables are')%>: %album%, %artist%, %year%, %date%, %bitrate%, %type%, %label%, %album_id%, %upc%, %explicit%, %genre%">info_outline</i></label>
+                                       data-tooltip="<%= __('Supported variables are')%>: %title%, %album%, %artist%, %year%, %date%, %label%, %number%, %disc%, %isrc%, %explicit%, %genre%, %track_id%, %album_id%">info_outline</i></label>
                        </div>
                </div>
 
                        <div class="input-field col s12">
                                <input autocomplete="off" type="text" id="modal_settings_input_playlistTrackNameTemplate"/>
                                <label for="modal_settings_input_playlistTrackNameTemplate"><%= __('Playlist tracknames template')%> <i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
-                                       data-tooltip="<%= __('Supported variables are')%>: %title%, %album%, %artist%, %year%, %date%, %label%, %number%, %position%, %disc%, %isrc%, %explicit%, %genre%">info_outline</i></label>
+                                       data-tooltip="<%= __('Supported variables are')%>: %title%, %album%, %artist%, %year%, %date%, %label%, %number%, %position%, %disc%, %isrc%, %explicit%, %genre%, %track_id%, %album_id%, %playlist_id%">info_outline</i></label>
                        </div>
                </div>
 
                <h6 class="col s12 secondary-text"><%= __('More Path Settings')%></h6><hr>
                <div class="row">
+                       <div class="col s12 switch settings_switch">
+                               <span><%= __('Create folders for Playlists')%></span>
+                               <label>
+                                       <input type="checkbox" id="modal_settings_cbox_createPlaylistFolder" class="filled-in"/>
+                                       <span class="lever"></span>
+                               </label>
+                       </div>
+                       <div class="input-field col s12">
+                               <input autocomplete="off" type="text" id="modal_settings_input_playlistNameTemplate"/>
+                               <label for="modal_settings_input_playlistNameTemplate"><%= __('Playlist names template')%> <i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
+                                       data-tooltip="<%= __('Supported variables are')%>: %owner%, %name%, %year%, %date%, %playlist_id%">info_outline</i></label>
+                       </div>
                        <div class="col s12 switch settings_switch">
                                <span><%= __('Create folders for Artists')%></span>
                                <label>
                                        <span class="lever"></span>
                                </label>
                        </div>
+                       <div class="input-field col s12">
+                               <input autocomplete="off" type="text" id="modal_settings_input_artistNameTemplate"/>
+                               <label for="modal_settings_input_artistNameTemplate"><%= __('Artist names template')%> <i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
+                                       data-tooltip="<%= __('Supported variables are')%>: %name%, %artist_id%">info_outline</i></label>
+                       </div>
                        <div class="col s12 switch settings_switch">
                                <span><%= __('Create folders for Albums')%></span>
                                <label>
                                        <span class="lever"></span>
                                </label>
                        </div>
+                       <div class="input-field col s12">
+                               <input autocomplete="off" type="text" id="modal_settings_input_albumNameTemplate"/>
+                               <label for="modal_settings_input_albumNameTemplate"><%= __('Album names template')%> <i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
+                                       data-tooltip="<%= __('Supported variables are')%>: %album%, %artist%, %year%, %date%, %bitrate%, %type%, %label%, %album_id%, %upc%, %explicit%, %genre%">info_outline</i></label>
+                       </div>
                        <div class="col s12 switch settings_switch">
                                <span><%= __('Create folders for CDs')%></span>
                                <label>
                        <div class="col s12 switch settings_switch">
                                <span><%= __('Create Artist, Albums and CDs folders for Playlists too')%></span>
                                <label>
-                                       <input type="checkbox" id="modal_settings_cbox_createFoldersPlaylist" class="filled-in"/>
+                                       <input type="checkbox" id="modal_settings_cbox_createStructurePlaylist" class="filled-in"/>
+                                       <span class="lever"></span>
+                               </label>
+                       </div>
+                       <div class="col s12 switch settings_switch">
+                               <span><%= __('Save single tracks in a folder')%></span>
+                               <label>
+                                       <input type="checkbox" id="modal_settings_cbox_createSingleFolder" class="filled-in"/>
                                        <span class="lever"></span>
                                </label>
                        </div>
                        <div class="input-field col s12 m6">
                                <select name="lang" id="modal_settings_select_lang">
                                        <option value="en">English</option>
+                                       <option value="fr">Français</option>
                                        <option value="it">Italiano</option>
                                        <option value="de">Deutsch</option>
                                        <option value="es">Español</option>
-                                       <option value="tr">Türkçe</option>
-                                       <option value="pt-BR">Português do Brasil</option>
+                                       <option value="ar">العربية</option>
+                                       <option value="cs">Čeština</option>
+                                       <option value="dk">Dansk</option>
                                        <option value="fa">فارسی</option>
+                                       <option value="ko">한국어</option>
+                                       <option value="pt-BR">Português do Brasil</option>
+                                       <option value="ru">Русский</option>
+                                       <option value="th">ภาษาไทย</option>
+                                       <option value="tr">Türkçe</option>
                                        <option value="uwu">engwish uwu</option>
                                </select>
                                <label for="modal_settings_select_lang"><%= __('Language')%></label>
                                        <input type="checkbox" id="modal_settings_cbox_logSearched" class="filled-in"/>
                                        <span class="lever"></span>
                                </label>
-                       </div><div class="col s12 switch settings_switch">
+                       </div>
+                       <div class="col s12 switch settings_switch">
                                <span><%= __('Create M3U8 (Playlist) File')%></span>
                                <label>
                                        <input type="checkbox" id="modal_settings_cbox_createM3UFile" class="filled-in"/>
                                        <span class="lever"></span>
                                </label>
                        </div>
+               <div class="col s12 switch settings_switch">
+                       <span><%= __('Save Playlist File with folder name')%></span>
+                       <label>
+                               <input type="checkbox" id="modal_settings_cbox_changePlaylistName" class="filled-in"/>
+                               <span class="lever"></span>
+                       </label>
+               </div>
                        <div class="col s12 switch settings_switch">
                                <span><%= __('Download Synced Lyrics File (.lrc)')%></span>
                                <label>
 
                <h6 class="col s12 secondary-text"><%= __('Artworks')%></h6><hr>
                <div class="row">
-                       <div class="input-field col s12">
-                               <select name="artworkSize" id="modal_settings_select_artworkSize">
+                       <div class="input-field col s12 m6">
+                               <select name="embeddedArtworkSize" id="modal_settings_select_embeddedArtworkSize">
+                                       <option value="2000">2000x2000</option>
+                                       <option value="1400">1400x1400</option>
+                                       <option value="1200">1200x1200</option>
+                                       <option value="1000">1000x1000</option>
+                                       <option value="800">800x800</option>
+                                       <option value="500">500x500</option>
+                                       <option value="250">250x250</option>
+                               </select>
+                               <label for="modal_settings_select_embeddedArtworkSize"><%= __('Embedded Artwork Size')%></label>
+                       </div>
+                       <div class="input-field col s12 m6">
+                               <select name="localArtworkSize" id="modal_settings_select_localArtworkSize">
                                        <option value="2000">2000x2000</option>
                                        <option value="1400">1400x1400</option>
                                        <option value="1200">1200x1200</option>
                                        <option value="500">500x500</option>
                                        <option value="250">250x250</option>
                                </select>
-                               <label for="modal_settings_select_artworkSize"><%= __('Artwork Size')%></label>
+                               <label for="modal_settings_select_localArtworkSize"><%= __('Local Artwork Size')%></label>
                        </div>
                        <div class="col s12 switch settings_switch">
                                <span><%= __('Save Album Artwork')%></span>
                        <div class="input-field col s12">
                                <input autocomplete="off" type="text" id="modal_settings_input_coverImageTemplate"/>
                                <label for="modal_settings_input_albumTrackNameTemplate"><%= __('Album Artwork Name Template')%> <i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
-                                       data-tooltip="<%= __('Supported variables are')%>: %artist% and %name%">info_outline</i></label>
+                                       data-tooltip="<%= __('Supported variables are')%>: %album%, %artist%, %year%, %date%, %bitrate%, %type%, %label%, %album_id%, %upc%, %explicit%, %genre%">info_outline</i></label>
                        </div>
                        <div class="col s12 switch settings_switch">
                                <span><%= __('Save Artist Artwork')%></span>
                        <div class="input-field col s12">
                                <input autocomplete="off" type="text" id="modal_settings_input_artistImageTemplate"/>
                                <label for="modal_settings_input_albumNameTemplate"><%= __('Artist Artwork Name Template')%><i class="material-icons valignicon tiny tooltipped" data-position="right" data-delay="50"
-                                       data-tooltip="<%= __('Supported variables are')%>: %artist%">info_outline</i></label>
+                                       data-tooltip="<%= __('Supported variables are')%>: %name%, %artist_id%">info_outline</i></label>
                        </div>
                        <div class="col s12 switch settings_switch">
                                <span><%= __('Download images as PNGs')%></span>
                                        <span class="lever"></span>
                                </label>
                        </div>
+                       <div class="input-field col s12 m6">
+                               <select name="titleCasing" id="modal_settings_select_titleCasing">
+                                       <option value="nothing"><%= __('Do not change')%></option>
+                                       <option value="lower"><%= __('UPPER CASE')%></option>
+                                       <option value="upper"><%= __('lower case')%></option>
+                                       <option value="start"><%= __('Start Case')%></option>
+                                       <option value="sentence"><%= __('Sentence case')%></option>
+                               </select>
+                               <label for="modal_settings_select_titleCasing"><%= __('Case for Title')%></label>
+                       </div>
+                       <div class="input-field col s12 m6">
+                               <select name="titleCasing" id="modal_settings_select_artistCasing">
+                                       <option value="nothing"><%= __('Do not change')%></option>
+                                       <option value="lower"><%= __('UPPER CASE')%></option>
+                                       <option value="upper"><%= __('lower case')%></option>
+                                       <option value="start"><%= __('Start Case')%></option>
+                                       <option value="sentence"><%= __('Sentence case')%></option>
+                               </select>
+                               <label for="modal_settings_select_artistCasing"><%= __('Case for Artist')%></label>
+                       </div>
                </div>
 
                <div class="row">
                        </div>
                </div>
 
-               <div class="row">
-                       <div class="col s12">
-                               <img id="modal_settings_picture" src="" alt="Profile Picture" class="circle left" style="height:125px; margin-right: 12px;"/>
-                               <p><%= __('You are logged in as')%> <b id="modal_settings_username"></b></p>
-                               <a href="#" class="modal-close waves-effect waves-light btn" id="modal_settings_btn_logout"><%= __('Logout')%></a>
-                       </div>
-               </div>
-
        </div>
        <div class="modal-footer">
-               <a href="#" class="modal-close waves-effect waves-light deezloader-primary btn" id="modal_settings_btn_saveSettings"><i
-                       class="material-icons right">save</i><%= __('Save')%></a>
-               <a href="#" class="waves-effect btn-flat" id="modal_settings_btn_defaultSettings"><i
-                       class="material-icons right">settings_backup_restore</i><%= __('Default Settings')%></a>
-               <a href="#" class="modal-close waves-effect btn-flat"><%= __('Close')%></a>
+               <button class="modal-close waves-effect waves-light deezloader-primary btn" id="modal_settings_btn_saveSettings"><i class="material-icons right">save</i><%= __('Save')%></button>
+               <button class="waves-effect btn-flat" id="modal_settings_btn_defaultSettings"><i class="material-icons right">settings_backup_restore</i><span class="hide-on-small-only"><%= __('Default Settings')%></span></button>
+               <button class="modal-close waves-effect btn-flat"><%= __('Close')%></button>
        </div>
 </div>
 
                </div>
        </div>
        <div class="modal-footer">
-               <a href="#" class="modal-close waves-effect btn-flat"><%= __('Close')%></a>
+               <button class="modal-close waves-effect btn-flat"><%= __('Close')%></button>
        </div>
 </div>
 
                                                        ZzMTV for the original Deezloader code<br>
                                                        ParadoxalManiak, snwflake and ExtendLord for maintaining the previous branches<br>
                                                        <br>
-                                                       <b>Translations:</b><br>
-                                                       Italian: RemixDev
+                                                       <b><%= __('Translations')%>:</b><br>
+                                                       Italian: RemixDev<br>
                                                        German: lollilol, Tobs<br>
                                                        Spanish: Wanamingo<br>
                                                        Turkish: Metep<br>
+                                                       Russian: NitroOxid, HexEdit<br>
                                                        Brazilian Portuguese: C4RLETH<br>
+                                                       Thai: RadiusGreenhill<br>
+                                                       French: LaurentHa, Didiou, kaypa<br>
+                                                       Persian: Alip983<br>
+                                                       Arabic: YassBoud1407<br>
+                                                       Korean: gimel3830<br>
                                                </p>
                                        </div>
                                </li>
                                        <div class="collapsible-header waves-effect"><i class="material-icons">history</i><%= __('Changelog')%></div>
                                        <div class="collapsible-body">
                                                <p>
-                                                       <b>Version 4.2.2</b><br/>
-                                                       - Re-added login with email / password with captcha popup (Doesn't work on Server Mode)<br/>
-                                                       - Reorganized Settings<br/>
-                                                       - ID3 default is now the only option for MP3 date format (If you had that selected you should change that or do a clean install)<br/>
-                                                       - Added link analyzer<br/>
-                                                       - Added support for spotify tracks and albums via urls and uri<br/>
-                                                       - Added %bitrate% and %date% to album folder name<br/>
-                                                       - Added %date% to tracknames<br/>
-                                                       - Added %position% for playlist tracknames<br/>
-                                                       - Added %isrc%, %upc% and %album_id%<br/>
-                                                       - Added option to enable or disable search fallback<br/>
-                                                       - Added option to create album/artist/cd folders for playlists as well<br/>
-                                                       - Added option to save playlist as a compilation (it overwrites original tags with the playlist one)<br/>
-                                                       - Added more UI elements to display errors<br/>
-                                                       - Added error log when clicking on error sign in the Download Tab<br/>
-                                                       - Added quality selection to remaining download buttons<br/>
-                                                       - Fixed certificate error while looking for updates<br/>
-                                                       - Fixed spotify playlist conversion problems<br/>
-                                                       - Fixed tags problems<br/>
-                                                       - Other Minor improvments<br/>
-                                                       <br/>
-                                                       <b>Version 4.2.1</b><br/>
-                                                       - Downloads are binded to the server on server mode<br/>
-                                                       - Downloading playlists wont create artist and album folders if options are selected<br/>
-                                                       - Date tag is now enabled by default on new installations<br/>
-                                                       - Now users without propic will have a default one in the settings<br/>
-                                                       - Update message only nags once per client<br/>
-                                                       - Added space after %explicit% if there is text after the tag<br/>
-                                                       - Added label at the end of album viewin the modal<br/>
-                                                       - Fixed forEach error when downloading tracks<br/>
-                                                       - Fixed problem where %type% could be empty<br/>
-                                                       - Fixed macOS copy-paste problem<br/>
-                                                       - Fixed duplicate detection when downloading tracks<br/>
-                                                       - Fixed null separator for multitags on FLACs<br/>
-                                                       - Fixed problem where m3u file on multidisc albums was wrong<br/>
-                                                       <br/>
-                                                       <b>Version 4.2.0</b><br/>
-                                                       - New login workflow<br/>
-                                                       - Improved UI<br/>
-                                                       - Revamped album, artists and playlist modals<br/>
-                                                       - Added option to download the track in a different quality over the one selected (right click on d/l button)<br/>
-                                                       - Added autologin by default to fix re-connection problems<br/>
-                                                       - Re-added fallback on track errors<br/>
-                                                       - Fixed Default Settings button<br/>
-                                                       - Fixed links not working in server mode<br/>
-                                                       - Fixed UI problems when on mobile view (responsive site)<br/>
-                                                       - Fixed Settings menu not being populated on mobile view<br/>
-                                                       - Fixed problem with the artist tag when downloading playlists and albums<br/>
-                                                       - Fixed playlist numbering on files (now it doesn't override the trackNumber tag)<br/>
-                                                       - Fixed aritst artwork not saving<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.8</b><br/>
-                                                       - Fix the issue where some people wasn't able to log in from the Netherlands<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.7</b><br/>
-                                                       - Partial rewrite of the app (4.2.0 will have the other half)<br/>
-                                                       - Fixed login security issue<br/>
-                                                       - Better Spotify integration (now conversion uses ISRC if found)<br/>
-                                                       - Fixed France Charts not showing up<br/>
-                                                       - Albums with only one track will download as a single track<br/>
-                                                       - Added option %genre% for Track and Album names<br/>
-                                                       - Added support for subfolders in Album name<br/>
-                                                       - Minor changes to the UI<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.6</b><br/>
-                                                       - Fixed Spotify Playlist problem<br/>
-                                                       - Fixed security issue where Client Secret is exposed in Compiled binaries<br/>
-                                                       - Now to use Spotify Features you need to follow <a href="https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Spotify+Features" target="_blank">this guide</a> first<br/>
-                                                       - Minor bugfixes and improvments<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.5</b><br/>
-                                                       - Fixed %explicit% for album names<br/>
-                                                       - Added Contributions page<br/>
-                                                       - Fixed some spelling issues<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.4</b><br/>
-                                                       - Improved Privacy in Server Mode<br/>
-                                                       - Cleaned up some files<br/>
-                                                       - Fixed Day Month position in DATE tag<br/>
-                                                       - Fixed %explicit% in name templates<br/>
-                                                       - Fixed artist download<br/>
-                                                       - Fixed FLAC Problems (not all of them)<br/>
-                                                       - Fixed select folder cancel bug<br/>
-                                                       - Added Update Notification<br/>
-                                                       - Added default ID3 DATE tag format<br/>
-                                                       - Added minimize to system tray<br/>
-                                                       - Added multitag separator for FLACS<br/>
-                                                       - Added hyperlinks to artist & album<br/>
-                                                       - Added option to better remove duplicates in the artist tag (Still in BETA)<br/>
-                                                       - Added option to save the track with the full list of artist in the filename<br/>
-                                                       - Added option to overwrite padding size<br/>
-                                                       - Added "Download All" button in modals<br/>
-                                                       - Removed ReplayGain as default setting<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.3</b><br/>
-                                                       - Playlist and Album tracks now have fallback support<br/>
-                                                       - M3U files now works correctly<br/>
-                                                       - Fixed problems with tags<br/>
-                                                       - Added option %explicit% for Track and Album names (Will add "(Explicit)" in that position if it's explicit)<br/>
-                                                       - Added option to remove "(Album Version)" from track title<br/>
-                                                       - Added options to select which format should the date tag have<br/>
-                                                       - Added option to not fallback if desired bitrate is not available<br/>
-                                                       - Logging enhancements<br/>
-                                                       - Other minor bug-fixing<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.2</b><br/>
-                                                       - Fixed Login Problem (for real this time)<br/>
-                                                       - Fixed Login after refresh<br/>
-                                                       - Regionlock free download<br/>
-                                                       - Added support for download of User Uploaded tracks<br/>
-                                                       - Now you can select which tags your songs has<br/>
-                                                       - Fixed selecting problem<br/>
-                                                       - Tracks without preview will display a disabled play button<br/>
-                                                       - Previews inside modal will stop with modal close<br/>
-                                                       - New %label% field for tracks and albums<br/>
-                                                       - Added option to create folder for CDs<br/>
-                                                       - Added rename option for cover file<br/>
-                                                       - Added option to download Artist artwork<br/>
-                                                       - Added option do log downloaded alternative tracks<br/>
-                                                       - Fixed some minor bugs<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.1</b><br/>
-                                                       - Fixed Login Problem (again)<br/>
-                                                       - Added Dark Mode<br/>
-                                                       - Added smaller cover option<br/>
-                                                       - Added support for lower bitrates<br/>
-                                                       - Added "Stop All Downloads" button<br/>
-                                                       - Added support for Spotify Playlist preview<br/>
-                                                       - Added support for PNG covers<br/>
-                                                       - Re-Added Date Tag<br/>
-                                                       - Fixed same cover for same track in different albums bug<br/>
-                                                       - Fixed login issue from repository build<br/>
-                                                       <br/>
-                                                       <b>Version 4.1.0</b><br/>
-                                                       - New UI (not completly optimized for small screens)<br/>
-                                                       - Fixed login problems<br/>
-                                                       - Fixed %type% parameter not working<br/>
-                                                       - Fixed year tagging problem<br/>
-                                                       - Fixed playlist file not containing tracks<br/>
-                                                       - More precision in Spotify Playlist conversion<br/>
+                                                       <h5>Version 4.3.0</h5>
+                                                       <h6>Main changes:</h6>
+                                                       &nbsp;&nbsp;+ Loginless download is back!<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ You can still login in the Settings to view your playlists<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Added option to export ARL<br>
+                                                       &nbsp;&nbsp;+ Localization Support<br>
+                                                       &nbsp;&nbsp;+ Merged Download from URL tab into Search tab<br>
+                                                       &nbsp;&nbsp;+ Improved memory usage during downloads (Now you can download Continuous Mixes)<br>
+                                                       &nbsp;&nbsp;+ Updated and improved UI<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Better feedback for errors and warnings<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Toast messages are forced to the bottom<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Made darkmode darker<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Charts are now alphabetically ordered<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Redesigned Download tab<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Made download bars more responsive<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Added PWA metadata for servermode<br>
+                                                       &nbsp;&nbsp;+ Changed folder management structure<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Added create playlist folder option<br>
+                                                       &nbsp;&nbsp;&nbsp;&nbsp;+ Added template names for playlist and artist folder<br>
+                                                       <br>
+                                                       <h6>New Features:</h6>
+                                                       &nbsp;&nbsp;+ Added ID3v1 support<br>
+                                                       &nbsp;&nbsp;+ Divided options for Local and Embedded cover size<br>
+                                                       &nbsp;&nbsp;+ Added 2000x2000 cover option<br>
+                                                       &nbsp;&nbsp;+ Added Case Settings for title and artists<br>
+                                                       &nbsp;&nbsp;+ Added REST API<br>
+                                                       &nbsp;&nbsp;+ Added Select song for Spotify Playlists<br>
+                                                       &nbsp;&nbsp;+ Added support for 360 audio [No way to play them tho]<br>
+                                                       &nbsp;&nbsp;+ Added option to rename the playlist file with the name of the folder<br>
+                                                       <br>
+                                                       <h6>Bugs fixes:</h6>
+                                                       &nbsp;&nbsp;+ Finished implementing Save playlist as Compilation<br>
+                                                       &nbsp;&nbsp;+ Fixed artwork caching<br>
+                                                       &nbsp;&nbsp;+ Fixed issues with autologin not working properly<br>
+                                                       &nbsp;&nbsp;+ Fixed the error 'ENOENT: no such file or directory, mkdir'<br>
+                                                       &nbsp;&nbsp;+ Fixed artist tags being too excessive<br>
+                                                       &nbsp;&nbsp;+ Fixed Explicit Variable on tracknames<br>
+                                                       &nbsp;&nbsp;+ Fixed fallbacks not working properly<br/>
                                                        <br/>
                                                        <a href="https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Changelog" target="_blank"><%= __('Full Changelog Here')%></a>
                                                </p>
                </div>
        </div>
        <div class="modal-footer">
-               <a href="#" class="modal-close waves-effect btn-flat"><%= __('Close')%></a>
+               <button class="modal-close waves-effect btn-flat"><%= __('Close')%></button>
        </div>
 </div>
 
                </div>
        </div>
        <div class="modal-footer">
-               <a href="#" id="download_all_tracks" v-bind:data-link="link" class="btn btn-flat waves-effect waves-light left"><%= __('Download {{ type }}')%></a>
-               <a href="#" class="modal-close waves-effect btn-flat"><%= __('Close')%></a>
+               <button id="download_all_tracks" v-bind:data-link="link" class="btn btn-flat waves-effect waves-light left"><%= __('Download {{ type }}', {type: '{{ type }}'})%></button>
+               <button class="modal-close waves-effect btn-flat"><%= __('Close')%></button>
        </div>
 </div>
 
                </div>
        </div>
        <div class="modal-footer">
-               <a href="#" id="download_all_tracks_selective" v-bind:data-link="link" class="btn btn-flat waves-effect waves-light left">Download {{ type }}</a>
-               <a href="#" id="download_track_selection" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><span class="hide-on-small-only"><%= __('Download selection')%><i class="material-icons right">file_download</i></span><i class="material-icons hide-on-med-and-up">file_download</i></a>
-               <a href="#" class="modal-close waves-effect btn-flat"><%= __('Close')%></a>
+               <button id="download_all_tracks_selective" v-bind:data-link="link" class="btn btn-flat waves-effect waves-light left"><%= __('Download {{ type }}', {type: '{{ type }}'})%></button>
+               <button id="download_track_selection" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><span class="hide-on-small-only"><%= __('Download selection')%><i class="material-icons right">file_download</i></span><i class="material-icons hide-on-med-and-up">file_download</i></button>
+               <button class="modal-close waves-effect btn-flat"><%= __('Close')%></button>
        </div>
 </div>
 
                </div>
        </div>
        <div class="modal-footer">
-               <a href="#" class="modal-close waves-effect waves-light btn"><%= __('I got it!')%></a>
+               <button class="modal-close waves-effect waves-light btn"><%= __('I got it!')%></button>
        </div>
 </div>
 
                </table>
        </div>
        <div class="modal-footer">
-               <a href="#" class="modal-close waves-effect waves-light btn"><%= __('Close')%></a>
+               <button class="modal-close waves-effect waves-light btn"><%= __('Close')%></button>
        </div>
 </div>
 
                <a href="#name"><span class="white-text name" id="side_user"></span></a>
                <a href="#email"><span class="white-text email" id="side_email"></span></a>
        </div></li>
-       <li><a href="#!" tab-id="tab_search" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">search</i><%= __('Search')%></a></li>
-       <li><a href="#!" tab-id="tab_charts" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">bubble_chart</i><%= __('Charts')%></a></li>
-       <li><a href="#!" tab-id="tab_playlists" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">playlist_play</i><%= __('Playlists')%></a></li>
-       <li><a href="#!" tab-id="tab_link" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">link</i><%= __('Link Analyzer')%></a></li>
-       <li><a href="#!" tab-id="tab_url" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">link</i><%= __('Download from URL')%></a></li>
-       <li><a href="#!" tab-id="tab_downloads" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">get_app</i><%= __('Downloads')%></a></li>
+       <li><a href="#" tab-id="tab_search" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">search</i><%= __('Search')%></a></li>
+       <li><a href="#" tab-id="tab_charts" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">bubble_chart</i><%= __('Charts')%></a></li>
+       <li><a href="#" tab-id="tab_playlists" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">playlist_play</i><%= __('Playlists')%></a></li>
+       <li><a href="#" tab-id="tab_link" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">link</i><%= __('Link Analyzer')%></a></li>
+       <li><a href="#" tab-id="tab_downloads" class="sidenav_tab sidenav-close waves-effect"><i class="material-icons">get_app</i><%= __('Downloads')%></a></li>
        <li><div class="divider"></div></li>
        <li><a href="#modal_settings" id="sidenav_settings" class="waves-effect sidenav-close modal-trigger"><i class="material-icons">settings</i><%= __('Settings')%></a></li>
        <li><a href="#modal_about" class="waves-effect sidenav-close modal-trigger"><i class="material-icons">info</i><%= __('About')%></a></li>
-       <li><a href="#!" id="nightModeSwitch2"><i class="material-icons">brightness_2</i><%= __('Enable Night Mode')%></a>
+       <li><a href="#" id="nightModeSwitch2"><i class="material-icons">brightness_2</i><%= __('Enable Night Mode')%></a>
        </li>
 </ul>
 
-<main class="container">
+<main class="container" style="display: none">
+       <div id="deezerNotAvailable" class="error-banner" style="display:none;">
+               <button class="close-banner"><i class="material-icons">close</i></button>
+               <%= __('Deezer is not available in your country')%><br>
+               <%= __('Search and Login functions won\'t work. You should use a VPN if you want them.')%>
+       </div>
        <ul id="tab-nav" class="row tabs tabs-fixed-width hide-on-small-only">
                <li class="tab"><a class="active" href="#tab_search"><%= __('Search')%></a></li>
                <li class="tab"><a href="#tab_charts"><%= __('Charts')%></a></li>
                <li class="tab"><a href="#tab_playlists"><%= __('Playlists')%></a></li>
                <li class="tab"><a href="#tab_link"><%= __('Link Analyzer')%></a></li>
-               <li class="tab"><a href="#tab_url"><%= __('Download from URL')%></a></li>
                <li class="tab"><a href="#tab_downloads"><%= __('Downloads')%></a></li>
        </ul>
 
                <div id="tab_search">
                        <form id="tab_search_form_search">
                                <div class="inline-input-group col s12">
-                                       <input autocomplete="off" id="tab_search_form_search_input_searchString" type="search" class="input" placeholder="<%= __('Start searching...')%>">
-                                       <button class="btn btn-input btn-flat deezloader-primary white-text"><i class="material-icons">search</i></button>
+                                       <input autocomplete="off" id="tab_search_form_search_input_searchString" type="search" class="input" placeholder="<%= __('Start searching...')%>" autofocus>
+                                       <button id="tab_search_button" class="btn btn-input btn-flat deezloader-primary white-text"><i class="material-icons">search</i></button>
                                </div>
                                <div class="row center">
                                        <p class="col s3">
                                </div>
                                <div id="link_analyzer_song_maininfo" class="link_analyzer_maininfo">
                                        <h5 style="margin-bottom:8px; margin-top:0px;">{{ d.title }} {{ d.version }}<i v-if="d.explicit_lyrics" class="material-icons valignicon materialize-red-text tooltipped" data-tooltip="Explicit">explicit</i></h5>
-                                       <p style="margin-top:0px;">by <b>{{ d.artist.name }}</b></br>
-                                       in <b>{{ d.album.title }}</b></p>
+                                       <p style="margin-top:0px;"><%- __('by %s', '<span class="handlink" v-on:click="showArtist()"><b>{{ d.artist.name }}</b></span>')%></br>
+                                       <%- __('in %s', '<span class="handlink" v-on:click="showAlbum()"><b>{{ d.album.title }}</b></span>')%></p>
                                        <hr class="hide-on-small-only">
                                        <a v-if="d.alternative" v-bind:href="'d.alternative.link'"><b><%= __('Alternative Link')%></b></a>
                                        <table class="striped">
                                </div>
                                <div id="link_analyzer_album_maininfo" class="link_analyzer_maininfo">
                                        <h5 style="margin-bottom:8px; margin-top:0px;">{{ d.title }} <i v-if="d.explicit_lyrics" class="material-icons valignicon materialize-red-text tooltipped" data-tooltip="Explicit">explicit</i></h5>
-                                       <p style="margin-top:0px;">by <b>{{ d.artist.name }}</b></br>
-                                       <b>{{ d.nb_tracks }}</b> {{ d.nb_tracks==1 ? 'track' : 'tracks' }}</p>
+                                       <p style="margin-top:0px;"><%- __('by %s', '<span class="handlink" v-on:click="showArtist()"><b>{{ d.artist.name }}</b></span>')%></br>
+                                       {{ d.tracks_string }}</p>
                                        <hr class="hide-on-small-only">
                                        <a v-if="d.alternative" v-bind:href="'d.alternative.link'"><b><%= __('Alternative Link')%></b></a>
                                        <table class="striped">
                        </div>
                </div>
 
-               <div id="tab_url">
-                       <div class="inline-input-group">
-                               <input autocomplete="off" type="search" id="song_url" class="input" placeholder="<%= __('DownloadURL_Info')%>">
-                               <button id="download_from_url_button" class="btn btn-input btn-flat deezloader-primary white-text"><i class="material-icons">get_app</i></button>
-                       </div>
-               </div>
-
                <div id="tab_downloads">
                        <div class="row">
                                <div class="col s12 m4">
                                </div>
                        </div>
                        <table id="tab_downloads_table_downloads" class="row">
-                               <thead>
-                                       <tr>
-                                               <th><%= __('Name')%></th>
-                                               <th><%= __('Size')%></th>
-                                               <th><%= __('Downloaded')%></th>
-                                               <th><%= __('Failed')%></th>
-                                               <th style="width: 25%;"><!--progress--></th>
-                                               <th style="width: 56px;"><!--event buttons--></th>
-                                       </tr>
-                               </thead>
                                <tbody></tbody>
                        </table>
                </div>
-
        </div>
 </main>
 
 <div id="modal_quality" class="smallmodal">
        <!-- Modal content -->
        <div class="smallmodal-content">
-               <a onclick="modalQualityButton(9)" href="#" id="download_track_selection" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download FLAC')%></a><br>
-               <a onclick="modalQualityButton(3)" href="#" id="download_track_selection" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download MP3 320kbps')%></a><br>
-               <a onclick="modalQualityButton(1)" href="#" id="download_track_selection" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download MP3 128kbps')%></a><br>
+               <button onclick="modalQualityButton(9)" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download {{ type }}', {type: 'FLAC'})%></button><br>
+               <button onclick="modalQualityButton(3)" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download {{ type }}', {type: 'MP3 320kbps'})%></button><br>
+               <button onclick="modalQualityButton(1)" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download {{ type }}', {type: 'MP3 128kbps'})%></button><br>
+               <button onclick="modalQualityButton(15)" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download {{ type }}', {type: '360 Reality Audio [HQ]'})%></button><br>
+               <button onclick="modalQualityButton(14)" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download {{ type }}', {type: '360 Reality Audio [MQ]'})%></button><br>
+               <button onclick="modalQualityButton(13)" class="btn btn-flat waves-effect waves-light deezloader-primary white-text"><%= __('Download {{ type }}', {type: '360 Reality Audio [LQ]'})%></button><br>
        </div>
 </div>
 
 <script type="text/javascript" src="js/appBase.js"></script>
 <script type="text/javascript" src="js/frontend.js"></script>
 <script>if (window.module) module = window.module;</script>
+<script>
+if('serviceWorker' in navigator) {
+  navigator.serviceWorker
+           .register('/js/sw.js')
+           .then(function() { console.log("Service Worker Registered"); });
+}
+</script>
 </body>
 </html>