Skip to content
Snippets Groups Projects
Select Git revision
  • c23f7fb7d1d58f8ffdac0ac1dbbbbcb30c4c791e
  • master default protected
  • 61-upgrade-framework-and-dependencies
  • 42-add-allowed-categories-in-settings-page
  • 44-improve-app-metadata
  • 23-add-tip-response-on-clic-on-button
  • Release_1.11.0_55 protected
  • Release_1.10.2_54 protected
  • Release_1.10.1_53 protected
  • Release_1.10.0_52 protected
  • Release_1.9.0_51 protected
  • Release_1.8.0_50 protected
  • Release_1.7.0_49 protected
  • Release_1.6.2_48 protected
  • Release_1.6.1_47 protected
  • Release_1.6.0_46 protected
  • Release_1.5.1_45 protected
  • Release_1.5.0_44 protected
  • Release_1.4.1_43 protected
  • Release_1.4.0_42 protected
  • Release_1.3.1_41 protected
  • Release_1.3.0_40 protected
  • Release_1.2.33_39 protected
  • Release_1.2.32_38 protected
  • Release_1.2.31_37 protected
  • Release_1.2.30_36 protected
26 results

settings_global_cubit.dart

Blame
  • now-playing.js 1.79 KiB
    function updateNowPlaying() {
        var apiUrl = "now-playing?api";
    
        var newContent = fetch(apiUrl)
            .then(function (response) {
                return response.json();
            })
            .then(function (data) {
                var nowPlayingBlock = document.getElementById("now-playing");
                newContent = buildNowPlayingBlock(data);
                nowPlayingBlock.innerHTML = newContent;
            })
            .catch(function (err) {
                console.warn("Something went wrong.", err);
                newContent =
                    '<div class="alert alert-warning">Error fetching API data.<br/>You may need to logout and refresh page.</div>';
                var nowPlayingBlock = document.getElementById("now-playing");
                nowPlayingBlock.innerHTML = newContent;
            });
    }
    
    function buildNowPlayingBlock(apiResponse) {
        var html = `
      <div class="container-fluid now-playing">
        <div class="row">
          <div class="col">
            <div class="now-playing-cover"><img src="COVER_URL" class="img-fluid"></div>
          </div>
          <div class="col">
            <div class="now-playing-title">TITLE</div>
            <div class="now-playing-artists">ARTISTS</div>
          </div>
        </div>
      </div>`;
    
        var nowPlayingData = apiResponse["playing"];
    
        if (!nowPlayingData) {
            return '<div class="alert alert-info">No currently playing track...</div>';
        }
    
        var item = nowPlayingData["item"];
        var album = item["album"];
        var artists = album["artists"];
    
        var artistNames = artists.map((artist) => artist["name"]).join(", ");
        var trackName = item["name"];
        var coverUrl = album["images"][0]["url"];
    
        html = html.replace("TITLE", trackName);
        html = html.replace("ARTISTS", artistNames);
        html = html.replace("COVER_URL",  coverUrl);
    
        return html;
    }
    
    setInterval(updateNowPlaying, 2000);