2018-01-24 23:15:54 +01:00
if ( Debug . debug ) {
2017-09-24 01:54:46 +02:00
console . log ( "\n\n\n\n\n\n ——— Sᴛλʀᴛɪ ɴɢ Uʟᴛʀᴀᴡ ɪ ᴅɪ ꜰʏ ———\n << ʟᴏᴀᴅɪɴɢ ᴍᴀɪɴ ꜰɪʟᴇ >>\n\n\n\n" ) ;
2018-01-24 23:15:54 +01:00
try {
if ( window . self !== window . top ) {
console . log ( "%cWe aren't in an iframe." , "color: #afc, background: #174" ) ;
}
else {
console . log ( "%cWe are in an iframe!" , "color: #fea, background: #d31" , window . self , window . top ) ;
}
} catch ( e ) {
console . log ( "%cWe are in an iframe!" , "color: #fea, background: #d31" ) ;
}
}
2017-04-27 20:03:36 +02:00
2018-01-02 03:36:29 +01:00
// global-ish
2018-01-20 22:59:31 +01:00
2018-01-02 03:36:29 +01:00
var _main _last _fullscreen ;
2018-01-18 22:34:42 +01:00
var _player _dimensions _last ;
2017-12-02 21:09:08 +01:00
// load all settings from localStorage:
2017-01-04 23:23:41 +01:00
2017-12-17 22:56:07 +01:00
async function main ( ) {
if ( Debug . debug )
2017-12-29 23:34:40 +01:00
console . log ( "[uw::main] loading configuration ..." ) ;
2017-12-17 22:56:07 +01:00
// load settings
2017-12-29 23:34:40 +01:00
await Settings . init ( ) ;
2017-12-17 22:56:07 +01:00
var scpromise = SitesConf . init ( ) ;
var kbpromise = Keybinds . init ( ) ;
2017-12-29 23:34:40 +01:00
2017-12-17 22:56:07 +01:00
ExtensionConf . init ( ) ;
// počakamo, da so nastavitve naložene
// wait for settings to load
await scpromise ;
await kbpromise ;
2018-01-28 02:35:05 +01:00
// globalVars: lastAr type = original
GlobalVars . lastAr = { type : "original" } ;
2017-12-17 22:56:07 +01:00
if ( Debug . debug )
console . log ( "configuration should be loaded now" ) ;
// start autoar and setup everything
2016-11-16 19:52:09 +01:00
2017-12-02 21:09:08 +01:00
2017-09-24 01:54:46 +02:00
if ( Debug . debug )
console . log ( "uw::document.ready | document is ready. Starting ar script ..." ) ;
2017-12-17 22:56:07 +01:00
2017-12-02 21:09:08 +01:00
if ( SitesConf . getMode ( window . location . hostname ) == "blacklist" ) {
if ( Debug . debug )
console . log ( "uw::document.ready | site" , window . location . hostname , "is blacklisted." ) ;
return ;
}
2017-12-17 22:56:07 +01:00
if ( ExtensionConf . mode == "none" ) {
2017-12-02 21:09:08 +01:00
if ( Debug . debug )
console . log ( "uw::document.ready | Extension is soft-disabled via popup" ) ;
return ;
}
2017-12-17 22:56:07 +01:00
if ( ExtensionConf . mode == "whitelist" && SitesConf . getMode ( window . location . hostname ) != "whitelist" ) {
2017-12-02 21:09:08 +01:00
if ( Debug . debug )
console . log ( "uw::document.ready | extension is set to run on whitelisted sites only, but site " , window . location . hostname , "is not on whitelist." ) ;
return ;
}
2017-12-29 23:34:40 +01:00
2017-12-31 18:26:59 +01:00
if ( Settings . arDetect . enabled == "global" ) {
if ( Debug . debug )
console . log ( "[uw::main] Aspect ratio detection is enabled. Starting ArDetect" ) ;
2018-01-20 22:59:31 +01:00
// ArDetect.arSetup();
2017-12-31 18:26:59 +01:00
}
else {
if ( Debug . debug )
console . log ( "[uw::main] Aspect ratio detection is disabled. This is in settings:" , Settings . arDetect . enabled ) ;
}
2017-01-02 17:45:51 +01:00
2018-01-11 22:43:25 +01:00
browser . runtime . onMessage . addListener ( receiveMessage ) ;
2018-01-18 22:34:42 +01:00
setInterval ( ghettoOnChange , 33 ) ;
2017-12-17 22:56:07 +01:00
}
2018-01-02 03:36:29 +01:00
2018-01-18 22:34:42 +01:00
// tukaj gledamo, ali se je velikost predvajalnika spremenila. Če se je, ponovno prožimo resizer
// here we check (in the most ghetto way) whether player size has changed. If it has, we retrigger resizer.
2018-01-02 03:36:29 +01:00
2018-01-20 22:59:31 +01:00
var _video _recheck _counter = 0 ;
var _video _recheck _period = 60 ; // on this many retries
function ghettoOnChange ( ) {
2018-01-24 23:15:54 +01:00
// console.log("..");
// console.log("events:", $._data($(document)[0], "events"));
2018-01-20 22:59:31 +01:00
if ( _video _recheck _counter ++ > _video _recheck _period ) {
_video _recheck _counter = 0 ;
if ( GlobalVars . video === null ) {
var video = document . getElementsByTagName ( "video" ) [ 0 ] ;
2018-01-26 00:09:08 +01:00
if ( video !== undefined ) {
2018-01-20 22:59:31 +01:00
GlobalVars . video = video ;
2018-01-27 20:27:11 +01:00
Comms . sendToBackgroundScript ( { "cmd" : "register-video" } ) ;
2018-01-26 00:09:08 +01:00
}
2018-01-20 22:59:31 +01:00
}
}
if ( GlobalVars . video === null )
return ;
2018-01-18 22:34:42 +01:00
if ( _player _dimensions _last === undefined ) {
2018-01-20 22:59:31 +01:00
_player _dimensions _last = PlayerDetect . getPlayerDimensions ( GlobalVars . video ) ;
2018-01-02 03:36:29 +01:00
}
2018-01-18 22:34:42 +01:00
2018-01-20 22:59:31 +01:00
var newPlayerDims = PlayerDetect . getPlayerDimensions ( GlobalVars . video ) ;
if ( newPlayerDims == undefined )
return ;
2018-01-27 20:27:11 +01:00
GlobalVars . playerDimensions = newPlayerDims ;
2018-01-20 22:59:31 +01:00
2018-01-18 22:34:42 +01:00
if ( newPlayerDims . width != _player _dimensions _last . width ||
newPlayerDims . height != _player _dimensions _last . height ) {
Resizer . restore ( ) ;
2018-01-02 03:36:29 +01:00
}
2018-01-18 22:34:42 +01:00
_player _dimensions _last = newPlayerDims ;
2018-01-02 03:36:29 +01:00
}
2017-12-29 23:34:40 +01:00
2018-01-18 22:34:42 +01:00
2018-02-01 00:26:16 +01:00
2018-01-18 22:34:42 +01:00
2017-12-29 23:34:40 +01:00
// comms
2018-01-11 22:43:25 +01:00
function receiveMessage ( message , sender , sendResponse ) {
2017-12-29 23:34:40 +01:00
if ( Debug . debug )
console . log ( "[uw::receiveMessage] we received a message." , message ) ;
2017-12-30 18:36:08 +01:00
if ( message . cmd == "has-videos" ) {
2018-01-24 23:15:54 +01:00
var anyVideos = GlobalVars . video != null ;
2018-01-08 22:48:45 +01:00
2018-01-20 22:59:31 +01:00
if ( Debug . debug )
2018-01-24 23:15:54 +01:00
console . log ( "[uw::receiveMessage] are there any videos on this page?" , anyVideos , GlobalVars . video , this ) ;
2018-01-20 22:59:31 +01:00
2018-01-11 22:43:25 +01:00
if ( BrowserDetect . usebrowser == "firefox" )
return Promise . resolve ( { response : { "hasVideos" : anyVideos } } ) ;
2018-01-27 20:13:23 +01:00
try {
sendResponse ( { response : { "hasVideos" : anyVideos } } ) ;
return true ;
}
catch ( chromeIsShitError ) { }
return ;
2017-12-30 18:36:08 +01:00
}
2018-01-10 23:16:07 +01:00
else if ( message . cmd == "get-config" ) {
var config = { } ;
config . videoAlignment = Settings . miscFullscreenSettings . videoFloat ;
config . arConf = { } ;
config . arConf . enabled _global = Settings . arDetect . enabled == "global" ;
var keybinds = Keybinds . getKeybinds ( ) ;
if ( Debug . debug )
console . log ( "[uw-bg::_uwbg_rcvmsg] Keybinds.fetch returned this:" , keybinds ) ;
config . keyboardShortcuts = keybinds ;
// predvidevajmo, da je enako. Če je drugače, bomo popravili ko dobimo odgovor
// assume current is same as global & change that when you get response from content script
config . arConf . enabled _current = ArDetect . isRunning ( ) ;
2018-01-11 22:43:25 +01:00
if ( BrowserDetect . usebrowser == "firefox" )
return Promise . resolve ( { response : config } ) ;
2018-01-27 20:13:23 +01:00
try {
sendResponse ( { response : config } ) ;
}
catch ( chromeIsShitError ) { } ;
2018-01-11 22:43:25 +01:00
return true ;
2017-12-30 18:36:08 +01:00
}
2018-01-08 22:48:45 +01:00
2017-12-30 18:36:08 +01:00
else if ( message . cmd == "force-ar" ) {
2017-12-29 23:34:40 +01:00
if ( Debug . debug )
console . log ( "[uw::receiveMessage] we're being commanded to change aspect ratio to" , message . newAr ) ;
2018-02-01 00:26:16 +01:00
if ( message . arType == "legacy" ) {
ArDetect . stop ( ) ;
Resizer . legacyAr ( message . newAr ) ;
2017-12-29 23:34:40 +01:00
}
else {
ArDetect . stop ( ) ;
2018-01-18 22:34:42 +01:00
Resizer . setAr ( message . newAr ) ;
2017-12-29 23:34:40 +01:00
}
2017-12-30 18:36:08 +01:00
}
else if ( message . cmd == "force-video-float" ) {
2017-12-29 23:34:40 +01:00
if ( Debug . debug )
console . log ( "[uw::receiveMessage] we're aligning video to" , message . newFloat ) ;
Settings . miscFullscreenSettings . videoFloat = message . newFloat ;
Settings . save ( ) ;
}
2017-12-30 18:36:08 +01:00
else if ( message . cmd == "stop-autoar" ) {
2017-12-29 23:34:40 +01:00
ArDetect . stop ( ) ;
}
2017-12-30 18:36:08 +01:00
else if ( message . cmd == "reload-settings" ) {
2017-12-29 23:34:40 +01:00
Settings . reload ( ) ;
}
2018-02-01 00:26:16 +01:00
else if ( message . cmd == "uw-enabled-for-site" ) {
var site = window . location . hostname ;
var wlindex = Settings . whitelist . indexOf ( site ) ;
var blindex = Settings . blacklist . indexOf ( site ) ;
var mode = "default" ;
if ( wlindex > - 1 )
mode = "whitelist" ;
if ( blindex > - 1 )
mode = "blacklist" ;
if ( Debug . debug ) {
console . log ( "[uw::receiveMessage] is this site whitelisted or blacklisted? whitelist:" , ( wlindex > - 1 ) , "; blacklist:" , ( blindex > - 1 ) , "; mode (return value):" , mode , "\nwhitelist:" , Settings . whitelist , "\nblacklist:" , Settings . blacklist ) ;
}
if ( BrowserDetect . usebrowser == "firefox" )
return Promise . resolve ( { response : mode } ) ;
try {
sendResponse ( { response : mode } ) ;
}
catch ( chromeIsShitError ) { } ;
return true ;
}
else if ( message . cmd == "enable-for-site" ) {
var site = window . location . hostname ;
var wlindex = Settings . whitelist . indexOf ( site ) ;
var blindex = Settings . blacklist . indexOf ( site ) ;
if ( wlindex > - 1 )
Settings . whitelist . splice ( site , 1 ) ;
if ( blindex > - 1 )
Settings . blacklist . splice ( site , 1 ) ;
if ( message . option == "whitelist" )
Settings . whitelist . push ( site ) ;
if ( message . option == "blacklist" )
Settings . blacklist . push ( site ) ;
Settings . save ( Settings ) ;
}
2018-01-10 23:16:07 +01:00
if ( message . cmd == "testing" ) {
2018-01-11 22:43:25 +01:00
if ( Browserdetect . usebrowser = "firefox" )
return Promise . resolve ( { response : "test response hier" } ) ;
sendResponse ( { response : "test response hier" } ) ;
return true ;
2018-01-10 23:16:07 +01:00
}
2017-12-29 23:34:40 +01:00
}
2017-12-30 02:58:24 +01:00
2018-01-24 23:15:54 +01:00
// $(document).ready(function() {
2018-01-20 22:59:31 +01:00
main ( ) ;
2018-01-24 23:15:54 +01:00
// });