csn.us - Free lossless downloader for chiasenhac.vn

Allow download lossless in chiasenhac.vn without VIP privilege

// ==UserScript==
// @name        csn.us - Free lossless downloader for chiasenhac.vn
// @name:vi     csn.us - Trình tải nhạc lossless cho chiasenhac.vn
// @namespace   CSN.US
// @match       https://chiasenhac.vn/*
// @homepage    https://chiasenhac.us
// @grant       none
// @version     1.2.2
// @icon        https://chiasenhac.us/images/icon.png
// @author      chiasenhac.us
// @license MIT
// @description Allow download lossless in chiasenhac.vn without VIP privilege
// @description:vi Cho phép tải nhạc trên chiasenhac.vn mà không cần đặc quyền VIP
// @changelog Update icon and description
// @changelog:vi Cập nhật icon và mô tả
// ==/UserScript==
function isLogin() {
  return !!document.querySelector('.wapper-name');
}
function getBaseLink() {
  var aDownload = document.querySelector('.download_status a');
  var baseLink;
  if (aDownload) {
    baseLink = aDownload.getAttribute('href');
    console.log('BaseLink', baseLink);
    baseLink = baseLink.substring(0, baseLink.lastIndexOf('/'));
    baseLink = baseLink.substring(0, baseLink.lastIndexOf('/'));
    console.log('BaseLink Substring', baseLink);
    console.log('BaseLink replace', baseLink);
  }
  return baseLink;
}

function getSongName() {
  var aDownload = document.querySelector('.download_status a')
  if (aDownload) {
    var downloadLink = aDownload.getAttribute('href');
    var splitLink = downloadLink.split('/');
    var songName = splitLink[splitLink.length - 1];
    return songName.substring(0, songName.lastIndexOf('.'));
  }
}
function main() {
  var songName = getSongName();
  if (songName) {
    console.log('songName', songName);
    var baseLink = getBaseLink();
    var downloadLink = document.querySelectorAll('.download_status a.download_item');
    console.log('DownloadLink', downloadLink);
    var qualityCount = downloadLink.length;
    console.log('qualityCount', qualityCount);
    if (!isLogin() && qualityCount > 2) {
      downloadLink[2].setAttribute('title', 'Free download link generated by chiasenhac.us');
      var mp3320link = `${baseLink}/320/${songName}.mp3`;
      console.log('mp3320link', mp3320link);
      downloadLink[2].setAttribute('href', mp3320link);
      downloadLink[2].removeAttribute('style');
      document.querySelector('.download_status li:nth-child(3)').innerHTML = "You can now download free lossless with support from <strong>chiasenhac.us</strong>";
    }
    if (qualityCount > 3) {
      var downloadItem = isLogin() ? downloadLink[2] :downloadLink[3]
      downloadItem.setAttribute('title', 'Free download link generated by chiasenhac.us');
      var m4a500kbpsLink = `${baseLink}/m4a/${songName}.m4a`;
      console.log('m4a500kbpsLink', m4a500kbpsLink);
      downloadItem.setAttribute('href', m4a500kbpsLink);
      downloadItem.removeAttribute('style');
    }
    if (qualityCount > 4) {
      var downloadItem = isLogin() ? downloadLink[3] :downloadLink[4]
      downloadItem.setAttribute('title', 'Free download link generated by chiasenhac.us');
      var flacLink = `${baseLink}/flac/${songName}.flac`;
      console.log('flacLink', flacLink);
      downloadItem.setAttribute('href', flacLink)
      downloadItem.removeAttribute('style');
    }
  }
}

main();