можно ли дописать js

199
29 декабря 2021, 05:30

Возможно ли сделать воспроизведение треков с разрешение json ... Дело в том что на сайте зайцевнет ссылки на трек примерно такие https://zaycev.net/musicset/dl/1a5e587e27e3879953c8b8ea06f9f87a/3056654.json

и плеер петь не хочет.

function cleanTempPlayList() { 
  $(".tabs-pl .plstemp").empty() 
} 
 
function cleanActiveClasses() { 
  $("div,a").removeClass("playlist-item-play").removeClass("play-active") 
} 
 
function createPlaySong(a) { 
  if ($(".playlist-item-play").length) var e = $(".playlist-item-play").parent(); 
  else e = $(".playlist-item:first").parent(); 
  $(".audioplayer").remove(), cleanActiveClasses(), e.find(".playlist-item").eq(a.index()).addClass("playlist-item-play"); 
  var t = a.find(".ms-author").text(), 
    i = a.find(".ms-song").text(), 
    l = a.find(".ms-image img").attr("src"), 
    s = a.find(".ms-save-song").data("mp3"); 
 
 
  $(".main-player").append('<audio preload="auto" class="play-song"><source src="' + s + '" /></audio>'), $(".main-player").find("audio").audioPlayer(), "undefined" != l && $(".mplayer-image").append('<img src="' + l + '" alt="" />'), $(".main-player .mplayer-title u").append(t), $(".main-player .mplayer-title i").append(i), $(window).width() <= "1250" && $(".player-wrap").addClass("miniplayer") 
} 
 
function loadPlayList() { 
  var a = $(".favlink").attr("href"); 
 
 
 
  $.ajax({ 
    url: a, 
    type: "get", 
    cache: !0, 
    success: function(a) { 
      $($(a).find(".main-news")).each(function() { 
        var a = $(this).find(".main-news-title").attr("href"), 
          e = $(this).find(".main-news-author").text(), 
          t = $(this).find(".main-news-song").text(), 
          i = $(this).find(".ms-save-song").data("mp3"), 
          l = $(this).find(".ms-image img").attr("src"); 
 
 
        $(".tabs-pl .plstab").append('<a href="' + a + '" class="playlist-item"><u class="ms-author">' + e + '</u><i class="ms-song">' + t + '</i><span class="ms-save-song" data-mp3="' + i + '"></span><span class="ms-image" style="display: none;"><img src="' + l + '" alt="" /></span></a>') 
      }) 
    }, 
    complete: function(a) { 
      $(".tabs-pl .tt-panel").mCustomScrollbar() 
    } 
  }) 
} 
 
function addTempPlayList(a, e) { 
  cleanTempPlayList(), $(a.find(e)).each(function() { 
    var a = $(this).find(".ms-link").data("link"), 
      e = $(this).find(".ms-author").text(), 
      t = $(this).find(".ms-song").text(), 
      i = $(this).find(".ms-save-song").data("mp3"), 
      l = $(this).find(".ms-image img").attr("src"); 
 
    $(".tabs-pl .plstemp").append('<a href="' + a + '" class="playlist-item"><u class="ms-author">' + e + '</u><i class="ms-song">' + t + '</i><span class="ms-save-song" data-mp3="' + i + '"></span><span class="ms-image" style="display: none;"><img src="' + l + '" alt="" /></span></a>') 
  }) 
} 
 
function showPlay() { 
  $(".main-player .audioplayer").removeClass("audioplayer-stopped").addClass("audioplayer-playing") 
} 
 
function playNext() { 
  if ($(".playlist-item-play").length) var a = $(".playlist-item-play"), 
    e = $(".playlist-item-play").parent(); 
  else a = $(".playlist-item:first"), e = $(".playlist-item:first").parent(); 
  if (0 == playRandom) { 
    createPlaySong(t = a.next(".playlist-item").length ? a.next(".playlist-item") : e.find(".playlist-item:first")), t.addClass("playlist-item-play"), $(".main-player").find("audio").get(0).play(), showPlay() 
  } else { 
    var t, i = e.find(".playlist-item").length, 
      l = Math.floor(1 + Math.random() * (i + 1 - 1)); 
    createPlaySong(t = e.find(".playlist-item").eq(l - 1)), t.addClass("playlist-item-play"), $(".main-player").find("audio").get(0).play(), showPlay() 
  } 
} 
 
function playPrev() { 
  if ($(".playlist-item-play").length) var a = $(".playlist-item-play"), 
    e = $(".playlist-item-play").parent(); 
  else a = $(".playlist-item:first"), e = $(".playlist-item:first").parent(); 
  var t = a.prev(".playlist-item").length ? a.prev(".playlist-item") : e.find(".playlist-item:last"); 
  createPlaySong(t), t.addClass("playlist-item-play"), $(".main-player").find("audio").get(0).play(), showPlay() 
} 
 
function showStatusWin(a) { 
  $("body").append('<div class="status-win">' + a + "</div>"), $(".status-win").fadeIn(400).delay(2e3).fadeOut(400, function() { 
    $(".status-win").remove() 
  }) 
} 
playRepeat = !1, playRandom = !1, 
  function(a, e, t, i) { 
    var l = "ontouchstart" in e, 
      s = l ? "touchstart" : "mousedown", 
      n = l ? "touchmove" : "mousemove", 
      o = l ? "touchcancel" : "mouseup", 
      p = function(a) { 
        var e = a / 3600, 
          t = Math.floor(e), 
          i = a % 3600 / 60, 
          l = Math.floor(i), 
          s = Math.ceil(a % 3600 % 60); 
        return s > 59 && (s = 0, l = Math.ceil(i)), l > 59 && (l = 0, t = Math.ceil(e)), (0 == t ? "" : t > 0 && t.toString().length < 2 ? "0" + t + ":" : t + ":") + (l.toString().length < 2 ? "0" + l : l) + ":" + (s.toString().length < 2 ? "0" + s : s) 
      }, 
      d = function(a) { 
        var e = t.createElement("audio"); 
        return !(!e.canPlayType || !e.canPlayType("audio/" + a.split(".").pop().toLowerCase() + ";").replace(/no/, "")) 
      }; 
    a.fn.audioPlayer = function(e) { 
      e = a.extend({ 
        classPrefix: "audioplayer", 
        strPlay: "Play", 
        strPause: "Pause", 
        strVolume: "Volume" 
      }, e); 
      var t = {}, 
        i = { 
          playPause: "playpause", 
          playing: "playing", 
          stopped: "stopped", 
          time: "time", 
          timeCurrent: "time-current", 
          timeDuration: "time-duration", 
          bar: "bar", 
          barLoaded: "bar-loaded", 
          barPlayed: "bar-played", 
          volume: "volume", 
          volumeButton: "volume-button", 
          volumeAdjust: "volume-adjust", 
          noVolume: "novolume", 
          muted: "muted", 
          mini: "mini" 
        }; 
      for (var r in i) t[r] = e.classPrefix + "-" + i[r]; 
      return this.each(function() { 
        if ("audio" != a(this).prop("tagName").toLowerCase()) return !1; 
        var i = a(this), 
          r = i.attr("src"), 
          m = "" === (m = i.get(0).getAttribute("autoplay")) || "autoplay" === m, 
          u = "" === (u = i.get(0).getAttribute("loop")) || "loop" === u, 
          y = !1; 
        void 0 === r ? i.find("source").each(function() { 
          if (void 0 !== (r = a(this).attr("src")) && d(r)) return y = !0, !1 
        }) : d(r) && (y = !0); 
        var c = a('<div class="' + e.classPrefix + '">' + (y ? a("<div>").append(i.eq(0).clone()).html() : '<embed src="' + r + '" width="0" height="0" volume="100" autostart="' + m.toString() + '" loop="' + u.toString() + '" />') + '<div class="mplayer-image"></div><div class="mplayer-nav"><div class="mplayer-prev"></div><div class="mplayer-pp ' + t.playPause + '" title="' + e.strPlay + '" rel="' + e.strPlay + '"></div><div class="mplayer-next"></div></div>'), 
          f = (f = y ? c.find("audio") : c.find("embed")).get(0); 
        if (y) { 
          c.find("audio").css({ 
            width: 0, 
            height: 0, 
            visibility: "hidden" 
          }), c.append('<div class="mplayer-center"><div class="mplayer-title"><u></u><i></i></div><div class="mplayer-line"><div class="mplayer-line-left ' + t.time + " " + t.timeCurrent + '"></div><div class="' + t.bar + '"><div class="' + t.barLoaded + '"></div><div class="' + t.barPlayed + '"></div></div><div class="mplayer-line-right ' + t.time + " " + t.timeDuration + '"></div></div></div><div class="mplayer-right"><div class="' + t.volume + '"><div class="' + t.volumeButton + '" title="' + e.strVolume + '" title="Громкость"><a href="#"></a>Громкость <i>100%</i></div><div class="' + t.volumeAdjust + '"><div><div></div></div></div></div></div>'); 
          var v = c.find("." + t.bar), 
            h = c.find("." + t.barPlayed), 
            $ = c.find("." + t.barLoaded), 
            g = c.find("." + t.timeCurrent), 
            b = c.find("." + t.timeDuration), 
            C = c.find("." + t.volumeButton), 
            w = c.find("." + t.volumeAdjust + " > div"), 
            P = 0, 
            x = function(a) { 
              theRealEvent = l ? a.originalEvent.touches[0] : a, f.currentTime = Math.round(f.duration * (theRealEvent.pageX - v.offset().left) / v.width()) 
            }, 
            k = function(a) { 
              theRealEvent = l ? a.originalEvent.touches[0] : a, f.volume = Math.abs((theRealEvent.pageX - (w.offset().left + w.width())) / w.width()), f.volume = Math.abs(1 - f.volume) 
            }, 
            S = f.volume, 
            L = f.volume = .111; 
          Math.round(1e3 * f.volume) / 1e3 == L ? f.volume = S : c.addClass(t.noVolume), b.html("&hellip;"), g.html(p(0)), f.addEventListener("loadeddata", function() { 
            var e; 
            e = setInterval(function() { 
              if (f.buffered.length < 1) return !0; 
 
 
              $.width(f.buffered.end(0) / f.duration * 100 + "%"), Math.floor(f.buffered.end(0)) >= Math.floor(f.duration) && clearInterval(e) 
            }, 100), b.html(a.isNumeric(f.duration) ? p(f.duration) : "&hellip;"), w.find("div").width(100 * f.volume + "%"), P = f.volume 
          }), f.addEventListener("timeupdate", function() { 
            g.html(p(f.currentTime)), h.width(f.currentTime / f.duration * 100 + "%") 
          }), a("body").on("click", w, function() { 
            w.find("div").width(100 * f.volume + "%"), f.volume > 0 && c.hasClass(t.muted) && c.removeClass(t.muted), f.volume <= 0 && !c.hasClass(t.muted) && c.addClass(t.muted), c.find(".audioplayer-volume-button i").empty().append((100 * f.volume).toFixed(0) + "%") 
          }), f.addEventListener("ended", function() { 
            c.removeClass(t.playing).addClass(t.stopped), a("div").removeClass("play-active"), 0 == playRepeat ? playNext() : (a(".main-player").find("audio").get(0).play(), a(".main-player .audioplayer").removeClass("audioplayer-stopped").addClass("audioplayer-playing")) 
          }), v.on(s, function(a) { 
            x(a), v.on(n, function(a) { 
              x(a) 
            }) 
          }).on(o, function() { 
            v.unbind(n) 
          }), C.on("click", function() { 
            return c.hasClass(t.muted) ? (c.removeClass(t.muted), f.volume = P) : (c.addClass(t.muted), P = f.volume, f.volume = 0), !1 
          }), w.on(s, function(a) { 
            k(a), w.on(n, function(a) { 
              k(a) 
            }) 
          }).on(o, function() { 
            w.unbind(n) 
          }) 
        } else c.addClass(t.mini); 
        c.addClass(m ? t.playing : t.stopped), c.find("." + t.playPause).on("click", function() { 
          a(this).parent().parent().attr("class"); 
          return c.hasClass(t.playing) ? (a(this).attr("title", e.strPlay).find("a").html(e.strPlay), c.removeClass(t.playing).addClass(t.stopped), y ? f.pause() : f.Stop()) : (a(this).attr("title", e.strPause).find("a").html(e.strPause), c.addClass(t.playing).removeClass(t.stopped), y ? f.play() : f.Play()), !1 
        }), i.replaceWith(c) 
      }), this 
    } 
  }(jQuery, window, document), $(document).ready(function() { 
    addTempPlayList($(".stm-block-content"), $(".main-news")), $(".playlist-item:first").addClass("playlist-item-play"), createPlaySong($(".main-news:first")), loadPlayList(), $("body").on("click", ".mplayer-next", function() { 
      playNext() 
    }), $("body").on("click", ".mplayer-prev", function() { 
      playPrev() 
    }), $("body").on("click", ".mplayer-menu-rep", function() { 
      playRandom = !1, playRepeat = !playRepeat, $(".mplayer-menu-rnd").removeClass("mplayer-menu-active"), $(this).toggleClass("mplayer-menu-active") 
    }), $("body").on("click", ".mplayer-menu-rnd", function() { 
      playRepeat = !1, playRandom = !playRandom, $(".mplayer-menu-rep").removeClass("mplayer-menu-active"), $(this).toggleClass("mplayer-menu-active") 
    }), $("body").on("click", ".playlist-item", function() { 
      cleanActiveClasses(); 
      var a = $(this); 
      return createPlaySong(a), cleanActiveClasses(), a.addClass("playlist-item-play"), $(".main-player").find("audio").get(0).play(), showPlay(), $(".mobplaeyr .audioplayer").addClass("audioplayer-opacity"), !1 
    }), $("body").on("click", ".slider-item-image", function() { 
      return cleanActiveClasses(), addTempPlayList($(".sld1 .swiper-wrapper"), $(".slider-item")), createPlaySong($(this).parent()), $(".main-player").find("audio").get(0).play(), showPlay(), !1 
    }), $("body").on("click", ".main-news-play", function() { 
      addTempPlayList($(".ajax-content"), $(".main-news")), createPlaySong($(this).parent()), $(".main-player").find("audio").get(0).play(), $("div").removeClass("play-active"), $(this).parent().toggleClass("play-active"), showPlay() 
    }), $("body").on("click", ".full-news-listen a", function() { 
      return createPlaySong($(this)), $(".main-player").find("audio").get(0).play(), showPlay(), !1 
    }), $("body").on("click", ".main-news-pause", function() { 
      $(".main-player").find("audio").get(0).pause(), $("div").removeClass("play-active") 
    }), $("body").on("click", ".mplayer-menu-playlist, .player-popup-close", function() { 
      $(".player-popup").slideToggle(), $(".audioplayer, .mobplaeyr-close").toggleClass("audioplayer-opacity") 
    }), $("body").on("click", ".mob-playr-open, .mobplaeyr-close", function() { 
      $(".player-wrap").toggleClass("mobplaeyr") 
    }), $("body").on("click", ".mplayer-menu-zoom1", function() { 
      $(this).toggleClass("mplayer-menu-active"), $(".player-wrap").toggleClass("miniplayer") 
    }), $("body").on("click", ".fav-js", function() { 
      if ($(".plstab .playlist-item-play").length) var a = $(".playlist-item-play .ms-save-song").data("mp3"); 
 
      $(".plstab").empty(); 
      var e = $(".favlink").attr("href"); 
 
 
      $.ajax({ 
        url: e, 
        type: "get", 
        cache: !0, 
        success: function(a) { 
          $($(a).find(".main-news")).each(function() { 
            var a = $(this).find(".main-news-title").attr("href"), 
              e = $(this).find(".main-news-author").text(), 
              t = $(this).find(".main-news-song").text(), 
              i = $(this).find(".ms-save-song").data("mp3"); 
 
            $(".tabs-pl .plstab").append('<a href="' + a + '" class="playlist-item"><u class="ms-author">' + e + '</u><i class="ms-song">' + t + '</i><span class="ms-save-song" data-mp3="' + i + '"></span></a>') 
          }) 
        }, 
        complete: function(e) { 
          void 0 !== a && $(".plstab").find('.ms-save-song[data-mp3="' + a + '"]').parent().addClass("playlist-item-play") 
        } 
      }) 
    }), $("body").on("click", ".singer-play", function() { 
      $(".plstemp").empty(); 
      var a = $(this).parent().find(".singer-track a").attr("href"); 
      "undefined" != a && $.ajax({ 
        url: a, 
        type: "get", 
        cache: !0, 
        success: function(a) { 
          $(".loading-popup").addClass("loading-content"), $($(a).find('div[data-cat="song"]')).each(function() { 
            var a = $(this).find(".main-news-title").attr("href"), 
              e = $(this).find(".main-news-author").text(), 
              t = $(this).find(".main-news-song").text(), 
              i = $(this).find(".ms-save-song").data("mp3"); 
 
            $(".tabs-pl .plstemp").append('<a href="' + a + '" class="playlist-item"><u class="ms-author">' + e + '</u><i class="ms-song">' + t + '</i><span class="ms-save-song" data-mp3="' + i + '"></span></a>') 
          }) 
        }, 
        complete: function(a) { 
          createPlaySong($(".plstemp .playlist-item:first")), $(".main-player").find("audio").get(0).play(), cleanActiveClasses(), $(".playlist-item:first").addClass("playlist-item-play"), showPlay(), $(".loading-popup").removeClass("loading-content"), showStatusWin("Треки загружены в плейлист") 
        } 
      }) 
    }), $("body").on("click", ".albums-play", function() { 
      $(".plstemp").empty(); 
      var a = $(this).parent().find(".albums-title a").attr("href"); 
      "undefined" != a && $.ajax({ 
        url: a, 
        type: "get", 
        cache: !0, 
        success: function(a) { 
          $(".loading-popup").addClass("loading-content"), $($(a).find('div[data-cat="song"]')).each(function() { 
            var a = $(this).find(".main-news-title").attr("href"), 
              e = $(this).find(".main-news-author").text(), 
              t = $(this).find(".main-news-song").text(), 
              i = $(this).find(".ms-save-song").data("mp3"); 
 
            $(".tabs-pl .plstemp").append('<a href="' + a + '" class="playlist-item"><u class="ms-author">' + e + '</u><i class="ms-song">' + t + '</i><span class="ms-save-song" data-mp3="' + i + '"></span></a>') 
          }) 
        }, 
        complete: function(a) { 
          createPlaySong($(".plstemp .playlist-item:first")), $(".main-player").find("audio").get(0).play(), cleanActiveClasses(), $(".playlist-item:first").addClass("playlist-item-play"), showPlay(), $(".loading-popup").removeClass("loading-content"), showStatusWin("Треки загружены в плейлист") 
        } 
      }) 
    }) 
  });

READ ALSO
Как убрать часть адреса из input?

Как убрать часть адреса из input?

Есть произвольных адрес в input1 (Россия, Московская область, Пушкино)

207
Условие авторизации в приложении на Flask

Условие авторизации в приложении на Flask

У меня есть функция по авторизации пользователя в моём приложении на Flask

208
Совет по готовому решению слайдера

Совет по готовому решению слайдера

Товарищи, верстаю макетДошел до части со слайдером

212
Неверное форматирование html письма

Неверное форматирование html письма

Я пытаюсь кривыми руками собрать html письмоНо в тело письма попадает html разметка как Текст

146