Greasy Fork

pobieracz cda.pl

Stara się umożliwić pobranie wideo, obejrzenie osobno i skopiowanie linku.

当前为 2022-02-01 提交的版本,查看 最新版本

// ==UserScript==
// @name         pobieracz cda.pl
// @namespace    https://greasyfork.org/pl/users/389583-adrian080
// @version      0.1
// @description  Stara się umożliwić pobranie wideo, obejrzenie osobno i skopiowanie linku.
// @author       Adrian080
// @license      GNU GPLv3
// @include      *cda.pl/video*
// @icon         http://scdn2.cda.pl/img/icon/fav/favicon.ico
// @run-at       document-end
// @grant        GM_download
// @grant        GM_setClipboard
// @grant        GM_notification
// ==/UserScript==

/*jshint esversion: 6 */
let style = document.createElement('style');
style.innerHTML = '#downloaderButton{background-color:rgba(0,0,0,50%);border-radius:100%;font-size:1rem;padding:0.3rem;position: absolute;top:4px;left:4px;cursor: pointer;z-index: 69690;line-height: normal !important;transition: all 250ms}#downloaderButton:hover{transform: scale(1.2,1.2)}@keyframes popup-box{from{opacity: 0;top: -20rem}to{opacity: 1;top: 0}}@keyframes popup-box-bg{from{background:rgba(0, 0, 0, 0)}to{background:rgba(0, 0, 0, 0.5)}}#popup-box{line-height: normal !important;animation-name: popup-box-bg;animation-duration: 0.8s;font-size: 120%;color: white;display: none;align-items: center;justify-content: center;background: rgba(0, 0, 0, 0.5);width: 100%;height: 100%;position: fixed;text-align: center;top: 0;left: 0;z-index: 69691}#popup-box > div{animation-name: popup-box;animation-duration: 0.8s;background-color: #323232;box-shadow: 0rem 0rem 1.5rem 0.3rem rgb(150, 150, 150);height: auto;max-width: 50%;vertical-align: middle;position: relative;border-radius: 1rem;padding: 1.5rem}#popup-box #title{color: #0090FF;font-size: 1.5rem;font-weight: bold}#popup-box #current-quality{font-size: 1.5rem;color: #00A0FF}#popup-box .buttons-container{width: 60%;margin: 0 auto}#popup-box button{display: block;width: 100%;margin: 0.4rem;padding: 0.4rem;color: white;background-color: #0069FF;border: none;border-radius: 0.4rem;transition: all 250ms}#popup-box button:hover{background-color: #0055FF;transform: scale(1.05,1.1)}#popup-close-button{background-color: #1e1e1e;border-radius: 100%;display: inline-block;font-family: arial;font-weight: bolder;position: absolute;top: -1rem;right: -1rem;font-size: 2rem;padding: 0 0.6rem;cursor: pointer}#popup-close-button:hover{background-color: rgb(0, 14, 54)}';
document.getElementsByTagName('head')[0].appendChild(style);
let mainButton = document.createElement("span");
mainButton.setAttribute("id", "downloaderButton");
mainButton.innerHTML = "🎥";
document.getElementsByClassName("pb-player-html-wrapper")[0].appendChild(mainButton);
let popUp = document.createElement("div");
popUp.setAttribute("id","popup-box");
popUp.innerHTML = '<div><div id="popup-close-button">&times;</div><div id="title">Ładowanie...</div><br>Obecnie wybrana jakość wideo:<br><span id="current-quality"></span><br><span style="font-size: 0.7rem;">(ustawia się w odtwarzaczu)</span><br><br><div class="buttons-container"><button id="download-btn">📂 Pobierz</button><button id="copy-btn">📎 Skopiuj link</button><button id="open-tab-btn">🎞️ Otwórz w nowej karcie</button></div></div>';
document.getElementsByClassName("pb-player-html-wrapper")[0].appendChild(popUp);
let popupBox = document.getElementById("popup-box");
let popupContent = document.querySelector("#popup-box div");
let popupClose = document.getElementById("popup-close-button");
let currentQuality = document.getElementById("current-quality");
let title = document.getElementById("title");
let download = document.getElementById("download-btn");
let copy = document.getElementById("copy-btn");
let openTab = document.getElementById("open-tab-btn");
let videoUrl;
let videoTitle;
let videoThumb;
let playerData;
mainButton.addEventListener("click", ()=>{
   popupBox.style.display = "flex";
   playerData = document.getElementsByClassName("brdPlayer brndPlayerPd")[0].firstElementChild.getAttribute("player_data");
   playerData = JSON.parse(playerData);
   videoTitle = decodeURI(playerData.video.title);
   videoUrl = document.querySelector("video.pb-video-player").getAttribute("src");
   videoThumb = "https:"+playerData.video.thumb;
   videoThumb = videoThumb.substring(0, videoThumb.search("_ooooxooxox_")+12)+"160x90.jpg";
   currentQuality.innerHTML = document.getElementsByClassName("pb pb-quality-txt")[0].innerHTML;
   title.innerHTML = videoTitle;
});
popupBox.addEventListener("click", ()=>{
  if(!popupContent.matches(":hover") || popupClose.matches(":hover")){
    popupBox.style.display = "none";
  }
});
download.addEventListener("click", ()=>{
    GM_download(videoUrl, videoTitle);
});
copy.addEventListener("click", ()=>{
    GM_setClipboard(videoUrl);
    GM_notification({title: "Skopiowano do schowka!", text: "Link do filmu został skopiowany do twojego schowka :D", image: videoThumb,timeout: 6000});
});
openTab.addEventListener("click", ()=>{
    window.open(videoUrl, "_blank").focus();
});