u17 Display Chapter Dates

Fetches and displays the chapter dates for u17 manhua

  1. // ==UserScript==
  2. // @name u17 Display Chapter Dates
  3. // @namespace https://greasyfork.org/en/users/689482-quin15
  4. // @version 1.0.3
  5. // @description Fetches and displays the chapter dates for u17 manhua
  6. // @author Quin15
  7. // @match https://www.u17.com/comic/*
  8. // @icon https://www.google.com/s2/favicons?domain=u17.com
  9. // @grant GM_xmlhttpRequest
  10. // @run-at document-idle
  11. // ==/UserScript==
  12.  
  13. GM_xmlhttpRequest ({
  14. method: 'GET',
  15. url: "https://app.u17.com/v3/appV3_3/android/phone/comic/detail_static_new?v=5700100&comicid=" + location.pathname.split('/').reverse()[0].replace('.html', ''),
  16. headers: {"accept": "*/*", "accept-language": "en-GB,en-US;q=0.9,en;q=0.8", "content-Encoding": "gzip, deflate, br"},
  17. onload: function (responseDetails) {
  18. var data = JSON.parse(responseDetails.responseText);
  19. var checkElems = function() {if (document.querySelector(".cf")) {injectDates(data)} else {setTimeout(checkElems, 100);}};
  20. checkElems();
  21. }
  22. });
  23.  
  24. var injectDates = function(data) {
  25. var elemDates = data.data.returnData.chapter_list;
  26. var episodes = document.querySelectorAll('li[id^="cpt_read"]');
  27. for (var i = 0; i < episodes.length; i++) {
  28. var dateElem = document.createElement('div');
  29. dateElem.style = "width:100%;color: #888;font-size: 12px;top:15px;position:absolute;height:0px;";
  30. dateElem.innerText = new Date(elemDates[i].publish_time * 1000).toISOString().substr(0,10);
  31. episodes[i].appendChild(dateElem);
  32. };
  33. addButtons(data.data.returnData.comic.name, data.data.returnData.comic.cover);
  34. };
  35.  
  36. var addButtons = function(name, cover) {
  37. var searchAP = document.createElement('a');
  38. searchAP.className = "btn_start";
  39. searchAP.style.cursor = "pointer";
  40. searchAP.innerHTML = `<img src="https://www.anime-planet.com/favicon.ico" style="float:left;height:30px;margin:10px 0px 0px 10px;"><p style="margin-top:12px;font-size:14px;">Search on AP</p>`;
  41. document.querySelector('#btn_big').appendChild(searchAP);
  42. searchAP.addEventListener("click", function() {open(encodeURI("https://www.anime-planet.com/manga/all?name=" + name), "")});
  43.  
  44. var coverImg = document.createElement('a');
  45. coverImg.className = "btn_start";
  46. coverImg.style.cursor = "pointer";
  47. coverImg.innerHTML = `<img src="` + cover.replace(/s?big/, 'small') + `" style="float:left;height:30px;margin:10px 0px 0px 10px;"><p style="margin-top:12px;font-size:14px;">Open Cover Image</p>`;
  48. document.querySelector('#btn_big').appendChild(coverImg);
  49. coverImg.addEventListener("click", function() {open(cover, "")});
  50. };