// ==UserScript==
// @name Copy Video Source Link
// @namespace https://naeembolchhi.github.io/
// @version 2.0
// @description Copies the source URL of the currently playing video in 9anime, animedao, fmovies, and sflix to clipboard, or opens it in a new tab.
// @author NaeemBolchhi
// @license https://www.gnu.org/licenses/gpl-3.0.html
// @include https://9anime.*/watch/*/*
// @include https://fmovies.*/*/*
// @include https://sflix.*/watch*/*
// @include https://animedao.*/view/*
// @exclude https://9anime.me/
// @icon data:image/vnd.microsoft.icon;base64,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
// @run-at document-body
// @grant none
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
const toggleSVG = '';
const copySVG = '';
const copyGREEN = '';
const copyRED = '';
const linkSVG = '';
let sourceLINK;
if (window.location.hostname.match(/9anime/)){
sourceLINK = "document.querySelector('#player iframe').src";
}
if (window.location.hostname.match(/fmovies/)){
sourceLINK = "document.querySelector('#player iframe').src";
}
if (window.location.hostname.match(/sflix/)){
sourceLINK = "document.querySelector('#watch-iframe iframe').src";
}
if (window.location.hostname.match(/animedao/)){
sourceLINK = "document.querySelector('#videowrapper_src iframe').src";
}
function addStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) {window.location.reload();}
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
}
function addScript(js) {
var body, script;
body = document.getElementsByTagName('body')[0];
if (!body) {window.location.reload();}
script = document.createElement('script');
script.type = "text/javascript";
script.innerHTML = js;
body.appendChild(script);
}
function addElement(html) {
var body, element;
body = document.getElementsByTagName('body')[0];
if (!body) {window.location.reload();}
element = document.createElement('controlcenter');
element.innerHTML = html;
body.appendChild(element);
}
addStyle(`
@import url("https://fonts.googleapis.com/css2?family=PT+Sans&display=swap");
orbinfo {
background: #f8f8ff;
border-radius: 50px;
bottom: 0;
box-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.45);
color: black;
font-family: "PT Sans", sans-serif;
font-size: 14px;
left: 80px;
line-height: 1;
transform: translate(0,40px);
/*margin: 0 0 -40px 0;*/
opacity: 0;
padding: 4px 10px;
position: fixed;
transition: width 150ms ease-in-out, opacity 240ms;
white-space: nowrap;
width: 0px;
z-index: 999999999;
}
orbinfo.orb-toggle {
transform: translate(0,-39px);
/*margin: 0 0 39px 0;*/
opacity: 1;
overflow: hidden;
transition: width 150ms ease-in-out, opacity 240ms;
width: 168px;
}
orbinfo.orb-copy {
transform: translate(0,-99px);
/*margin: 0 0 99px 0;*/
opacity: 1;
overflow: hidden;
transition: width 150ms ease-in-out, opacity 240ms;
width: 182px;
}
orbinfo.orb-link {
transform: translate(0,-159px);
/*margin: 0 0 159px 0;*/
opacity: 1;
overflow: hidden;
transition: width 150ms ease-in-out, opacity 240ms;
width: 256px;
}
orb {
border-radius: 50%;
bottom: 30px;
box-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.35);
display: block;
height: 40px;
left: 25px;
position: fixed;
width: 40px;
}
orb:hover {
box-shadow: 0 0 4.5px 1.5px rgba(0, 0, 0, 0.45);
cursor: pointer;
}
orb > svg {
box-sizing: content-box;
fill: black !important;
height: 20px;
padding: 10px;
width: 20px;
}
orb.orb-control-toggle {
background: #f8f8ff;
opacity: 0.3;
transform: translate(0,0);
/*margin: 0;*/
z-index: 999999;
transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-control-toggle:hover {
opacity: 1;
transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-control-toggle > svg {
rotate: 0deg;
transition: rotate 200ms ease-in-out;
}
orb.orb-control-copy {
background: #dedee5;
transform: translate(0,-60px);
/*margin: 0 0 60px 0;*/
z-index: 999998;
transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-control-link {
background: #dedee5;
transform: translate(0,-120px);
/*margin: 0 0 120px 0;*/
z-index: 999997;
transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-hidden {
transform: translate(0,0);
opacity: 0;
transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-active {
opacity: 1 !important;
}
orb.orb-active > svg {
rotate: 180deg;
transition: rotate 200ms linear;
}
orb.orb-color-red {
background: #ff0000 !important;
}
orb.orb-color-green {
background: #28cc28 !important;
}
orb.orb-color-red > #orb-red-svg, orb.orb-color-green > #orb-green-svg {
display: inline !important;
}
orb.orb-color-red > #orb-copy-svg, orb.orb-color-green > #orb-copy-svg {
display: none !important;
}
orb.orb-color-flip {
background: #0f0f0f !important;
}
orb.orb-color-flip > svg {
fill: #f8f8ff !important;
}
`);
addElement(`
Toggle Quick Commands
Copy Embedded Video Link
Open Embedded Video Link in New Tab
` + toggleSVG + `
` + copySVG + copyGREEN + copyRED + `
` + linkSVG + `
`);
addScript(`
function setOrbLink() {
document.querySelector('#orb-source-link').href = ` + sourceLINK + `;
}
function copyOrbLink() {
navigator.clipboard.writeText(` + sourceLINK + `).then(function() {
document.querySelector('orb.orb-control-copy').classList.add('orb-color-green');
}, function() {
document.querySelector('orb.orb-control-copy').classList.add('orb-color-red');
});
setTimeout((function(){
document.querySelector('orb.orb-control-copy').classList.remove('orb-color-green');
document.querySelector('orb.orb-control-copy').classList.remove('orb-color-red');
}),1000);
}
document.querySelector('orb.orb-control-toggle').addEventListener("click", (function() {
if (document.querySelector('orb.orb-control-copy').className.match(/hidden/i)) {
document.querySelector('orb.orb-control-copy').classList.remove('orb-hidden');
document.querySelector('orb.orb-control-link').classList.remove('orb-hidden');
document.querySelector('orb.orb-control-toggle').classList.add('orb-active');
} else {
document.querySelector('orb.orb-control-copy').classList.add('orb-hidden');
document.querySelector('orb.orb-control-link').classList.add('orb-hidden');
document.querySelector('orb.orb-control-toggle').classList.remove('orb-active');
}
}));
document.querySelector('controlcenter a[target]').addEventListener("click", (function() {
document.querySelector('orb.orb-control-link').classList.add('orb-color-flip');
setTimeout((function(){
document.querySelector('orb.orb-control-link').classList.remove('orb-color-flip');
}),500);
}));
document.querySelector('orb.orb-control-toggle').addEventListener("mouseover", (function() {
document.querySelector('orbinfo[toggle]').classList.add('orb-toggle');
}));
document.querySelector('orb.orb-control-toggle').addEventListener("mouseout", (function() {
document.querySelector('orbinfo[toggle]').classList.remove('orb-toggle');
}));
document.querySelector('orb.orb-control-copy').addEventListener("mouseover", (function() {
document.querySelector('orbinfo[copy]').classList.add('orb-copy');
}));
document.querySelector('orb.orb-control-copy').addEventListener("mouseout", (function() {
document.querySelector('orbinfo[copy]').classList.remove('orb-copy');
}));
document.querySelector('orb.orb-control-link').addEventListener("mouseover", (function() {
document.querySelector('orbinfo[link]').classList.add('orb-link');
}));
document.querySelector('orb.orb-control-link').addEventListener("mouseout", (function() {
document.querySelector('orbinfo[link]').classList.remove('orb-link');
}));
`);
/*
if (window.location.hostname.match(/9anime/)){
addStyle(`.copy-style {fill: #ababab;color: #464749;float: right;cursor: pointer;}
.copy-style:hover {fill: #eeeeee;}
.anchor-new {padding: 0 8px;display: inline-block;cursor: pointer;color: #ababab;height: 38px;line-height: 38px;-webkit-transition: all .15s;-moz-transition: all .15s;transition: all .15s;}
.anchor-new:hover {background: #141414;color: #eee;}`);
lineGAP = ' ';
copyCLS = 'anchor-new copy-style';
playVID = '';
addButton(document.getElementById('controls'));
}
if (window.location.hostname.match(/fmovies/)){
addStyle(`.copy-style {fill: #6a727a;color: #464749;cursor: pointer;}
.copy-style:hover {fill: #adb5bd;}
.anchor-new {float: left;line-height: 25px;border-radius: 4px;font-size: .8em;padding: 0 15px;cursor: pointer;border: 1px solid #494f54;color: #6a727a;-webkit-transition: all .2s ease-in-out 0s;-moz-transition: all .2s ease-in-out 0s;transition: all .2s ease-in-out 0s;margin-right: 10px;margin-bottom: 8px;}
.anchor-new:hover {color: #adb5bd;border-color: #6c757d;}`);
lineGAP = ' ';
copyCLS = 'anchor-new copy-style';
playVID = '';
addButton(document.getElementById('controls').children[0]);
}
if (window.location.hostname.match(/sflix/)){
addStyle(`.copy-style {fill: #aaaaaa;color: #aaaaaa;padding: 10px;text-align: center;font-size: 11px;}
.copy-style:hover {fill: #aaaaaa;color: #aaaaaa;background: #464749;}
.copy-style > svg {margin: 0 25px;}
@media only screen and (min-width: 1300px) {
.copy-style {border-radius: 0 0 10px 0;}
}
@media only screen and (max-width: 1299px) {
.copy-style {border-radius: 0;}
.copy-style > svg {margin: 6px 20px 10px 20px;}
}`);
lineGAP = '
';
copyCLS = 'dtc-item btn copy-style border-sflix';
playVID = '';
addButton(document.getElementsByClassName('dt-content')[0]);
} */
/*document.querySelector('orb.control-copy').addEventListener("click", (function() {
/* navigator.clipboard.writeText( LINK ).then((function(){document.getElementById("embed-copy").children[2].innerHTML="Copied!";}),
(function(){document.getElementById("embed-copy").children[2].innerHTML="Failed!";}))
}
document.querySelector('orb.control-link').addEventListener("click", (function() {
}*/
})();