48 skills found · Page 2 of 2
haztecaso / Bwmenubitwarden-cli rofi wrapper written in python and with qutebrowser userscripts support
xonrsoftware / SteamBrowserModDownloaderTampermonkey userscript, download mod directly from its page without external services, except Steam. BSON to JSON browser conversion supported.
barszczmm / Greasemonkey ScriptsScripts for Greasemonkey Firefox addon (and for other browsers that support userscripts)
kufii / Vscode UserscriptUserScript language support for VS Code
Shayanthn / Twitter X Mass UnfollowSafely mass unfollow non-followers on X/Twitter (2025 working) – Ultra-safe JavaScript userscript with random delays (15–40s), auto-scroll support, and follow-back detection. No API, no extension, no bans. Perfect for cleaning your following list without hitting X rate limits.
cyberpunkgx / Facebook Auto Like Professional 2015v8.0// ==UserScript== // @name Facebook Auto Like Professional 2015 // @namespace http://zrftech.blogspot.com // @author Zia Ur Rehman(Z.R.F) <ziaurr3hman@hotmail.com> http://ziaurr3hman.comoj.com // @description Auto Like and unlike Facebook Status, Comments, Photos, group posts, page posts, group posts, lists, page feeds, events, timeline photos... // @icon https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/c21.21.259.259/s50x50/1240565_203642189797835_948886341_n.jpg // @updateURL https://raw.githubusercontent.com/ZiaUrR3hman/FacebookAutoLikeProfessional/master/FacebookAutoLikeProfessional.meta.js // @downloadURL https://raw.githubusercontent.com/ZiaUrR3hman/FacebookAutoLikeProfessional/master/FacebookAutoLikeProfessional.user.js // @version 8.0 // @copyright 2014+, ZiaUrR3hman (https://github.com/ZiaUrR3hman/FacebookAutoLikeProfessional) // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_addStyle // @include htt*://www.facebook.com/* // @exclude htt*://www.facebook.com/login.php* // @exclude htt*://apps.facebook.com/* // @exclude htt*://www.facebook.com/checkpoint/* // @exclude htt*://*static*.facebook.com* // @exclude htt*://*channel*.facebook.com* // @exclude htt*://developers.facebook.com/* // @exclude htt*://upload.facebook.com/* // @exclude htt*://www.facebook.com/common/blank.html // @exclude htt*://*connect.facebook.com/* // @exclude htt*://*facebook.com/connect* // @exclude htt*://www.facebook.com/plugins/* // @exclude htt*://www.facebook.com/l.php* // @exclude htt*://www.facebook.com/ai.php* // @exclude htt*://www.facebook.com/extern/* // @exclude htt*://www.facebook.com/pagelet/* // @exclude htt*://api.facebook.com/static/* // @exclude htt*://www.facebook.com/contact_importer/* // @exclude htt*://www.facebook.com/ajax/* // @exclude htt*://www.facebook.com/advertising/* // @exclude htt*://www.facebook.com/ads/* // @exclude htt*://www.facebook.com/sharer/* // @exclude htt*://www.facebook.com/send/* // @exclude htt*://www.facebook.com/mobile/* // @exclude htt*://www.facebook.com/settings/* // @exclude htt*://www.facebook.com/dialog/* // @exclude htt*://www.facebook.com/plugins/* // @exclude htt*://www.facebook.com/bookmarks/* // @exclude htt*://www.facebook.com/messages/* // @exclude htt*://www.facebook.com/friends/* // ==/UserScript== eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1m(R(p,a,c,k,e,r){e=R(c){S(c<a?\'\':e(1n(c/a)))+((c=c%a)>1i?U.1h(c+1d):c.1c(1e))};V(!\'\'.X(/^/,U)){T(c--)r[e(c)]=k[c]||e(c);k=[R(e){S r[e]}];e=R(){S\'\\\\w+\'};c=1};T(c--)V(k[c])p=p.X(1g 1f(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);S p}(\'M B=["\\\\K\\\\H\\\\y\\\\C\\\\8\\\\r\\\\a\\\\D\\\\9\\\\2\\\\L\\\\y\\\\1\\\\A\\\\n\\\\p\\\\9\\\\j\\\\2\\\\9\\\\6\\\\1\\\\4\\\\2\\\\8\\\\c\\\\h\\\\a\\\\9\\\\7\\\\4\\\\2\\\\j\\\\8\\\\h\\\\8\\\\2\\\\c\\\\6\\\\1\\\\u\\\\8\\\\3\\\\a\\\\5\\\\7\\\\5\\\\8\\\\j\\\\4\\\\m\\\\f\\\\G\\\\6\\\\1\\\\e\\\\m\\\\2\\\\n\\\\r\\\\7\\\\v\\\\8\\\\5\\\\h\\\\q\\\\6\\\\1\\\\g\\\\b\\\\g\\\\4\\\\3\\\\7\\\\m\\\\a\\\\u\\\\h\\\\6\\\\1\\\\N\\\\g\\\\4\\\\3\\\\7\\\\e\\\\f\\\\n\\\\r\\\\k\\\\9\\\\2\\\\p\\\\c\\\\5\\\\i\\\\n\\\\2\\\\m\\\\2\\\\9\\\\6\\\\1\\\\9\\\\k\\\\e\\\\t\\\\o\\\\F\\\\l\\\\1\\\\P\\\\o\\\\l\\\\1\\\\g\\\\b\\\\o\\\\w\\\\7\\\\4\\\\f\\\\5\\\\5\\\\8\\\\c\\\\k\\\\6\\\\1\\\\E\\\\4\\\\3\\\\7\\\\e\\\\2\\\\3\\\\i\\\\j\\\\q\\\\f\\\\5\\\\2\\\\v\\\\6\\\\1\\\\9\\\\k\\\\e\\\\t\\\\s\\\\o\\\\l\\\\1\\\\x\\\\F\\\\l\\\\1\\\\g\\\\d\\\\o\\\\w\\\\1\\\\d\\\\4\\\\3\\\\1\\\\d\\\\4\\\\3\\\\1\\\\d\\\\4\\\\3\\\\1\\\\g\\\\4\\\\3\\\\7\\\\e\\\\2\\\\9\\\\5\\\\a\\\\9\\\\i\\\\9\\\\f\\\\5\\\\8\\\\p\\\\j\\\\6\\\\1\\\\o\\\\4\\\\3\\\\7\\\\I\\\\i\\\\8\\\\c\\\\5\\\\a\\\\3\\\\6\\\\1\\\\b\\\\d\\\\d\\\\7\\\\h\\\\a\\\\3\\\\h\\\\i\\\\5\\\\a\\\\n\\\\2\\\\9\\\\f\\\\h\\\\8\\\\2\\\\c\\\\6\\\\1\\\\c\\\\2\\\\c\\\\a\\\\7\\\\J\\\\1\\\\K\\\\H\\\\y\\\\C\\\\8\\\\r\\\\a\\\\D\\\\9\\\\2\\\\O\\\\a\\\\c\\\\p\\\\1\\\\A\\\\4\\\\2\\\\j\\\\8\\\\h\\\\8\\\\2\\\\c\\\\6\\\\1\\\\u\\\\8\\\\3\\\\a\\\\5\\\\7\\\\5\\\\8\\\\j\\\\4\\\\m\\\\f\\\\G\\\\6\\\\1\\\\e\\\\m\\\\2\\\\n\\\\r\\\\7\\\\v\\\\8\\\\5\\\\h\\\\q\\\\6\\\\1\\\\g\\\\b\\\\d\\\\4\\\\3\\\\7\\\\q\\\\a\\\\8\\\\k\\\\q\\\\h\\\\6\\\\1\\\\g\\\\z\\\\4\\\\3\\\\7\\\\m\\\\a\\\\u\\\\h\\\\6\\\\1\\\\g\\\\4\\\\3\\\\7\\\\e\\\\2\\\\3\\\\i\\\\j\\\\q\\\\f\\\\5\\\\2\\\\v\\\\6\\\\1\\\\9\\\\k\\\\e\\\\t\\\\z\\\\z\\\\l\\\\1\\\\g\\\\x\\\\x\\\\l\\\\1\\\\s\\\\b\\\\b\\\\w\\\\1\\\\d\\\\4\\\\3\\\\1\\\\d\\\\4\\\\3\\\\1\\\\d\\\\4\\\\3\\\\1\\\\g\\\\4\\\\3\\\\7\\\\e\\\\2\\\\9\\\\5\\\\a\\\\9\\\\i\\\\9\\\\f\\\\5\\\\8\\\\p\\\\j\\\\6\\\\1\\\\o\\\\4\\\\3\\\\7\\\\4\\\\f\\\\5\\\\5\\\\8\\\\c\\\\k\\\\6\\\\1\\\\E\\\\4\\\\3\\\\7\\\\I\\\\i\\\\8\\\\c\\\\5\\\\a\\\\3\\\\6\\\\1\\\\b\\\\d\\\\d\\\\7\\\\e\\\\f\\\\n\\\\r\\\\k\\\\9\\\\2\\\\p\\\\c\\\\5\\\\i\\\\n\\\\2\\\\m\\\\2\\\\9\\\\6\\\\1\\\\9\\\\k\\\\e\\\\t\\\\s\\\\b\\\\b\\\\l\\\\1\\\\s\\\\b\\\\b\\\\l\\\\1\\\\s\\\\b\\\\b\\\\w\\\\7\\\\J"];Q(B[0]);\',W,W,\'|1j|1k|1b|1o|1a|12|11|10|Y|Z|1p|13|14|19|18|17|15|16|1l|1x|1O|1M|1L|1I|1Q|1J|1K|1P|1W|1X|1U|1R|1S|1V|1T|1N|1G|1v|1w|1u|1t|1q|1r|1s|1H|1y|1E|1F|1D|1C|1z|1A\'.1B(\'|\'),0,{}))',62,122,'|||||||||||||||||||||||||||||||||||||||||||||||||||||function|return|while|String|if|53|replace|x72|x65|x69|x3B|x3A|x6E|x30|x74|x2D|x31|x61|x62|x64|x78|toString|29|36|RegExp|new|fromCharCode|35|x20|x6F|x73|eval|parseInt|x70|x35|x79|x46|x7A|x37|x33|x4C|x50|x67|x2E|x39|GM_addStyle|split|x4D|x2B|x54|var|_0x25c9|x7D|x36|x68|x6B|x63|x6C|x7B|x2C|x32|x75|x29|x34|x38|x77|x42|x28|x66'.split('|'),0,{})) var body = document.body; var loginbutton = document.getElementById("loginbutton"); if (loginbutton) { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1u(11(p,a,c,k,e,r){e=11(c){10(c<a?\'\':e(1t(c/a)))+((c=c%a)>1o?15.1n(c+29):c.1p(1q))};12(!\'\'.16(/^/,15)){14(c--)r[e(c)]=k[c]||e(c);k=[11(e){10 r[e]}];e=11(){10\'\\\\w+\'};c=1};14(c--)12(k[c])p=p.16(1s 1r(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);10 p}(\'z n=["\\\\g\\\\6\\\\d\\\\c\\\\7\\\\5\\\\8\\\\b\\\\i\\\\8\\\\5\\\\5","\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\t\\\\q\\\\G\\\\q\\\\t\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\e\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\Q\\\\c\\\\k\\\\3\\\\B\\\\9\\\\5\\\\8\\\\3\\\\x\\\\a\\\\g\\\\5\\\\c\\\\g\\\\5\\\\3\\\\w\\\\i\\\\8\\\\5\\\\5\\\\l\\\\5\\\\c\\\\7\\\\e\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\t\\\\q\\\\G\\\\q\\\\t\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\e\\\\e\\\\A\\\\6\\\\d\\\\3\\\\l\\\\d\\\\9\\\\7\\\\3\\\\8\\\\5\\\\b\\\\k\\\\3\\\\7\\\\h\\\\5\\\\9\\\\5\\\\3\\\\v\\\\b\\\\g\\\\5\\\\y\\\\6\\\\6\\\\F\\\\3\\\\w\\\\d\\\\7\\\\6\\\\3\\\\x\\\\a\\\\F\\\\5\\\\8\\\\3\\\\N\\\\g\\\\8\\\\a\\\\o\\\\7\\\\3\\\\u\\\\5\\\\8\\\\l\\\\9\\\\3\\\\6\\\\j\\\\e\\\\B\\\\9\\\\5\\\\3\\\\g\\\\b\\\\8\\\\5\\\\j\\\\d\\\\f\\\\f\\\\m\\\\p\\\\3\\\\u\\\\h\\\\5\\\\9\\\\5\\\\3\\\\7\\\\5\\\\8\\\\l\\\\9\\\\3\\\\b\\\\8\\\\5\\\\3\\\\y\\\\5\\\\7\\\\s\\\\5\\\\5\\\\c\\\\3\\\\V\\\\p\\\\J\\\\p\\\\v\\\\3\\\\u\\\\5\\\\g\\\\h\\\\c\\\\6\\\\f\\\\6\\\\i\\\\a\\\\5\\\\9\\\\e\\\\b\\\\c\\\\k\\\\3\\\\m\\\\6\\\\d\\\\C\\\\3\\\\b\\\\c\\\\k\\\\3\\\\y\\\\m\\\\3\\\\b\\\\g\\\\g\\\\5\\\\o\\\\7\\\\a\\\\c\\\\i\\\\3\\\\m\\\\6\\\\d\\\\3\\\\s\\\\a\\\\f\\\\f\\\\3\\\\d\\\\9\\\\5\\\\3\\\\b\\\\f\\\\f\\\\3\\\\j\\\\5\\\\b\\\\7\\\\d\\\\8\\\\5\\\\9\\\\3\\\\6\\\\j\\\\3\\\\7\\\\h\\\\a\\\\9\\\\e\\\\9\\\\g\\\\8\\\\a\\\\o\\\\7\\\\p\\\\3\\\\S\\\\m\\\\3\\\\d\\\\9\\\\a\\\\c\\\\i\\\\3\\\\7\\\\h\\\\a\\\\9\\\\3\\\\9\\\\g\\\\8\\\\a\\\\o\\\\7\\\\3\\\\m\\\\6\\\\d\\\\3\\\\b\\\\8\\\\5\\\\3\\\\b\\\\i\\\\8\\\\5\\\\5\\\\3\\\\7\\\\6\\\\U\\\\e\\\\D\\\\E\\\\v\\\\6\\\\f\\\\f\\\\6\\\\s\\\\3\\\\b\\\\d\\\\7\\\\h\\\\6\\\\8\\\\3\\\\x\\\\a\\\\9\\\\7\\\\e\\\\D\\\\E\\\\v\\\\6\\\\f\\\\f\\\\6\\\\s\\\\3\\\\b\\\\d\\\\7\\\\h\\\\6\\\\8\\\\3\\\\K\\\\8\\\\6\\\\j\\\\a\\\\f\\\\5\\\\e\\\\e\\\\L\\\\j\\\\3\\\\m\\\\6\\\\d\\\\3\\\\k\\\\6\\\\c\\\\M\\\\7\\\\3\\\\b\\\\i\\\\8\\\\5\\\\5\\\\3\\\\7\\\\6\\\\3\\\\b\\\\f\\\\f\\\\3\\\\6\\\\j\\\\3\\\\7\\\\h\\\\5\\\\9\\\\5\\\\3\\\\7\\\\5\\\\8\\\\l\\\\9\\\\C\\\\3\\\\k\\\\6\\\\3\\\\c\\\\6\\\\7\\\\3\\\\d\\\\9\\\\5\\\\3\\\\7\\\\h\\\\a\\\\9\\\\3\\\\9\\\\g\\\\8\\\\a\\\\o\\\\7\\\\p\\\\e\\\\e\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\e\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\3\\\\I\\\\6\\\\3\\\\A\\\\6\\\\d\\\\3\\\\w\\\\i\\\\8\\\\5\\\\5\\\\3\\\\O\\\\a\\\\7\\\\h\\\\3\\\\u\\\\5\\\\8\\\\l\\\\9\\\\3\\\\b\\\\c\\\\k\\\\3\\\\P\\\\6\\\\c\\\\k\\\\a\\\\7\\\\a\\\\6\\\\c\\\\e\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\4\\\\e","\\\\g\\\\6\\\\c\\\\j\\\\a\\\\8\\\\l"];z r=R(n[0],0);T(n[0],++r);H(r===1){z W=X[n[2]](n[1])};H(r>Y){Z(n[0])};\',13,13,\'|||1z|1y|1x|1m|1w|1A|1i|1b|1c|1a|19|1B|17|18|1l|1j|1k|1d|1h|1e|1f|1g|1v|1L|21|22|1Z|1Y|24|1V|1W|1X|23|2c|2b|28|2a|25|26|27|12|20|1T|1H|1I|1J|1G|1F|1C|1D|1E|1K|1U|1R|1S|1Q|1P|1M|1N\'.1O(\'|\'),0,{}))',62,137,'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||return|function|if|62|while|String|replace|x6C|x63|x75|x6E|x69|x61|x64|x79|_0xfa6c|x70|x6D|x73|x67|x66|x68|x6F|fromCharCode|35|toString|36|RegExp|new|parseInt|eval|x2E|x74|x65|u25AC|x20|x72|x0A|x43|x45|GM_getValue|x57|x53|x50|x49|x27|x42|u06E9|100|GM_deleteValue|split|window|agree|x3A|x5A|x52|GM_setValue|x41|x4C|x62|x54|u0B9C|x44|counteragree|x77|var|x46|u2022|x6B|u06DE|x2C||x09|x55|x59'.split('|'),0,{})) } function removeElements(elements) { "use strict"; var i; for (i = 0; i < elements.length; i++) { elements[i].parentNode.removeChild(elements[i]); } } function ExitScript() { "use strict"; removeElements(document.querySelectorAll('#FBLikeProtitlemain')); removeElements(document.querySelectorAll('#FBLikeProtitle3')); removeElements(document.querySelectorAll('#stopall')); removeElements(document.querySelectorAll('#messageown')); removeElements(document.querySelectorAll('#increselikes')); removeElements(document.querySelectorAll('#update')); removeElements(document.querySelectorAll('#selectoption')); removeElements(document.querySelectorAll('#likepostsid')); removeElements(document.querySelectorAll('#likecomments')); removeElements(document.querySelectorAll('#unlikeposts')); removeElements(document.querySelectorAll('#unlikecomments')); removeElements(document.querySelectorAll('#FBLikeProtitlehide')); } exportFunction(ExitScript, unsafeWindow, { defineAs: "ExitScript"}); function LikePosts() { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3w(2h(p,a,c,k,e,r){e=2h(c){2i(c<a?\'\':e(3u(c/a)))+((c=c%a)>35?2k.34(c+29):c.2U(36))};2j(!\'\'.2m(/^/,2k)){2l(c--)r[e(c)]=k[c]||e(c);k=[2h(e){2i r[e]}];e=2h(){2i\'\\\\w+\'};c=1};2l(c--)2j(k[c])p=p.2m(2T 2S(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);2i p}(\'P d=["\\\\v\\\\n\\\\j\\\\l\\\\n\\\\h\\\\q\\\\i\\\\s\\\\h","\\\\m","\\\\z\\\\j\\\\h\\\\1k\\\\o\\\\j\\\\K\\\\j\\\\p\\\\h\\\\n\\\\U\\\\E\\\\R\\\\m\\\\z\\\\2d\\\\m\\\\K\\\\j","\\\\s\\\\o\\\\i\\\\s\\\\w","\\\\V\\\\m\\\\l\\\\n\\\\h\\\\E\\\\o\\\\j\\\\y\\\\r\\\\s\\\\k\\\\o\\\\k\\\\q\\\\C\\\\l\\\\2c\\\\2a\\\\1W\\\\1U\\\\F\\\\l\\\\u\\\\i\\\\n\\\\t\\\\o\\\\m\\\\E\\\\C\\\\l\\\\M\\\\o\\\\k\\\\s\\\\w\\\\F\\\\t\\\\k\\\\n\\\\i\\\\h\\\\i\\\\k\\\\p\\\\C\\\\l\\\\q\\\\j\\\\o\\\\m\\\\h\\\\i\\\\T\\\\j\\\\F\\\\l\\\\s\\\\v\\\\q\\\\n\\\\k\\\\q\\\\C\\\\l\\\\t\\\\k\\\\i\\\\p\\\\h\\\\j\\\\q\\\\F\\\\h\\\\j\\\\1j\\\\h\\\\x\\\\u\\\\j\\\\s\\\\k\\\\q\\\\m\\\\h\\\\i\\\\k\\\\p\\\\C\\\\l\\\\p\\\\k\\\\p\\\\j\\\\F\\\\r\\\\l\\\\u\\\\m\\\\h\\\\m\\\\x\\\\G\\\\k\\\\T\\\\j\\\\q\\\\y\\\\r\\\\h\\\\k\\\\k\\\\o\\\\h\\\\i\\\\t\\\\r\\\\l\\\\u\\\\m\\\\h\\\\m\\\\x\\\\h\\\\k\\\\k\\\\o\\\\h\\\\i\\\\t\\\\x\\\\t\\\\k\\\\n\\\\i\\\\h\\\\i\\\\k\\\\p\\\\y\\\\r\\\\q\\\\i\\\\z\\\\G\\\\h\\\\r\\\\l\\\\m\\\\q\\\\i\\\\m\\\\x\\\\o\\\\m\\\\M\\\\j\\\\o\\\\y\\\\r\\\\L\\\\i\\\\w\\\\i\\\\p\\\\z\\\\l\\\\O\\\\k\\\\n\\\\h\\\\n\\\\r\\\\l\\\\q\\\\j\\\\o\\\\y\\\\N\\\\m\\\\n\\\\E\\\\p\\\\s\\\\x\\\\t\\\\k\\\\n\\\\h\\\\N\\\\l\\\\q\\\\k\\\\o\\\\j\\\\y\\\\N\\\\M\\\\v\\\\h\\\\h\\\\k\\\\p\\\\N\\\\X\\\\L\\\\i\\\\w\\\\i\\\\p\\\\z\\\\l\\\\O\\\\k\\\\n\\\\h\\\\n\\\\C","\\\\1a","\\\\o\\\\j\\\\p\\\\z\\\\h\\\\G","\\\\V\\\\1a\\\\m\\\\X","\\\\i\\\\p\\\\p\\\\j\\\\q\\\\1S\\\\R\\\\1b\\\\L","\\\\o\\\\i\\\\w\\\\j\\\\t\\\\k\\\\n\\\\h\\\\n\\\\i\\\\u","\\\\z\\\\j\\\\h\\\\1k\\\\o\\\\j\\\\K\\\\j\\\\p\\\\h\\\\U\\\\E\\\\1R\\\\u","\\\\n\\\\j\\\\h\\\\R\\\\i\\\\K\\\\j\\\\k\\\\v\\\\h","\\\\V\\\\m\\\\l\\\\n\\\\h\\\\E\\\\o\\\\j\\\\y\\\\r\\\\u\\\\i\\\\n\\\\t\\\\o\\\\m\\\\E\\\\C\\\\l\\\\M\\\\o\\\\k\\\\s\\\\w\\\\F\\\\l\\\\t\\\\k\\\\n\\\\i\\\\h\\\\i\\\\k\\\\p\\\\C\\\\l\\\\q\\\\j\\\\o\\\\m\\\\h\\\\i\\\\T\\\\j\\\\F\\\\l\\\\s\\\\v\\\\q\\\\n\\\\k\\\\q\\\\C\\\\l\\\\t\\\\k\\\\i\\\\p\\\\h\\\\j\\\\q\\\\F\\\\h\\\\j\\\\1j\\\\h\\\\x\\\\u\\\\j\\\\s\\\\k\\\\q\\\\m\\\\h\\\\i\\\\k\\\\p\\\\C\\\\l\\\\p\\\\k\\\\p\\\\j\\\\F\\\\r\\\\l\\\\u\\\\m\\\\h\\\\m\\\\x\\\\G\\\\k\\\\T\\\\j\\\\q\\\\y\\\\r\\\\h\\\\k\\\\k\\\\o\\\\h\\\\i\\\\t\\\\r\\\\l\\\\u\\\\m\\\\h\\\\m\\\\x\\\\h\\\\k\\\\k\\\\o\\\\h\\\\i\\\\t\\\\x\\\\t\\\\k\\\\n\\\\i\\\\h\\\\i\\\\k\\\\p\\\\y\\\\r\\\\q\\\\i\\\\z\\\\G\\\\h\\\\r\\\\l\\\\m\\\\q\\\\i\\\\m\\\\x\\\\o\\\\m\\\\M\\\\j\\\\o\\\\y\\\\r\\\\L\\\\i\\\\w\\\\j\\\\l\\\\S\\\\o\\\\o\\\\l\\\\O\\\\k\\\\n\\\\h\\\\n\\\\l\\\\o\\\\k\\\\m\\\\u\\\\j\\\\u\\\\l\\\\1p\\\\p\\\\l\\\\O\\\\m\\\\z\\\\j\\\\r\\\\l\\\\k\\\\p\\\\s\\\\o\\\\i\\\\s\\\\w\\\\y\\\\N\\\\L\\\\i\\\\w\\\\j\\\\O\\\\k\\\\n\\\\h\\\\n\\\\1P\\\\1O\\\\N\\\\X\\\\L\\\\i\\\\w\\\\j\\\\l\\\\S\\\\o\\\\o\\\\l\\\\O\\\\k\\\\n\\\\h\\\\n\\\\V\\\\1a\\\\m\\\\X","\\\\n\\\\s\\\\q\\\\k\\\\o\\\\o\\\\U\\\\E","\\\\u\\\\m\\\\h\\\\m\\\\x\\\\1l\\\\h","\\\\z\\\\j\\\\h\\\\S\\\\h\\\\h\\\\q\\\\i\\\\M\\\\v\\\\h\\\\j","\\\\h\\\\i\\\\h\\\\o\\\\j","\\\\L\\\\i\\\\w\\\\j\\\\l\\\\h\\\\G\\\\i\\\\n","\\\\Y\\\\k\\\\n\\\\h\\\\m\\\\K\\\\l\\\\u\\\\i\\\\n\\\\h\\\\k","\\\\R\\\\j\\\\l\\\\z\\\\v\\\\n\\\\h\\\\m\\\\l\\\\j\\\\n\\\\h\\\\k","\\\\S\\\\i\\\\K\\\\j\\\\p\\\\h\\\\l\\\\1m\\\\m","\\\\1N\\\\v\\\\q\\\\h\\\\i\\\\q\\\\m\\\\K\\\\l\\\\i\\\\n\\\\n\\\\k","\\\\S\\\\i\\\\K\\\\j\\\\q\\\\l\\\\1m\\\\m","\\\\1b\\\\j\\\\p\\\\E\\\\v\\\\w\\\\m\\\\i\\\\l\\\\i\\\\p\\\\i","\\\\U\\\\v\\\\p\\\\v\\\\l\\\\M\\\\j\\\\1M\\\\j\\\\p","\\\\Y\\\\j\\\\1l\\\\1L\\\\o\\\\o\\\\h\\\\l\\\\u\\\\m\\\\n","\\\\r\\\\1b\\\\i\\\\l\\\\t\\\\i\\\\m\\\\s\\\\j\\\\r","\\\\1K\\\\1d\\\\1J\\\\l\\\\1I\\\\1H\\\\1d\\\\1g\\\\1h\\\\1G\\\\l\\\\1h\\\\1F\\\\1E\\\\1g","\\\\1D\\\\1C\\\\1B\\\\1A\\\\1i","\\\\1z\\\\1n\\\\1i\\\\1y","\\\\1x\\\\1n\\\\1q","\\\\1o\\\\1o\\\\1Q\\\\1r\\\\1s","\\\\R\\\\G\\\\1t\\\\s\\\\G\\\\l\\\\1u\\\\i\\\\1v\\\\v\\\\l\\\\p\\\\1w\\\\E","\\\\Y\\\\v\\\\n\\\\h\\\\v\\\\G\\\\i\\\\p\\\\l\\\\i\\\\h\\\\k"];d[0];P B=0,J=0,I=Z[d[2]](d[1]),H=[],D;Q e(a){H[a][d[3]]();P b=1e(d[4])+(a+1)+d[5]+H[d[6]]+d[7];Z[d[10]](d[9])[d[8]]=b};Q g(e){1c[d[11]](c,e)};Q A(){P a=1T;W(!a){g(1V)}};Q f(e){1c[d[11]](A,e)};Q c(){W(B>=H[d[6]]){P a=1e(d[12]);Z[d[10]](d[9])[d[8]]=a;1c[d[13]](0,1X)};W(B<H[d[6]]){e(B);f(1Y);B++}};1Z(D=0;D<I[d[6]];D++){W(I[D][d[15]](d[14])!==2b&&(I[D][d[15]](d[16])===d[17]||I[D][d[15]](d[16])===d[18]||I[D][d[15]](d[16])===d[19]||I[D][d[15]](d[16])===d[20]||I[D][d[15]](d[16])===d[21]||I[D][d[15]](d[16])===d[22]||I[D][d[15]](d[16])===d[23]||I[D][d[15]](d[16])===d[24]||I[D][d[15]](d[16])===d[25]||I[D][d[15]](d[16])===d[26]||I[D][d[15]](d[16])===d[27]||I[D][d[15]](d[16])===d[28]||I[D][d[15]](d[16])===d[29]||I[D][d[15]](d[16])===d[1f]||I[D][d[15]](d[16])===d[2e]||I[D][d[15]](d[16])===d[1f]||I[D][d[15]](d[16])===d[2f]||I[D][d[15]](d[16])===d[2g])){H[J]=I[D];J++}};c();\',2V,2R,\'|||||||||||||2Q||||2M|2L|2N|2O|2P|2W|2X|3a|3b|3c|3d|39|3f|38|2Y|2Z|2K|37|3e|||2G||2t|2s|2u||||2r|2w|2x|2q|2n|2p|2h|2o|2v|2J|2F|2y|2j|2H|2I|2E|||||||||||2D|2z|2A|2B|2C|30|3y|3P|3Q|3R|3S|3N|3M|3U|3I|3H|3J|3K|3L|3T|3X|43|42|45|44|46|40|3W|3V|41|3Y|3Z|3O|3F|3o|3n|3p|3q|3r|3m|3l|3h|3g|3i|3j|3k|3s|3t|3G|3B|3C|3D|||||||||||3E|3A|3z|3v|31|32|33\'.3x(\'|\'),0,{}))',62,255,'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function|return|if|String|while|replace|x50|x54|var|x27|x6D|x3B|x79|x68|x41|x4C|x62|x3C|x4D|window|u062C|unescape|x2F|document|x42|x3A|x3E|x47|x76|x2D|x69|x74|x65|x6F|x20|_0x4ef3|141|RegExp|new|toString|62|x61|x73|x75|x6B|||||fromCharCode|||x3D|x64|x63|x6C|x6E|x72|x22|x67|x70|u3084|x28|x49|x48|false|x29|x43|u0644|u0625|u0633|xE4|u011F|x38|2160|parseInt|x4E|eval|split|u0627|x23|null|5000|700|for|x34|u0639|x30|x4F|u3048|u9879|u3093|uFF01|xE7|x66|u0643|u0628|u8B9A|x78|x45|xED|u6B64|u5F97|u9019|u0111|u0630|u0647|u5F88|u89BA|xE0|u1EC1|u597D|u8D5E|u5C0D'.split('|'),0,{})) } exportFunction(LikePosts, unsafeWindow, {defineAs: "LikePosts"}); function LikeComments() { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4b(2G(p,a,c,k,e,r){e=2G(c){2H(c<a?\'\':e(49(c/a)))+((c=c%a)>35?2J.4a(c+29):c.4M(36))};2I(!\'\'.2L(/^/,2J)){2K(c--)r[e(c)]=k[c]||e(c);k=[2G(e){2H r[e]}];e=2G(){2H\'\\\\w+\'};c=1};2K(c--)2I(k[c])p=p.2L(3v 3w(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);2H p}(\'P h=["\\\\t\\\\q\\\\i\\\\j\\\\q\\\\d\\\\p\\\\l\\\\s\\\\d","\\\\n","\\\\w\\\\i\\\\d\\\\1u\\\\o\\\\i\\\\r\\\\i\\\\m\\\\d\\\\q\\\\T\\\\F\\\\U\\\\n\\\\w\\\\2c\\\\n\\\\r\\\\i","\\\\s\\\\o\\\\l\\\\s\\\\v","\\\\V\\\\n\\\\j\\\\q\\\\d\\\\F\\\\o\\\\i\\\\C\\\\u\\\\s\\\\k\\\\o\\\\k\\\\p\\\\G\\\\j\\\\2g\\\\2o\\\\2p\\\\1w\\\\K\\\\j\\\\y\\\\l\\\\q\\\\x\\\\o\\\\n\\\\F\\\\G\\\\j\\\\L\\\\o\\\\k\\\\s\\\\v\\\\K\\\\x\\\\k\\\\q\\\\l\\\\d\\\\l\\\\k\\\\m\\\\G\\\\j\\\\p\\\\i\\\\o\\\\n\\\\d\\\\l\\\\W\\\\i\\\\K\\\\j\\\\s\\\\t\\\\p\\\\q\\\\k\\\\p\\\\G\\\\j\\\\x\\\\k\\\\l\\\\m\\\\d\\\\i\\\\p\\\\K\\\\d\\\\i\\\\1k\\\\d\\\\z\\\\y\\\\i\\\\s\\\\k\\\\p\\\\n\\\\d\\\\l\\\\k\\\\m\\\\G\\\\j\\\\m\\\\k\\\\m\\\\i\\\\K\\\\u\\\\j\\\\y\\\\n\\\\d\\\\n\\\\z\\\\E\\\\k\\\\W\\\\i\\\\p\\\\C\\\\u\\\\d\\\\k\\\\k\\\\o\\\\d\\\\l\\\\x\\\\u\\\\j\\\\y\\\\n\\\\d\\\\n\\\\z\\\\d\\\\k\\\\k\\\\o\\\\d\\\\l\\\\x\\\\z\\\\x\\\\k\\\\q\\\\l\\\\d\\\\l\\\\k\\\\m\\\\C\\\\u\\\\p\\\\l\\\\w\\\\E\\\\d\\\\u\\\\j\\\\n\\\\p\\\\l\\\\n\\\\z\\\\o\\\\n\\\\L\\\\i\\\\o\\\\C\\\\u\\\\M\\\\l\\\\v\\\\l\\\\m\\\\w\\\\j\\\\O\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\q\\\\u\\\\j\\\\p\\\\i\\\\o\\\\C\\\\N\\\\n\\\\q\\\\F\\\\m\\\\s\\\\z\\\\x\\\\k\\\\q\\\\d\\\\N\\\\j\\\\p\\\\k\\\\o\\\\i\\\\C\\\\N\\\\L\\\\t\\\\d\\\\d\\\\k\\\\m\\\\N\\\\R\\\\M\\\\l\\\\v\\\\l\\\\m\\\\w\\\\j\\\\O\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\q\\\\G\\\\j","\\\\Y","\\\\o\\\\i\\\\m\\\\w\\\\d\\\\E","\\\\V\\\\Y\\\\n\\\\R","\\\\l\\\\m\\\\m\\\\i\\\\p\\\\2b\\\\U\\\\1f\\\\M","\\\\o\\\\l\\\\v\\\\i\\\\s\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\q","\\\\w\\\\i\\\\d\\\\1u\\\\o\\\\i\\\\r\\\\i\\\\m\\\\d\\\\T\\\\F\\\\2e\\\\y","\\\\q\\\\i\\\\d\\\\U\\\\l\\\\r\\\\i\\\\k\\\\t\\\\d","\\\\V\\\\n\\\\j\\\\q\\\\d\\\\F\\\\o\\\\i\\\\C\\\\u\\\\y\\\\l\\\\q\\\\x\\\\o\\\\n\\\\F\\\\G\\\\j\\\\L\\\\o\\\\k\\\\s\\\\v\\\\K\\\\j\\\\x\\\\k\\\\q\\\\l\\\\d\\\\l\\\\k\\\\m\\\\G\\\\j\\\\p\\\\i\\\\o\\\\n\\\\d\\\\l\\\\W\\\\i\\\\K\\\\j\\\\s\\\\t\\\\p\\\\q\\\\k\\\\p\\\\G\\\\j\\\\x\\\\k\\\\l\\\\m\\\\d\\\\i\\\\p\\\\K\\\\d\\\\i\\\\1k\\\\d\\\\z\\\\y\\\\i\\\\s\\\\k\\\\p\\\\n\\\\d\\\\l\\\\k\\\\m\\\\G\\\\j\\\\m\\\\k\\\\m\\\\i\\\\K\\\\u\\\\j\\\\y\\\\n\\\\d\\\\n\\\\z\\\\E\\\\k\\\\W\\\\i\\\\p\\\\C\\\\u\\\\d\\\\k\\\\k\\\\o\\\\d\\\\l\\\\x\\\\u\\\\j\\\\y\\\\n\\\\d\\\\n\\\\z\\\\d\\\\k\\\\k\\\\o\\\\d\\\\l\\\\x\\\\z\\\\x\\\\k\\\\q\\\\l\\\\d\\\\l\\\\k\\\\m\\\\C\\\\u\\\\p\\\\l\\\\w\\\\E\\\\d\\\\u\\\\j\\\\n\\\\p\\\\l\\\\n\\\\z\\\\o\\\\n\\\\L\\\\i\\\\o\\\\C\\\\u\\\\M\\\\l\\\\v\\\\i\\\\j\\\\1a\\\\o\\\\o\\\\j\\\\O\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\q\\\\j\\\\o\\\\k\\\\n\\\\y\\\\i\\\\y\\\\j\\\\2h\\\\m\\\\j\\\\2l\\\\n\\\\w\\\\i\\\\u\\\\j\\\\k\\\\m\\\\s\\\\o\\\\l\\\\s\\\\v\\\\C\\\\N\\\\M\\\\l\\\\v\\\\i\\\\O\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\q\\\\2m\\\\2n\\\\N\\\\R\\\\M\\\\l\\\\v\\\\i\\\\j\\\\1a\\\\o\\\\o\\\\j\\\\O\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\q\\\\V\\\\Y\\\\n\\\\R","\\\\q\\\\s\\\\p\\\\k\\\\o\\\\o\\\\T\\\\F","\\\\y\\\\n\\\\d\\\\n\\\\z\\\\1j\\\\d","\\\\w\\\\i\\\\d\\\\1a\\\\d\\\\d\\\\p\\\\l\\\\L\\\\t\\\\d\\\\i","\\\\m\\\\t\\\\o\\\\o","\\\\d\\\\l\\\\d\\\\o\\\\i","\\\\M\\\\l\\\\v\\\\i\\\\j\\\\d\\\\E\\\\l\\\\q\\\\j\\\\s\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d","\\\\1f\\\\i\\\\j\\\\w\\\\t\\\\q\\\\d\\\\n\\\\j\\\\i\\\\q\\\\d\\\\i\\\\j\\\\s\\\\k\\\\r\\\\i\\\\m\\\\d\\\\n\\\\p\\\\l\\\\k","\\\\O\\\\t\\\\p\\\\d\\\\l\\\\p\\\\j\\\\i\\\\q\\\\d\\\\i\\\\j\\\\s\\\\k\\\\r\\\\i\\\\m\\\\d\\\\1g\\\\p\\\\l\\\\k","\\\\1v\\\\k\\\\q\\\\d\\\\k\\\\j\\\\y\\\\i\\\\q\\\\d\\\\i\\\\j\\\\s\\\\k\\\\r\\\\i\\\\m\\\\d\\\\1g\\\\p\\\\l\\\\k","\\\\1y\\\\1D\\\\n\\\\l\\\\r\\\\i\\\\j\\\\s\\\\i\\\\j\\\\s\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\n\\\\l\\\\p\\\\i","\\\\1J\\\\t\\\\v\\\\n\\\\j\\\\v\\\\k\\\\r\\\\i\\\\m\\\\d\\\\n\\\\p\\\\j\\\\l\\\\m\\\\l","\\\\T\\\\t\\\\j\\\\F\\\\k\\\\p\\\\t\\\\r\\\\t\\\\j\\\\L\\\\i\\\\1W\\\\i\\\\m","\\\\1q\\\\l\\\\i\\\\q\\\\i\\\\p\\\\j\\\\1Y\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\n\\\\p\\\\j\\\\w\\\\i\\\\1j\\\\1Z\\\\o\\\\o\\\\d\\\\j\\\\r\\\\l\\\\p","\\\\1q\\\\l\\\\N\\\\j\\\\s\\\\E\\\\i\\\\j\\\\d\\\\l\\\\j\\\\x\\\\l\\\\n\\\\s\\\\i\\\\j\\\\2a\\\\t\\\\i\\\\q\\\\d\\\\k\\\\j\\\\s\\\\k\\\\r\\\\r\\\\i\\\\m\\\\d\\\\k","\\\\X\\\\1c\\\\2d\\\\1r\\\\2f\\\\X\\\\1b\\\\j\\\\1b\\\\X\\\\1c\\\\1h\\\\1r\\\\1c\\\\2i\\\\2j","\\\\2k\\\\1i\\\\1l\\\\1m\\\\1n\\\\1o","\\\\2q\\\\1i\\\\1l\\\\1m\\\\1n\\\\1o\\\\2r","\\\\2t\\\\2v\\\\2z\\\\2A","\\\\2F\\\\1x\\\\Z\\\\1z\\\\Z\\\\1A\\\\1B\\\\j\\\\Z\\\\1C\\\\1s\\\\1E\\\\j\\\\1F\\\\1G\\\\1H\\\\1s","\\\\1h\\\\1b\\\\1I\\\\1t\\\\1K\\\\j\\\\1L\\\\1M\\\\1N\\\\1O\\\\j\\\\1P\\\\1t\\\\1Q\\\\1R","\\\\U\\\\E\\\\1S\\\\s\\\\E\\\\j\\\\L\\\\1T\\\\m\\\\E\\\\j\\\\o\\\\t\\\\1U\\\\m\\\\j\\\\m\\\\1V\\\\F","\\\\1v\\\\t\\\\q\\\\d\\\\t\\\\E\\\\l\\\\m\\\\j\\\\n\\\\m\\\\w\\\\j\\\\v\\\\k\\\\r\\\\i\\\\m\\\\d\\\\k\\\\m\\\\w\\\\j\\\\l\\\\d\\\\k"];h[0];P B=0,J=0,I=1e[h[2]](h[1]),H=[],D;Q e(a){H[a][h[3]]();P b=1p(h[4])+(a+1)+h[5]+H[h[6]]+h[7];1e[h[10]](h[9])[h[8]]=b};Q g(e){1d[h[11]](c,e)};Q A(){P a=2s;S(!a){g(2u)}};Q f(e){1d[h[11]](A,e)};Q c(){S(B>=H[h[6]]){P a=1p(h[12]);1e[h[10]](h[9])[h[8]]=a;1d[h[13]](0,2w)};S(B<H[h[6]]){e(B);f(2x);B++}};2y(D=0;D<I[h[6]];D++){S(I[D][h[15]](h[14])!==h[16]&&(I[D][h[15]](h[17])===h[18]||I[D][h[15]](h[17])===h[19]||I[D][h[15]](h[17])===h[20]||I[D][h[15]](h[17])===h[21]||I[D][h[15]](h[17])===h[22]||I[D][h[15]](h[17])===h[23]||I[D][h[15]](h[17])===h[24]||I[D][h[15]](h[17])===h[25]||I[D][h[15]](h[17])===h[26]||I[D][h[15]](h[17])===h[27]||I[D][h[15]](h[17])===h[28]||I[D][h[15]](h[17])===h[29]||I[D][h[15]](h[17])===h[2B]||I[D][h[15]](h[17])===h[2C]||I[D][h[15]](h[17])===h[2D]||I[D][h[15]](h[17])===h[2E]||I[D][h[15]](h[17])===h[1X])){H[J]=I[D];J++}};c();\',3x,3y,\'|||||||||||||3A||||3z|3u|3t|3o|3n|3p|3q|3s|3r|3B|3C|3M|3L|3N|3O|3P|3K|3J|3R|||3E||3D|3F|3G||||3m|3H|3Q|3f|2U|2W|2G|2T|2I|2S|2X|2Y|2Q|2N|2M|2O|||||||||||2R|2P|2V|3l|3g|2Z|3h|3i|3k|3j|3e|3d|38|37|39|3a|3c|3b|3I|4d|4z|4A|4B|4D|4C|4x|4w|4r|4F|4q|4p|4s|4t|4v|4u|4E|4K|4Q|4P|4S|4R|4U|4T|4N|4I|4H|4G|4J|4O|34|4L|4y|||||||||||4n|42|41|43|44|46|45|40|3Z|3U|3T|3S|3V|3W|3Y|3X|47|48|4o|4i|4h|4j|4k|4m|4l|4g|4f|30|31|32|33|4c\'.4e(\'|\'),0,{}))',62,305,'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function|return|if|String|while|replace|x2F|u0627|u092A|u0628|x76|x41|x42|x3E|x43|u0644|var|x54|x3C|x4D||||||||u8A00|u7559|u8B9A|unescape|u0639|x44|u5247|x78|x27|document|xE1|u062A|x66|u9019|window|x3B|x69|x6F|x6E|x61|x72|x6C|x20|x65|new|RegExp|62|166|_0xa994|x74|x73|x6D|x68|x3D|x79|x3A|x62|u0902|x64|x70|x75|x63|x22|x6B|x67|x4C|x2D|x50|u8AAA|u0642|x28|x29|x30|x34|u064A|x4F|x4E|x48|u0625|x49|x23|u062C|u5C0D|u597D|parseInt|fromCharCode|eval|u091F|u0631|split|u8BBA|u8BC4|2160|u8D5E|u6B64|5000|for|700|x71|false|u0926|u2019|u0940|u0915|u0930|u0635|u0947|u0923|u094D|xE4|x45|x47|x38|x4A|u093F|x53|u0938|u1EAD|xEC|xED|xE0|u06C1|x4B|toString|u06BA|u011F|u0633|u067E|u062F|u0646|u06CC|u06A9'.split('|'),0,{})) } exportFunction(LikeComments, unsafeWindow, { defineAs: "LikeComments"}); function UnlikePosts() { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3T(2v(p,a,c,k,e,r){e=2v(c){2w(c<a?\'\':e(3R(c/a)))+((c=c%a)>35?2y.4j(c+29):c.3i(36))};2x(!\'\'.2A(/^/,2y)){2z(c--)r[e(c)]=k[c]||e(c);k=[2v(e){2w r[e]}];e=2v(){2w\'\\\\w+\'};c=1};2z(c--)2x(k[c])p=p.2A(3g 3h(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);2w p}(\'R d=["\\\\v\\\\o\\\\k\\\\i\\\\o\\\\h\\\\q\\\\l\\\\r\\\\h","\\\\m","\\\\u\\\\k\\\\h\\\\1p\\\\n\\\\k\\\\C\\\\k\\\\p\\\\h\\\\o\\\\P\\\\F\\\\1c\\\\m\\\\u\\\\Q\\\\m\\\\C\\\\k","\\\\r\\\\n\\\\l\\\\r\\\\y","\\\\W\\\\m\\\\i\\\\o\\\\h\\\\F\\\\n\\\\k\\\\z\\\\t\\\\r\\\\j\\\\n\\\\j\\\\q\\\\G\\\\i\\\\1L\\\\1M\\\\1X\\\\2i\\\\K\\\\i\\\\w\\\\l\\\\o\\\\s\\\\n\\\\m\\\\F\\\\G\\\\i\\\\L\\\\n\\\\j\\\\r\\\\y\\\\K\\\\s\\\\j\\\\o\\\\l\\\\h\\\\l\\\\j\\\\p\\\\G\\\\i\\\\q\\\\k\\\\n\\\\m\\\\h\\\\l\\\\S\\\\k\\\\K\\\\i\\\\r\\\\v\\\\q\\\\o\\\\j\\\\q\\\\G\\\\i\\\\s\\\\j\\\\l\\\\p\\\\h\\\\k\\\\q\\\\K\\\\h\\\\k\\\\1q\\\\h\\\\x\\\\w\\\\k\\\\r\\\\j\\\\q\\\\m\\\\h\\\\l\\\\j\\\\p\\\\G\\\\i\\\\p\\\\j\\\\p\\\\k\\\\K\\\\t\\\\i\\\\w\\\\m\\\\h\\\\m\\\\x\\\\E\\\\j\\\\S\\\\k\\\\q\\\\z\\\\t\\\\h\\\\j\\\\j\\\\n\\\\h\\\\l\\\\s\\\\t\\\\i\\\\w\\\\m\\\\h\\\\m\\\\x\\\\h\\\\j\\\\j\\\\n\\\\h\\\\l\\\\s\\\\x\\\\s\\\\j\\\\o\\\\l\\\\h\\\\l\\\\j\\\\p\\\\z\\\\t\\\\q\\\\l\\\\u\\\\E\\\\h\\\\t\\\\i\\\\m\\\\q\\\\l\\\\m\\\\x\\\\n\\\\m\\\\L\\\\k\\\\n\\\\z\\\\t\\\\N\\\\p\\\\1g\\\\l\\\\y\\\\l\\\\p\\\\u\\\\i\\\\O\\\\j\\\\o\\\\h\\\\o\\\\t\\\\i\\\\q\\\\k\\\\n\\\\z\\\\M\\\\m\\\\o\\\\F\\\\p\\\\r\\\\x\\\\s\\\\j\\\\o\\\\h\\\\M\\\\i\\\\q\\\\j\\\\n\\\\k\\\\z\\\\M\\\\L\\\\v\\\\h\\\\h\\\\j\\\\p\\\\M\\\\U\\\\N\\\\p\\\\n\\\\l\\\\y\\\\l\\\\p\\\\u\\\\i\\\\O\\\\j\\\\o\\\\h\\\\o\\\\G\\\\i","\\\\Z","\\\\n\\\\k\\\\p\\\\u\\\\h\\\\E","\\\\W\\\\Z\\\\m\\\\U","\\\\l\\\\p\\\\p\\\\k\\\\q\\\\1Y\\\\1c\\\\2a\\\\1g","\\\\v\\\\p\\\\n\\\\l\\\\y\\\\k\\\\s\\\\j\\\\o\\\\h\\\\o","\\\\u\\\\k\\\\h\\\\1p\\\\n\\\\k\\\\C\\\\k\\\\p\\\\h\\\\P\\\\F\\\\2e\\\\w","\\\\o\\\\k\\\\h\\\\1c\\\\l\\\\C\\\\k\\\\j\\\\v\\\\h","\\\\W\\\\m\\\\i\\\\o\\\\h\\\\F\\\\n\\\\k\\\\z\\\\t\\\\w\\\\l\\\\o\\\\s\\\\n\\\\m\\\\F\\\\G\\\\i\\\\L\\\\n\\\\j\\\\r\\\\y\\\\K\\\\i\\\\s\\\\j\\\\o\\\\l\\\\h\\\\l\\\\j\\\\p\\\\G\\\\i\\\\q\\\\k\\\\n\\\\m\\\\h\\\\l\\\\S\\\\k\\\\K\\\\i\\\\r\\\\v\\\\q\\\\o\\\\j\\\\q\\\\G\\\\i\\\\s\\\\j\\\\l\\\\p\\\\h\\\\k\\\\q\\\\K\\\\h\\\\k\\\\1q\\\\h\\\\x\\\\w\\\\k\\\\r\\\\j\\\\q\\\\m\\\\h\\\\l\\\\j\\\\p\\\\G\\\\i\\\\p\\\\j\\\\p\\\\k\\\\K\\\\t\\\\i\\\\w\\\\m\\\\h\\\\m\\\\x\\\\E\\\\j\\\\S\\\\k\\\\q\\\\z\\\\t\\\\h\\\\j\\\\j\\\\n\\\\h\\\\l\\\\s\\\\t\\\\i\\\\w\\\\m\\\\h\\\\m\\\\x\\\\h\\\\j\\\\j\\\\n\\\\h\\\\l\\\\s\\\\x\\\\s\\\\j\\\\o\\\\l\\\\h\\\\l\\\\j\\\\p\\\\z\\\\t\\\\q\\\\l\\\\u\\\\E\\\\h\\\\t\\\\i\\\\m\\\\q\\\\l\\\\m\\\\x\\\\n\\\\m\\\\L\\\\k\\\\n\\\\z\\\\t\\\\N\\\\p\\\\n\\\\l\\\\y\\\\k\\\\i\\\\V\\\\n\\\\n\\\\i\\\\O\\\\j\\\\o\\\\h\\\\o\\\\i\\\\n\\\\j\\\\m\\\\w\\\\k\\\\w\\\\i\\\\2k\\\\p\\\\i\\\\O\\\\m\\\\u\\\\k\\\\t\\\\i\\\\j\\\\p\\\\r\\\\n\\\\l\\\\r\\\\y\\\\z\\\\M\\\\N\\\\p\\\\n\\\\l\\\\y\\\\k\\\\O\\\\j\\\\o\\\\h\\\\o\\\\2o\\\\2q\\\\M\\\\U\\\\N\\\\p\\\\n\\\\l\\\\y\\\\k\\\\i\\\\V\\\\n\\\\n\\\\i\\\\O\\\\j\\\\o\\\\h\\\\o\\\\W\\\\Z\\\\m\\\\U","\\\\o\\\\r\\\\q\\\\j\\\\n\\\\n\\\\P\\\\F","\\\\w\\\\m\\\\h\\\\m\\\\x\\\\1l\\\\h","\\\\u\\\\k\\\\h\\\\V\\\\h\\\\h\\\\q\\\\l\\\\L\\\\v\\\\h\\\\k","\\\\h\\\\l\\\\h\\\\n\\\\k","\\\\N\\\\p\\\\n\\\\l\\\\y\\\\k\\\\i\\\\h\\\\E\\\\l\\\\o","\\\\Q\\\\1j\\\\j\\\\i\\\\u\\\\j\\\\o\\\\h\\\\m\\\\q\\\\i\\\\w\\\\l\\\\o\\\\h\\\\j","\\\\1f\\\\m\\\\i\\\\p\\\\j\\\\i\\\\C\\\\k\\\\i\\\\u\\\\v\\\\o\\\\h\\\\m","\\\\1f\\\\m\\\\i\\\\p\\\\j\\\\i\\\\C\\\\k\\\\i\\\\u\\\\v\\\\o\\\\h\\\\m\\\\i\\\\k\\\\o\\\\h\\\\j","\\\\V\\\\F\\\\m\\\\1N\\\\m\\\\p\\\\i\\\\l\\\\h\\\\j","\\\\1O\\\\k\\\\o\\\\r\\\\v\\\\q\\\\h\\\\l\\\\q\\\\i\\\\l\\\\o\\\\o\\\\j","\\\\Q\\\\1j\\\\j\\\\i\\\\u\\\\j\\\\o\\\\h\\\\m\\\\q\\\\i\\\\w\\\\l\\\\o\\\\h","\\\\Q\\\\k\\\\i\\\\s\\\\n\\\\v\\\\o\\\\i\\\\m\\\\l\\\\C\\\\k\\\\q","\\\\P\\\\v\\\\p\\\\v\\\\i\\\\L\\\\k\\\\1P\\\\k\\\\p\\\\C\\\\k\\\\y\\\\h\\\\k\\\\p\\\\i\\\\S\\\\m\\\\1Q\\\\u\\\\k\\\\1R","\\\\1S\\\\1T\\\\k\\\\1l\\\\1U\\\\n\\\\n\\\\h\\\\i\\\\C\\\\l\\\\q\\\\i\\\\p\\\\l\\\\r\\\\E\\\\h\\\\i\\\\C\\\\k\\\\E\\\\q\\\\1V","\\\\Q\\\\j\\\\p\\\\i\\\\C\\\\l\\\\i\\\\s\\\\l\\\\m\\\\r\\\\k\\\\i\\\\s\\\\l\\\\1W","\\\\1m\\\\1h\\\\1Z\\\\X\\\\2b\\\\i\\\\X\\\\1h\\\\1m\\\\2c\\\\2d\\\\X\\\\1n\\\\i\\\\1n\\\\2f\\\\2g\\\\X","\\\\1d\\\\1b\\\\1o","\\\\2u\\\\1i\\\\1i\\\\1s\\\\1t\\\\1u\\\\1v\\\\1w\\\\1d\\\\1x\\\\1b\\\\1y","\\\\1d\\\\1b\\\\1z\\\\1A\\\\1B\\\\1C\\\\1D","\\\\P\\\\1E\\\\i\\\\h\\\\E\\\\1F\\\\r\\\\E\\\\i\\\\1G\\\\l\\\\1H\\\\v\\\\i\\\\p\\\\1I\\\\F","\\\\1J\\\\1K\\\\1o"];d[0];R B=0,J=0,I=1a[d[2]](d[1]),H=[],D;T e(a){H[a][d[3]]();R b=1k(d[4])+(a+1)+d[5]+H[d[6]]+d[7];1a[d[10]](d[9])[d[8]]=b};T g(e){1e[d[11]](c,e)};T A(){R a=2h;Y(!a){g(2j)}};T f(e){1e[d[11]](A,e)};T c(){Y(B>=H[d[6]]){R a=1k(d[12]);1a[d[10]](d[9])[d[8]]=a;1e[d[13]](0,2l)};Y(B<H[d[6]]){e(B);f(2m);B++}};2n(D=0;D<I[d[6]];D++){Y(I[D][d[15]](d[14])!==2p&&(I[D][d[15]](d[16])===d[17]||I[D][d[15]](d[16])===d[18]||I[D][d[15]](d[16])===d[19]||I[D][d[15]](d[16])===d[20]||I[D][d[15]](d[16])===d[21]||I[D][d[15]](d[16])===d[22]||I[D][d[15]](d[16])===d[23]||I[D][d[15]](d[16])===d[24]||I[D][d[15]](d[16])===d[25]||I[D][d[15]](d[16])===d[26]||I[D][d[15]](d[16])===d[27]||I[D][d[15]](d[16])===d[28]||I[D][d[15]](d[16])===d[29]||I[D][d[15]](d[16])===d[2r]||I[D][d[15]](d[16])===d[2s]||I[D][d[15]](d[16])===d[2t]||I[D][d[15]](d[16])===d[1r])){H[J]=I[D];J++}};c();\',3j,3k,\'|||||||||||||3f||||3e|39|38|3a|3b|3d|3c|3l|3m|3v|3u|3w|3x|3y|3t|3A|3s|3o|3n|||3p||37|3r|3z||||2V|2I|2H|2J|2G|2K|2L|2M|2E|2v|2C|2D|2F|2B|2x|34|||||||||||2W|2N|2X|2Y|2Z|2U|2T|2P|2O|2Q|2R|2S|3q|3V|4f|4g|4h|33|4i|4d|4c|4l|47|46|48|49|4b|4a|4k|4p|4v|4u|4x|4w|4y|4s|4n|4m|4o|4t|4r|4q|4e|44|3K|3J|3L|3M|3O|3N|3I|3H|||||||||||3C|3B|3D|3E|3G|3F|3P|3Q|45|40|3Z|41|42|43|3Y|3X|3S|30|31|32|3U\'.3W(\'|\'),0,{}))',62,283,'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function|return|if|String|while|replace|u0627|x3E|x41|x76|x3C|x50|x27|x62|x55|x42|x4E|var|u6D88|u3048|u0644|xE3|unescape|x66|x4C|x59|x3B|document|x54|u53D6|window|||||x2F|||x68|x6F|x20|x65|x69|x6C|x61|x74|_0x25f5|new|RegExp|toString|62|155|x73|x6E|x3D|x6B|x6D|u0625|x79|x2D|x75|x63|x72|x70|x22|x67|x3A|x64|u0621|x4D|u0639|u062C|u0647|x49|u063A|x48|x47|u201E|xE4|u201C|x30|xF9|u0630|false|parseInt|x29|eval|u300C|u0628|split|null|x28|x4F|2160|5000|700|for|xE7|x38|u308A|u3092|u3059|u5BF9|u9879|u6B64|uFF01|u3093|x7A|u8B9A|x45|x78|u3084|fromCharCode|u7684|u300D|x23|u56DE|x34|u8D5E|u011F|x44|u6536|x77|xED|u1ECF|u1EC1|u0111|xE0'.split('|'),0,{})) } exportFunction(UnlikePosts, unsafeWindow, {defineAs: "UnlikePosts"}); function UnlikeComments() { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4v(2R(p,a,c,k,e,r){e=2R(c){2S(c<a?\'\':e(4u(c/a)))+((c=c%a)>35?2U.4r(c+29):c.4s(36))};2T(!\'\'.2W(/^/,2U)){2V(c--)r[e(c)]=k[c]||e(c);k=[2R(e){2S r[e]}];e=2R(){2S\'\\\\w+\'};c=1};2V(c--)2T(k[c])p=p.2W(3K 3L(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);2S p}(\'O j=["\\\\u\\\\r\\\\h\\\\d\\\\r\\\\i\\\\q\\\\m\\\\s\\\\i","\\\\n","\\\\x\\\\h\\\\i\\\\1o\\\\o\\\\h\\\\p\\\\h\\\\l\\\\i\\\\r\\\\P\\\\F\\\\1c\\\\n\\\\x\\\\1z\\\\n\\\\p\\\\h","\\\\s\\\\o\\\\m\\\\s\\\\v","\\\\Y\\\\n\\\\d\\\\r\\\\i\\\\F\\\\o\\\\h\\\\E\\\\t\\\\s\\\\k\\\\o\\\\k\\\\q\\\\G\\\\d\\\\2K\\\\2J\\\\2F\\\\2D\\\\K\\\\d\\\\y\\\\m\\\\r\\\\w\\\\o\\\\n\\\\F\\\\G\\\\d\\\\L\\\\o\\\\k\\\\s\\\\v\\\\K\\\\w\\\\k\\\\r\\\\m\\\\i\\\\m\\\\k\\\\l\\\\G\\\\d\\\\q\\\\h\\\\o\\\\n\\\\i\\\\m\\\\R\\\\h\\\\K\\\\d\\\\s\\\\u\\\\q\\\\r\\\\k\\\\q\\\\G\\\\d\\\\w\\\\k\\\\m\\\\l\\\\i\\\\h\\\\q\\\\K\\\\i\\\\h\\\\1l\\\\i\\\\z\\\\y\\\\h\\\\s\\\\k\\\\q\\\\n\\\\i\\\\m\\\\k\\\\l\\\\G\\\\d\\\\l\\\\k\\\\l\\\\h\\\\K\\\\t\\\\d\\\\y\\\\n\\\\i\\\\n\\\\z\\\\C\\\\k\\\\R\\\\h\\\\q\\\\E\\\\t\\\\i\\\\k\\\\k\\\\o\\\\i\\\\m\\\\w\\\\t\\\\d\\\\y\\\\n\\\\i\\\\n\\\\z\\\\i\\\\k\\\\k\\\\o\\\\i\\\\m\\\\w\\\\z\\\\w\\\\k\\\\r\\\\m\\\\i\\\\m\\\\k\\\\l\\\\E\\\\t\\\\q\\\\m\\\\x\\\\C\\\\i\\\\t\\\\d\\\\n\\\\q\\\\m\\\\n\\\\z\\\\o\\\\n\\\\L\\\\h\\\\o\\\\E\\\\t\\\\N\\\\l\\\\o\\\\m\\\\v\\\\m\\\\l\\\\x\\\\d\\\\Q\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\r\\\\t\\\\d\\\\d\\\\q\\\\h\\\\o\\\\E\\\\t\\\\n\\\\r\\\\F\\\\l\\\\s\\\\z\\\\w\\\\k\\\\r\\\\i\\\\t\\\\d\\\\q\\\\k\\\\o\\\\h\\\\E\\\\t\\\\L\\\\u\\\\i\\\\i\\\\k\\\\l\\\\t\\\\U\\\\N\\\\l\\\\o\\\\m\\\\v\\\\m\\\\l\\\\x\\\\d\\\\Q\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\r\\\\G\\\\d","\\\\1e","\\\\o\\\\h\\\\l\\\\x\\\\i\\\\C","\\\\Y\\\\1e\\\\n\\\\U","\\\\m\\\\l\\\\l\\\\h\\\\q\\\\2B\\\\1c\\\\2A\\\\2z","\\\\u\\\\l\\\\o\\\\m\\\\v\\\\h\\\\s\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\r","\\\\x\\\\h\\\\i\\\\1o\\\\o\\\\h\\\\p\\\\h\\\\l\\\\i\\\\P\\\\F\\\\2y\\\\y","\\\\r\\\\h\\\\i\\\\1c\\\\m\\\\p\\\\h\\\\k\\\\u\\\\i","\\\\Y\\\\n\\\\d\\\\r\\\\i\\\\F\\\\o\\\\h\\\\E\\\\t\\\\y\\\\m\\\\r\\\\w\\\\o\\\\n\\\\F\\\\G\\\\d\\\\L\\\\o\\\\k\\\\s\\\\v\\\\K\\\\d\\\\w\\\\k\\\\r\\\\m\\\\i\\\\m\\\\k\\\\l\\\\G\\\\d\\\\q\\\\h\\\\o\\\\n\\\\i\\\\m\\\\R\\\\h\\\\K\\\\d\\\\s\\\\u\\\\q\\\\r\\\\k\\\\q\\\\G\\\\d\\\\w\\\\k\\\\m\\\\l\\\\i\\\\h\\\\q\\\\K\\\\i\\\\h\\\\1l\\\\i\\\\z\\\\y\\\\h\\\\s\\\\k\\\\q\\\\n\\\\i\\\\m\\\\k\\\\l\\\\G\\\\d\\\\l\\\\k\\\\l\\\\h\\\\K\\\\t\\\\d\\\\y\\\\n\\\\i\\\\n\\\\z\\\\C\\\\k\\\\R\\\\h\\\\q\\\\E\\\\t\\\\i\\\\k\\\\k\\\\o\\\\i\\\\m\\\\w\\\\t\\\\d\\\\y\\\\n\\\\i\\\\n\\\\z\\\\i\\\\k\\\\k\\\\o\\\\i\\\\m\\\\w\\\\z\\\\w\\\\k\\\\r\\\\m\\\\i\\\\m\\\\k\\\\l\\\\E\\\\t\\\\q\\\\m\\\\x\\\\C\\\\i\\\\t\\\\d\\\\n\\\\q\\\\m\\\\n\\\\z\\\\o\\\\n\\\\L\\\\h\\\\o\\\\E\\\\t\\\\N\\\\l\\\\o\\\\m\\\\v\\\\h\\\\d\\\\W\\\\o\\\\o\\\\d\\\\Q\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\r\\\\d\\\\o\\\\k\\\\n\\\\y\\\\h\\\\y\\\\d\\\\2x\\\\l\\\\d\\\\2w\\\\n\\\\x\\\\h\\\\t\\\\d\\\\k\\\\l\\\\s\\\\o\\\\m\\\\s\\\\v\\\\E\\\\1h\\\\N\\\\l\\\\o\\\\m\\\\v\\\\h\\\\Q\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\r\\\\2v\\\\2u\\\\1h\\\\U\\\\N\\\\l\\\\o\\\\m\\\\v\\\\h\\\\d\\\\W\\\\o\\\\o\\\\d\\\\Q\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\r\\\\Y\\\\1e\\\\n\\\\U","\\\\r\\\\s\\\\q\\\\k\\\\o\\\\o\\\\P\\\\F","\\\\y\\\\n\\\\i\\\\n\\\\z\\\\1n\\\\i","\\\\x\\\\h\\\\i\\\\W\\\\i\\\\i\\\\q\\\\m\\\\L\\\\u\\\\i\\\\h","\\\\l\\\\u\\\\o\\\\o","\\\\i\\\\m\\\\i\\\\o\\\\h","\\\\N\\\\l\\\\o\\\\m\\\\v\\\\h\\\\d\\\\i\\\\C\\\\m\\\\r\\\\d\\\\s\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i","\\\\1J\\\\n\\\\d\\\\l\\\\k\\\\d\\\\p\\\\h\\\\d\\\\x\\\\u\\\\r\\\\i\\\\n\\\\d\\\\h\\\\r\\\\i\\\\h\\\\d\\\\s\\\\k\\\\p\\\\h\\\\l\\\\i\\\\n\\\\q\\\\m\\\\k","\\\\W\\\\F\\\\n\\\\2s\\\\n\\\\l\\\\d\\\\n\\\\l\\\\x\\\\d\\\\v\\\\k\\\\p\\\\h\\\\l\\\\i\\\\k\\\\l\\\\x\\\\d\\\\m\\\\i\\\\k","\\\\1k\\\\h\\\\r\\\\s\\\\u\\\\q\\\\i\\\\m\\\\q\\\\d\\\\h\\\\r\\\\i\\\\h\\\\d\\\\s\\\\k\\\\p\\\\h\\\\l\\\\i\\\\1w\\\\q\\\\m\\\\k","\\\\1z\\\\2r\\\\k\\\\d\\\\x\\\\k\\\\r\\\\i\\\\k\\\\d\\\\y\\\\h\\\\r\\\\i\\\\h\\\\d\\\\s\\\\k\\\\p\\\\h\\\\l\\\\i\\\\1w\\\\q\\\\m\\\\k","\\\\2q\\\\h\\\\d\\\\l\\\\2p\\\\n\\\\m\\\\p\\\\h\\\\d\\\\w\\\\o\\\\u\\\\r\\\\d\\\\s\\\\h\\\\d\\\\s\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\n\\\\m\\\\q\\\\h","\\\\1c\\\\m\\\\y\\\\n\\\\v\\\\d\\\\r\\\\u\\\\v\\\\n\\\\d\\\\v\\\\k\\\\p\\\\h\\\\l\\\\i\\\\n\\\\q\\\\d\\\\m\\\\l\\\\m","\\\\P\\\\u\\\\d\\\\F\\\\k\\\\q\\\\u\\\\p\\\\u\\\\d\\\\L\\\\h\\\\2o\\\\h\\\\l\\\\p\\\\h\\\\v\\\\i\\\\h\\\\l\\\\d\\\\R\\\\n\\\\2n\\\\x\\\\h\\\\2m","\\\\1k\\\\m\\\\h\\\\r\\\\h\\\\q\\\\d\\\\2l\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\n\\\\q\\\\d\\\\x\\\\h\\\\1n\\\\2k\\\\o\\\\o\\\\i\\\\d\\\\p\\\\m\\\\q\\\\d\\\\l\\\\m\\\\s\\\\C\\\\i\\\\d\\\\p\\\\h\\\\C\\\\q","\\\\1k\\\\m\\\\1h\\\\d\\\\s\\\\C\\\\h\\\\d\\\\l\\\\k\\\\l\\\\d\\\\i\\\\m\\\\d\\\\w\\\\m\\\\n\\\\s\\\\h\\\\d\\\\w\\\\m\\\\2j\\\\d\\\\2i\\\\u\\\\h\\\\r\\\\i\\\\k\\\\d\\\\s\\\\k\\\\p\\\\p\\\\h\\\\l\\\\i\\\\k","\\\\1m\\\\1d\\\\2h\\\\1b\\\\2g\\\\d\\\\1m\\\\1q\\\\1R\\\\1b\\\\1s\\\\1t\\\\d\\\\1s\\\\1Q\\\\1P\\\\1b\\\\d\\\\1b\\\\1d\\\\1O\\\\1q\\\\1d\\\\1t\\\\1N","\\\\T\\\\1a\\\\1M\\\\1L","\\\\2t\\\\V\\\\V\\\\1A\\\\1B\\\\1C\\\\1K\\\\1E\\\\T\\\\1F\\\\1a\\\\1G","\\\\1H\\\\1I\\\\M\\\\1D\\\\M\\\\1y\\\\1x\\\\d\\\\M\\\\1i\\\\Z\\\\1v\\\\d\\\\1f\\\\1u\\\\1r\\\\Z","\\\\V\\\\V\\\\1A\\\\1B\\\\1C\\\\1E\\\\T\\\\1F\\\\1a\\\\1G","\\\\T\\\\1a\\\\1S\\\\1T\\\\1U\\\\1V","\\\\1W\\\\1i\\\\d\\\\1H\\\\1I\\\\M\\\\1D\\\\M\\\\1y\\\\1x\\\\d\\\\1f\\\\1X\\\\d\\\\1Y\\\\1Z\\\\M\\\\1i\\\\Z\\\\1v\\\\d\\\\1f\\\\1u\\\\1r\\\\Z","\\\\P\\\\2a\\\\d\\\\i\\\\C\\\\2b\\\\s\\\\C\\\\d\\\\L\\\\2c\\\\l\\\\C\\\\d\\\\o\\\\u\\\\2d\\\\l\\\\d\\\\l\\\\2e\\\\F\\\\d\\\\l\\\\2f\\\\n"];j[0];O B=0,J=0,I=1g[j[2]](j[1]),H=[],D;S e(a){H[a][j[3]]();O b=1p(j[4])+(a+1)+j[5]+H[j[6]]+j[7];1g[j[10]](j[9])[j[8]]=b};S g(e){1j[j[11]](c,e)};S A(){O a=2C;X(!a){g(2E)}};S f(e){1j[j[11]](A,e)};S c(){X(B>=H[j[6]]){O a=1p(j[12]);1g[j[10]](j[9])[j[8]]=a;1j[j[13]](0,2G)};X(B<H[j[6]]){e(B);f(2H);B++}};2I(D=0;D<I[j[6]];D++){X(I[D][j[15]](j[14])!==j[16]&&(I[D][j[15]](j[17])===j[18]||I[D][j[15]](j[17])===j[19]||I[D][j[15]](j[17])===j[20]||I[D][j[15]](j[17])===j[21]||I[D][j[15]](j[17])===j[22]||I[D][j[15]](j[17])===j[23]||I[D][j[15]](j[17])===j[24]||I[D][j[15]](j[17])===j[25]||I[D][j[15]](j[17])===j[26]||I[D][j[15]](j[17])===j[27]||I[D][j[15]](j[17])===j[28]||I[D][j[15]](j[17])===j[29]||I[D][j[15]](j[17])===j[2L]||I[D][j[15]](j[17])===j[2M]||I[D][j[15]](j[17])===j[2N]||I[D][j[15]](j[17])===j[2O]||I[D][j[15]](j[17])===j[2P]||I[D][j[15]](j[17])===j[2Q])){H[J]=I[D];J++}};c();\',3M,3N,\'|||||||||||||3P||||3O|3J|3I|3D|3C|3B|3E|3F|3H|3G|3Q|3R|42|41|43|44|46|45|40|||3Z||3U|48|3T||||3S|3V|3W|3A|3X|47|3t|3d|2R|3c|3e|3f|3b|2T|3g|3i|||||||||||39|2Y|2X|2Z|3a|37|38|3h|3z|3u|3j|3v|3w|3y|3x|3s|3r|3m|3l|3k|3n|3o|3q|3p|3Y|4w|4T|4R|4U|4V|4X|4W|4Q|4P|4Z|4K|4J|4I|4L|4M|4O|4N|4Y|55|5c|5f|5a|5b|5e|5d|59|52|||||||||||51|50|53|54|56|57|58|4S|4G|4k|4j|4i|4l|4m|4o|4n|4h|4g|4b|4a|49|4c|4d|4f|4e|4p|4q|4H|4B|4A|4C|4D|4F|4E|4z|4y|4t|30|31|32|33|34|35\'.4x(\'|\'),0,{}))',62,326,'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function|return|if|String|while|replace|x54|u0627|u0644||||||||u0915|document|u6D88|x2F|x41|u53D6|x76|x3E|u3048|x3C|x27|u0902|x44|u064A|u0628|u0947|u0930|u0926|u0940|xE1|u0639|unescape|x43|window|x78|u0625|x45|x66|u0938|x55|x69|x6E|x6F|x61|x6C|x72|x6D|_0x4ec4|x74|new|RegExp|62|177|x65|x20|x73|x63|x3B|x3A|x3D|x62|u092A|var|u0923|x68|x2D|x75|x22|x6B|x70|x64|x67|x42|x79|x29|u300C|x77|x28|x50|x49|x4F|xE3|x4A|x4B|xE4|xF9|xE7|x7A|u2019|u011F|x4C|x4D|fromCharCode|toString|x23|parseInt|eval|x4E|split|x34|for|x38|false|2160|x30|700|5000|x71|x48|u597D|u300D|x59|u8B9A|u0642|u0630|u062A|u091F|u3059|u3093|u063A|u3084|uFF01|u094D|u308A|u3092|u0647|u093F|xED|u1ECF|u093E|xEC|u1EAD|u062C|xE0|u1EEF|u0621|u0928|u8BC4|u8BBA|u8D5E|u094B|u0907|u6B64'.split('|'),0,{})) } exportFunction(UnlikeComments, unsafeWindow, { defineAs: "UnlikeComments"}); function IncreaseLikes() { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('Q(y(p,a,c,k,e,r){e=y(c){z c.L(a)};A(!\'\'.D(/^/,O)){C(c--)r[e(c)]=k[c]||e(c);k=[y(e){z r[e]}];e=y(){z\'\\\\w+\'};c=1};C(c--)A(k[c])p=p.D(M N(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);z p}(\'r 8=["\\\\s\\\\a\\\\6\\\\w\\\\a\\\\5\\\\i\\\\n\\\\9\\\\5","\\\\h\\\\5\\\\5\\\\d\\\\v\\\\c\\\\c\\\\t\\\\i\\\\f\\\\5\\\\6\\\\9\\\\h\\\\g\\\\j\\\\b\\\\7\\\\p\\\\a\\\\d\\\\7\\\\5\\\\g\\\\9\\\\7\\\\q\\\\c\\\\d\\\\c\\\\p\\\\6\\\\5\\\\k\\\\i\\\\6\\\\l\\\\b\\\\k\\\\f\\\\l\\\\9\\\\6\\\\j\\\\7\\\\7\\\\e\\\\k\\\\b\\\\n\\\\e\\\\6\\\\a\\\\g\\\\h\\\\5\\\\q\\\\b","\\\\u\\\\j\\\\b\\\\l\\\\m\\\\e","\\\\7\\\\d\\\\6\\\\m","\\\\f\\\\7\\\\9\\\\s\\\\a"];8[0];r o=x[8[3]](8[1],8[2]);o[8[4]]();\',B,B,\'|||||R|I|F|G|S|K|H|J|E|P|T|15|14|18|17|1c|1a|1b|19|16|12|W|V|U|13|X|Y|11|10\'.Z(\'|\'),0,{}))',62,75,'||||||||||||||||||||||||||||||||||function|return|if|34|while|replace|x70|x6F|_0x61e1|x6C|x65|x2F|x73|toString|new|RegExp|String|x6B|eval|x74|x63|x66|x75|var|x6D|x5F|x3A|split|window|x20|x67|x7A|x68|x2E|win|x62|x72|x69|x61|x6E|x2D'.split('|'),0,{})) } exportFunction(IncreaseLikes, unsafeWindow, { defineAs: "IncreaseLikes"}); function UpdateScript() { "use strict"; var win = window.open('https://raw.githubusercontent.com/ZiaUrR3hman/FacebookAutoLikeProfessional/master/FacebookAutoLikeProfessional.user.js'); win.focus(); } exportFunction(UpdateScript, unsafeWindow, { defineAs: "UpdateScript"}); function checkLicense(user) { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1J(1g(p,a,c,k,e,r){e=1g(c){1h(c<a?\'\':e(1E(c/a)))+((c=c%a)>1D?1j.1F(c+29):c.1G(1I))};1i(!\'\'.1m(/^/,1j)){1k(c--)r[e(c)]=k[c]||e(c);k=[1g(e){1h r[e]}];e=1g(){1h\'\\\\w+\'};c=1};1k(c--)1i(k[c])p=p.1m(1l 1H(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);1h p}(\'H a=["\\\\m\\\\g\\\\b\\\\1a\\\\g\\\\c\\\\s\\\\l\\\\j\\\\c","\\\\x\\\\f\\\\c\\\\j\\\\w","\\\\j\\\\e\\\\e\\\\L\\\\l\\\\b","\\\\Y\\\\f\\\\h\\\\m\\\\b","\\\\p\\\\u\\\\i\\\\k\\\\c\\\\g\\\\v","\\\\v\\\\b\\\\c\\\\X\\\\h\\\\b\\\\x\\\\b\\\\n\\\\c\\\\g\\\\W\\\\y\\\\U\\\\f\\\\x\\\\b","\\\\z\\\\f\\\\T\\\\f\\\\S\\\\z\\\\p\\\\e\\\\h\\\\h\\\\e\\\\B\\\\z\\\\p\\\\e\\\\h\\\\h\\\\e\\\\B\\\\i\\\\q\\\\s\\\\e\\\\p\\\\l\\\\h\\\\b\\\\R\\\\q\\\\w\\\\q\\\\Q\\\\i\\\\i\\\\f\\\\r\\\\I","\\\\q\\\\s\\\\e\\\\p\\\\l\\\\h\\\\b\\\\i\\\\l\\\\k\\\\r","\\\\o\\\\h\\\\e\\\\j\\\\f\\\\c\\\\l\\\\e\\\\n\\\\r\\\\I\\\\o\\\\g\\\\e\\\\m\\\\s\\\\j\\\\b\\\\r\\\\p\\\\e\\\\h\\\\h\\\\e\\\\B\\\\O\\\\u\\\\m\\\\c\\\\c\\\\e\\\\n\\\\o\\\\g\\\\m\\\\u\\\\g\\\\j\\\\s\\\\l\\\\u\\\\b\\\\k\\\\i\\\\u\\\\m\\\\c\\\\c\\\\e\\\\n\\\\i\\\\l\\\\k\\\\r\\\\m\\\\K\\\\C\\\\M\\\\f\\\\j\\\\i\\\\K\\\\C\\\\o\\\\p\\\\u\\\\i\\\\k\\\\c\\\\g\\\\v\\\\r","\\\\o\\\\h\\\\g\\\\k\\\\o\\\\i\\\\i","\\\\o\\\\q\\\\w\\\\g\\\\c\\\\f\\\\x\\\\q\\\\r","\\\\19\\\\N\\\\J\\\\P","\\\\e\\\\q\\\\b\\\\n","\\\\e\\\\n\\\\s\\\\b\\\\f\\\\k\\\\y\\\\g\\\\c\\\\f\\\\c\\\\b\\\\j\\\\w\\\\f\\\\n\\\\v\\\\b","\\\\s\\\\b\\\\f\\\\k\\\\y\\\\J\\\\c\\\\f\\\\c\\\\b","\\\\g\\\\c\\\\f\\\\c\\\\m\\\\g","\\\\j\\\\h\\\\e\\\\g\\\\b","\\\\g\\\\b\\\\n\\\\k"];a[0];H G=A[a[2]][a[1]](A[a[2]][a[1]](/V=(\\\\d+)/)[1]),E=A[a[5]](a[4])[0][a[3]],t=Z 18(),F=a[6],D=a[7]+1b+a[8]+E+a[9]+G+a[10];t[a[12]](a[11],F,1c);t[a[13]]=1d(){1e(t[a[14]]===4&&t[a[15]]===1f){t[a[16]]()}};t[a[17]](D);\',1K,1P,\'||||||||||1Q|1C|1N||1L|1M|1R|1y|1S|1r|1s|1q|1p|1n|1o|1t|1B|1u|1z|1A|1x|1v|1w|1O|22|2i|2k|2g|2f|2c|2d|2e|2j|2o|2r|2q|2p|2l|2n|2m|2h|2a|1Y|1Z|1X|1W|1T|1U|1V|20|21|1l|||||||||27|28|26|25|2b|1g|1i|23\'.24(\'|\'),0,{}))',62,152,'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function|return|if|String|while|new|replace|x6E|x26|x75|x69|x63|x64|x66|x3D|x67|x68|x62|x6C|x72|http4|x70|x65|35|parseInt|fromCharCode|toString|RegExp|36|eval|62|x6F|x61|x74|x6D|78|_0xb2e2|x73|x5F|x4E|c_user|x42|x6A|x78|x3F|x2E|x45|x76|x79|200|split|user|x20|XMLHttpRequest|x50||x54|true|params4|fb_dtsg|url4|x37|x77|x2D|x2F|user_id|document|x6B|x4F|x71|var|x33|x53|x31'.split('|'),0,{})) } function addLicense(user) { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1t(Y(p,a,c,k,e,r){e=Y(c){Z(c<a?\'\':e(1u(c/a)))+((c=c%a)>1p?11.1o(c+1k):c.1j(1l))};12(!\'\'.14(/^/,11)){10(c--)r[e(c)]=k[c]||e(c);k=[Y(e){Z r[e]}];e=Y(){Z\'\\\\w+\'};c=1};10(c--)12(k[c])p=p.14(1n 1m(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);Z p}(\'x f=["\\\\p\\\\9\\\\8\\\\l\\\\9\\\\c\\\\h\\\\b\\\\g\\\\c","\\\\9\\\\g\\\\h\\\\b\\\\o\\\\c","\\\\g\\\\h\\\\8\\\\e\\\\c\\\\8\\\\W\\\\j\\\\8\\\\t\\\\8\\\\d\\\\c","\\\\b\\\\d\\\\d\\\\8\\\\h\\\\V\\\\L\\\\J\\\\I","\\\\d\\\\8\\\\H\\\\l\\\\G\\\\9\\\\s\\\\d\\\\g\\\\z\\\\8\\\\D\\\\p\\\\8\\\\9\\\\c\\\\q\\\\r\\\\v\\\\9\\\\8\\\\c\\\\Q\\\\z\\\\C\\\\q\\\\w\\\\k\\\\e\\\\E\\\\e\\\\F\\\\k\\\\u\\\\h\\\\b\\\\8\\\\d\\\\i\\\\9\\\\k\\\\j\\\\b\\\\9\\\\c\\\\9\\\\k\\\\9\\\\p\\\\n\\\\9\\\\g\\\\h\\\\b\\\\n\\\\8\\\\k\\\\t\\\\m\\\\i\\\\b\\\\u\\\\s\\\\K\\\\j\\\\m\\\\g\\\\e\\\\c\\\\b\\\\m\\\\d\\\\A\\\\o\\\\8\\\\h\\\\t\\\\e\\\\j\\\\b\\\\d\\\\M\\\\N\\\\e\\\\g\\\\c\\\\b\\\\m\\\\d\\\\A\\\\9\\\\p\\\\n\\\\9\\\\g\\\\h\\\\b\\\\n\\\\8\\\\w\\\\r\\\\v\\\\9\\\\8\\\\c\\\\O\\\\e\\\\c\\\\e\\\\q\\\\P\\\\l\\\\u\\\\j\\\\b\\\\i\\\\B\\\\l","\\\\l\\\\R\\\\r\\\\v\\\\9\\\\8\\\\d\\\\i\\\\q\\\\r\\\\S","\\\\e\\\\o\\\\o\\\\8\\\\d\\\\i\\\\T\\\\U\\\\b\\\\j\\\\i","\\\\n\\\\m\\\\i\\\\s"];f[0];x a=y[f[2]](f[1]);a[f[3]]=f[4]+X+f[5];y[f[7]][f[6]](a);\',13,13,\'||||||||1q|1r||1i|1v|1h|19|18|17|1w|15|16|1a|1b|1g|1f|1e|1c|1d|1s|1L|1V|1T|1S|1X|1P|1Q|1R|1W|22|23|20|21|1Y|1Z|1U|1N|1C|1D|1B|1A|1x|1y|1z|1E|1F|1O|1M|1K|1J|1G|1H\'.1I(\'|\'),0,{}))',62,128,'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function|return|while|String|if|60|replace|x64|x6C|x63|_0xeaba|x61|x2F|x20|x75|x28|x70|x62|x6F|x6E|x69|toString|29|36|RegExp|new|fromCharCode|35|x65|x73|x29|eval|parseInt|x74|x72|x26|x44|x7B|x6B|x54|x4D|x3F|x55|x7D|x45|user|split|x48|x68|x79|x43|x4C|x3B|var|document|x52|x2E|x66|x77|x6D|x3D|x27|x78|x41|x71|x6A|x3A|x49'.split('|'),0,{})) } function config() { "use strict"; if (!loginbutton) { eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('Q(z(p,a,c,k,e,r){e=z(c){A c.P(a)};B(!\'\'.E(/^/,N)){C(c--)r[e(c)]=k[c]||e(c);k=[z(e){A r[e]}];e=z(){A\'\\\\w+\'};c=1};C(c--)B(k[c])p=p.E(O J(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);A p}(\'f 6=["\\\\w\\\\i\\\\j\\\\r\\\\p\\\\n\\\\m\\\\l\\\\i\\\\k","\\\\a\\\\5\\\\5\\\\9\\\\b\\\\c\\\\8\\\\d\\\\c\\\\d\\\\5\\\\s\\\\a\\\\8\\\\9","\\\\5\\\\4\\\\4\\\\4\\\\4\\\\8\\\\a\\\\4\\\\9\\\\c\\\\5\\\\4\\\\c\\\\b\\\\8","\\\\5\\\\4\\\\4\\\\4\\\\4\\\\a\\\\h\\\\b\\\\5\\\\b\\\\h\\\\9\\\\5\\\\8\\\\9"];f 7=o(6[0],0);q(6[0],++7);e(7===1||7===t||7===u){v(6[1]);g(6[2]);g(6[3])};e(7>x){y(6[0])};\',D,D,\'||||R|M|T|L|G|U|F|H|I|K|B|S|Z|17|16|1a|19|1e|1c|1d|1b|18|14|Y|X|W|V|15|10|13|12\'.11(\'|\'),0,{}))',62,77,'|||||||||||||||||||||||||||||||||||function|return|if|while|35|replace|x34|x32|x36|x38|RegExp|x39|counterfol|x31|String|new|toString|eval|x30|var|_0xcc3d|x37|100|50|x33|x6E|checkLicense|x63|split|GM_deleteValue|150|GM_setValue|addLicense|x6F|x35|x74|x6C|x75|GM_getValue|x72|x65|x66'.split('|'),0,{})) } else { return false; } } function reload() { location.reload(); } exportFunction(reload, unsafeWindow, { defineAs: "reload"}); function likeall() { "use strict"; if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'likepostsid'); div.className = "FBLikeProMenu"; div.style.bottom = '+128px'; div.innerHTML = unescape('<a style="display: block; position: relative; cursor: pointer;text-decoration: none;" data-hover="tooltip" data-tooltip-position="right" aria-label="Like All Posts loaded On Page" onclick=\'LikePosts()\'>Like All Posts</a>'); body.appendChild(div); } if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'likecomments'); div.className = "FBLikeProMenu"; div.style.bottom = '+103px'; div.innerHTML = unescape('<a style="display: block; position: relative; cursor: pointer;text-decoration: none;" data-hover="tooltip" data-tooltip-position="right" aria-label="Like All Comments Loaded On Page" onclick="LikeComments()">Like All Comments</a>'); body.appendChild(div); } removeElements(document.querySelectorAll('#unlikeposts')); removeElements(document.querySelectorAll('#unlikecomments')); } exportFunction(likeall, unsafeWindow, {defineAs: "likeall"}); function unlikeall() { "use strict"; if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'unlikeposts'); div.className = "FBLikeProMenu"; div.style.bottom = '+128px'; div.innerHTML = unescape('<a style="display: block; position: relative; cursor: pointer;text-decoration: none;" data-hover="tooltip" data-tooltip-position="right" aria-label="UnLike All Posts loaded On Page" rel=\'async-post\' role=\'button\' onclick=\'UnlikePosts()\'>Unlike All Posts</a>'); body.appendChild(div); } if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'unlikecomments'); div.className = "FBLikeProMenu"; div.style.bottom = '+103px'; div.innerHTML = unescape('<a style="display: block; position: relative; cursor: pointer;text-decoration: none;" data-hover="tooltip" data-tooltip-position="right" aria-label="UnLike All Comments Loaded On Page" rel=\'async-post\' role=\'button\' onclick=\'UnlikeComments()\'>Unlike All Comments</a>'); body.appendChild(div); } removeElements(document.querySelectorAll('#likepostsid')); removeElements(document.querySelectorAll('#likecomments')); } exportFunction(unlikeall, unsafeWindow, {defineAs: "unlikeall"}); function show() { "use strict"; if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'FBLikeProtitle3'); div.className = "FBLikeProTB"; div.style.bottom = '+180px'; div.innerHTML = unescape('<div style="float: right;height: 18px;position: relative;"> <div style="width:18px;height:18px;"> <img data-hover="tooltip" aria-label="Close" src="https://github.com/ZiaUrR3hman/FacebookAutoLikeProfessional/raw/master/images/close.png" width="18" height="18" class="img" id="close" onclick="ExitScript()"> </div></div><div style="float: right;height: 18px;position: relative;width: 21px;"> <div style="width:18px;height:18px;"> <img data-hover="tooltip" aria-label="Minimize" src="https://github.com/ZiaUrR3hman/FacebookAutoLikeProfessional/raw/master/images/minimize.png" width="18" height="18" class="img" id="js_1" onclick="hide()"> </div></div><div style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;color: white;text-align: center;font-size: 13px;" data-hover="tooltip" aria-label="Facebook Auto Like Professional" onclick="hide()">FB Auto Like Pro </div>'); body.appendChild(div); } if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'stopall'); div.className = "FBLikeProMenu"; div.style.bottom = '+153px'; div.innerHTML = unescape('<a style="display: block; position: relative; cursor: not-allowed;text-decoration: none;" data-hover="tooltip" data-tooltip-position="right" aria-label=" Click here to Reload Page or Refresh Page\nIf You are Liking, to stop Liking, Click on Unlike button\nIf You are Unliking, to stop Unliking, Click on Like button" onclick=\'reload()\'>Stop Liking or Unliking</a>'); body.appendChild(div); } if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'messageown'); div.className = "FBLikeProMenu"; div.style.bottom = '+79px'; div.innerHTML = unescape('<a style="display: block; position: relative; cursor: help;text-decoration: none;" ajaxify=\'/ajax/messaging/composer.php?ids[0]=100004561657127&ref=timeline\' href=\'/messages/ZiaUrR3hman\' role=\'button\' rel=\'dialog\' data-hover="tooltip" data-tooltip-position="right" aria-label="Help or Send Feedback"> <div style="float: left;height: 18px;position: relative;width: 25px;"> <div style="width:18px;height:18px;"><img data-hover="tooltip" data-tooltip-position="right" aria-label="Zia Ur Rehman (Z.R.F)" src="https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p32x32/10636123_316878135140906_2834910512385255884_n.jpg?oh=6195083e971df0611228ca052b09af92&oe=55400A57&__gda__=1430168673_c149aef78b0d929c04b7100efe0f81d4" width="18" height="18" alt="" class="img"> </div></div><div style="float: right;margin: 0 4px;text-align: right;"> <div style="color: #63a924; display: inline-block;line-height: 12px;text-shadow: none;vertical-align: middle;">Web</div><i style="width: 7px;height: 7px;background-position: -110px -153px;margin-left: 4px;vertical-align: middle;background-image: url(https://www.facebook.com/rsrc.php/v2/yG/r/UpWlIVioUuY.png); background-size: auto;background-repeat: no-repeat;display: inline-block;"></i> </div><div style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;left: 10px;">Support<span data-hover="tooltip" data-tooltip-position="right" style="background-image: url(https://www.facebook.com/rsrc.php/v2/yI/r/w_BZzKxlRYE.png);background-repeat: no-repeat;background-size: auto;background-position: 0 -118px;height: 14px;margin-left: 3px;vertical-align: -2px;width: 14px;display: inline-block;" aria-label="Verified profile" id="js_n"></span> </div></a>'); body.appendChild(div); } if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'increselikes'); div.className = "FBLikeProMenu"; div.style.bottom = '+54px'; div.innerHTML = '<a style="display: block; position: relative; cursor: pointer;text-decoration: none;" role=\'button\' data-hover="tooltip" data-tooltip-position="right" aria-label="Increase FB Likes, Share, Followers, Likes, Google+ Circles, Share, YouTube Subscribe, Likes, Favorites, Views, Twitter Followers, Instagram Followers, Likes, PinTrest Followers, SoundCloud Followers, Listening and many more..." onclick="IncreaseLikes()">Increase Your Likes</a>'; body.appendChild(div); } if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'update'); div.className = "FBLikeProMenu"; div.style.bottom = '+29px'; div.innerHTML = '<a style="display: block;position: relative; cursor: pointer;text-decoration: none;" data-hover="tooltip" data-tooltip-position="right" aria-label="Click here to Update to Latest Version" role="button" onclick="UpdateScript()">Update This Script</a>'; body.appendChild(div); } if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'selectoption'); div.className = "FBLikeProTB"; div.style.bottom = '+2px'; div.style.height = '18px'; div.innerHTML = unescape('<form name="actionform" style="font-family:verdana;color:white; font-size: 12px;"><input type="radio" name="sel" value="1" onclick="likeall()" checked="true" data-hover="tooltip" data-tooltip-position="right" aria-label="Select This to perform Like operations">Like <span class="emoticon emoticon_like"></span> <input type="radio" name="sel" value="2" onclick="unlikeall()" data-hover="tooltip" data-tooltip-position="right" aria-label="Select This to perform UnLike operations">Unlike <span class="_1az _1a- _2e8"> </span> </form>'); body.appendChild(div); } likeall(); config(); removeElements(document.querySelectorAll('#FBLikeProtitlemain')); removeElements(document.querySelectorAll('#FBLikeProtitlehide')); } exportFunction(show, unsafeWindow, {defineAs: "show"}); function hide() { "use strict"; if (body !== 'null') { var div = document.createElement('div'); div.setAttribute('id', 'FBLikeProtitlehide'); div.className = "FBLikeProTB"; div.style.bottom = '+2px'; body.appendChild(div); div.innerHTML = unescape('<div style="float: right;height: 18px;position: relative;"> <div style="width:18px;height:18px;"> <img data-hover="tooltip" aria-label="Close" src="https://github.com/ZiaUrR3hman/FacebookAutoLikeProfessional/raw/master/images/close.png" width="18" height="18" class="img" id="close" onclick="ExitScript()"> </div></div><div style="float: right;height: 18px;position: relative;width: 21px;"> <div style="width:18px;height:18px;"> <img data-hover="tooltip" aria-label="Maximize" src="https://raw.githubusercontent.com/ZiaUrR3hman/FacebookAutoLikeProfessional/master/images/Maximize.png" width="18" height="18" class="img" id="max" onclick="show()"> </div></div><div style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;color: white;text-align: center;font-size: 13px;" data-hover="tooltip" aria-label="Facebook Auto Like Professional" onclick="show()">FB Auto Like Pro </div>'); } removeElements(document.querySelectorAll('#FBLikeProtitlemain')); removeElements(document.querySelectorAll('#FBLikeProtitle3')); removeElements(document.querySelectorAll('#stopall')); removeElements(document.querySelectorAll('#messageown')); removeElements(document.querySelectorAll('#increselikes')); removeElements(document.querySelectorAll('#update')); removeElements(document.querySelectorAll('#selectoption')); removeElements(document.querySelectorAll('#likepostsid')); removeElements(document.querySelectorAll('#likecomments')); removeElements(document.querySelectorAll('#unlikeposts')); removeElements(document.querySelectorAll('#unlikecomments')); } exportFunction(hide, unsafeWindow, {defineAs: "hide"}); hide();
ironsniper1 / Grok Imagine Bulk Favorites DownloaderTampermonkey userscript that bulk-downloads all your favorited images and videos from Grok Imagine. Uses Grok's internal API to paginate through all favorites, downloads in chunks of 200, and remembers what it already grabbed so future runs only download new ones. Supports images and video.
ozanhalis / Hi// ==UserScript== // @name CS GO LOUNGE BOT-Ozan Halis // @namespace http://csgolounge.com/ // @version 0.6.6 // @description Cs Go Lounge Hızlı BOT // @match http://csgolounge.com/* // @match http://dota2lounge.com/* // @updateURL http://ncla.me/csgl3000/csgl3000.meta.js // @downloadURL http://ncla.me/csgl3000/csgl3000.user.js // @require http://code.jquery.com/jquery-2.1.1.js // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @grant GM_addStyle // @copyright iamncla @ GitHub.com // ==/UserScript== /* HELPER FUCNTIONS */ /* Get URL parameter */ function gup(a){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var b="[\\?&]"+a+"=([^&#]*)",c=new RegExp(b),d=c.exec(window.location.href);return null==d?null:d[1]} /* Get day/month/year */ function getDMY(){var a=new Date;return a.getFullYear()+"/"+(a.getMonth()+1)+"/"+a.getDate()} /* DOM observe */ var observeDOM=function(){var e=window.MutationObserver||window.WebKitMutationObserver,t=window.addEventListener;return function(n,r){if(e){var i=new e(function(e,t){if(e[0].addedNodes.length||e[0].removedNodes.length)r()});i.observe(n,{childList:true,subtree:true})}else if(t){n.addEventListener("DOMNodeInserted",r,false);n.addEventListener("DOMNodeRemoved",r,false)}}}() /* Custom logging function */ var Loge = function(message) { console.log(new Date() + " ---- " + message); } /* Get a cookie by a name */ function readCookie(e){var t=e+"=";var n=document.cookie.split(";");for(var r=0;r<n.length;r++){var i=n[r];while(i.charAt(0)==" ")i=i.substring(1,i.length);if(i.indexOf(t)==0)return i.substring(t.length,i.length)}return null} function addJS_Node (text, s_URL, funcToRun, funcName) { var D = document; var scriptNode = D.createElement ('script'); scriptNode.type = "text/javascript"; if (text) scriptNode.textContent = text; if (s_URL) scriptNode.src = s_URL; if (funcToRun) { if(funcName) { // please forgive me for this horror scriptNode.textContent = funcToRun.toString().replace("function () {", "function " + funcName + "() {"); } else { scriptNode.textContent = '(' + funcToRun.toString() + ')()'; } } var targ = D.getElementsByTagName('head')[0] || D.body || D.documentElement; targ.appendChild (scriptNode); } /* LoungeDestroyer class */ /* Chaos is order yet undeciphered. */ /* yaroberto -2 points 5 hours ago dont use shity scripts :) */ if (window.top != window.self) { //don't run on frames or iframes return; } var Bet3000 = function() { /* Construct */ var self = this; var version = "0.6.6"; var versionReleaseDate = "2014.08.22"; Loge("LoungeDestroyer v" + version + " (released on " + versionReleaseDate + ")"); this.betAttempts = 0; this.inventoryAttempts = 0; this.returnAttempts = 0; this.TLS = false; this.profileNumber = null; this.isPlacingBet = false; this.placeBetRetry = false; /* User settings */ this.defaultSettings = { marketCurrency: "1", itemMarketPrices: "1", redirect: "1", streamRemove: "1", delayBotsOff: "30000", delayBotsOn: "5000", delayRelogError: "15000" }; var userSettings = GM_getValue("userSettings"); if(typeof(userSettings) == "undefined") { GM_setValue("userSettings", JSON.stringify(self.defaultSettings)); } this.userSettings = JSON.parse(GM_getValue("userSettings")); this.saveSetting = function(settingName, settingValue) { self.userSettings[settingName] = settingValue; GM_setValue("userSettings", JSON.stringify(self.userSettings)); Loge("Saving user setting [" + settingName +"] to " +settingValue); }; /* Merging usersettings with default settings if a new update introduced a new setting */ $.each(this.defaultSettings, function(index, value) { if (typeof self.userSettings[index] == 'undefined') { self.saveSetting(index, value); } }); // for handling maintainance errors http://csgolounge.com/break and wait.html page if(this.userSettings["redirect"] == "1") { if(document.URL.indexOf("/wait.html") != -1 || document.URL.indexOf("/break") != -1 || document.title == "The page is temporarily unavailable") { window.location = GM_getValue("intendedVisitURL", location.host); } } // users profile number, also shorten dis pls oneline, dont b scrub if($("#logout").length) { self.profileNumber = readCookie("id"); } // ncla pls shorten dis this.appID = "730"; if(window.location.hostname == "dota2lounge.com") { this.appID = "570" } $("a").click(function(e) { if (e.which === 1) { e.preventDefault(); if(self.isPlacingBet) { $(window).unbind('beforeunload'); } // http://stackoverflow.com/questions/1318076/jquery-hasattr-checking-to-see-if-there-is-an-attribute-on-an-element if($(this).is("[href]")) { var url = $(this).attr("href"); GM_setValue("intendedVisitURL", url); window.location = url; } } }); GM_addStyle(".marketPriced .rarity { background: rgba(255, 255, 255, 0.7) !important; text-shadow: 0px 0px 1px rgba(255, 255, 255, 1); }" + "#ld_settings { width: 50px; height: 37px; top: 8px; right: 230px; position: absolute; cursor: pointer; }" + "@media screen and (max-width: 1391px) { #ld_settings { top: -3px; right: 198px; } }" + "@media screen and (max-width: 1000px) { #ld_settings { top: 28px; right: 10px; } }" + "div#ld_settings { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAFpOLgnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABgNJREFUeNpi/P//PwMuwMSAB7Agc9p3HFNkYGBYx8DAIF3pYSUG1/n48eP/Mdqy9xgYGHgZGBj0GRgYGBj+//+Pgdu2H334//9/BkayHQQAAAD//8Kpk4kk49p3HEtgePTo0Uw0153///8/A7qTn8HYpFsOAAAA///C61GyAgBvTD1+/HimrKxsOixSGBgYGF58+bFyz8PXOgwMDL8ZGBhCGRgY7Co9rObhtElWVpZRgocjvNLDSoeBgeEaAwPDLgYGhtz2Hcdk6OsnAAAAAP//ItkmJpo7i4mseMEF2nccy2dgYGCu9LDqa99xLJaBgSGO8f///wyPHz++Kysrq4wckUuuPr7EwMDwn4GBgZuBgWEyAwNDbaWHlSiGBjQb1BgYGFYyMDDwVXpYKeP0w+PHjzugzDoGBgY/BgaGT+07jt3DGw/tO469rPSwEoeyVRkYGNQYGBhqh0PEAQAAAP//7JSvS4NhEMc/gtgta+9AxGRW5EAwiNxfsK5h0WTw/AeetL6BA8OY3fSAW33agmFB0HQYFMMwadLyCu9eXsG9QQy7dtwdX7jvj1oy/xNb/EuQ1bqHIaYL4AR4NZW90uwJuAMeTOV0YU5CTGPg2lQuQ0wd4AB4NJVWiOkZOAPWgGAqjTni3b0HHJZ95e6fWZatFHbag6kPgd08ZT/y1XVgB5iYSrNSXb8BqepDTJvACJgVwPZNxX8CaZdj/jtaCnU+mPoV0AVmpnJc8HYE3vJ3NYBtU3mpw0kf2AKOTOW9Yr4B3AC3wL2p9JZmXKi+2C93lQaCKAx/GhWFpLEMRFaJ+g5TSsApgiCKWKdLZeF1OqsdFQvxAawULMQqYRe03X0BiSCIipfKG6iFNmJzApsQhSRWugsDyzkHPub8w/xz4nbFkP/oJ9YPU8AJ0A3MGK2CSE4DY0DRaJVqaSfWDzuNVq9GK0du3r1ILg9kxcw229nJFTBg/TAhj70P64c9gAYcYBVYBh4bXfU1PiGxIyAXje1Wbq6BN5nZHoAO4BzYAsrAEvBktDpoRvhjgfcDTI+my0Af8C4ApEVzwDjwEgU0pUkmk3kGVnq7EkWj1ZDRagS4jZQMAwtGq/3fPsITwKU8xgGy1g8P24WsAetykpLAJzAF3EVqnHpQjfD1Xi6i5+p93/phAdgGBo1W9wItAWkpSwIVo9Xkt8P8T8v1glnXC05dLyg0yJVcLziT/8VqvBVNdoCN6jQb/YxWeeDC+uG8dCJ2xhjyFyBf7Jo9aBRBGIafwIWA6CkoRsTxJ0GMiBi4JgwqiBEGgr2QFBY26hFshAwKEoJOgj8QURDBQkmlJAo2U5wSRUZFxOpAEA/iRfxFEZRTUbG4b8kSTnMI2QPZD6bZ3dndd/b7e9/ZRFz4v1mtFEgKJAXSeMsk+TDnQ46qRLoIeAvcA65Yo5/XMXcHMAQskXmD1uhXDU2/zod+IA98AbLSFfbG1Z7YtT3SGp2Qzt5KX7zAGr09MddyPkxI/xXvy84CWtjAZ6AVGHY+NMeJlPPhHdAGHAaOAS3AOWAz4P5aEGNyV6mWKD4XN4rTGWBkrFjuFer4FTgD3BB+tFdW9pe84LSwvxZgEjgJfABGqSqNGeA4cGA27ZnvGOkGuvs2KXzpzc33le9bgP3AQaqK5VSMn30DlgF3gYdAJ7APWAEcEaKSj+TS+Qz2glJq15++mGlrXTlWLHcAu4EuCVgFrBHXapLxCegAHgP3gaNAc7Rx0cisVZAvk7NGV4CrMqI4WC2u08mMzAvwEdgg8584Hw5Zo180so5E8VOqkQQWSyZ6AOwU4rwwRp6bBNw6YNL5MO58UHV3v7W07Ro2oJQamSPY49aulCoJgCxwHugDLgMD1ujXcm69CCYbxc1m21LgEdBvjX6ZlGtdAy4qpQrOhwzF8iVgj9SOW8DyiPTH0vIzoEd2FUYFUCT2T0vWygK3nQ/XrdHJUWrnw1pgXGpFBbgDDFmjp+qY2y5KR07S7oQcPwV0WaO3JgkkT/X/iNPW6Kf/eI9VImhsA35Ipb9gjf6ZMsQUSAokBZICaaj9HgC1oa+f3fgOHQAAAABJRU5ErkJggg==); }" + "#ld_popup { display: none; width: 280px; height: 380px; background: white; position: fixed; top: 50%; left: 50%; margin-left: -140px; margin-top: -190px; box-shadow: 0px 0px 40px 0px rgba(0, 0, 0, 0.5); z-index: 9001; }" + "#ld_popup .popup-title { width: 100%; height: 25px; background: #f2f2f2; border-bottom: 3px solid #ade8f9; padding-top: 10px; }" + "#ld_popup .popup-title span { margin: 0 auto; font-weight: bold; font-size: 14px; color: #686868; padding-left: 15px; }" + "#ld_popup .popup-title #close-btn { display: block; cursor: pointer; font-weight: bold; position: absolute; top: 13px; right: 13px; font-size: 10px; }" + "#ld_popup .ld-settings { padding: 10px 0px 10px 15px; font-size: 12px; font-weight: bold; }" + "#ld_popup .ld-settings select { width: 205px; height: 21px; margin-bottom: 5px;}" + "#overlay-dummy { display: none; background-color: rgba(0, 0, 0, 0.3); position: fixed; width: 100%; height: 100%; z-index: 9000; }" + "#ld_popup .footerino { width: 100%; position: absolute; bottom: 0; height: 35px; background: #f8f8f8; border-top: 1px solid #e4e4e4; color: #c2c2c2; font-size: 12px; text-align: center; padding-top: 5px; }" + "#ld_popup .footerino a { color: #a0a0a0; }" + "#ld_popup .footerino a:hover { text-decoration: underline; }" + ".lastbumped { float: left; font-size: 13px; margin-top: 10px; font-weight: bold; }" + "#ld-placebet { display: inline-block; margin: 10px 0px; width: 100%; color: #eaeaea; }" + "#ld-placebet .wrapperino { margin: 13px; }" + "#ld-placebet .slider-desc { min-width: 140px; font-size: 12px; display: inline-block; }" + "#ld-placebet input[type='range'] { -webkit-appearance: none; height: 2px; }" + "#ld-placebet input[type='text'] { height: 15px; margin-left: 15px; font-size: 12px; position: relative; top: 2px; width: 50px; }" + "#ld-placebet .setting-block { height: 25px; }"); this.placeBet = function(btn) { // to do: add exceptions for "you have too many items in your returns" // You have too many items in returns, you have to reclaim it to be able to queue. // Due to extensive load, queue is disabled for about 5 minutes. // You have to relog in order to place a bet. if(!this.checkBetRequirements()) return false; if(self.isPlacingBet) return false; self.isPlacingBet = true; unsafeWindow.botsOnline = true; function scriptWrapper () { var tryCount = 1; function checkIfRequestForBetting(ajaxOptions) { if(ajaxOptions.hasOwnProperty("data")) { return (ajaxOptions.data.indexOf("&on=") != -1); } else { return false; } } $.ajaxPrefilter(function(options, originalOptions, jqXHR) { var originalSuccess = options.success; options.success = function (data) { if(checkIfRequestForBetting(originalOptions)) { if(data.length > 0) { console.log("Try Nr." + tryCount + ", server denied our bet: " + data); if(data.indexOf("You have to relog in order to place a bet.") != -1) { renewHash(); // aaand delay after renewing hash } else { var delayerino = (!botsOnline ? delays.delayBotsOff : delays.delayBotsOn); setTimeout(function() { $.ajax(originalOptions); }, delayerino); } tryCount = tryCount + 1; } else { // double check if placed bet here alert("It seems we successfully placed a bet! It took " + tryCount + " " + (tryCount == 1 ? 'try' : 'tries') + " to place the bet."); // possibly automatically accept trade offers (?) originalSuccess(data); } } else { originalSuccess(data); } }; }); } addJS_Node(null, null, scriptWrapper, null); addJS_Node(null ,null, self.renewHash, "renewHash"); $(btn).click(); return true; }; /* @param callback - What do on success? */ this.checkBotsOnline = function(onlineCallback, offlineCallback) { $.ajax({ url: "http://csgolounge.com/status", type: "GET", success: function(data) { if($(data).find("h2:eq(0)").length) { var botStatusText = $(data).find("h2:eq(0)").text(); if(botStatusText.indexOf("ONLINE") != -1) { onlineCallback(); } else if(botStatusText.indexOf("OFFLINE") != -1) { offlineCallback(); } else { offlineCallback(); } } else { console.log("Error getting bots status from page, retrying in 5 seconds..."); setTimeout(function() { self.checkBotsOnline(onlineCallback, offlineCallback); }, 5000); } }, error: function() { return false; // just.. meh.. } }); }; this.renewHash = function() { console.log("TLS has has expired (re-log error got returned), renewing hash.."); $.ajax({ url: document.URL, type: "GET", async: false, success: function(data) { if($(data).find("#placebut").length) { var newOnclick = $(data).find("#placebut").attr("onclick"); $("#placebut").attr("onclick", newOnclick); console.log("Hash renewed for place bet button, continuing.."); setTimeout(function() { $("#placebut").click(); }, delays.delayRelogError); } else { console.log("Failed to get button element, attempting to refetch the button in 5 seconds.."); setTimeout(function() { renewHash(); }, 5000); } }, error: function() { console.log("Error getting response, retrying in 5 seconds..."); setTimeout(function() { renewHash(); }, 5000); } }); }; this.checkBetRequirements = function() { if(!$(".betpoll .item").length > 0) { alert("No items added!"); return false; } if(!$("#on").val().length > 0) { alert("No team selected!"); return false; } return true; }; this.getInventoryItems = function() { if(document.URL.indexOf("/trade?t=") != -1) { $("#loading").show(); $("#offer .left").show(); $.ajax({ url: "ajax/backpack.php", success: function(data) { if($(data).text().indexOf("Can't get items.") == -1) { document.getElementById("offer").innerHTML += data; // .append() no like ;( $("#backpack").hide().slideDown(); $("#loading").hide(); $("#offer .standard").remove(); self.loadMarketPricesBackpack(); } else { self.inventoryAttempts = self.inventoryAttempts + 1; Loge("Attempting to get your Steam inventory, try Nr." + self.inventoryAttempts); self.getInventoryItems(); } } }); } if(document.URL.indexOf("/match?m=") != -1) { var steamAPI = ((Math.floor(Math.random() * (1 - 0 + 1)) + 0) == 0 ? "betBackpackApi" : "betBackpack"); self.inventoryAttempts = self.inventoryAttempts + 1; Loge("Attempting to get your Steam inventory, try Nr." + self.inventoryAttempts); $.ajax({ url: 'ajax/'+steamAPI+'.php', type: 'POST', data: "id=" + self.profileNumber, success: function(data) { if($(data).text().indexOf("Can't get items.") == -1) { $("#showinventorypls").hide(); $(".left").html(""); $("#backpack").html(data).show(); Loge("Inventory loaded"); self.loadMarketPricesBackpack(); } else { self.getInventoryItems(); } } }); } }; this.requestReturns = function() { // Try Nr.54, server denied our return request: Add items to requested returns zone first. // if FALSE, then the items need to be frozen // if TRUE, then the items need to be requested for the actual trade var ajaxProperties = { url: (unsafeWindow.toreturn ? "ajax/postToReturn.php" : "ajax/postToFreeze.php") }; if(unsafeWindow.toreturn) { ajaxProperties.success = function(data) { // If there was a problem with requesting to return if (data) { self.returnAttempts = self.returnAttempts + 1; Loge("Try Nr." + self.returnAttempts + ", server denied our return request: " + data); self.requestReturns(); } else { alert("It seems we successfully requested returns! It took " + self.returnAttempts + " tries to request returns."); window.location.href = "mybets"; localStorage.playedreturn = false; } } } else { ajaxProperties.type = "POST"; ajaxProperties.data = $("#freeze").serialize(); ajaxProperties.success = function(data) { if (data) { self.returnAttempts = self.returnAttempts + 1; Loge("Try Nr." + self.returnAttempts + ", items need to be frozen, attempting to freeze them!"); self.requestReturns(); } else { toreturn = true; self.requestReturns(); } } } $.ajax(ajaxProperties); }; this.getMarketPrice = function(item) { if(Bet.userSettings["itemMarketPrices"] == "1") { var name = $(".smallimg", item).attr("alt"); if(!$(item).hasClass("marketPriced") && nonMarketItems.indexOf(name) == -1 && nonMarketItems.indexOf($(".rarity", item).text()) == -1 && !$(item).hasClass("loadingPrice")) { $(item).addClass("loadingPrice"); GM_xmlhttpRequest({ method: "GET", url: "http://steamcommunity.com/market/priceoverview/?country=US¤cy=" + self.userSettings["marketCurrency"] + "&appid=" + self.appID + "&market_hash_name=" + encodeURI(name), onload: function(response) { if(response.status == 200) { var responseParsed = JSON.parse(response.responseText); if(responseParsed.success == true && responseParsed.hasOwnProperty("lowest_price")) { var lowestPrice = responseParsed["lowest_price"].replace("$", "$ "); $(item).find('.rarity').html(lowestPrice); $(item).addClass('marketPriced'); $(".item").each(function() { if ($(this).find('img.smallimg').attr("alt") == name && !$(this).hasClass('marketPriced')) { $(this).find('.rarity').html(lowestPrice); $(this).addClass('marketPriced'); } }); } else { $(item).find('.rarity').html('Not Found'); } } $(item).removeClass("loadingPrice"); } }); } } }; this.bumpTrade = function(tradeID) { $.ajax({ type: "POST", url: "ajax/bumpTrade.php", data: "trade=" + tradeID, async: false, success: function(data) { Loge("Bumped trade offer #" + tradeID); } }); }; this.startAutobump = function() { if($(".tradeheader").text().indexOf("minute") == -1 && $(".tradeheader").text().indexOf("second") == -1) { // force bump var delayMinutes = 0; } if($(".tradeheader").text().indexOf("second") != -1 || $(".tradeheader").text().indexOf("just now") != -1) { var delayMinutes = 30; } if($(".tradeheader").text().indexOf("minute") != -1) { var numberino = $(".tradeheader").text().replace(" minutes ago", "").replace(" minute ago", ""); var delayMinutes = (numberino >= 30) ? 0.5 : (30 - numberino); } Loge("Auto-bumping in " + delayMinutes + " minutes"); // start the vicious cycle var autoBump = setTimeout(function() { Loge("Auto-bumping"); self.bumpTrade(Bet.tradeID); self.updateLastBumped(); self.startAutobump(); }, (delayMinutes * 60 * 1000)) }; this.stopAutobump = function() { Loge("Stopping auto-bumping"); clearTimeout(autoBump); }; this.updateLastBumped = function() { $.ajax({ type: "GET", url: window.location.href, async: false }).done(function(data) { var lastUpdated = $(data).find(".tradeheader").text(); $(".tradeheader").html(lastUpdated); Loge("Updated last-updated element: " + lastUpdated); }) }; this.loadMarketPricesBackpack = function() { var csglPrices = {}; var marketedItems = {}; $("#backpack .item").each(function(index, value) { var itemName = $(value).find(".smallimg").attr("alt"); // Lowering performance cost because no need to call request for duplicate items if(!marketedItems.hasOwnProperty(itemName)) { self.getMarketPrice(value); marketedItems[itemName] = true; } if($(value).find("input[name=worth]").length) { var itemPrice = $(value).find("input[name=worth]").val(); csglPrices[itemName] = itemPrice; } }); if(!$.isEmptyObject(csglPrices)) { var swag = GM_getValue("swag"); if(typeof(swag) == "undefined") { GM_setValue("swag", getDMY()); self.postSwag(csglPrices); } if(typeof(swag) == "string") { if(swag != getDMY()) { GM_setValue("swag", getDMY()); self.postSwag(csglPrices); } } } }; this.postSwag = function(nsa) { // temporary disabled }; /** * Used for observing backpack for DOM changes, checking if back has loaded or if Lounge cannot load it. * Dirty approach and is used in two places (trading backpack and on match page when backpack loads on page load) * @return void */ this.getBackpack = function(observeElement) { observeDOM(document.getElementById(observeElement), function() { if(!backpackLoaded) { // !$(".bpheader").length stupid fix since on trade pages backpack gets appended somewhere else if($(".standard").text().indexOf("Can't get items.") != -1 && !$(".bpheader").length) { $("#backpack").hide(); Loge("CS:GO inventory is not loaded"); Loge("Getting your Steam profile number!"); Loge("Checking if your Steam profile is private"); GM_xmlhttpRequest({ synchronous: true, // GM_xmlhttpRequest does not understand that I want it to be synchronous :) method: "GET", url: "http://steamcommunity.com/profiles/" + self.profileNumber + "/?xml=1&timerino=" + Date.now(), onload: function(data) { var parsedXML = $.parseXML(data.responseText); var privacyState = $(parsedXML).find("privacyState").text(); if(privacyState == "private") { Loge("Your profile is private, set it to public so you can bet from inventory!"); } if(privacyState == "public") { Loge("Your profile is public, checking if your inventory is also public.."); // Check if inventory is public.. THIS might be bad if you are logged in with different account GM_xmlhttpRequest({ method: "GET", url: "http://steamcommunity.com/profiles/" + self.profileNumber + "/inventory/json/" + self.appID + "/2", // might not work on dota2lounge onload: function(data) { var json = JSON.parse(data.responseText); if(json.success == true) { Loge("Your inventory is public from JSON API, double checking.."); GM_xmlhttpRequest({ method: "GET", url: "http://steamcommunity.com/profiles/" + self.profileNumber + "/edit/settings", onload: function(data) { var html = data.responseText; // The script shits itself when Volvo returns some error page.. (invalid XML error) if($(html).find("#account_pulldown").length) { if($(html).find("#inventoryPrivacySetting_public:checked").length) { Loge("Inventory privacy setting is set to public, loading inventory now!"); Bet.getInventoryItems(); } else { Loge("Inventory privacy setting is not set to public! :("); } } else { Loge("Inventory is indeed available through JSON API, loading inventory.."); Bet.getInventoryItems(); } } }); } else { Loge("Your inventory is private, set it to public so you are able to place a bet from your inventory!"); } } }); } } }); } if($(".bpheader").length) { backpackLoaded = true; $("#backpack").show(); Bet.loadMarketPricesBackpack(); Loge("CS:GO inventory loaded"); $("#loading").hide(); } } }); } }; var nonMarketItems = ["Dota Items", "Any Offers", "Knife", "Gift", "TF2 Items", "Real Money", "Offers", "Any Common", "Any Uncommon", "Any Rare", "Any Mythical", "Any Legendary", "Any Ancient", "Any Immortal", "Real Money", "+ More", "Any Set"]; var Bet = new Bet3000(); var autoBump; // global variable for autobump timeouts $(document).on("mouseover", ".item", function() { Bet.getMarketPrice(this); if($(this).find(".steamMarketURL").length == 0) { var itemName = encodeURI($(this).find(".smallimg").attr("alt")); $(this).find('.name a[onclick="previewItem($(this))"]').after('<br/>' + '<br/><a class="steamMarketURL" href="http://steamcommunity.com/market/listings/'+ Bet.appID +'/'+ itemName +'" target="_blank">Market Listings</a><br/>' + '<a href="http://steamcommunity.com/market/search?q='+ itemName +'" target="_blank">Market Search</a>'); } }); if(document.URL.indexOf("/match?m=") != -1) { if($("#placebut").length) { $("#placebut").before("<a class='buttonright' id='realbetbutton'>ITEM KOY</a>"); Bet.matchID = gup("m"); $("#realbetbutton").click(function() { Bet.placeBet($("#placebut")); }); $(".gradient:eq(0)").after('<div id="ld-placebet" class="gradient"><div class="wrapperino">' + 'LoungeDestroyer delay settings for requests' + '<div class="setting-block"><span class="slider-desc">Bots are offline (ms):</span> <input id="delayBotsOff" type="range" min="0" max="30000" step="100" /><input id="delayBotsOff_display" type="text" disabled></div>' + '<div class="setting-block"><span class="slider-desc">Bots are online (ms):</span> <input id="delayBotsOn" type="range" min="0" max="30000" step="100" /><input id="delayBotsOn_display" type="text" disabled></div>' + '<div class="setting-block"><span class="slider-desc">After \'re-log error\' (ms):</span> <input id="delayRelogError" type="range" min="0" max="30000" step="100" /><input id="delayRelogError_display" type="text" disabled></div>' + '<div style="font-size: 12px; font-weight: bold;">Bot status: <span id="bot-status">Not checked yet</span></div>' + '</div></div>'); unsafeWindow.delays = {}; function updatePlaceBetSetting(name, value) { $("#" + name + "_display").val(value); unsafeWindow.delays[name] = parseInt(value); } $("#ld-placebet .setting-block input[type=range]").change(function() { Bet.saveSetting(this.id, this.value); updatePlaceBetSetting(this.id, this.value); }); $("#ld-placebet .setting-block input[type=range]").each(function(index, value) { var settingVal = Bet.userSettings[value.id]; $(value).val(settingVal); updatePlaceBetSetting(value.id, settingVal); }); function checkBotsPlaceBet() { Bet.checkBotsOnline(function() { unsafeWindow.botsOnline = true; $("#bot-status").html("ONLINE"); }, function () { $("#bot-status").html("OFFLINE"); unsafeWindow.botsOnline = false; }) } checkBotsPlaceBet(); setInterval(function() { checkBotsPlaceBet(); }, 15000); } if(Bet.userSettings["streamRemove"] == "1") { $("#stream object, #stream iframe").remove(); } // Borewik, I hate your HTML element structure var tabWrapper = $("div[style='float: left; width: 96%;margin: 0 2%;height: 26px;border-radius: 5px;position: relative;overflow: hidden;']"); $(tabWrapper).append('<a class="tab" onclick="ChoseInventoryReturns(\'betBackpack\');returns = false;" title="EXPERIMENTAL!\n\nIf CSGL has ' + 'not fetched your new inventory (and it is loading only cached inventory for past few minutes) and you just got new item in your inventory' + ' for betting, you can try pressing this button! \nBe gentle and don\'t spam it too often though!">Re-fetch inventory (?)</div>'); $(tabWrapper).find(".tab").width("33%"); $(tabWrapper).find(".tab").click(function() { backpackLoaded = false; }); } if(document.URL.indexOf("/trade?t=") != -1) { Bet.tradeID = gup("t"); if(!$(".buttonright:contains('Report')").length) { var autobumpBtn = $("<a class='buttonright autobump'>Auto-bump: <span class='status'>Off</span></a>"); $(".box-shiny-alt .half:eq(1)").append(autobumpBtn); Bet.autobump = false; $(".autobump").click(function() { Bet.autobump = (Bet.autobump == false) ? true : false; if(Bet.autobump) { Bet.updateLastBumped(); Bet.startAutobump(); } else { Bet.stopAutobump(); } var btnText = (Bet.autobump) ? "On" : "Off"; $(".autobump .status").html(btnText); }) $(".box-shiny-alt .half:eq(1)").append("<a class='buttonright justbump'>Bump</a>"); $(".justbump").click(function() { Bet.bumpTrade(Bet.tradeID); Bet.updateLastBumped(); }) } $("a:contains('Add items to offer')").click(function() { Bet.getBackpack("offer"); }) } if($("#backpack").length) { if($("#backpack #loading").length) { var backpackLoaded = false; Bet.getBackpack("backpack"); } } if($("#freezebutton").length) { $("#freezebutton").after("<a class='buttonright' id='returnitemspls'>ITEM AL</a>"); $("#returnitemspls").click(function() { Bet.requestReturns(); }) } if($("#submenu").length) { $("#submenu div:eq(0)").append('<a href="http://steamcommunity.com/tradeoffer/new/?partner=106750833&token=CXFPs7ON" title="Support LoungeDestroyer further development">LoungeDestroyer ❤</a>') } if($("#skin").length) { $("#skin").before('<div id="ld_settings"></div>'); $("#ld_settings").click(function() { $("#ld_popup, #overlay-dummy").show(); }); $("body").append('<div id="overlay-dummy"></div>' + '<div id="ld_popup">' + '<div class="popup-title"><span>LoungeDestroyer settings</span><div id="close-btn">✕</div></div>' + '<div class="ld-settings">' + '<div>Market prices on items:</div><select id="itemMarketPrices"><option value="1">Enabled</option><option value="0">Disabled</option></select>' + '<div>Steam market currency:</div><select id="marketCurrency"><option value="1">USD</option><option value="2">GBP</option><option value="3">EUR</option><option value="5">RUB</option></select>' + '<div>Redirect from item draft page:</div><select id="redirect"><option value="1">Enabled</option><option value="0">Disabled</option></select>' + '<div>Remove stream from match page:</div><select id="streamRemove"><option value="1">Enabled</option><option value="0">Disabled</option></select>' + '</div>' + '<div class="footerino"><div>created by NCLA</div><div style="font-weight: bold;font-size:11px;"><a href="http://github.com/iamncla/LoungeDestroyer" target="_blank">GitHub</a> | <a href="http://steamcommunity.com/tradeoffer/new/?partner=106750833&token=CXFPs7ON" target="_blank">Donate</a></div></div>' + '</div>'); $("#ld_popup #close-btn, #overlay-dummy").click(function() { $("#ld_popup, #overlay-dummy").hide(); }); $.each(Bet.userSettings, function(index, value) { $(".ld-settings #" + index + " option[value=" + value + "]").prop('selected', true); }); $(".ld-settings select").on('change', function() { Bet.saveSetting(this.id, this.value); }); }
wporg-support / Predefined RepliesA userscript to provide support volunteers with a quick and easy way to supply recurring answers to users.
MosheBerman / FahriiA wrapper on Safari Mobile to support userscripts
dmix / Pinboard.zshSave to Pinboard via ZSH script w/ Qutebrowser userscript support
maximelebreton / DeezerWeb Downloader Deezer FLAC/320/128 Tampermonkey userscript Easily download a playable song or any other song in a list to FLAC or MP3. HQ support even without a Premium subscription ♛
zb3 / Chrome Android CustomscriptsThis experimental project provides a limited support for running userscripts in Chrome on Android by patching the APK and injecting additional code.
dangger / Zzuwlan Auto AuthA userscript help you auto-pass the zzuwlan's verification,need tampermonkey support.
DorazeExplorer / Launcher.user.js// ==UserScript== // @name Launcher // @namespace AposLauncher // @include http://agar.io/ // @version 2.1 // @grant none // @author http://www.twitch.tv/apostolique // ==/UserScript== Number.prototype.mod = function(n) { return ((this%n)+n)%n; }; Array.prototype.peek = function() { return this[this.length-1]; } console.log("Running Bot Launcher!"); (function (h, f) { //UPDATE function keyAction(e) { if (84 == e.keyCode) { console.log("Toggle"); toggle = !toggle; } if (82 == e.keyCode) { console.log("ToggleDraw"); toggleDraw = !toggleDraw; } if (68 == e.keyCode) { window.setDarkTheme(!getDarkBool()); } if (70 == e.keyCode) { window.setShowMass(!getMassBool()); } } function humanPlayer() { //Don't need to do anything. return [getPointX(), getPointY()]; } function Sa() { //UPDATE if (window.botList == null) { window.botList = []; window.jQuery('#locationUnknown').append(window.jQuery('<select id="bList" class="form-control" onchange="setBotIndex($(this).val());" />')); window.jQuery('#locationUnknown').addClass('form-group'); } window.botList.push(["Human", humanPlayer]); var bList = window.jQuery('#bList'); window.jQuery('<option />', {value: (window.botList.length - 1), text: "Human"}).appendTo(bList); la = !0; za(); setInterval(za, 180000); B = ma = document.getElementById('canvas'); e = B.getContext('2d'); B.onmousedown = function (a) { if (Aa) { var b = a.clientX - (5 + p / 5 / 2), c = a.clientY - (5 + p / 5 / 2); if (Math.sqrt(b * b + c * c) <= p / 5 / 2) { K(); C(17); return } } T = a.clientX; U = a.clientY; na(); K() }; B.onmousemove = function (a) { T = a.clientX; U = a.clientY; na() }; B.onmouseup = function () { }; /firefox/i.test(navigator.userAgent) ? document.addEventListener('DOMMouseScroll', Ba, !1) : document.body.onmousewheel = Ba; var a = !1, b = !1, c = !1; h.onkeydown = function (d) { 32 != d.keyCode || a || (K(), C(17), a = !0); 81 != d.keyCode || b || (C(18), b = !0); 87 != d.keyCode || c || (K(), C(21), c = !0); 27 == d.keyCode && Ca(!0); //UPDATE keyAction(d); }; h.onkeyup = function (d) { 32 == d.keyCode && (a = !1); 87 == d.keyCode && (c = !1); 81 == d.keyCode && b && (C(19), b = !1) }; h.onblur = function () { C(19); c = b = a = !1 }; h.onresize = Da; Da(); h.requestAnimationFrame ? h.requestAnimationFrame(Ea) : setInterval(oa, 1000 / 60); setInterval(K, 40); v && f('#region').val(v); Fa(); V(f('#region').val()); null == r && v && W(); f('#overlays').show() } function Ba(a) { D *= Math.pow(0.9, a.wheelDelta / - 120 || a.detail || 0); 1 > D && (D = 1); D > 4 / g && (D = 4 / g) } function Ta() { if (0.4 > g) L = null; else { for (var a = Number.POSITIVE_INFINITY, b = Number.POSITIVE_INFINITY, c = Number.NEGATIVE_INFINITY, d = Number.NEGATIVE_INFINITY, e = 0, l = 0; l < u.length; l++) { var k = u[l]; !k.I() || k.M || 20 >= k.size * g || (e = Math.max(k.size, e), a = Math.min(k.x, a), b = Math.min(k.y, b), c = Math.max(k.x, c), d = Math.max(k.y, d)) } L = Ua.ca({ X: a - (e + 100), Y: b - (e + 100), fa: c + (e + 100), ga: d + (e + 100), da: 2, ea: 4 }); for (l = 0; l < u.length; l++) if (k = u[l], k.I() && !(20 >= k.size * g)) for (a = 0; a < k.a.length; ++a) b = k.a[a].x, c = k.a[a].y, b < s - p / 2 / g || c < t - q / 2 / g || b > s + p / 2 / g || c > t + q / 2 / g || L.i(k.a[a]) } } function na() { //UPDATE if (toggle ||window.botList[botIndex][0] == "Human") { X = (T - p / 2) / g + s; Y = (U - q / 2) / g + t } } function za() { null == Z && (Z = { }, f('#region').children().each(function () { var a = f(this), b = a.val(); b && (Z[b] = a.text()) })); f.get($ + '//m.agar.io/info', function (a) { var b = { }, c; for (c in a.regions) { var d = c.split(':') [0]; b[d] = b[d] || 0; b[d] += a.regions[c].numPlayers } for (c in b) f('#region option[value="' + c + '"]').text(Z[c] + ' (' + b[c] + ' players)') }, 'json') } function Ga() { f('#adsBottom').hide(); f('#overlays').hide(); Fa() } function V(a) { a && a != v && (f('#region').val() != a && f('#region').val(a), v = h.localStorage.location = a, f('.region-message').hide(), f('.region-message.' + a).show(), f('.btn-needs-server').prop('disabled', !1), la && W()) } function Ca(a) { E = null; f('#overlays').fadeIn(a ? 200 : 3000); a || f('#adsBottom').fadeIn(3000) } function Fa() { f('#region').val() ? h.localStorage.location = f('#region').val() : h.localStorage.location && f('#region').val(h.localStorage.location); f('#region').val() ? f('#locationKnown').append(f('#region')) : f('#locationUnknown').append(f('#region')) } function pa() { console.log('Find ' + v + M); f.ajax($ + '//m.agar.io/', { error: function () { setTimeout(pa, 1000) }, success: function (a) { a = a.split('\n'); '45.79.222.79:443' == a[0] ? pa() : Ha('ws://' + a[0]) }, dataType: 'text', method: 'POST', cache: !1, crossDomain: !0, data: v + M || '?' }) } function W() { la && v && (f('#connecting').show(), pa()) } function Ha(a) { if (r) { r.onopen = null; r.onmessage = null; r.onclose = null; try { r.close() } catch (b) { } r = null } var c = h.location.search.slice(1); /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+$/.test(c) && (a = 'ws://' + c); Va && (a = a.split(':'), a = a[0] + 's://ip-' + a[1].replace(/\./g, '-').replace(/\//g, '') + '.tech.agar.io:' + ( + a[2] + 2000)); F = [ ]; m = [ ]; z = { }; u = [ ]; H = [ ]; A = [ ]; w = x = null; I = 0; console.log('Connecting to ' + a); //UPDATE serverIP = a; r = new WebSocket(a); r.binaryType = 'arraybuffer'; r.onopen = Wa; r.onmessage = Xa; r.onclose = Ya; r.onerror = function () { console.log('socket error') } } function N(a) { return new DataView(new ArrayBuffer(a)) } function O(a) { r.send(a.buffer) } function Wa() { var a; aa = 500; f('#connecting').hide(); console.log('socket open'); a = N(5); a.setUint8(0, 254); a.setUint32(1, 4, !0); O(a); a = N(5); a.setUint8(0, 255); a.setUint32(1, 673720361, !0); O(a); Ia() } function Ya() { console.log('socket close'); setTimeout(W, aa); aa *= 1.5 } function Xa(a) { Za(new DataView(a.data)) } function Za(a) { function b() { for (var b = ''; ; ) { var d = a.getUint16(c, !0); c += 2; if (0 == d) break; b += String.fromCharCode(d) } return b } var c = 0; 240 == a.getUint8(c) && (c += 5); switch (a.getUint8(c++)) { case 16: $a(a, c); break; case 17: P = a.getFloat32(c, !0); c += 4; Q = a.getFloat32(c, !0); c += 4; R = a.getFloat32(c, !0); c += 4; break; case 20: m = [ ]; F = [ ]; break; case 21: qa = a.getInt16(c, !0); c += 2; ra = a.getInt16(c, !0); c += 2; sa || (sa = !0, ba = qa, ca = ra); break; case 32: F.push(a.getUint32(c, !0)); c += 4; break; case 49: if (null != x) break; var d = a.getUint32(c, !0), c = c + 4; A = [ ]; for (var e = 0; e < d; ++e) { var l = a.getUint32(c, !0), c = c + 4; A.push({ id: l, name: b() }) } Ja(); break; case 50: x = [ ]; d = a.getUint32(c, !0); c += 4; for (e = 0; e < d; ++e) x.push(a.getFloat32(c, !0)), c += 4; Ja(); break; case 64: da = a.getFloat64(c, !0), c += 8, ea = a.getFloat64(c, !0), c += 8, fa = a.getFloat64(c, !0), c += 8, ga = a.getFloat64(c, !0), c += 8, P = (fa + da) / 2, Q = (ga + ea) / 2, R = 1, 0 == m.length && (s = P, t = Q, g = R) } } function $a(a, b) { G = + new Date; var c = Math.random(); ta = !1; var d = a.getUint16(b, !0); b += 2; for (var e = 0; e < d; ++e) { var l = z[a.getUint32(b, !0)], k = z[a.getUint32(b + 4, !0)]; b += 8; l && k && (k.S(), k.p = k.x, k.q = k.y, k.o = k.size, k.D = l.x, k.F = l.y, k.n = k.size, k.L = G) } for (e = 0; ; ) { d = a.getUint32(b, !0); b += 4; if (0 == d) break; ++e; var h, l = a.getInt16(b, !0); b += 2; k = a.getInt16(b, !0); b += 2; h = a.getInt16(b, !0); b += 2; for (var g = a.getUint8(b++), f = a.getUint8(b++), p = a.getUint8(b++), g = (g << 16 | f << 8 | p).toString(16); 6 > g.length; ) g = '0' + g; var g = '#' + g, f = a.getUint8(b++), p = !!(f & 1), r = !!(f & 16); f & 2 && (b += 4); f & 4 && (b += 8); f & 8 && (b += 16); for (var q, n = ''; ; ) { q = a.getUint16(b, !0); b += 2; if (0 == q) break; n += String.fromCharCode(q) } q = n; n = null; z.hasOwnProperty(d) ? (n = z[d], n.K(), n.p = n.x, n.q = n.y, n.o = n.size, n.color = g) : (n = new Ka(d, l, k, h, g, q), n.ka = l, n.la = k); n.d = p; n.j = r; n.D = l; n.F = k; n.n = h; n.ja = c; n.L = G; n.W = f; q && n.Z(q); - 1 != F.indexOf(d) && - 1 == m.indexOf(n) && (document.getElementById('overlays').style.display = 'none', m.push(n), 1 == m.length && (s = n.x, t = n.y)) //UPDATE interNodes[d] = window.getCells()[d]; } //UPDATE Object.keys(interNodes).forEach(function (element, index) { //console.log("start: " + interNodes[element].updateTime + " current: " + D + " life: " + (D - interNodes[element].updateTime)); var isRemoved = !window.getCells().hasOwnProperty(element); if (isRemoved && (getLastUpdate() - interNodes[element].L) > 3000) { delete interNodes[element]; } else if (isRemoved && computeDistance(getOffsetX(), getOffsetY(), interNodes[element].x, interNodes[element].y) < screenDistance()) { //console.log("Too close! Remove " + computeDistance(getOffsetX(), getOffsetY(), interNodes[element].x, interNodes[element].y) + " || " + screenDistance()); delete interNodes[element]; } }); c = a.getUint32(b, !0); b += 4; for (e = 0; e < c; e++) d = a.getUint32(b, !0), b += 4, n = z[d], null != n && n.S(); //ta && 0 == m.length && Ca(!1) } //UPDATE function computeDistance(x1, y1, x2, y2) { var xdis = x1 - x2; // <--- FAKE AmS OF COURSE! var ydis = y1 - y2; var distance = Math.sqrt(xdis * xdis + ydis * ydis); return distance; } function screenDistance() { return Math.min(computeDistance (getOffsetX(), getOffsetY(), screenToGameX(getWidth()), getOffsetY()), computeDistance (getOffsetX(), getOffsetY(), getOffsetX(), screenToGameY(getHeight()))); } function screenToGameX(x) { return (x - getWidth() / 2) / getRatio() + getX(); } function screenToGameY(y) { return (y - getHeight() / 2) / getRatio() + getY();; } window.drawPoint = function(x_1, y_1, drawColor, text) { if (!toggleDraw) { dPoints.push([x_1, y_1, drawColor]); dText.push(text); } } window.drawArc = function(x_1, y_1, x_2, y_2, x_3, y_3, drawColor) { if (!toggleDraw) { var radius = computeDistance(x_1, y_1, x_3, y_3); dArc.push([x_1, y_1, x_2, y_2, x_3, y_3, radius, drawColor]); } } window.drawLine = function(x_1, y_1, x_2, y_2, drawColor) { if (!toggleDraw) { lines.push([x_1, y_1, x_2, y_2, drawColor]); } } window.drawCircle = function(x_1, y_1, radius, drawColor) { if (!toggleDraw) { circles.push([x_1, y_1, radius, drawColor]); } } function K() { //UPDATE if (getPlayer().length == 0) { setNick(originalName); } var a; if (ua()) { a = T - p / 2; var b = U - q / 2; 64 > a * a + b * b || 0.01 > Math.abs(La - X) && 0.01 > Math.abs(Ma - Y) || (La = X, Ma = Y, a = N(21), a.setUint8(0, 16), a.setFloat64(1, X, !0), a.setFloat64(9, Y, !0), a.setUint32(17, 0, !0), O(a)) } } function Ia() { if (ua() && null != E) { var a = N(1 + 2 * E.length); a.setUint8(0, 0); for (var b = 0; b < E.length; ++b) a.setUint16(1 + 2 * b, E.charCodeAt(b), !0); O(a) } } function ua() { return null != r && r.readyState == r.OPEN } function C(a) { if (ua()) { var b = N(1); b.setUint8(0, a); O(b) } } function Ea() { oa(); h.requestAnimationFrame(Ea) } function Da() { p = h.innerWidth; q = h.innerHeight; ma.width = B.width = p; ma.height = B.height = q; oa() } function Na() { var a; a = 1 * Math.max(q / 1080, p / 1920); return a *= D } function ab() { if (0 != m.length) { for (var a = 0, b = 0; b < m.length; b++) a += m[b].size; a = Math.pow(Math.min(64 / a, 1), 0.4) * Na(); g = (9 * g + a) / 10 } } function oa() { //UPDATE dPoints = []; circles = []; dArc = []; dText = []; lines = []; var a, b = Date.now(); ++bb; G = b; if (0 < m.length) { ab(); for (var c = a = 0, d = 0; d < m.length; d++) m[d].K(), a += m[d].x / m.length, c += m[d].y / m.length; P = a; Q = c; R = g; s = (s + a) / 2; t = (t + c) / 2 } else s = (29 * s + P) / 30, t = (29 * t + Q) / 30, g = (9 * g + R * Na()) / 10; Ta(); na(); va || e.clearRect(0, 0, p, q); va ? (e.fillStyle = ha ? '#111111' : '#F2FBFF', e.globalAlpha = 0.05, e.fillRect(0, 0, p, q), e.globalAlpha = 1) : cb(); u.sort(function (a, b) { return a.size == b.size ? a.id - b.id : a.size - b.size }); e.save(); e.translate(p / 2, q / 2); e.scale(g, g); e.translate( - s, - t); for (d = 0; d < H.length; d++) H[d].T(); for (d = 0; d < u.length; d++) u[d].T(); //UPDATE if (getPlayer().length > 0) { var moveLoc = window.botList[botIndex][1](); if (!toggle) { setPoint(moveLoc[0], moveLoc[1]); } } customRender(e); if (sa) { ba = (3 * ba + qa) / 4; ca = (3 * ca + ra) / 4; e.save(); e.strokeStyle = '#FFAAAA'; e.lineWidth = 10; e.lineCap = 'round'; e.lineJoin = 'round'; e.globalAlpha = 0.5; e.beginPath(); for (d = 0; d < m.length; d++) e.moveTo(m[d].x, m[d].y), e.lineTo(ba, ca); e.stroke(); e.restore() } e.restore(); w && w.width && e.drawImage(w, p - w.width - 10, 10); I = Math.max(I, db()); //UPDATE sessionScore = Math.max(I, sessionScore); 0 != I && (null == ia && (ia = new ja(24, '#FFFFFF', true,'#000000')), ia.u('Score: ' + ~~(I / 100) + ' || Best Score: ' + ~~(sessionScore / 100) + " || Best time alive: " + bestTime + " seconds"), c = ia.G(), a = c.width, e.globalAlpha = 0.2, e.fillStyle = '#000000', e.fillRect(10, q - 10 - 24 - 10, a + 10, 34), e.globalAlpha = 1, e.drawImage(c, 15, q - 10 - 24 - 5)); eb(); b = Date.now() - b; b > 1000 / 60 ? y -= 0.01 : b < 1000 / 65 && (y += 0.01); 0.4 > y && (y = 0.4); 1 < y && (y = 1) drawStats(e); } //UPDATE function customRender(d) { d.save(); for(var i = 0; i < lines.length; i++) { d.beginPath(); d.lineWidth = 5; if (lines[i][4] == 0) { d.strokeStyle = "#FF0000"; } else if (lines[i][4] == 1) { d.strokeStyle = "#00FF00"; } else if (lines[i][4] == 2) { d.strokeStyle = "#0000FF"; } else if (lines[i][4] == 3) { d.strokeStyle = "#FF8000"; } else if (lines[i][4] == 4) { d.strokeStyle = "#8A2BE2"; } else if (lines[i][4] == 5) { d.strokeStyle = "#FF69B4"; } else if (lines[i][4] == 6) { d.strokeStyle = "#008080"; } else if (lines[i][4] == 7) { d.strokeStyle = "#FFFFFF"; } else { d.strokeStyle = "#000000"; } d.moveTo(lines[i][0], lines[i][1]); d.lineTo(lines[i][2], lines[i][3]); d.stroke(); } d.restore(); d.save(); for(var i = 0; i < circles.length; i++) { if (circles[i][3] == 0) { d.strokeStyle = "#FF0000"; } else if (circles[i][3] == 1) { d.strokeStyle = "#00FF00"; } else if (circles[i][3] == 2) { d.strokeStyle = "#0000FF"; } else if (circles[i][3] == 3) { d.strokeStyle = "#FF8000"; } else if (circles[i][3] == 4) { d.strokeStyle = "#8A2BE2"; } else if (circles[i][3] == 5) { d.strokeStyle = "#FF69B4"; } else if (circles[i][3] == 6) { d.strokeStyle = "#008080"; } else if (circles[i][3] == 7) { d.strokeStyle = "#FFFFFF"; } else { d.strokeStyle = "#000000"; } d.beginPath(); d.lineWidth = 10; //d.setLineDash([5]); d.globalAlpha = 0.3; d.arc(circles[i][0], circles[i][1], circles[i][2], 0, 2 * Math.PI, false); d.stroke(); } d.restore(); d.save(); for(var i = 0; i < dArc.length; i++) { if (dArc[i][7] == 0) { d.strokeStyle = "#FF0000"; } else if (dArc[i][7] == 1) { d.strokeStyle = "#00FF00"; } else if (dArc[i][7] == 2) { d.strokeStyle = "#0000FF"; } else if (dArc[i][7] == 3) { d.strokeStyle = "#FF8000"; } else if (dArc[i][7] == 4) { d.strokeStyle = "#8A2BE2"; } else if (dArc[i][7] == 5) { d.strokeStyle = "#FF69B4"; } else if (dArc[i][7] == 6) { d.strokeStyle = "#008080"; } else if (dArc[i][7] == 7) { d.strokeStyle = "#FFFFFF"; } else { d.strokeStyle = "#000000"; } d.beginPath(); d.lineWidth = 5; var ang1 = Math.atan2(dArc[i][1] - dArc[i][5], dArc[i][0] - dArc[i][4]); var ang2 = Math.atan2(dArc[i][3] - dArc[i][5], dArc[i][2] - dArc[i][4]); d.arc(dArc[i][4], dArc[i][5], dArc[i][6], ang1, ang2, false); d.stroke(); } d.restore(); d.save(); for (var i = 0; i < dPoints.length; i++) { if (dText[i] == "") { var radius = 10; d.beginPath(); d.arc(dPoints[i][0], dPoints[i][1], radius, 0, 2 * Math.PI, false); if (dPoints[i][2] == 0) { d.fillStyle = "black"; } else if (dPoints[i][2] == 1) { d.fillStyle = "yellow"; } else if (dPoints[i][2] == 2) { d.fillStyle = "blue"; } else if (dPoints[i][2] == 3) { d.fillStyle = "red"; } else if (dPoints[i][2] == 4) { d.fillStyle = "#008080"; } else if (dPoints[i][2] == 5) { d.fillStyle = "#FF69B4"; } else { d.fillStyle = "#000000"; } d.fill(); d.lineWidth = 2; d.strokeStyle = '#003300'; d.stroke(); } else { var text = new ja(18, (getDarkBool() ? '#F2FBFF' : '#111111'), true, '#000000'); text.u(dText[i]); var textRender = text.G(); d.drawImage(textRender, dPoints[i][0], dPoints[i][1]); } } d.restore(); } function drawStats(d) { var currentDate = new Date(); var nbSeconds = 0; if (getPlayer().length > 0) { nbSeconds = (currentDate.getSeconds() + (currentDate.getMinutes() * 60) + (currentDate.getHours() * 60 * 60)) - (lifeTimer.getSeconds() + (lifeTimer.getMinutes() * 60) + (lifeTimer.getHours() * 60 * 60)); } bestTime = Math.max(nbSeconds, bestTime); var debugStrings = []; debugStrings.push("T - Bot: " + (!toggle ? "On" : "Off")); debugStrings.push("R - Lines: " + (!toggleDraw ? "On" : "Off")); debugStrings.push("Server: " + serverIP); debugStrings.push("Survived for: " + nbSeconds + " seconds"); if (getPlayer().length > 0) { debugStrings.push("Location: " + Math.floor(getPlayer()[0].x) + ", " + Math.floor(getPlayer()[0].y)); } var offsetValue = 20; var text = new ja(18, (getDarkBool() ? '#F2FBFF' : '#111111')); for (var i = 0; i < debugStrings.length; i++) { text.u(debugStrings[i]); var textRender = text.G(); d.drawImage(textRender, 20, offsetValue); offsetValue += textRender.height; } } function cb() { e.fillStyle = ha ? '#111111' : '#F2FBFF'; e.fillRect(0, 0, p, q); e.save(); e.strokeStyle = ha ? '#AAAAAA' : '#000000'; e.globalAlpha = 0.2; e.scale(g, g); for (var a = p / g, b = q / g, c = - 0.5 + ( - s + a / 2) % 50; c < a; c += 50) e.beginPath(), e.moveTo(c, 0), e.lineTo(c, b), e.stroke(); for (c = - 0.5 + ( - t + b / 2) % 50; c < b; c += 50) e.beginPath(), e.moveTo(0, c), e.lineTo(a, c), e.stroke(); e.restore() } function eb() { if (Aa && wa.width) { var a = p / 5; e.drawImage(wa, 5, 5, a, a) } } function db() { for (var a = 0, b = 0; b < m.length; b++) a += m[b].n * m[b].n; return a } function Ja() { w = null; if (null != x || 0 != A.length) if (null != x || ka) { w = document.createElement('canvas'); var a = w.getContext('2d'), b = 60, b = null == x ? b + 24 * A.length : b + 180, c = Math.min(200, 0.3 * p) / 200; w.width = 200 * c; w.height = b * c; a.scale(c, c); a.globalAlpha = 0.4; a.fillStyle = '#000000'; a.fillRect(0, 0, 200, b); a.globalAlpha = 1; a.fillStyle = '#FFFFFF'; c = null; c = 'Leaderboard'; a.font = '30px Ubuntu'; a.fillText(c, 100 - a.measureText(c).width / 2, 40); if (null == x) for (a.font = '20px Ubuntu', b = 0; b < A.length; ++b) c = A[b].name || 'An unnamed cell', ka || (c = 'An unnamed cell'), - 1 != F.indexOf(A[b].id) ? (m[0].name && (c = m[0].name), a.fillStyle = '#FFAAAA') : a.fillStyle = '#FFFFFF', c = b + 1 + '. ' + c, a.fillText(c, 100 - a.measureText(c).width / 2, 70 + 24 * b); else for (b = c = 0; b < x.length; ++b) { var d = c + x[b] * Math.PI * 2; a.fillStyle = fb[b + 1]; a.beginPath(); a.moveTo(100, 140); a.arc(100, 140, 80, c, d, !1); a.fill(); c = d } } } function Ka(a, b, c, d, e, l) { u.push(this); z[a] = this; this.id = a; this.p = this.x = b; this.q = this.y = c; this.o = this.size = d; this.color = e; this.a = [ ]; this.l = [ ]; this.R(); this.Z(l) } function ja(a, b, c, d) { a && (this.r = a); b && (this.N = b); this.P = !!c; d && (this.s = d) } var $ = h.location.protocol, Va = 'https:' == $, //UPDATE toggle = false, toggleDraw = false, tempPoint = [0, 0, 1], dPoints = [], circles = [], dArc = [], dText = [], lines = [], originalName = "NotReallyABot", sessionScore = 0, serverIP = "", interNodes = [], lifeTimer = new Date(), bestTime = 0, botIndex = 0, ma, e, B, p, q, L = null, r = null, s = 0, t = 0, F = [ ], m = [ ], z = { }, u = [ ], H = [ ], A = [ ], T = 0, U = 0, X = - 1, Y = - 1, bb = 0, G = 0, E = null, da = 0, ea = 0, fa = 10000, ga = 10000, g = 1, v = null, Oa = !0, ka = !0, xa = !1, ta = !1, I = 0, ha = !1, Pa = !1, P = s = ~~((da + fa) / 2), Q = t = ~~((ea + ga) / 2), R = 1, M = '', x = null, la = !1, sa = !1, qa = 0, ra = 0, ba = 0, ca = 0, Qa = 0, fb = [ '#333333', '#FF3333', '#33FF33', '#3333FF' ], va = !1, D = 1, Aa = 'ontouchstart' in h && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), wa = new Image; wa.src = 'img/split.png'; var Ra = document.createElement('canvas'); if ('undefined' == typeof console || 'undefined' == typeof DataView || 'undefined' == typeof WebSocket || null == Ra || null == Ra.getContext || null == h.localStorage) alert('You browser does not support this game, we recommend you to use Firefox to play this'); else { var Z = null; h.setNick = function (a) { //UPDATE originalName = a; if (getPlayer().length == 0) { lifeTimer = new Date(); } Ga(); E = a; Ia(); I = 0 }; h.setRegion = V; h.setSkins = function (a) { Oa = a }; h.setNames = function (a) { ka = a }; h.setDarkTheme = function (a) { ha = a }; h.setColors = function (a) { xa = a }; h.setShowMass = function (a) { Pa = a }; h.spectate = function () { E = null; C(1); Ga() }; h.setGameMode = function (a) { a != M && (M = a, W()) }; h.setAcid = function (a) { va = a }; null != h.localStorage && (null == h.localStorage.AB8 && (h.localStorage.AB8 = 0 + ~~(100 * Math.random())), Qa = + h.localStorage.AB8, h.ABGroup = Qa); f.get($ + '//gc.agar.io', function (a) { var b = a.split(' '); a = b[0]; b = b[1] || ''; - 1 == 'DE IL PL HU BR AT UA'.split(' ').indexOf(a) && ya.push('nazi'); - 1 == ['UA'].indexOf(a) && ya.push('ussr'); S.hasOwnProperty(a) && ('string' == typeof S[a] ? v || V(S[a]) : S[a].hasOwnProperty(b) && (v || V(S[a][b]))) }, 'text'); setTimeout(function () { }, 300000); var S = { AF: 'JP-Tokyo', AX: 'EU-London', AL: 'EU-London', DZ: 'EU-London', AS: 'SG-Singapore', AD: 'EU-London', AO: 'EU-London', AI: 'US-Atlanta', AG: 'US-Atlanta', AR: 'BR-Brazil', AM: 'JP-Tokyo', AW: 'US-Atlanta', AU: 'SG-Singapore', AT: 'EU-London', AZ: 'JP-Tokyo', BS: 'US-Atlanta', BH: 'JP-Tokyo', BD: 'JP-Tokyo', BB: 'US-Atlanta', BY: 'EU-London', BE: 'EU-London', BZ: 'US-Atlanta', BJ: 'EU-London', BM: 'US-Atlanta', BT: 'JP-Tokyo', BO: 'BR-Brazil', BQ: 'US-Atlanta', BA: 'EU-London', BW: 'EU-London', BR: 'BR-Brazil', IO: 'JP-Tokyo', VG: 'US-Atlanta', BN: 'JP-Tokyo', BG: 'EU-London', BF: 'EU-London', BI: 'EU-London', KH: 'JP-Tokyo', CM: 'EU-London', CA: 'US-Atlanta', CV: 'EU-London', KY: 'US-Atlanta', CF: 'EU-London', TD: 'EU-London', CL: 'BR-Brazil', CN: 'CN-China', CX: 'JP-Tokyo', CC: 'JP-Tokyo', CO: 'BR-Brazil', KM: 'EU-London', CD: 'EU-London', CG: 'EU-London', CK: 'SG-Singapore', CR: 'US-Atlanta', CI: 'EU-London', HR: 'EU-London', CU: 'US-Atlanta', CW: 'US-Atlanta', CY: 'JP-Tokyo', CZ: 'EU-London', DK: 'EU-London', DJ: 'EU-London', DM: 'US-Atlanta', DO: 'US-Atlanta', EC: 'BR-Brazil', EG: 'EU-London', SV: 'US-Atlanta', GQ: 'EU-London', ER: 'EU-London', EE: 'EU-London', ET: 'EU-London', FO: 'EU-London', FK: 'BR-Brazil', FJ: 'SG-Singapore', FI: 'EU-London', FR: 'EU-London', GF: 'BR-Brazil', PF: 'SG-Singapore', GA: 'EU-London', GM: 'EU-London', GE: 'JP-Tokyo', DE: 'EU-London', GH: 'EU-London', GI: 'EU-London', GR: 'EU-London', GL: 'US-Atlanta', GD: 'US-Atlanta', GP: 'US-Atlanta', GU: 'SG-Singapore', GT: 'US-Atlanta', GG: 'EU-London', GN: 'EU-London', GW: 'EU-London', GY: 'BR-Brazil', HT: 'US-Atlanta', VA: 'EU-London', HN: 'US-Atlanta', HK: 'JP-Tokyo', HU: 'EU-London', IS: 'EU-London', IN: 'JP-Tokyo', ID: 'JP-Tokyo', IR: 'JP-Tokyo', IQ: 'JP-Tokyo', IE: 'EU-London', IM: 'EU-London', IL: 'JP-Tokyo', IT: 'EU-London', JM: 'US-Atlanta', JP: 'JP-Tokyo', JE: 'EU-London', JO: 'JP-Tokyo', KZ: 'JP-Tokyo', KE: 'EU-London', KI: 'SG-Singapore', KP: 'JP-Tokyo', KR: 'JP-Tokyo', KW: 'JP-Tokyo', KG: 'JP-Tokyo', LA: 'JP-Tokyo', LV: 'EU-London', LB: 'JP-Tokyo', LS: 'EU-London', LR: 'EU-London', LY: 'EU-London', LI: 'EU-London', LT: 'EU-London', LU: 'EU-London', MO: 'JP-Tokyo', MK: 'EU-London', MG: 'EU-London', MW: 'EU-London', MY: 'JP-Tokyo', MV: 'JP-Tokyo', ML: 'EU-London', MT: 'EU-London', MH: 'SG-Singapore', MQ: 'US-Atlanta', MR: 'EU-London', MU: 'EU-London', YT: 'EU-London', MX: 'US-Atlanta', FM: 'SG-Singapore', MD: 'EU-London', MC: 'EU-London', MN: 'JP-Tokyo', ME: 'EU-London', MS: 'US-Atlanta', MA: 'EU-London', MZ: 'EU-London', MM: 'JP-Tokyo', NA: 'EU-London', NR: 'SG-Singapore', NP: 'JP-Tokyo', NL: 'EU-London', NC: 'SG-Singapore', NZ: 'SG-Singapore', NI: 'US-Atlanta', NE: 'EU-London', NG: 'EU-London', NU: 'SG-Singapore', NF: 'SG-Singapore', MP: 'SG-Singapore', NO: 'EU-London', OM: 'JP-Tokyo', PK: 'JP-Tokyo', PW: 'SG-Singapore', PS: 'JP-Tokyo', PA: 'US-Atlanta', PG: 'SG-Singapore', PY: 'BR-Brazil', PE: 'BR-Brazil', PH: 'JP-Tokyo', PN: 'SG-Singapore', PL: 'EU-London', PT: 'EU-London', PR: 'US-Atlanta', QA: 'JP-Tokyo', RE: 'EU-London', RO: 'EU-London', RU: 'RU-Russia', RW: 'EU-London', BL: 'US-Atlanta', SH: 'EU-London', KN: 'US-Atlanta', LC: 'US-Atlanta', MF: 'US-Atlanta', PM: 'US-Atlanta', VC: 'US-Atlanta', WS: 'SG-Singapore', SM: 'EU-London', ST: 'EU-London', SA: 'EU-London', SN: 'EU-London', RS: 'EU-London', SC: 'EU-London', SL: 'EU-London', SG: 'JP-Tokyo', SX: 'US-Atlanta', SK: 'EU-London', SI: 'EU-London', SB: 'SG-Singapore', SO: 'EU-London', ZA: 'EU-London', SS: 'EU-London', ES: 'EU-London', LK: 'JP-Tokyo', SD: 'EU-London', SR: 'BR-Brazil', SJ: 'EU-London', SZ: 'EU-London', SE: 'EU-London', CH: 'EU-London', SY: 'EU-London', TW: 'JP-Tokyo', TJ: 'JP-Tokyo', TZ: 'EU-London', TH: 'JP-Tokyo', TL: 'JP-Tokyo', TG: 'EU-London', TK: 'SG-Singapore', TO: 'SG-Singapore', TT: 'US-Atlanta', TN: 'EU-London', TR: 'TK-Turkey', TM: 'JP-Tokyo', TC: 'US-Atlanta', TV: 'SG-Singapore', UG: 'EU-London', UA: 'EU-London', AE: 'EU-London', GB: 'EU-London', US: { AL: 'US-Atlanta', AK: 'US-Fremont', AZ: 'US-Fremont', AR: 'US-Atlanta', CA: 'US-Fremont', CO: 'US-Fremont', CT: 'US-Atlanta', DE: 'US-Atlanta', FL: 'US-Atlanta', GA: 'US-Atlanta', HI: 'US-Fremont', ID: 'US-Fremont', IL: 'US-Atlanta', IN: 'US-Atlanta', IA: 'US-Atlanta', KS: 'US-Atlanta', KY: 'US-Atlanta', LA: 'US-Atlanta', ME: 'US-Atlanta', MD: 'US-Atlanta', MA: 'US-Atlanta', MI: 'US-Atlanta', MN: 'US-Fremont', MS: 'US-Atlanta', MO: 'US-Atlanta', MT: 'US-Fremont', NE: 'US-Fremont', NV: 'US-Fremont', NH: 'US-Atlanta', NJ: 'US-Atlanta', NM: 'US-Fremont', NY: 'US-Atlanta', NC: 'US-Atlanta', ND: 'US-Fremont', OH: 'US-Atlanta', OK: 'US-Atlanta', OR: 'US-Fremont', PA: 'US-Atlanta', RI: 'US-Atlanta', SC: 'US-Atlanta', SD: 'US-Fremont', TN: 'US-Atlanta', TX: 'US-Atlanta', UT: 'US-Fremont', VT: 'US-Atlanta', VA: 'US-Atlanta', WA: 'US-Fremont', WV: 'US-Atlanta', WI: 'US-Atlanta', WY: 'US-Fremont', DC: 'US-Atlanta', AS: 'US-Atlanta', GU: 'US-Atlanta', MP: 'US-Atlanta', PR: 'US-Atlanta', UM: 'US-Atlanta', VI: 'US-Atlanta' }, UM: 'SG-Singapore', VI: 'US-Atlanta', UY: 'BR-Brazil', UZ: 'JP-Tokyo', VU: 'SG-Singapore', VE: 'BR-Brazil', VN: 'JP-Tokyo', WF: 'SG-Singapore', EH: 'EU-London', YE: 'JP-Tokyo', ZM: 'EU-London', ZW: 'EU-London' }; h.connect = Ha; //UPDATE window.getDarkBool = function() { return ha; } window.getMassBool = function() { return Pa; } window.getMemoryCells = function() { return interNodes; } window.getCellsArray = function() { return u; } window.getCells = function() { return z; } window.getPlayer = function() { return m; } window.getWidth = function() { return p; } window.getHeight = function() { return q; } window.getRatio = function() { return g; } window.getOffsetX = function() { return P; } window.getOffsetY = function() { return Q; } window.getX = function() { return s; } window.getY = function() { return t; } window.getPointX = function() { return X; } window.getPointY = function() { return Y; } window.getMouseX = function() { return T; } window.getMouseY = function() { return U; } window.getScreenDistance = function() { var temp = screenDistance(); return temp; } window.getLastUpdate = function() { return G; } window.setPoint = function(x, y) { X = x; Y = y; } window.createFake = function(a, b, c, d, e, f) { var n = new Ka(a, b, c, d, e, f); return n; } window.setScore = function(a) { sessionScore = a * 100; } window.setBestTime = function(a) { bestTime = a; } window.best = function(a, b) { setScore(a); setBestTime(b); } window.setBotIndex = function(a) { console.log("Changing bot"); botIndex = a; } var aa = 500, La = - 1, Ma = - 1, w = null, y = 1, ia = null, J = { }, ya = 'poland;usa;china;russia;canada;australia;spain;brazil;germany;ukraine;france;sweden;hitler;north korea;south korea;japan;united kingdom;earth;greece;latvia;lithuania;estonia;finland;norway;cia;maldivas;austria;nigeria;reddit;yaranaika;confederate;9gag;indiana;4chan;italy;bulgaria;tumblr;2ch.hk;hong kong;portugal;jamaica;german empire;mexico;sanik;switzerland;croatia;chile;indonesia;bangladesh;thailand;iran;iraq;peru;moon;botswana;bosnia;netherlands;european union;taiwan;pakistan;hungary;satanist;qing dynasty;matriarchy;patriarchy;feminism;ireland;texas;facepunch;prodota;cambodia;steam;piccolo;ea;india;kc;denmark;quebec;ayy lmao;sealand;bait;tsarist russia;origin;vinesauce;stalin;belgium;luxembourg;stussy;prussia;8ch;argentina;scotland;sir;romania;belarus;wojak;doge;nasa;byzantium;imperial japan;french kingdom;somalia;turkey;mars;pokerface;8;irs;receita federal;facebook'.split(';'), gb = [ '8', 'nasa' ], hb = [ 'm\'blob' ]; Ka.prototype = { id: 0, a: null, //points l: null, //pointsAcc name: null, //name k: null, //nameCache J: null, //sizeCache x: 0, y: 0, size: 0, p: 0, //ox q: 0, //oy o: 0, //oSize D: 0, //nx F: 0, //ny n: 0, //nSize W: 0, //drawTime L: 0, //updateTime ja: 0, ba: 0, A: !1, d: !1, j: !1, M: !0, //UPDATE updateCode: 0, danger: false, dangerTimeOut: 0, S: function () { var a; for (a = 0; a < u.length; a++) if (u[a] == this) { u.splice(a, 1); break } delete z[this.id]; a = m.indexOf(this); - 1 != a && (ta = !0, m.splice(a, 1)); a = F.indexOf(this.id); - 1 != a && F.splice(a, 1); this.A = !0; H.push(this) }, h: function () { return Math.max(~~(0.3 * this.size), 24) }, Z: function (a) { if (this.name = a) null == this.k ? this.k = new ja(this.h(), '#FFFFFF', !0, '#000000') : this.k.H(this.h()), this.k.u(this.name) }, R: function () { for (var a = this.C(); this.a.length > a; ) { var b = ~~(Math.random() * this.a.length); this.a.splice(b, 1); this.l.splice(b, 1) } 0 == this.a.length && 0 < a && (this.a.push({ Q: this, e: this.size, x: this.x, y: this.y }), this.l.push(Math.random() - 0.5)); for (; this.a.length < a; ) { var b = ~~(Math.random() * this.a.length), c = this.a[b]; this.a.splice(b, 0, { Q: this, e: c.e, x: c.x, y: c.y }); this.l.splice(b, 0, this.l[b]) } }, C: function () { var a = 10; 20 > this.size && (a = 0); this.d && (a = 30); var b = this.size; this.d || (b *= g); b *= y; this.W & 32 && (b *= 0.25); return ~~Math.max(b, a) }, ha: function () { this.R(); for (var a = this.a, b = this.l, c = a.length, d = 0; d < c; ++d) { var e = b[(d - 1 + c) % c], l = b[(d + 1) % c]; b[d] += (Math.random() - 0.5) * (this.j ? 3 : 1); b[d] *= 0.7; 10 < b[d] && (b[d] = 10); - 10 > b[d] && (b[d] = - 10); b[d] = (e + l + 8 * b[d]) / 10 } for (var k = this, h = this.d ? 0 : (this.id / 1000 + G / 10000) % (2 * Math.PI), d = 0; d < c; ++d) { var f = a[d].e, e = a[(d - 1 + c) % c].e, l = a[(d + 1) % c].e; if (15 < this.size && null != L && 20 < this.size * g) { var m = !1, p = a[d].x, q = a[d].y; L.ia(p - 5, q - 5, 10, 10, function (a) { a.Q != k && 25 > (p - a.x) * (p - a.x) + (q - a.y) * (q - a.y) && (m = !0) }); !m && (a[d].x < da || a[d].y < ea || a[d].x > fa || a[d].y > ga) && (m = !0); m && (0 < b[d] && (b[d] = 0), b[d] -= 1) } f += b[d]; 0 > f && (f = 0); f = this.j ? (19 * f + this.size) / 20 : (12 * f + this.size) / 13; a[d].e = (e + l + 8 * f) / 10; e = 2 * Math.PI / c; l = this.a[d].e; this.d && 0 == d % 2 && (l += 5); a[d].x = this.x + Math.cos(e * d + h) * l; a[d].y = this.y + Math.sin(e * d + h) * l } }, K: function () { var a; a = (G - this.L) / 120; a = 0 > a ? 0 : 1 < a ? 1 : a; var b = 0 > a ? 0 : 1 < a ? 1 : a; this.h(); if (this.A && 1 <= b) { var c = H.indexOf(this); - 1 != c && H.splice(c, 1) } this.x = a * (this.D - this.p) + this.p; this.y = a * (this.F - this.q) + this.q; this.size = b * (this.n - this.o) + this.o; return b }, I: function () { return this.x + this.size + 40 < s - p / 2 / g || this.y + this.size + 40 < t - q / 2 / g || this.x - this.size - 40 > s + p / 2 / g || this.y - this.size - 40 > t + q / 2 / g ? !1 : !0 }, T: function () { if (this.I()) { var a = !this.d && !this.j && 0.4 > g; 5 > this.C() && (a = !0); if (this.M && !a) for (var b = 0; b < this.a.length; b++) this.a[b].e = this.size; this.M = a; e.save(); this.ba = G; b = this.K(); this.A && (e.globalAlpha *= 1 - b); e.lineWidth = 10; e.lineCap = 'round'; e.lineJoin = this.d ? 'miter' : 'round'; xa ? (e.fillStyle = '#FFFFFF', e.strokeStyle = '#AAAAAA') : (e.fillStyle = this.color, e.strokeStyle = this.color); if (a) e.beginPath(), e.arc(this.x, this.y, this.size, 0, 2 * Math.PI, !1); else { this.ha(); e.beginPath(); var c = this.C(); e.moveTo(this.a[0].x, this.a[0].y); for (b = 1; b <= c; ++b) { var d = b % c; e.lineTo(this.a[d].x, this.a[d].y) } } e.closePath(); c = this.name.toLowerCase(); !this.j && Oa && ':teams' != M ? - 1 != ya.indexOf(c) ? (J.hasOwnProperty(c) || (J[c] = new Image, J[c].src = 'skins/' + c + '.png'), b = 0 != J[c].width && J[c].complete ? J[c] : null) : b = null : b = null; b = (d = b) ? - 1 != hb.indexOf(c) : !1; a || e.stroke(); e.fill(); null == d || b || (e.save(), e.clip(), e.drawImage(d, this.x - this.size, this.y - this.size, 2 * this.size, 2 * this.size), e.restore()); (xa || 15 < this.size) && !a && (e.strokeStyle = '#000000', e.globalAlpha *= 0.1, e.stroke()); e.globalAlpha = 1; null != d && b && e.drawImage(d, this.x - 2 * this.size, this.y - 2 * this.size, 4 * this.size, 4 * this.size); b = - 1 != m.indexOf(this); a = ~~this.y; if ((ka || b) && this.name && this.k && (null == d || - 1 == gb.indexOf(c))) { d = this.k; d.u(this.name); d.H(this.h()); c = Math.ceil(10 * g) / 10; d.$(c); var d = d.G(), f = ~~(d.width / c), l = ~~(d.height / c); e.drawImage(d, ~~this.x - ~~(f / 2), a - ~~(l / 2), f, l); a += d.height / 2 / c + 4 } Pa && (b || 0 == m.length && (!this.d || this.j) && 20 < this.size) && (null == this.J && (this.J = new ja(this.h() / 2, '#FFFFFF', !0, '#000000')), b = this.J, b.H(this.h() / 2), b.u(~~(this.size * this.size / 100)), c = Math.ceil(10 * g) / 10, b.$(c), d = b.G(), f = ~~(d.width / c), l = ~~(d.height / c), e.drawImage(d, ~~this.x - ~~(f / 2), a - ~~(l / 2), f, l)); e.restore() } } }; ja.prototype = { w: '', N: '#000000', P: !1, s: '#000000', r: 16, m: null, O: null, g: !1, v: 1, H: function (a) { this.r != a && (this.r = a, this.g = !0) }, $: function (a) { this.v != a && (this.v = a, this.g = !0) }, setStrokeColor: function (a) { this.s != a && (this.s = a, this.g = !0) }, u: function (a) { a != this.w && (this.w = a, this.g = !0) }, G: function () { null == this.m && (this.m = document.createElement('canvas'), this.O = this.m.getContext('2d')); if (this.g) { this.g = !1; var a = this.m, b = this.O, c = this.w, d = this.v, e = this.r, l = e + 'px Ubuntu'; b.font = l; var k = ~~(0.2 * e); a.width = (b.measureText(c).width + 6) * d; a.height = (e + k) * d; b.font = l; b.scale(d, d); b.globalAlpha = 1; b.lineWidth = 3; b.strokeStyle = this.s; b.fillStyle = this.N; this.P && b.strokeText(c, 3, e - k / 2); b.fillText(c, 3, e - k / 2) } return this.m } }; Date.now || (Date.now = function () { return (new Date).getTime() }); var Ua = { ca: function (a) { function b(a, b, c, d, e) { this.x = a; this.y = b; this.f = c; this.c = d; this.depth = e; this.items = [ ]; this.b = [ ] } var c = a.da || 2, d = a.ea || 4; b.prototype = { x: 0, y: 0, f: 0, c: 0, depth: 0, items: null, b: null, B: function (a) { for (var b = 0; b < this.items.length; ++b) { var c = this.items[b]; if (c.x >= a.x && c.y >= a.y && c.x < a.x + a.f && c.y < a.y + a.c) return !0 } if (0 != this.b.length) { var d = this; return this.V(a, function (b) { return d.b[b].B(a) }) } return !1 }, t: function (a, b) { for (var c = 0; c < this.items.length; ++c) b(this.items[c]); if (0 != this.b.length) { var d = this; this.V(a, function (c) { d.b[c].t(a, b) }) } }, i: function (a) { 0 != this.b.length ? this.b[this.U(a)].i(a) : this.items.length >= c && this.depth < d ? (this.aa(), this.b[this.U(a)].i(a)) : this.items.push(a) }, U: function (a) { return a.x < this.x + this.f / 2 ? a.y < this.y + this.c / 2 ? 0 : 2 : a.y < this.y + this.c / 2 ? 1 : 3 }, V: function (a, b) { return a.x < this.x + this.f / 2 && (a.y < this.y + this.c / 2 && b(0) || a.y >= this.y + this.c / 2 && b(2)) || a.x >= this.x + this.f / 2 && (a.y < this.y + this.c / 2 && b(1) || a.y >= this.y + this.c / 2 && b(3)) ? !0 : !1 }, aa: function () { var a = this.depth + 1, c = this.f / 2, d = this.c / 2; this.b.push(new b(this.x, this.y, c, d, a)); this.b.push(new b(this.x + c, this.y, c, d, a)); this.b.push(new b(this.x, this.y + d, c, d, a)); this.b.push(new b(this.x + c, this.y + d, c, d, a)); a = this.items; this.items = [ ]; for (c = 0; c < a.length; c++) this.i(a[c]) }, clear: function () { for (var a = 0; a < this.b.length; a++) this.b[a].clear(); this.items.length = 0; this.b.length = 0 } }; var e = { x: 0, y: 0, f: 0, c: 0 }; return { root: new b(a.X, a.Y, a.fa - a.X, a.ga - a.Y, 0), i: function (a) { this.root.i(a) }, t: function (a, b) { this.root.t(a, b) }, ia: function (a, b, c, d, f) { e.x = a; e.y = b; e.f = c; e.c = d; this.root.t(e, f) }, B: function (a) { return this.root.B(a) }, clear: function () { this.root.clear() } } } }; h.onload = Sa } }) (window, window.jQuery);
artemain / Sat= // @name MetaBot for YouTube // @namespace yt-metabot-user-js // @description More information about users and videos on YouTube. // @version 200322 // @homepageURL https://vk.com/public159378864 // @supportURL https://github.com/asrdri/yt-metabot-user-js/issues // @updateURL https://raw.githubusercontent.com/asrdri/yt-metabot-user-js/master/yt-metabot.meta.js // @downloadURL https://raw.githubusercontent.com/asrdri/yt-metabot-user-js/master/yt-metabot.user.js // @icon https://raw.githubusercontent.com/asrdri/yt-metabot-user-js/master/logo.png // @include https://*youtube.com/* // @include https://*dislikemeter.com/?v* // @require https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js // @require https://raw.githubusercontent.com/sizzlemctwizzle/GM_config/master/gm_config.js // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant GM.xmlHttpRequest // @run-at document-start // ==/UserScript== GM_config.init( { 'id': 'ytmetabot_config', 'title': 'MetaBot/YT Settings', 'fields': { 'option1': { 'label': 'Processing mode for comments by known bots', 'type': 'int', 'min': 1, 'max': 2, 'default': 1 }, 'option2': { 'label': 'Auto-dislike comments by known bots', 'type': 'checkbox', 'default': false }, 'option3': { 'label': 'Hide long like/dislike/share button text', 'type': 'checkbox', 'default': true }, 'option4': { 'label': 'Use additional lists', 'type': 'checkbox', 'default': true }, 'option5': { 'label': 'Send alert to server', 'type': 'checkbox', 'default': false }, 'listp1': { 'label': 'Bookmarks (personal list)', 'type': 'text', 'default': '' }, 'listc1': { 'label': 'Custom list URL 1', 'type': 'text', 'default': 'https://github.com/asrdri/yt-metabot-user-js/raw/master/list-sample.txt' }, 'listc2': { 'label': 'Custom list URL 2', 'type': 'text', 'default': '' }, 'listc3': { 'label': 'Custom list URL 3', 'type': 'text', 'default': '' }, 'colorp1': { 'label': 'Personal color', 'type': 'int', 'default': '33023' }, 'colorc1': { 'label': 'Custom color 1', 'type': 'int', 'default': '8388863' }, 'colorc2': { 'label': 'Custom color 2', 'type': 'int', 'default': '16744448' }, 'colorc3': { 'label': 'Custom color 3', 'type': 'int', 'default': '8421504' } }, }); const checkb = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAPCAMAAADXs89aAAAA+VBMVEUAAAD///+qqqp/f39mZmZubm5vb29sbGxtbW1tbW1tbW1ubm5ubm5tbW1ubm5tbW1ubm5ubm5ubm5tbW1tbW1ubm5ubm5tbW1ubm5ubm5tbW1ubm5ubm5vb29wcHBxcXFzc3N0dHR1dXV3d3d4eHh6enp7e3t8fHyAgICCgoKFhYWMjIyOjo6Pj4+QkJCSkpKUlJSWlpaZmZmampqdnZ2hoaGqqqqwsLC0tLS1tbW2tra5ubm+vr7ExMTKysrLy8vQ0NDR0dHS0tLU1NTV1dXW1tbe3t7i4uLj4+Pk5OTl5eXn5+fo6Ojq6urs7Ozu7u7w8PD9/f3////SCMufAAAAHHRSTlMAAAMEBSUnKCpbXV9htre6u87Q0dPp6uvs7u/8pkhKVQAAAMdJREFUeNpN0NdWwlAUANEbgvTeQhnQIE1B1ChYQcEC0gL+/8ewzPWwmMf9OMowDKWUP5YqU0pGTaXTHMqdOcM7G7LBIw4Vnc3b89i9BytwYH+uv7oAOqsbyJjCMb4d/urOgYhwqr55wmvdhIRwufXT0zzrgCVM1X2tA5xva1ARLvE4aQCMXoCCcJLaZNpvX71/3QJx4ShUBx+Lz4fp7hrCwmYWL3v5u7XTPmEVtLRfuk7+5OhJIKP9NO2psDIjCatSiId9/7oHY28awgWqV+8AAAAASUVORK5CYII='; const minf = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAM1BMVEUAAAB/f39vb29sbGxtbW1ubm5ubm5sbGxubm5ubm7////Pz8+Li4uampp8fHzb29uSkpKUSDd+AAAACXRSTlMABCcoXbfQ6/zS5clrAAAAYUlEQVQIHQXBAQLCMAgEsBxs+v/32oJJkE5lZ+8Suhu4Z7R6m2c/NVW28zbmew8xeV4A+FWgkjSkCuYDqAo4gNQCgK0BAFMLHsD2pqjL1rqnSSysOdt2U8C9I0insrN3+QOBPC04AhR0BwAAAABJRU5ErkJggg=='; const mred = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAApVBMVEUzMzP/MzP+MzP+MzP+MzP+MzP9MzP+NTP+NTP/XDP+NTP+NTP+MzP+MzP+NDP+NDP+PTP9NDP+OTP9MzP+NTP+NTP+MzP5MzP/MzP/////e3v/NTP/PT3/Tk7/YWH/UVH/TU3/9/f/+fn/cnL/5eX/QED/ZGT/09P/1tb/wcH/xcX/6Oj/Z2f/hYX/aWn/b2//39//cXH/dXX/oqL/paX/T0//dnb54rKOAAAAGHRSTlMABFzrJurQ1O4Fu+8nt7nQKv1ht17tzyc2HRLDAAAAj0lEQVQIHQXABVIDARAEwLmLuwK9SXB35/9Po5JktB5P9sP5tkmSZDlwsdvtfi2mSbI84rqqvuh1k9EAZ1V1h36TNZxW1Tm0GcOhqm5hlgm4rCvQyR7c1DNYZQju6wF0MgeP9QQ22YKX1zfQplnA+8cnHDfJtIfv+kGvmyQnfQ5/B/rdJEmadtZZdTZtk+QfVeIRvDroEMEAAAAASUVORK5CYII='; const imgdm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAACfFBMVEUAAAD+wgD+wQD+wQD/qgD/vwD1ugD+wQD/vwD+wQD+wQD+wgD+wgD5vwD+xwD9wAD7vwD5vQD+wQD1uwD/zADyuAD0uQDyuADytwDzuADxtwDztwDytwDwuAD+wgDzuAD+wgDyuQD+wgD1ugDxtwD0tgBaanv+wgBEW5H+wAD+wQDytwDxtgBIXpL+wQBPZZb+wgD+wQBmeKP+wgBXa5r//wD+wQBic5ldcZ9ccJ5SZ5dEW5H+wgD+wgBlcHD+wAD+wQBEXZD+wQD3vADzuAB0dGltfaZKX5T+xAD6vgDfnwBGXJFVaZpfcp5EWpD/wgDyuAD+wQD19fVuf7OOeiHyugT7vwD+wgCykRY8RTno6OiGgF1oeq7ksQinsc3nswf7vwHyuwr8wQL9wQD2zEf068/18OP03pj20mGBgnjv7++oscV9e2dpe6/CmxL11nf18uv11nb9wAByaCn2uwCrjBj8wADl5uZqd5J+fGiXiE3rtAXj5einsMWZiUrz8/NYaI1SZ5xCSTj8wAH3yDX9wQK0mTpTaJtabqNZbqJUaZrh5Orb3OF1aihESjdSZ5r03ZP06cSAjalpcHemiRr6vgD09PTBmhKFf1+0vNTp6enbqwpeWy/YrR7GoizIoyuwlz2dqcM2QTtvgKjKpSmReyD4vgVpdo32zUnxugv3vgb7wAT6wQz1ugD0ugAoOD/6wAn179310FgwPT2ihhvEnBFZWDHl5eb5vQCEfmDR1Nvv8PLr6+uEkrFARzi4lBW3lBWMgljS1+Ht7e2VoLs/RziSfCC6wdivjxdHTDbN0t7n6e34vQLutwV/cCb4vQD10V318ef2yTv0uQDkLrBbAAAAT3RSTlMATOr6AwQ4shjgmfhtLBf5/vJjNQWgSfyz2PuA8CT3wOdUvsaHMR9+ZCn+jDi3t9Au+fR22AKW7+XlyjiC+zJB0Typ+MPO9xgaMwg61+5oF3I9zwAAAY1JREFUeAFtzfObG1EUxvETu7Zt2zb63snERVMbTZPatm3b7tr2/kN7JzO7d7PPfn79Pue8pLE6LbamzZr37NWbEjSxO6DyfenakgSdHkJ5h45G0rQwoL7brLVJuxBB9Y8NVDf0aCjatg1xdmD7Q8B/qwRAzAt4YxHWvhWR1QFcLgOWf10J4EQACFxBlHUncgK4+/PX7z+PwL1OS8/IzYOPtSOygCsofLG7FFzYEwx6wpBYJxPZ0Jhq1pm6QPjwftVqxH1mg8ggwqtjx6/e3KrYf+CgmbpBI+1ZukyWVxQrDh0+4qIeiPv47tr1G9tkOd+tuPN3Xx/qC27N2nXrN2zcpBVu85Z+1H8AENmxc9cnCf9FOZo0mGgIpIrKKgkQhds7lGjY8G/ff/jB3ePlvlYejCCikSdPnYbizNlz5y9cVL9dGsXL6DFQ+R8/efrsuTv0cuy48RMmEmecNBm13rxNTkmdQnWmToNGyszKzplOgkk3Qw9IvpmzZheF5sylBMZ5882uBbRw0eIlpKgB/8u5fuwF0eAAAAAASUVORK5CYII='; const imgdma = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAABsFBMVEUAAAD+wQD+wgD/qgD+wQD/vwD+wQD+wgD+wgD+wQD+xwBatlz/vwD+wQBft1n+wQDxtwD1ugD9wADyuAD0uQD/zAD7vwD5vQDxtwDzuADyuQDztwDyuADytwDytwDytwDwuAD+wgD0tgCstyvzuAD1uwD+wgD+wgD+wgD+wAD+wQD+wQD+wgD+wQD+wgD//wD+wQD+wgD+wgD+wAD+wQD+wQD+xACtvC1Ztl3/wgD///97uEnyuAD+wQCBu1CWujp7xX32uwCOeiGrjBiykRabx2qc1J5nvWryugRat108RTn7vwH7vwD+wgD9wADxwAb4vQB/cCaSfCAoOD95tkmGt0CihhteWy+ReyDBmhIwPT1HTDb8wAB6t0n6vgD7wAT2zUn03ZP06cR4wXQ2QTv9wQD2zEf068/18OP03pj20mF5ulhyaCnutwX11nf18uv11nb6wQzbqwr10V318ef2yTvksQjCmxI/Rzj6wAn179310FimiRr8wAH3yDX9wQKV0ZdZWDFARzj0uQD5vQDnswdCSTi4lBVESjeKukCvjxe3lBV1aij0ugD4vQLEnBHgcTooAAAAOXRSTlMA6kwD+gTgbfiyF+gYmd5jh8b5/EkF/vL72FSAoLOM8CT3MVjANee+fin+ty75dgKWgvtB0akaVEpkodaYAAABOUlEQVR4XnXPVXMiURCG4SYES4C4u7uvfSO4S9zd3d3d1/5yOAWEGYq8N33xVFdXUyS9RqfOzM3LSK8kWSkGLcIF/lbXSCBJgVi9+UXKKKQlQ9q0UKyKbMgBeBRKwzcUiM+alc3EAJzsA8HLfwDsHsBj7xYKcoj0WuBPH3A88ATg2QE4XmEVCok0AMbGh//fjQDA6P3L79N+BIQSIh0AvE8sbm4x8dt8PpsfolCmIjUS9SCUU0UMesx8KKfTxPODQ1UkecbsZXGchQ0j1UZBnJySipfqwjAzOze/IJd6BkvLK6tr6xtyaWgEurd3dvdE8HKhJogHh0ciACcnyUXU3HJ2fhFEAqHWq+sbsEwWFsfdsuEOSVs7wsXfIVJ2dCYUVte3r4RUSd8VeJNKKn2m/PHTyMTlcjP49QE0u4VtSVu7kQAAAABJRU5ErkJggg=='; const imgdmd = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAZCAMAAACM5megAAAAllBMVEUAAAB/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAx6H3iAAAAMXRSTlMABAgMFBgcICQoLDA8QERITFBUWGBkaGx4fICDj5OXo6evs7e7v8PH09ff4+fr8/f7vr5GKgAAAN1JREFUGBl9wY1agjAABdAbIoSCWiIJLn8yLKNN7vu/XBvQJ87JOegZLfJDaew3U7ilklcfAW5EiTb7JGtRGFtq8hV9BTsntH5orNH3VrNx9mB4kkYdo29xoUPlAwgCtIKaLgJAqkI0BJ0qABEFGme6xQBUCXhhOOUDuycI7jCRHCAlmSDnsEsGrDjgmL6MAYxOfGyGTiwquikPV0s6bdF3oIMao+9Z8d4Gt5KadxJYMt7xYclok7AJar+KRvVFrYTtSC1Ca07tHbZvkhU6KbUlbPOiyCfo+OuiWOHfHxHEYF/PvYVrAAAAAElFTkSuQmCC'; const imgyto = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAACJVBMVEX///+qAADMMzP/MzPjKiXbJiPVIyPZJSPFGx/QIiLBGB7cKSXRIiLeKSnkKyfOICHcIiLRISLJHB7jKybCGB/QISHVKSDgKifMGRnhKyXMHR/CGR3ZJSPiLCbdKSXiKybFFyLCGR7WJCLdJyTDGB3JHSDhKiXIHB/ZJiPMHiHQIiLXIyPTIyLKHR/FGCDFGh/lMxnjKyXDGR3GGx/cJyTEGR7BGh7NICDUIiLOHiPcLiLiKyXgKSXhKyXPHyHXJSPNICDgKibgKSbJHB/XJCPnLiLfKSXfKSTfKSbDGR7EGR7KHB/CGR3CGB3CGB7BGB7BGB3BGR3////NHyHLHiDo4ODWJCPMHiD//v7p4eHaJyTZJiTYJiTOICHXJSPYJSPPICHeKSXQISHVJCPunZzFGh/UIyPqmpvnzMv89PTlxMTYUVL78vL08fHomZrzzM399/f+/Pzm09PXTk7QNDbfKiXGGx/pmprnj47XSUvktrbompryxMXVOTncKCXKHSDHHB/t5+f7+vrdKCXbJyTsnJvcOTfhgYDIHB/18fHqm5v05eXaMzHZVFTYTEvHGx/++vrZLy3spKThiYnTLi78+vrs19fqnJzYKynVNDXjrq7VPT7rm5vJHSDebm3XKCbRISLZWFrTIyLSIiLtrKzEGh7cZmXWJiXgKibvtLTWQ0Tlvr7bXVzfd3bwvL3sm5vjW1nTIiLDGh7hKybtnJviKybCGR58TkH5AAAAUnRSTlMAAwUFie17+rn8r7n8HzqvFu9b73vWH1sK54nnida5/BaYr1uJ7fqal+cWOu/6H5oKr/q5mls6H9Y6Fnzte3vnfJeYmOcW7Zqa7e2Y1u/8/O/WqnF1KAAAAb9JREFUeF6FzGOb61AYheGV1B3btu05tLHbsY1j27Zt2/h9k7SnyZt0p7m/ruda0BAi59VkxGVlxWXUtEUKMBJhTflLpFgjwNO6qPC3TuHiZQiStPwDR3sStCwr9hpYaQFRnTliKLOa/IWNhBCmftafDqk+0OUdM5EHn2jbGRO2aMiKexU/zvVyFUOS6OhTjG85cKWPw5EIIL1fNc7Y5fM3+4OlA8KCIdUfxtjde18fDOktFVA2SEih5OL0s+eDOmWwdxJnmc+pk7Pv3ndq2JE7Rsih/7Tn85cxKhfNk8R3qQmcdhy6SpZmlL8injDV1p6OR9eUpRyun4Qc0tNduwOLC+GviUuMmrl9R1nCEfOCoOGO+w/JEoOEUWJKyW7cOjpKJSBqmNjP/Ha+eTysFYX5A4Q/7P74aUBvIVo8hBx2fzvoCdYCoYSEhxk7stnDUSIAqV2qbdtfdnGlAmiq8Cr2ePkqmiBZctzUGshKC56aKCiFT+wFE7H4r+hESEUIEOuuh1AnQpHs3GfImQxCrJowUCVCq2HVW47VDQiSnVP7S6c2Jxs8lflp/4i0/EoYERrj3WvXrd+wcZM7vlEANQfRAClqAtKfNQAAAABJRU5ErkJggg=='; const regexdate = /joinedDateText(.*?)ext":"(.*?)ext":"(.*?)"}/; const regexdatemob = /joined_date_text(.*?)"}, {"text": "(.*?)"}]/; const regexid = /"video_id":"(.*?)"/; const regexlinew = /"logged_in","value":"(.*?)"/; const regexliold = /"logged_in":"(.*?)"/; const regexun = /"user_display_name":"(.*?)"/; const regexlang = /"host_language":"(.*?)"/; const regexlangmob = /\\"host_language\\": \\"(.*?)\\"/; const regexannyto = /(.*)(\r\n|\n\r|\n)([\W\w]+)/; const ERKYurl = 'https://raw.githubusercontent.com/FeignedAccomplice/Un-Yt-Kb-Rg/master/Un-Yt-Kb-Rg.CSV'; const annYTOurl = 'https://raw.githubusercontent.com/YTObserver/YT-ACC-DB/master/announcement.txt'; const minDCTime = 36*61; const maxDCTime = 71*58; const alerturl = 'https://кремлеботы.рф/alert'; const reporturl = 'tg://resolve?domain=observers_chat'; var alertSent = false; var annYTOtxt = []; var arrayERKY = []; var arrayListP1 = []; var arrayListC1 = []; var arrayListC2 = []; var arrayListC3 = []; var orderedClicksArray = []; var bDTaskSet = 0; var bDBlur = 0; var ytmode = 0; var listqueue = 0; var descc1 = ''; var descc2 = ''; var descc3 = ''; var iconsdef = ["\uD83D\uDCCC", "\uD83D\uDD32", "\uD83D\uDD34", "\uD83D\uDD3B"]; const iconstyledef = 'font-family: Segoe UI Symbol; line-height: 1em;'; const iconp1 = '<span style="' + iconstyledef + '">' + iconsdef[0] + '</span> '; const iconc1 = '<span style="' + iconstyledef + '">' + iconsdef[1] + '</span> '; const iconc2 = '<span style="' + iconstyledef + '">' + iconsdef[2] + '</span> '; const iconc3 = '<span style="' + iconstyledef + '">' + iconsdef[3] + '</span> '; var txtlistpadd = '\u2003<span id="listpadd" style="cursor: pointer; ' + iconstyledef + '" title="Добавить в закладки">' + iconsdef[0] + '</span>'; if (window.location.hostname == "dislikemeter.com" || window.location.hostname == "www.dislikemeter.com") { var videoid = getURLParameter('v', location.search); if (videoid) { waitForKeyElements('input#form_vid', function dmIDins(jNode) { var pNode = jNode[0]; pNode.value = videoid; }); return; } } else if (window.location.pathname == '/live_chat_replay' || window.location.pathname == '/live_chat') { var requestDB = new XMLHttpRequest(); requestDB.onreadystatechange = function() { if (requestDB.readyState === 4) { if (requestDB.status === 404) { console.log("[MetaBot for Youtube - Chat] XMLHttpRequest done: ERKY-db not found."); } if (requestDB.status === 200) { var responseDB = requestDB.responseText; if (responseDB !== "") { console.log("[MetaBot for Youtube - Chat] XMLHttpRequest done: ERKY-db loaded."); arrayERKY = responseDB.match(/[^\r\n=]+/g); waitForKeyElements('a.ytd-menu-navigation-item-renderer', parsechat); } else { console.log("[MetaBot for Youtube] XMLHttpRequest failed."); } } } }; requestDB.open("GET", ERKYurl, true); requestDB.send(null); } else { if (document.querySelector("meta[http-equiv='origin-trial']")) { console.log("[MetaBot for Youtube] YouTube New design detected."); ytmode = 1; } else if (document.querySelector("meta[http-equiv='Content-Type']")) { console.log("[MetaBot for Youtube] YouTube Mobile mode detected."); ytmode = 3; } else { console.log("[MetaBot for Youtube] YouTube Classic design detected."); ytmode = 2; txtlistpadd = '\u2003<span id="listpadd" style="cursor: pointer; color: #767676;' + iconstyledef + '" title="Добавить в закладки">' + iconsdef[0] + '</span>'; } if (ytmode !== 3) { listqueue++; getlist(filllist, -1, annYTOurl); } listqueue++; getlist(filllist, 0, ERKYurl); if (GM_config.get('option4') === true) { arrayListP1 = GM_config.get('listp1').match(/[^\r\n=]+/g); if (GM_config.get('listc1') !== '') { listqueue++; getlist(filllist, 1, GM_config.get('listc1')); } if (GM_config.get('listc2') !== '') { listqueue++; getlist(filllist, 2, GM_config.get('listc2')); } if (GM_config.get('listc3') !== '') { listqueue++; getlist(filllist, 3, GM_config.get('listc3')); } } waitforlists(); } function filllist(numArr, response, code, url) { if (code !== 200) { console.log("[MetaBot for Youtube] List load error. URL " + url + " Code " + code); } else { switch (numArr) { case -1: annYTOtxt = regexannyto.exec(response); var dbname = "YTO announcement"; switch (ytmode) { case 1: waitForKeyElements('ytd-comments-header-renderer.ytd-item-section-renderer', insertannNew); break; case 2: waitForKeyElements('div.comments-header-renderer', insertann); } break; case 0: arrayERKY = response.match(/[^\r\n=]+/g); var dbname = "ERKY-db"; break; case 1: arrayListC1 = response.match(/[^\r\n=]+/g); var dbname = "Custom list #1"; descc1 = '[' + (arrayListC1.length / 2 - 1) + '] ' + Aparse(arrayListC1[0]) + ': ' + Aparse(arrayListC1[1]) + '<br>\u2003'; break; case 2: arrayListC2 = response.match(/[^\r\n=]+/g); var dbname = "Custom list #2"; descc2 = '[' + (arrayListC2.length / 2 - 1) + '] ' + Aparse(arrayListC2[0]) + ': ' + Aparse(arrayListC2[1]) + '<br>\u2003'; break; case 3: arrayListC3 = response.match(/[^\r\n=]+/g); var dbname = "Custom list #3"; descc3 = '[' + (arrayListC3.length / 2 - 1) + '] ' + Aparse(arrayListC3[0]) + ': ' + Aparse(arrayListC3[1]) + '<br>\u2003'; } if (code === 200) { console.log("[MetaBot for Youtube] " + dbname + " loaded. Code " + code); } else { console.log("[MetaBot for Youtube] " + dbname + " load error. Code " + code); } } listqueue--; } function waitforlists() { if (listqueue === 0) { switch (ytmode) { case 1: spinnercheckNew(); waitForKeyElements('div#main.style-scope.ytd-comment-renderer', parseitemNew); waitForKeyElements('yt-view-count-renderer.style-scope.ytd-video-primary-info-renderer', preparedmNew); waitForKeyElements('div#channel-header.ytd-c4-tabbed-header-renderer', insertchanNew); break; case 2: waitForKeyElements('.comment-renderer-header', parseitem); waitForKeyElements('div#watch7-views-info', insertdm); waitForKeyElements('div#c4-primary-header-contents.primary-header-contents.clearfix', insertchan); break; case 3: waitForKeyElements('div.brb', parseitemMob); } return; } else { setTimeout(waitforlists, 500); } } function parsechat(jNode) { if ($(jNode)[0].hasAttribute('href')) { var deftxt = $(jNode).find('yt-formatted-string.ytd-menu-navigation-item-renderer')[0].innerHTML; markchatmenu(jNode, deftxt); var mutationObserver = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { markchatmenu(jNode, deftxt); }); }); mutationObserver.observe($(jNode)[0], { attributes: true, attributeFilter: ['href'], characterData: false, childList: false, subtree: false, attributeOldValue: false, characterDataOldValue: false }); } } function markchatmenu(jNode, deftxt) { var userID = $(jNode)[0].href.split('/').pop(); var foundID = arrayERKY.indexOf(userID); if (foundID > -1) { $(jNode).parent()[0].style.backgroundColor = 'rgba(255,50,50,0.3)'; $(jNode).find('yt-formatted-string.ytd-menu-navigation-item-renderer')[0].innerHTML = deftxt + '<br><img src="' + mred + '" /> ' + arrayERKY[foundID + 1]; } else { $(jNode).parent()[0].style.backgroundColor = ''; $(jNode).find('yt-formatted-string.ytd-menu-navigation-item-renderer')[0].innerHTML = deftxt; } } function spinnercheckNew() { waitForKeyElements('paper-spinner-lite.ytd-item-section-renderer[aria-hidden="true"]', function(jNode) { if (getURLParameter('v', location.search) === null) { return; } console.log("[MetaBot for Youtube] Comment sorting spinner found."); var mutationObserver = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if ($(jNode).find("#spinnerContainer").hasClass("cooldown")) { setTimeout(recheckallNew, 2000); } else { $('div#main.style-scope.ytd-comment-renderer').each(function() { var cNode = $(this).find(".published-time-text")[0]; deleteitemNew(this, $(cNode).find("a")[0].href); }); } }); }); mutationObserver.observe($(jNode)[0], { attributes: true, attributeFilter: ['active'], characterData: false, childList: false, subtree: true, attributeOldValue: false, characterDataOldValue: false }); }, false); waitForKeyElements('div#continuations.ytd-item-section-renderer', function(jNode) { if (getURLParameter('v', location.search) === null) { return; } console.log("[MetaBot for Youtube] Comment loading spinner found."); var mutationObserver = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (!$(jNode).find("#spinnerContainer").hasClass("cooldown")) { setTimeout(recheckallNew, 2000); } }); }); mutationObserver.observe($(jNode)[0], { attributes: true, attributeFilter: ['active'], characterData: false, childList: false, subtree: true, attributeOldValue: false, characterDataOldValue: false }); }, false); waitForKeyElements('paper-spinner#spinner.yt-next-continuation[active]', function(jNode) { if (getURLParameter('v', location.search) === null) { return; } console.log("[MetaBot for Youtube] Comment replies loading spinner found."); var mutationObserver = new MutationObserver(function(mutations) { if (mutations[0].removedNodes) { mutationObserver.disconnect(); setTimeout(recheckallNew, 2000); } }); mutationObserver.observe($(jNode)[0].parentNode, { attributes: true, characterData: false, childList: false, subtree: false, attributeOldValue: false, characterDataOldValue: false }); }, false); } function recheckallNew(){ $('div#main.style-scope.ytd-comment-renderer').each(function() { recheckNew(this); }); } function insertchan(jNode) { var noticespan = document.createElement('div'); var chanURL = $(jNode).find('a.spf-link.branded-page-header-title-link.yt-uix-sessionlink')[0].href; var userID = chanURL.split('/').pop(); var foundID = arrayERKY.indexOf(userID); if (foundID > -1) { noticespan.innerHTML = '<img src="' + mred + '" /> Пользователь найден в ЕРКЮ, дата регистрации: <a href="' + chanURL + '/about" title="Открыть страницу с датой регистрации">' + arrayERKY[foundID + 1] + "</a>"; noticespan.style = 'background:rgba(255,50,50,0.3);border-radius:5px;padding:4px 7px 4px 7px'; } else { noticespan.innerHTML = 'Пользователь не найден в ЕРКЮ <a href="' + chanURL + '/about"><img src="' + minf + '" title="Открыть страницу с датой регистрации" /></a>'; noticespan.style = 'background:rgba(100,100,100,0.2);border-radius:5px;padding:4px 7px 4px 7px'; } noticespan.id = 'erkynotice'; $(jNode).find('h1.branded-page-header-title').append(noticespan); } function insertchanNew(jNode) { this.addEventListener('yt-navigate-finish', function insertchanNewR() { this.removeEventListener('yt-navigate-finish', insertchanNewR); setTimeout(insertchanNew, 300, jNode); }); var chanURL = window.location.protocol + '//' + window.location.hostname + window.location.pathname.replace(/\/featured|\/videos|\/playlists|\/channels|\/discussion|\/about/i, ''); if (chanURL.slice(-1) == '/') { chanURL = chanURL.slice(0, -1); } var reuse = false; var userID = chanURL.split('/').pop(); if ($(jNode).find('span#subscriber-count.ytd-c4-tabbed-header-renderer')[0]) { var noticespan = $(jNode).find('span#subscriber-count.ytd-c4-tabbed-header-renderer')[0]; reuse = true; } else { var noticespan = document.createElement('span'); noticespan.id = 'subscriber-count'; noticespan.classList.add("ytd-c4-tabbed-header-renderer"); } var foundID = arrayERKY.indexOf(userID); if (foundID > -1) { noticespan.innerHTML = '<img src="' + mred + '" /> Пользователь найден в ЕРКЮ, дата регистрации: <a href="' + chanURL + '/about" style="color:hsl(206.1, 79.3%, 52.7%);text-decoration:none" title="Открыть страницу с датой регистрации">' + arrayERKY[foundID + 1] + "</a>"; noticespan.style = 'background:rgba(255,50,50,0.3);border-radius:5px;padding:4px 7px 4px 7px;font-weight:400;line-height:3rem;text-transform:none;color:var(--yt-lightsource-primary-title-color)'; } else { noticespan.innerHTML = 'Пользователь не найден в ЕРКЮ <a href="' + chanURL + '/about"><img src="' + minf + '" title="Открыть страницу с датой регистрации" /></a>'; noticespan.style = 'background:rgba(100,100,100,0.2);border-radius:5px;padding:4px 7px 4px 7px;font-weight:400;line-height:3rem;text-transform:none;color:var(--yt-lightsource-primary-title-color)'; } if (!reuse) { $(jNode).find('ytd-channel-name#channel-name.ytd-c4-tabbed-header-renderer').after(noticespan); $(jNode).find('span#subscriber-count.ytd-c4-tabbed-header-renderer').after('<br>'); } } function insertdm(jNode) { var videoid = getURLParameter('v', location.search); var pNode = $(jNode)[0]; var newspan = document.createElement('span'); newspan.innerHTML = '<a id="dmAdd" title="Добавить видео на анализатор Дизлайкметр" href="https://dislikemeter.com/?v=' + videoid + '"><img src="' + imgdma + '" /></a><span style="padding:0 1em 0 0"></span><a style="padding:0 0 0 1px" id="dmGo" title="Открыть статистику видео на анализаторе Дизлайкметр" href="https://dislikemeter.com/video/' + videoid + '" ><img src="' + imgdm + '" /></a>'; newspan.id = 'dmPanel'; $(pNode).css('text-align', 'right'); pNode.insertBefore(newspan, pNode.firstChild); $(pNode).find("#dmPanel")[0].addEventListener("click", function dmClick() { this.removeEventListener("click", dmClick); var newspan = document.createElement('span'); newspan.innerHTML = '<a target="_blank" title="Помочь проекту Дизлайкметр" href="https://dislikemeter.com/?donate"><img src="' + imgdmd + '" /></a><span style="padding:0 1em 0 0"></span>'; $(pNode).find("#dmPanel")[0].insertBefore(newspan, $(pNode).find("#dmPanel")[0].firstChild); }, false); $(pNode).find("#dmPanel")[0].addEventListener("mouseover", function dmOver() { this.removeEventListener("mouseover", dmOver); $(this).find("#dmAdd")[0].target = "_blank"; $(this).find("#dmGo")[0].target = "_blank"; }, false); } function preparedmNew(jNode) { this.addEventListener('yt-navigate-finish', function preparedmNewR() { this.removeEventListener('yt-navigate-finish', preparedmNewR); setTimeout(preparedmNew, 300, jNode); }); var videoid = getURLParameter('v', location.search); if (!videoid) { console.log("[MetaBot for Youtube] Dislikemeter: video id not found."); return; } var pNode = $(jNode).parent().parent().parent().find('div#flex')[0]; if (typeof pNode === 'undefined') { console.log("[MetaBot for Youtube] Dislikemeter: node not found."); return; } pNode.innerHTML = ''; if (GM_config.get('option3')) { var btnText = $(pNode).parent().find('ytd-button-renderer.ytd-menu-renderer')[0]; if ($(btnText).find('yt-formatted-string#text').length > 0) { $(btnText).find('yt-formatted-string#text').html(''); } if (!$(pNode).parent().find('ytd-sentiment-bar-renderer#sentiment').is(":visible")) { btnText = $(pNode).parent().find('ytd-toggle-button-renderer.ytd-menu-renderer.force-icon-button')[0]; $(btnText).find('yt-formatted-string#text').html(''); btnText = $(pNode).parent().find('ytd-toggle-button-renderer.ytd-menu-renderer.force-icon-button')[1]; $(btnText).find('yt-formatted-string#text').html(''); } } console.log("[MetaBot for Youtube] Dislikemeter: requesting data for video id " + videoid); getlist(insertdmNew, pNode, 'https://dislikemeter.com/iframe/?vid=' + videoid); } function insertdmNew(jNode, response, code, url) { if (response.indexOf('"submit"') >= 0){ console.log("[MetaBot for Youtube] Dislikemeter: video already added."); var dmurl = url.replace('iframe/?vid=', 'video/'); var dmtxt = 'Открыть статистику видео на анализаторе Дизлайкметр'; var dmclr = 'var(--yt-spec-call-to-action)'; } else { console.log("[MetaBot for Youtube] Dislikemeter: video not added yet."); var dmurl = url.replace('iframe/?vid=', '?v='); var dmtxt = 'Добавить видео на анализатор Дизлайкметр'; var dmclr = 'var(--yt-spec-icon-inactive)'; } jNode.style.textAlign = "right"; var dmbutton = document.createElement('ytd-button-renderer'); dmbutton.id = 'dmbutton'; dmbutton.setAttribute('button-renderer', ''); dmbutton.setAttribute('is-icon-button', ''); dmbutton.classList.add("style-scope"); dmbutton.classList.add("ytd-menu-renderer"); dmbutton.classList.add("force-icon-button"); dmbutton.classList.add("style-default"); dmbutton.classList.add("size-default"); dmbutton.style.marginTop = "3px"; dmbutton.style.marginRight = "4px"; $(jNode).prepend(dmbutton); $(jNode).find('ytd-button-renderer#dmbutton').html('<a class="yt-simple-endpoint style-scope ytd-button-renderer"><yt-icon-button id="button" class="style-scope ytd-button-renderer style-default size-default" style="padding:8px;width:36px;height:36px;color:rgb(255,200,0)" onclick="window.open(\'' + dmurl + '\', \'_blank\');"><svg viewBox="0 0 20 20" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope yt-icon" style="pointer-events: none; display: block; width: 100%; height: 100%; fill:' + dmclr + '"><g class="style-scope yt-icon"><path d="m0 2c0 5.5 8 5.5 8 0 0-1-2-1-2 0 0 3-4 3-4 0 0-1-2-1-2 0m12 0c0 5.5 8 5.5 8 0 0-1-2-1-2 0 0 3-4 3-4 0 0-1-2-1-2 0m-12 16q2-6.5 10-6.5v2q-6 0-8 4.5c0 0.5-2 0.7-2 0m6 2v-3l4-1v4m1 0v-8h4v8m1 0v-11l4-1v12" class="style-scope yt-icon"></path></g></svg></yt-icon-button><paper-tooltip>' + dmtxt + '</paper-tooltip></a>'); } function insertann(jNode) { $(jNode).find('h2.comment-section-header-renderer')[0].style = 'padding-bottom:10;display:inline-flex;align-items:center;line-height:2rem'; var cfgspan = document.createElement('span'); cfgspan.innerHTML = '<span style="opacity:0.4">[</span><span style="font-family: Segoe UI Symbol; color: #848484">\uD83D\uDD27</span><span style="opacity:0.4">]</span>'; cfgspan.id = 'cfgbtn'; cfgspan.title = 'Настройки MetaBot for YouTube'; cfgspan.style = 'margin:-4px 0 0 0.5em;font-size:2.3em;height:2rem;cursor:pointer;color:#000'; $(jNode).find('h2.comment-section-header-renderer').append(cfgspan); var annspan = document.createElement('span'); annspan.innerHTML = '<span style="display:inline-flex;align-items:center"><span style="opacity:0.4">[</span><span style="font-family: Segoe UI Symbol; color: #af1611">\uD83D\uDCE3</span><span style="color:#555;font-size:0.5em;font-weight:420;margin:-1.8em 0.2em 0 0.2em;height:0.3em;text-transform:none">' + Aparse(annYTOtxt[1]) + '</span><span style="opacity:0.4">]</span></span>'; annspan.id = 'annbtn'; annspan.title = 'Последняя информация от Наблюдателя YouTube (#ЕРКЮ)'; annspan.style = 'margin:-4px 0 0 0.5em;font-size:2.3em;height:2rem;cursor:pointer;color:#000'; $(jNode).find('h2.comment-section-header-renderer').append(annspan); var ytoinfosspan = document.createElement('span'); ytoinfosspan.innerHTML = '<span style="float:left;width:40px"><img src="' + imgyto + '" width="40px" height="40px" /></span><span style="float:right;margin: 0 0 0 10px;width:520px"><span id="urlyto" style="font-weight:500;cursor:pointer" data-url="https://www.youtube.com/channel/UCwBID52XA-aajCKYuwsQxWA">Наблюдатель Youtube #ЕРКЮ</span><br><span class="yt-badge" style="margin:4px 0 4px 0;text-align:center;text-transform:none;font-weight:500;width:100%;background-color:hsla(0, 0%, 93.3%, .6)">' + Aparse(annYTOtxt[1]) + '</span><span id="annholder"></span></span>'; ytoinfosspan.id = 'ytoinfo'; ytoinfosspan.style = 'max-width:605px;margin:0 auto 1em auto;display:table'; $(ytoinfosspan).toggle(); $(jNode).find('h2.comment-section-header-renderer').after(ytoinfosspan); $(jNode).find("span#ytoinfo").toggle(); var settingsspan = document.createElement('span'); settingsspan.innerHTML = '<span style="float:left;width:100px"><img src="https://raw.githubusercontent.com/asrdri/yt-metabot-user-js/master/logo.png" width="100px" height="100px" /></span><span style="float:right;margin: 0 0 0 10px;width:460px"><span style="font-weight:500">' + GM_info.script.name + ' v' + GM_info.script.version + '</span>\u2003<span id="urlgithub" style="cursor:pointer" data-url="https://github.com/asrdri/yt-metabot-user-js/">GitHub</span>\u2003<span id="urlissues" style="cursor:pointer" data-url="https://github.com/asrdri/yt-metabot-user-js/issues">Предложения и баги</span>\u2003<span id="urllists" style="cursor:pointer" data-url="https://github.com/asrdri/yt-metabot-user-js/issues/23">Списки</span><span class="yt-badge" style="margin:4px 0 4px 0;text-align:center;text-transform:none;font-weight:500;width:100%;background-color:hsla(0, 0%, 93.3%, .6)">Настройки</span>Комментарии от известных ботов из ЕРКЮ <select id="mbcddm1"><option value="1">помечать</option><option value="2">скрывать</option></select><span id="mbcswg1"><br style="line-height:2em"><label title="Информация о наличии ботов под роликом будет отправлена на кремлеботы.рф"><input type="checkbox" id="mbcbox4">Уведомлять сервер при обнаружении ботов</label><br style="line-height:2em"><label title="Пункт 5.1.H Условий использования YouTube не нарушается - запросы отправляются со значительным интервалом"><input type="checkbox" id="mbcbox1">Автоматически ставить <span style="font-family: Segoe UI Symbol">\uD83D\uDC4E</span> комментариям от ботов из ЕРКЮ</label></span><br style="line-height:2em"><label><input type="checkbox" id="mbcbox3">Дополнительные списки</label><span id="mbcswg2"><br style="line-height:2em">' + iconp1 + ' Закладки: <input type="color" id="colorpersonal" style="height: 1rem; width: 40px"><br style="line-height:1.8em"><textarea id="listpersonal" rows="3" style="width: 440px"></textarea><br style="line-height:1.2em">Сторонние списки:<br>' + iconc1 + descc1 + '<input type="text" id="listcustom1" style="height: 1rem; width: 385px"> <input type="color" id="colorcustom1" style="height: 1rem; width: 40px"><br>' + iconc2 + descc2 + '<input type="text" id="listcustom2" style="height: 1rem; width: 385px"> <input type="color" id="colorcustom2" style="height: 1rem; width: 40px"><br>' + iconc3 + descc3 + '<input type="text" id="listcustom3" style="height: 1rem; width: 385px"> <input type="color" id="colorcustom3" style="height: 1rem; width: 40px"></span><br style="line-height:2em"><span id="classicbtn" style="cursor:pointer">Включить новый дизайн YouTube</span><br><span id="resetbtn" style="cursor:pointer">Сбросить настройки</span><span id="configsaved" class="yt-badge" style="margin:4px 0 4px 0;text-align:center;text-transform:none;font-weight:500;width:100%;background-color:hsla(0, 0%, 93.3%, .6);display:none;-webkit-transition: background-color 0.3s ease-in-out;-moz-transition: background-color 0.3s ease-in-out;-ms-transition: background-color 0.3s ease-in-out;-o-transition: background-color 0.3s ease-in-out;transition: background-color 0.3s ease-in-out;">Настройки сохранены. Для вступления в силу необходимо <span style="cursor:pointer;text-decoration: underline" onclick="javascript:window.location.reload();">\uD83D\uDD03обновить страницу</span>.</span></span>'; settingsspan.id = 'config'; settingsspan.style = 'max-width:605px;margin:0 auto 1em auto;display:table'; $(settingsspan).toggle(); $(jNode).find('h2.comment-section-header-renderer').after(settingsspan); $(jNode).find("span#config").toggle(); var annexspan = document.createElement('span'); annexspan.innerHTML = Aparse(annYTOtxt[3]); $(jNode).find('span#annholder').append(annexspan); $(jNode).find("span#cfgbtn")[0].addEventListener("click", function() { $(jNode).find("span#config").toggle(); $(jNode).find("span#ytoinfo").hide(); }, false); $(jNode).find("span#annbtn")[0].addEventListener("click", function() { $(jNode).find("span#ytoinfo").toggle(); $(jNode).find("span#config").hide(); }, false); $(jNode).find("span#cfgbtn").hover(function() { this.style.backgroundColor = 'hsl(206.1, 79.3%, 52.7%)'; }, function() { this.style.backgroundColor = ''; }); $(jNode).find("span#annbtn").hover(function() { this.style.backgroundColor = 'hsl(206.1, 79.3%, 52.7%)'; }, function() { this.style.backgroundColor = ''; }); $(jNode).find("span#classicbtn, span#resetbtn").hover(function() { this.style.textDecoration = "underline"; }, function() { this.style.textDecoration = ""; }); $(jNode).find("span#urlgithub, span#urlissues, span#urllists, span#urlyto").hover(function() { this.style.textDecoration = "underline"; this.style.color = "hsl(206.1, 79.3%, 52.7%)"; }, function() { this.style.textDecoration = ""; this.style.color = ""; }); $(jNode).find("span#urlgithub, span#urlissues, span#urllists, span#urlyto").click(function() { window.open($(this).attr('data-url')); }); $(jNode).find("span#classicbtn").click(function() { ytNewDesign(); saveconfig(jNode); }); $(jNode).find("span#resetbtn").click(function() { resetconfig(jNode); saveconfig(jNode); }); $(jNode).find("select#mbcddm1").val(GM_config.get('option1')); $(jNode).find("input#mbcbox1").prop('checked', GM_config.get('option2')); $(jNode).find("input#mbcbox3").prop('checked', GM_config.get('option4')); $(jNode).find("input#mbcbox4").prop('checked', GM_config.get('option5')); $(jNode).find("textarea#listpersonal").text(GM_config.get('listp1')); $(jNode).find("input#listcustom1").val(GM_config.get('listc1')); $(jNode).find("input#listcustom2").val(GM_config.get('listc2')); $(jNode).find("input#listcustom3").val(GM_config.get('listc3')); $(jNode).find("input#colorpersonal").val(parseColor(GM_config.get('colorp1'), false)); $(jNode).find("input#colorcustom1").val(parseColor(GM_config.get('colorc1'), false)); $(jNode).find("input#colorcustom2").val(parseColor(GM_config.get('colorc2'), false)); $(jNode).find("input#colorcustom3").val(parseColor(GM_config.get('colorc3'), false)); if ($(jNode).find("select#mbcddm1").val() == 2) { $(jNode).find("span#mbcswg1").hide(); } if ($(jNode).find("input#mbcbox3").prop('checked') == false) { $(jNode).find("span#mbcswg2").hide(); } $(jNode).find("input#mbcbox1, input#mbcbox3, input#mbcbox4, select#mbcddm1, textarea#listpersonal, input#listcustom1, input#listcustom2, input#listcustom3, input#colorpersonal, input#colorcustom1, input#colorcustom2, input#colorcustom3").change(function() { if ($(jNode).find("select#mbcddm1").val() == 2) { $(jNode).find("span#mbcswg1").hide(); } else { $(jNode).find("span#mbcswg1").show(); } if ($(jNode).find("input#mbcbox3").prop('checked') == false) { $(jNode).find("span#mbcswg2").hide(); } else { $(jNode).find("span#mbcswg2").show(); } saveconfig(jNode); }); } function insertannNew(jNode) { waitForKeyElements('div#icon-label.yt-dropdown-menu', function(jNode) { jNode[0].innerHTML = ''; $(jNode).parent()[0].setAttribute("style","margin-top:-0.1em;height:1.9em;width:2.9em"); $(jNode).parent().hover(function() { this.style.backgroundColor = 'hsl(206.1, 79.3%, 52.7%)'; }, function() { this.style.backgroundColor = ''; }); }, false); var cfgspan = document.createElement('span'); cfgspan.innerHTML = '<span style="opacity:0.4">[</span><span style="font-family: Segoe UI Symbol; color: #848484">\uD83D\uDD27</span><span style="opacity:0.4">]</span>'; cfgspan.id = 'cfgbtn'; cfgspan.title = 'Настройки MetaBot for YouTube'; cfgspan.style = 'margin:-6px 0 0 0.5em;font-size:3em;height:1.05em;display:inline-flex;align-items:center;cursor:pointer'; cfgspan.classList.add("content"); cfgspan.classList.add("ytd-video-secondary-info-renderer"); $(jNode).find('div#title').append(cfgspan); var annspan = document.createElement('span'); annspan.innerHTML = '<span style="opacity:0.4">[</span><span style="font-family: Segoe UI Symbol; color: #af1611">\uD83D\uDCE3</span><span style="font-size:0.5em;font-weight:420;margin:0 0.2em 0 0.2em">' + Aparse(annYTOtxt[1]) + '</span><span style="opacity:0.4">]</span>'; annspan.id = 'annbtn'; annspan.title = 'Последняя информация от Наблюдателя YouTube (#ЕРКЮ)'; annspan.style = 'margin:-6px 0 0 0.5em;font-size:3em;height:1.05em;display:inline-flex;align-items:center;cursor:pointer'; annspan.classList.add("content"); annspan.classList.add("ytd-video-secondary-info-renderer"); $(jNode).find('div#title').append(annspan); var ytoinfosspan = document.createElement('span'); ytoinfosspan.innerHTML = '<span style="float:left;width:40px"><img src="' + imgyto + '" width="40px" height="40px" /></span><span style="float:right;margin: 0 0 0 10px;width:585px"><span id="urlyto" style="font-weight:500;cursor:pointer" data-url="https://www.youtube.com/channel/UCwBID52XA-aajCKYuwsQxWA">Наблюдатель Youtube #ЕРКЮ</span><span class="badge badge-style-type-simple ytd-badge-supported-renderer" style="margin:4px 0 4px 0;text-align:center">' + Aparse(annYTOtxt[1]) + '</span><span id="annholder"></span></span>'; ytoinfosspan.id = 'ytoinfo'; ytoinfosspan.classList.add("description"); ytoinfosspan.classList.add("content"); ytoinfosspan.classList.add("ytd-video-secondary-info-renderer"); ytoinfosspan.style = 'font-size:1.4rem;max-width:640px;margin:-10px auto 1em auto;display:none'; $(jNode).find('div#title').after(ytoinfosspan); var settingsspan = document.createElement('span'); settingsspan.innerHTML = '<span style="float:left;width:100px"><img src="https://raw.githubusercontent.com/asrdri/yt-metabot-user-js/master/logo.png" width="100px" height="100px" /></span><span style="float:right;margin: 0 0 0 10px;width:525px"><span style="font-weight:500">' + GM_info.script.name + ' v' + GM_info.script.version + '</span>\u2003<span id="urlgithub" style="cursor:pointer" data-url="https://github.com/asrdri/yt-metabot-user-js/">GitHub</span>\u2003<span id="urlissues" style="cursor:pointer" data-url="https://github.com/asrdri/yt-metabot-user-js/issues">Предложения и баги</span>\u2003<span id="urllists" style="cursor:pointer" data-url="https://github.com/asrdri/yt-metabot-user-js/issues/23">Списки</span><span class="badge badge-style-type-simple ytd-badge-supported-renderer" style="margin:4px 0 4px 0;text-align:center">Настройки</span>Комментарии от известных ботов из ЕРКЮ <select id="mbcddm1"><option value="1">помечать</option><option value="2">скрывать</option></select><span id="mbcswg1"><br style="line-height:2em"><label title="Информация о наличии ботов под роликом будет отправлена на кремлеботы.рф"><input type="checkbox" id="mbcbox4">Уведомлять сервер при обнаружении ботов</label><br style="line-height:2em"><label title="Пункт 5.1.H Условий использования YouTube не нарушается - запросы отправляются со значительным интервалом"><input type="checkbox" id="mbcbox1">Автоматически ставить <span style="font-family: Segoe UI Symbol">\uD83D\uDC4E</span> комментариям от ботов из ЕРКЮ</label></span><br style="line-height:2em"><label title="Актуально для русского интерфейса и небольшой ширины окна браузера"><input type="checkbox" id="mbcbox2">Скрывать длинные подписи кнопок Мне (не) понравилось / Поделиться</label><br style="line-height:2em"><label><input type="checkbox" id="mbcbox3">Дополнительные списки</label><span id="mbcswg2"><br style="line-height:2em">' + iconp1 + ' Закладки: <input type="color" id="colorpersonal" style="height: 1.8rem; width: 40px"><br style="line-height:1.8em"><textarea id="listpersonal" rows="3" style="width: 500px"></textarea><br style="line-height:1.2em">Сторонние списки:<br>' + iconc1 + descc1 + '<input type="text" id="listcustom1" style="height: 1.7rem; width: 440px"> <input type="color" id="colorcustom1" style="height: 1.8rem; width: 40px"><br>' + iconc2 + descc2 + '<input type="text" id="listcustom2" style="height: 1.7rem; width: 440px"> <input type="color" id="colorcustom2" style="height: 1.8rem; width: 40px"><br>' + iconc3 + descc3 + '<input type="text" id="listcustom3" style="height: 1.7rem; width: 440px"> <input type="color" id="colorcustom3" style="height: 1.8rem; width: 40px"></span><br style="line-height:2em"><span id="classicbtn" style="cursor:pointer">Включить классический дизайн YouTube</span><br><span id="resetbtn" style="cursor:pointer">Сбросить настройки</span><span id="configsaved" class="badge badge-style-type-simple ytd-badge-supported-renderer" style="margin:4px 0 4px 0;text-align:center;display:none;-webkit-transition: background-color 0.3s ease-in-out;-moz-transition: background-color 0.3s ease-in-out;-ms-transition: background-color 0.3s ease-in-out;-o-transition: background-color 0.3s ease-in-out;transition: background-color 0.3s ease-in-out;">Настройки сохранены. Для вступления в силу необходимо <span style="cursor:pointer;text-decoration: underline" onclick="javascript:window.location.reload();"><span style="font-family: Segoe UI Symbol">\uD83D\uDD03</span>обновить страницу</span>.</span></span>'; settingsspan.id = 'config'; settingsspan.classList.add("description"); settingsspan.classList.add("content"); settingsspan.classList.add("ytd-video-secondary-info-renderer"); settingsspan.style = 'font-size:1.4rem;max-width:635px;margin:-10px auto 1em auto;display:none'; $(jNode).find('div#title').after(settingsspan); var annexspan = document.createElement('span'); annexspan.innerHTML = Aparse(annYTOtxt[3]); annexspan.classList.add("content"); annexspan.classList.add("ytd-video-secondary-info-renderer"); $(jNode).find('span#annholder').append(annexspan); $(jNode).find("span#cfgbtn")[0].addEventListener("click", function() { $(jNode).find("span#config").toggle(); $(jNode).find("span#ytoinfo").hide(); }, false); $(jNode).find("span#annbtn")[0].addEventListener("click", function() { $(jNode).find("span#ytoinfo").toggle(); $(jNode).find("span#config").hide(); }, false); $(jNode).find("span#cfgbtn").hover(function() { this.style.backgroundColor = 'hsl(206.1, 79.3%, 52.7%)'; }, function() { this.style.backgroundColor = ''; }); $(jNode).find("span#annbtn").hover(function() { this.style.backgroundColor = 'hsl(206.1, 79.3%, 52.7%)'; }, function() { this.style.backgroundColor = ''; }); $(jNode).find("span#classicbtn, span#resetbtn").hover(function() { this.style.textDecoration = "underline"; }, function() { this.style.textDecoration = ""; }); $(jNode).find("span#urlgithub, span#urlissues, span#urllists, span#urlyto").hover(function() { this.style.textDecoration = "underline"; this.style.color = "hsl(206.1, 79.3%, 52.7%)"; }, function() { this.style.textDecoration = ""; this.style.color = ""; }); $(jNode).find("span#urlgithub, span#urlissues, span#urllists, span#urlyto").click(function() { window.open($(this).attr('data-url')); }); $(jNode).find("span#classicbtn").click(function() { ytOldDesign(); saveconfigNew(jNode); }); $(jNode).find("span#resetbtn").click(function() { resetconfigNew(jNode); saveconfigNew(jNode); }); $(jNode).find("select#mbcddm1").val(GM_config.get('option1')); $(jNode).find("input#mbcbox1").prop('checked', GM_config.get('option2')); $(jNode).find("input#mbcbox2").prop('checked', GM_config.get('option3')); $(jNode).find("input#mbcbox3").prop('checked', GM_config.get('option4')); $(jNode).find("input#mbcbox4").prop('checked', GM_config.get('option5')); $(jNode).find("textarea#listpersonal").text(GM_config.get('listp1')); $(jNode).find("input#listcustom1").val(GM_config.get('listc1')); $(jNode).find("input#listcustom2").val(GM_config.get('listc2')); $(jNode).find("input#listcustom3").val(GM_config.get('listc3')); $(jNode).find("input#colorpersonal").val(parseColor(GM_config.get('colorp1'), false)); $(jNode).find("input#colorcustom1").val(parseColor(GM_config.get('colorc1'), false)); $(jNode).find("input#colorcustom2").val(parseColor(GM_config.get('colorc2'), false)); $(jNode).find("input#colorcustom3").val(parseColor(GM_config.get('colorc3'), false)); if ($(jNode).find("select#mbcddm1").val() == 2) { $(jNode).find("span#mbcswg1").hide(); } if ($(jNode).find("input#mbcbox3").prop('checked') == false) { $(jNode).find("span#mbcswg2").hide(); } $(jNode).find("input#mbcbox1, input#mbcbox2, input#mbcbox3, input#mbcbox4, select#mbcddm1, textarea#listpersonal, input#listcustom1, input#listcustom2, input#listcustom3, input#colorpersonal, input#colorcustom1, input#colorcustom2, input#colorcustom3").change(function() { if ($(jNode).find("select#mbcddm1").val() == 2) { $(jNode).find("span#mbcswg1").hide(); } else { $(jNode).find("span#mbcswg1").show(); } if ($(jNode).find("input#mbcbox3").prop('checked') == false) { $(jNode).find("span#mbcswg2").hide(); } else { $(jNode).find("span#mbcswg2").show(); } saveconfigNew(jNode); }); } function saveconfig(jNode) { GM_config.set('option1', $(jNode).find("select#mbcddm1").val()); GM_config.set('option2', $(jNode).find("input#mbcbox1").is(":checked")); GM_config.set('option4', $(jNode).find("input#mbcbox3").is(":checked")); GM_config.set('option5', $(jNode).find("input#mbcbox4").is(":checked")); GM_config.set('listp1', $(jNode).find("textarea#listpersonal").val()); GM_config.set('listc1', $(jNode).find("input#listcustom1").val()); GM_config.set('listc2', $(jNode).find("input#listcustom2").val()); GM_config.set('listc3', $(jNode).find("input#listcustom3").val()); GM_config.set('colorp1', parseColor($(jNode).find("input#colorpersonal").val(), true)); GM_config.set('colorc1', parseColor($(jNode).find("input#colorcustom1").val(), true)); GM_config.set('colorc2', parseColor($(jNode).find("input#colorcustom2").val(), true)); GM_config.set('colorc3', parseColor($(jNode).find("input#colorcustom3").val(), true)); arrayListP1 = GM_config.get('listp1').match(/[^\r\n=]+/g); GM_config.save(); $(jNode).find("span#configsaved").show(); $(jNode).find("span#configsaved")[0].style.backgroundColor = 'rgba(40,150,230,1)'; setTimeout(function(){$(jNode).find("span#configsaved")[0].style.backgroundColor = 'rgba(40,150,230,0)';}, 400); } function saveconfigNew(jNode) { GM_config.set('option1', $(jNode).find("select#mbcddm1").val()); GM_config.set('option2', $(jNode).find("input#mbcbox1").is(":checked")); GM_config.set('option3', $(jNode).find("input#mbcbox2").is(":checked")); GM_config.set('option4', $(jNode).find("input#mbcbox3").is(":checked")); GM_config.set('option5', $(jNode).find("input#mbcbox4").is(":checked")); GM_config.set('listp1', $(jNode).find("textarea#listpersonal").val()); GM_config.set('listc1', $(jNode).find("input#listcustom1").val()); GM_config.set('listc2', $(jNode).find("input#listcustom2").val()); GM_config.set('listc3', $(jNode).find("input#listcustom3").val()); GM_config.set('colorp1', parseColor($(jNode).find("input#colorpersonal").val(), true)); GM_config.set('colorc1', parseColor($(jNode).find("input#colorcustom1").val(), true)); GM_config.set('colorc2', parseColor($(jNode).find("input#colorcustom2").val(), true)); GM_config.set('colorc3', parseColor($(jNode).find("input#colorcustom3").val(), true)); arrayListP1 = GM_config.get('listp1').match(/[^\r\n=]+/g); GM_config.save(); $(jNode).find("span#configsaved").show(); $(jNode).find("span#configsaved")[0].style.backgroundColor = 'rgba(40,150,230,1)'; setTimeout(function(){$(jNode).find("span#configsaved")[0].style.backgroundColor = 'rgba(40,150,230,0)';}, 400); } function resetconfig(jNode) { $(jNode).find("span#mbcswg1").show(); $(jNode).find("span#mbcswg2").show(); $(jNode).find("select#mbcddm1").val(1); $(jNode).find("input#mbcbox1").prop('checked', false); $(jNode).find("input#mbcbox2").prop('checked', true); $(jNode).find("input#mbcbox3").prop('checked', true); $(jNode).find("input#mbcbox4").prop('checked', false); $(jNode).find("input#listcustom1").val('https://github.com/asrdri/yt-metabot-user-js/raw/master/list-sample.txt'); $(jNode).find("input#listcustom2").val(''); $(jNode).find("input#listcustom3").val(''); $(jNode).find("input#colorpersonal").val(parseColor(33023, false)); $(jNode).find("input#colorcustom1").val(parseColor(8388863, false)); $(jNode).find("input#colorcustom2").val(parseColor(16744448, false)); $(jNode).find("input#colorcustom3").val(parseColor(8421504, false)); } function resetconfigNew(jNode) { $(jNode).find("span#mbcswg1").show(); $(jNode).find("span#mbcswg2").show(); $(jNode).find("select#mbcddm1").val(1); $(jNode).find("input#mbcbox1").prop('checked', false); $(jNode).find("input#mbcbox2").prop('checked', true); $(jNode).find("input#mbcbox3").prop('checked', true); $(jNode).find("input#mbcbox4").prop('checked', false); $(jNode).find("input#listcustom1").val('https://github.com/asrdri/yt-metabot-user-js/raw/master/list-sample.txt'); $(jNode).find("input#listcustom2").val(''); $(jNode).find("input#listcustom3").val(''); $(jNode).find("input#colorpersonal").val(parseColor(33023, false)); $(jNode).find("input#colorcustom1").val(parseColor(8388863, false)); $(jNode).find("input#colorcustom2").val(parseColor(16744448, false)); $(jNode).find("input#colorcustom3").val(parseColor(8421504, false)); } function sendAlert(jNode) { if (alertSent || GM_config.get('option5') === false) return; if (ytmode === 1) { var commentURL = $(jNode).find('.published-time-text a').prop('href'); } else { var commentURL = $(jNode).find('.comment-renderer-time a').prop('href'); } var commendid = getURLParameter('lc', commentURL); var videoid = getURLParameter('v', commentURL); var data = $.param({v: videoid, lc: commendid}); var request = new XMLHttpRequest(); request.open("POST", alerturl, true); request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); request.send(data); alertSent = true; this.addEventListener('yt-navigate-start', function clearAlertSentFlag() { this.removeEventListener('yt-navigate-start', clearAlertSentFlag); alertSent = false; }); } function parseitem(jNode) { if (GM_config.get('option4') === true) { var spanlistpadd = txtlistpadd; } else { var spanlistpadd = ''; } var pNode = $(jNode).parent().parent()[0]; $(pNode).hover(function blockShow() { $(pNode).find("#t30sp").show(); }, function blockHide() { $(pNode).find("#t30sp").hide(); }); pNode = jNode[0]; var userID = $(jNode).find("a")[0].href.split('/').pop(); var foundID = arrayERKY.indexOf(userID); var foundIDp1 = -1; var foundIDc1 = -1; var foundIDc2 = -1; var foundIDc3 = -1; if (GM_config.get('option4') === true) { if (arrayListP1 !== null) { foundIDp1 = arrayListP1.indexOf(userID); } if (typeof arrayListC1 !== 'undefined' && arrayListC1.length > 1) { foundIDc1 = arrayListC1.indexOf(userID); } if (typeof arrayListC2 !== 'undefined' && arrayListC2.length > 1) { foundIDc2 = arrayListC2.indexOf(userID); } if (typeof arrayListC3 !== 'undefined' && arrayListC3.length > 1) { foundIDc3 = arrayListC3.indexOf(userID); } } var comURL = $(jNode).find("span.comment-renderer-time")[0]; if ($(jNode).find("span.comment-renderer-linked-comment").length > 0) { comURL = $(jNode).find("span.comment-renderer-linked-comment")[0]; } var t30span = document.createElement('span'); t30span.innerHTML = '\u2003<span id="about" style="cursor: pointer; font-family: Segoe UI Symbol; color: #767676" title="Открыть страницу с датой регистрации">\u2753</span>\u2003<span id="top30" style="cursor: pointer" title="Найти другие комментарии автора с помощью агрегатора ТОП30"><font color="#7777fa">top</font><font color="#fa7777">30</font></span>' + spanlistpadd; t30span.id = 't30sp'; t30span.style = "display:none"; if (foundID > -1) { sendAlert(jNode); console.log("[MetaBot for Youtube] user found in ERKY-db: " + userID); if (GM_config.get('option1') == 2) { foundIDp1 = -1; foundIDc1 = -1; foundIDc2 = -1; foundIDc3 = -1; var hidspan = document.createElement('span'); hidspan.innerHTML = 'Комментарий скрыт: пользователь найден в ЕРКЮ'; hidspan.classList.add('yt-badge'); hidspan.style = 'margin:0 0 10px 0;text-align:center;text-transform:none;font-weight:500;width:100%;background-color:hsla(0, 0%, 93.3%, .6)'; $(jNode).parent().parent().after(hidspan); $(jNode).parent().parent().hide(); } else { markred(pNode, arrayERKY[foundID + 1]); } $(comURL).after(t30span); } else { var newspan = document.createElement('span'); newspan.innerHTML = '<img id="checkbtn" src="' + checkb + '" title="Проверить дату регистрации" style="cursor: help" />'; newspan.id = 'checksp'; pNode.insertBefore(newspan, pNode.firstChild); t30span.innerHTML += '\u2003<span id="sendlink" style="cursor: pointer" title="Помогите пополнить список известных ботов - отправьте нам данные о подозрительном комментарии">\u27A4</span>'; $(comURL).after(t30span); $(jNode).find("img")[0].addEventListener("click", function checkcomment() { checkdate(pNode); }, false); $(jNode).find("#sendlink")[0].addEventListener("click", function displayinfo() { sendinfo(); }, false); } if (GM_config.get('option4') === true) { if (foundIDc1 > -1) { markcustom(pNode, arrayListC1[foundIDc1 + 1], 1); } if (foundIDc2 > -1) { markcustom(pNode, arrayListC2[foundIDc2 + 1], 2); } if (foundIDc3 > -1) { markcustom(pNode, arrayListC3[foundIDc3 + 1], 3); } if (foundIDp1 > -1) { if ($(jNode).find("#checkbtn").length > 0) { $(jNode).find("#checkbtn")[0].remove(); } markpersonal(pNode, arrayListP1[foundIDp1 + 1]); } $(jNode).find("#listpadd")[0].addEventListener("click", function addtolistNew() { if ($(pNode).find("span#bookmark").length > 0) { listpdel(pNode); $(jNode).find("#listpadd").html(iconsdef[0]); $(jNode).find("#listpadd")[0].title = 'Добавить в закладки'; } else { if ($(jNode).find("#checkbtn").length > 0) { $(jNode).find("#checkbtn")[0].remove(); } $(jNode).find("#listpadd").html('\u23F3'); getpage(listpadd, pNode, $(jNode).find("a")[0].href + '/about') } }, false); } $(jNode).find("#about")[0].addEventListener("click", function openabout() { window.open($(jNode).find("a")[0].href + '/about'); }, false); $(jNode).find("#top30")[0].addEventListener("click", function opent30() { window.open('https://www.t30p.ru/search.aspx?s=' + $(jNode).find("a")[0].href.split('/').pop()); }, false); } function parseitemMob(jNode) { var userID = $(jNode).find("a")[0].href.split('/').pop(); var foundID = arrayERKY.indexOf(userID); if (foundID > -1) { console.log("[MetaBot for Youtube] user found in ERKY-db: " + userID); markredMob(jNode, arrayERKY[foundID + 1]); } else { $(jNode)[0].addEventListener("touchstart", function () { $(this).data('moved', '0'); }, false); $(jNode)[0].addEventListener("touchmove", function () { $(this).data('moved', '1'); }, false); $(jNode)[0].addEventListener("touchend", function ttend() { if ($(this).data('moved') == 0){ if (['en', 'en-US', 'en-GB', 'ru', 'uk', 'be', 'bg'].indexOf(currentlangmob()) < 0) { alert('Функция поддерживается только на языках:\n \u2714 English\n \u2714 Русский\n \u2714 Українська\n \u2714 Беларуская \u2714 Български\nВы можете сменить язык интерфейса в меню настроек YouTube.'); return; } this.removeEventListener("touchend", ttend); checkdateMob(this); } }, false); } } function parseitemNew(jNode) { if (GM_config.get('option4') === true) { var spanlistpadd = txtlistpadd; } else { var spanlistpadd = ''; } var pNode = $(jNode).find("#header-author.ytd-comment-renderer")[0]; $(jNode).hover(function blockShow() { $(pNode).find("#t30sp").show(); }, function blockHide() { $(pNode).find("#t30sp").hide(); }); var userID = $(jNode).find("a")[0].href.split('/').pop(); var foundID = arrayERKY.indexOf(userID); var foundIDp1 = -1; var foundIDc1 = -1; var foundIDc2 = -1; var foundIDc3 = -1; if (GM_config.get('option4') === true) { if (arrayListP1 !== null) { foundIDp1 = arrayListP1.indexOf(userID); } if (typeof arrayListC1 !== 'undefined' && arrayListC1.length > 1) { foundIDc1 = arrayListC1.indexOf(userID); } if (typeof arrayListC2 !== 'undefined' && arrayListC2.length > 1) { foundIDc2 = arrayListC2.indexOf(userID); } if (typeof arrayListC3 !== 'undefined' && arrayListC3.length > 1) { foundIDc3 = arrayListC3.indexOf(userID); } } var comURL = $(jNode).find(".published-time-text")[0]; var t30span = document.createElement('span'); t30span.innerHTML = '\u2003<span id="about" style="cursor: pointer; ' + iconstyledef + '" title="Открыть страницу с датой регистрации">\u2753</span>\u2003<span id="top30" style="cursor: pointer" title="Найти другие комментарии автора с помощью агрегатора ТОП30"><font color="#7777fa">top</font><font color="#fa7777">30</font></span>' + spanlistpadd; t30span.id = 't30sp'; t30span.style = "display:none"; var newspan = document.createElement('span'); newspan.id = 'checksp'; if (foundID > -1) { sendAlert(jNode); console.log("[MetaBot for Youtube] user found in ERKY-db: " + userID); if (GM_config.get('option1') == 2) { foundIDp1 = -1; foundIDc1 = -1; foundIDc2 = -1; foundIDc3 = -1; var hidspan = document.createElement('span'); hidspan.innerHTML = 'Комментарий скрыт: пользователь найден в ЕРКЮ'; hidspan.classList.add('badge'); hidspan.classList.add('badge-style-type-simple'); hidspan.classList.add('ytd-badge-supported-renderer'); hidspan.style = 'margin: 0 0 10px 0;text-align:center'; $(jNode).parent().parent().after(hidspan); $(jNode).parent().parent().hide(); } else { markredNew($(pNode).parent(), arrayERKY[foundID + 1]); } $(comURL).append(t30span); $(newspan).attr('data-chan', $(jNode).find("a#author-text")[0].href); pNode.insertBefore(newspan, pNode.firstChild); } else { newspan.innerHTML = '<img id="checkbtn" src="' + checkb + '" title="Проверить дату регистрации" style="cursor: help" />'; $(newspan).attr('data-chan', $(jNode).find("a#author-text")[0].href); pNode.insertBefore(newspan, pNode.firstChild); t30span.innerHTML += '\u2003<span id="sendlink" style="cursor: pointer" title="Помогите пополнить список известных ботов - отправьте нам данные о подозрительном комментарии">\u27A4</span>'; $(comURL).append(t30span); $(jNode).find("#checkbtn")[0].addEventListener("click", function checkcommentNew() { checkdateNew($(pNode).parent()); }, false); $(jNode).find("#sendlink")[0].addEventListener("click", function displayinfoNew() { sendinfo(); }, false); } if (GM_config.get('option4') === true) { if (foundIDc1 > -1) { markcustomNew($(pNode).parent(), arrayListC1[foundIDc1 + 1], 1); } if (foundIDc2 > -1) { markcustomNew($(pNode).parent(), arrayListC2[foundIDc2 + 1], 2); } if (foundIDc3 > -1) { markcustomNew($(pNode).parent(), arrayListC3[foundIDc3 + 1], 3); } if (foundIDp1 > -1) { if ($(jNode).find("#checkbtn").length > 0) { $(jNode).find("#checkbtn")[0].remove(); } markpersonalNew($(pNode).parent(), arrayListP1[foundIDp1 + 1]); } $(jNode).find("#listpadd")[0].addEventListener("click", function addtolistNew() { if ($(pNode).find("span#bookmark").length > 0) { listpdelNew(pNode); $(jNode).find("#listpadd").html(iconsdef[0]); $(jNode).find("#listpadd")[0].title = 'Добавить в закладки'; } else { if ($(jNode).find("#checkbtn").length > 0) { $(jNode).find("#checkbtn")[0].remove(); } $(jNode).find("#listpadd").html('\u23F3'); getpage(listpaddNew, pNode, $(jNode).find("a")[0].href + '/about') } }, false); } $(jNode).find("#about")[0].addEventListener("click", function openaboutNew() { window.open($(jNode).find("a")[0].href + '/about'); }, false); $(jNode).find("#top30")[0].addEventListener("click", function opent30New() { window.open('https://www.t30p.ru/search.aspx?s=' + $(jNode).find("a")[0].href.split('/').pop()); }, false); this.addEventListener('yt-navigate-start', function wipeitemNewS() { this.removeEventListener('yt-navigate-start', wipeitemNewS); deleteitemNew(jNode, $(comURL).find("a")[0].href); }); this.addEventListener('yt-navigate-finish', function wipeitemNewF() { this.removeEventListener('yt-navigate-finish', wipeitemNewF); deleteitemNew(jNode, $(comURL).find("a")[0].href); }); } function recheckNew(jNode) { var checkre = $(jNode).find("#checksp")[0]; if (typeof checkre !== 'undefined') { if ($(checkre).attr('data-chan') !== $(jNode).find("a#author-text")[0].href) { $(jNode).find("#checksp").remove(); $(jNode).find("#t30sp").remove(); $(jNode).find("#botmark").remove(); var cNode = $(jNode).parent().parent().find("#content-text"); $(cNode).parent().removeAttr('style'); $(cNode).removeAttr('style'); $(jNode).find("ytd-toggle-button-renderer.ytd-comment-action-buttons-renderer:eq(1)").removeAttr('style'); parseitemNew(jNode); } } } function deleteitemNew(jNode, url) { if (url.length > 74) { $(jNode).parent().parent().remove(); } else { $(jNode).parent().parent().parent().remove(); } } function sendinfo() { var answer = confirm('Будет запущен Telegram.' + '\n\nПрисоединитесь к группе, отправьте ссылку на подозрительный' + '\nкомментарий (можно скопировать из даты публикации) и обоснуйте подозрения.\n\nПерейти к группе?'); if (answer) { window.open(reporturl); } } function listpadd(jNode, response, url) { window.tempHTML = document.createElement('html'); tempHTML.innerHTML = response; window.aboutSTAT = tempHTML.getElementsByClassName('about-stat'); var day = Dparse(aboutSTAT[aboutSTAT.length - 1].innerHTML); $('textarea#listpersonal')[0].value += url.substring(0, url.length - 6).split('/').pop() + '=' + day + '\n'; var tempArray = $('textarea#listpersonal')[0].value.split('\n'); var uniqArray = tempArray.reduce(function(a,b){ if (a.indexOf(b) < 0) a.push(b); return a; },[]); $('textarea#listpersonal')[0].value = uniqArray.join('\n'); GM_config.set('listp1', uniqArray.join('\n')); GM_config.save(); arrayListP1 = GM_config.get('listp1').match(/[^\r\n=]+/g); $(jNode).find("#listpadd").html('\u274C'); $(jNode).find("#listpadd")[0].title = 'Удалить из закладок'; markpersonal(jNode, day); console.log("[MetaBot for Youtube] Bookmarks (personal list) updated."); } function listpaddNew(jNode, response, url) { var matches = regexdate.exec(response); var day = Dparse(matches[3]); $('textarea#listpersonal')[0].value += url.substring(0, url.length - 6).split('/').pop() + '=' + day + '\n'; var tempArray = $('textarea#listpersonal')[0].value.split('\n'); var uniqArray = tempArray.reduce(function(a,b){ if (a.indexOf(b) < 0) a.push(b); return a; },[]); $('textarea#listpersonal')[0].value = uniqArray.join('\n'); GM_config.set('listp1', uniqArray.join('\n')); GM_config.save(); arrayListP1 = GM_config.get('listp1').match(/[^\r\n=]+/g); $(jNode).find("#listpadd").html('\u274C'); $(jNode).find("#listpadd")[0].title = 'Удалить из закладок'; markpersonalNew($(jNode).parent(), day); console.log("[MetaBot for Youtube] Bookmarks (personal list) updated."); } function listpdel(jNode) { $(jNode).find("span#bookmark").remove(); var tempArray = $('textarea#listpersonal')[0].value.split('\n'); var itemDel = arrayListP1.indexOf($(jNode).find("a")[0].href.split('/').pop()); tempArray.splice(itemDel / 2,1); $('textarea#listpersonal')[0].value = tempArray.join('\n'); GM_config.set('listp1', tempArray.join('\n')); GM_config.save(); arrayListP1 = GM_config.get('listp1').match(/[^\r\n=]+/g); $(jNode).next().css({ "background-image": "none", "border-right": "", "padding-right": "" }); console.log("[MetaBot for Youtube] Bookmarks (personal list) updated."); } function listpdelNew(jNode) { $(jNode).find("span#bookmark").remove(); var tempArray = $('textarea#listpersonal')[0].value.split('\n'); var itemDel = arrayListP1.indexOf($(jNode).find("a")[0].href.split('/').pop()); tempArray.splice(itemDel / 2,1); $('textarea#listpersonal')[0].value = tempArray.join('\n'); GM_config.set('listp1', tempArray.join('\n')); GM_config.save(); arrayListP1 = GM_config.get('listp1').match(/[^\r\n=]+/g); $(jNode).parent().parent().find("#content-text").parent().css({ "background-image": "none", "border-right": "", "padding-right": "" }); console.log("[MetaBot for Youtube] Bookmarks (personal list) updated."); } function checkdate(jNode) { if (['en', 'en-US', 'en-GB', 'ru', 'uk', 'be', 'bg'].indexOf(currentlang()) < 0) { alert('Функция поддерживается только на языках:\n \u2714 English\n \u2714 Русский\n \u2714 Українська\n \u2714 Беларуская \u2714 Български\nВы можете сменить язык интерфейса в меню настроек YouTube.'); return; } $(jNode).find("img")[0].remove(); getpage(procdate, jNode, $(jNode).find("a")[0].href + '/about'); } function checkdateMob(jNode) { var channelURL = $(jNode).find("a")[0].href + '/about?ajax=1'; var request = new XMLHttpRequest(); request.onreadystatechange = function() { if (request.readyState === 4) { if (request.status === 200) { var response = request.responseText; if (response !== "") { console.log("[MetaBot for Youtube] XMLHttpRequest done."); var matches = regexdatemob.exec(response); var testday = Dparse(decodeURIComponent(JSON.parse('"' + matches[3] + '"'))); $(jNode).parent().find("div.erb").find("a")[0].innerHTML = $(jNode).parent().find("div.erb").find("a")[0].innerHTML + ' <img src="' + minf + '" title="Дата регистрации:" /> ' + testday; $(jNode).parent().find("div.zqb").css({ "background": "rgba(170,170,170,0.3)", "border-left": "3px solid rgba(170,170,170,0.3)", "padding-left": "3px" }); } else { console.log("[MetaBot for Youtube] XMLHttpRequest failed."); } } } }; request.open("GET", channelURL, true); request.send(null); } function checkdateNew(jNode) { if (['en', 'en-US', 'en-GB', 'ru', 'uk', 'be', 'bg'].indexOf(currentlang()) < 0) { alert('Функция поддерживается только на языках:\n \u2714 English\n \u2714 Русский\n \u2714 Українська\n \u2714 Беларуская \u2714 Български\nВы можете сменить язык интерфейса в меню настроек YouTube.'); return; } $(jNode).find("#checkbtn")[0].remove(); var userID = $(jNode).find("a")[0].href.split('/').pop(); var foundID = arrayERKY.indexOf(userID); if (foundID > -1) { console.log("[MetaBot for Youtube] user found in ERKY-db: " + userID); markredNew(jNode, arrayERKY[foundID + 1]); } else { getpage(procdateNew, jNode, $(jNode).find("a")[0].href + '/about'); } } function procdate(jNode, response, url) { window.tempHTML = document.createElement('html'); tempHTML.innerHTML = response; window.aboutSTAT = tempHTML.getElementsByClassName('about-stat'); var testday = Dparse(aboutSTAT[aboutSTAT.length - 1].innerHTML); var newspan = document.createElement('span'); newspan.id = 'botmark'; newspan.innerHTML = ' <img src="' + minf + '" title="Дата регистрации:" /> ' + testday; $(jNode).find("a.comment-author-text").after(newspan); $(jNode).next().css({ "background": "rgba(170,170,170,0.3)", "border-left": "3px solid rgba(170,170,170,0.3)", "padding-left": "3px" }); delete window.aboutSTAT; delete window.tempHTML; } function procdateNew(jNode, response, url) { var matches = regexdate.exec(response); var testday = Dparse(matches[3]); var aNode = $(jNode).find("#author-text")[0]; var cNode = $(jNode).parent().find("#content-text")[0]; var newspan = document.createElement('span'); newspan.id = 'botmark'; var checkBadge = $(aNode).parent().find('span#author-comment-badge')[0]; newspan.innerHTML = '<img src="' + minf + '" title="Дата регистрации:" /> ' + testday; $(aNode).append(newspan); if ($(checkBadge).length > 0) { $(checkBadge).attr('hidden', ''); $(aNode).removeAttr('hidden'); } $(cNode).parent().css({ "background": "rgba(170,170,170,0.3)", "border-left": "3px solid rgba(170,170,170,0.3)", "padding-left": "3px" }); aNode = $(jNode).find("#checksp"); aNode.attr('data-chan', $(jNode).find("a#author-text")[0].href); aNode.hide(); } function markred(jNode, day) { var newspan = document.createElement('span'); newspan.id = 'botmark'; newspan.innerHTML = ' <img src="' + mred + '" title="- пользователь найден в #ЕРКЮ, дата регистрации -" /> ' + day; $(jNode).find("a.comment-author-text").after(newspan); $(jNode).next().css({ "background": "rgba(255,50,50,0.3)", "border-left": "3px solid rgba(255,50,50,0.3)", "padding-left": "3px" }); if (GM_config.get('option2') === true) { requestDislike(jNode, false); } } function markredMob(jNode, day) { $(jNode).parent().find("div.erb").find("a")[0].innerHTML = $(jNode).parent().find("div.erb").find("a")[0].innerHTML + ' <img src="' + mred + '" title="Пользователь найден в ЕРКЮ" /> ' + day; $(jNode).parent().find("div.zqb").css({ "background": "rgba(255,50,50,0.3)", "border-left": "3px solid rgba(255,50,50,0.3)", "padding-left": "3px" }); } function markredNew(jNode, day) { var aNode = $(jNode).find("#author-text")[0]; var cNode = $(jNode).parent().find("#content-text")[0]; var newspan = document.createElement('span'); newspan.id = 'botmark'; newspan.innerHTML = '<img src="' + mred + '" title="- найден в #ЕРКЮ, дата регистрации -" /> ' + day; $(aNode).append(newspan); var checkBadge = $(aNode).parent().find('span#author-comment-badge')[0]; if ($(checkBadge).length > 0) { $(checkBadge).attr('hidden', ''); $(aNode).removeAttr('hidden'); } $(cNode).parent().css({ "background": "rgba(255,50,50,0.3)", "border-left": "3px solid rgba(255,50,50,0.3)", "padding-left": "3px" }); if (GM_config.get('option2') === true) { requestDislike(jNode, true); } } function markcustom(jNode, day, list) { switch (list) { case 1: var listname = Aparse(arrayListC1[0]); break case 2: var listname = Aparse(arrayListC2[0]); break case 3: var listname = Aparse(arrayListC3[0]); } var botmark = $(jNode).find("#botmark"); var rgbCustom = gmColor('colorc' + list, 1) + "," + gmColor('colorc' + list, 2) + "," + gmColor('colorc' + list, 3); var marktxt = ' <span style="' + iconstyledef + ' color: rgb(' + rgbCustom + '); font-size: 1.3em;" title="Найден в списке ' + listname + '">' + iconsdef[list] + '</span> '; if (botmark.length > 0) { $(botmark).prepend(marktxt); } else { $(jNode).find("#checkbtn")[0].remove(); var newspan = document.createElement('span'); newspan.id = 'botmark'; newspan.innerHTML = marktxt + day; $(jNode).find("a.comment-author-text").after(newspan); $(jNode).next().css({ "background": "rgba(" + rgbCustom + ",.3)", "border-left": "3px solid rgba(" + rgbCustom + ",0.3)", "padding-left": "3px" }); } } function markcustomNew(jNode, day, list) { switch (list) { case 1: var listname = Aparse(arrayListC1[0]); break case 2: var listname = Aparse(arrayListC2[0]); break case 3: var listname = Aparse(arrayListC3[0]); } var aNode = $(jNode).find("#author-text")[0]; var cNode = $(jNode).parent().find("#content-text")[0]; var checkBadge = $(aNode).parent().find('span#author-comment-badge')[0]; var botmark = $(cNode).parent().parent().parent().find("#botmark"); var rgbCustom = gmColor('colorc' + list, 1) + "," + gmColor('colorc' + list, 2) + "," + gmColor('colorc' + list, 3); var marktxt = '<span style="' + iconstyledef + ' color: rgb(' + rgbCustom + '); font-size: 1.3em;" title="Найден в списке ' + listname + '">' + iconsdef[list] + '</span> '; if (botmark.length > 0) { $(botmark).prepend(marktxt); } else { $(jNode).find("#checkbtn")[0].remove(); var newspan = document.createElement('span'); newspan.id = 'botmark'; newspan.innerHTML = marktxt + day; $(aNode).append(newspan); if ($(checkBadge).length > 0) { $(checkBadge).attr('hidden', ''); $(aNode).removeAttr('hidden'); } $(cNode).parent().css({ "background": "rgba(" + rgbCustom + ",.3)", "border-left": "3px solid rgba(" + rgbCustom + ",0.3)", "padding-left": "3px" }); } } function markpersonal(jNode, day) { $(jNode).find("#listpadd").html('\u274C'); $(jNode).find("#listpadd")[0].title = 'Удалить из закладок'; var botmark = $(jNode).parent().find("#botmark"); var rgbCustom = gmColor('colorp1', 1) + "," + gmColor('colorp1', 2) + "," + gmColor('colorp1', 3); var marktxt = ' <span id="bookmark" style="' + iconstyledef + ' color: rgb(' + rgbCustom + '); font-size: 1.3em;" title="Добавлен в закладки">' + iconsdef[0] + '</span> '; if (botmark.length > 0) { $(botmark).prepend(marktxt); $(jNode).next().css({ "background-image": "linear-gradient(230deg, rgba(" + rgbCustom + ",.4) 20%, rgba(0,0,0,0) 30%)" }); } else { var newspan = document.createElement('span'); newspan.id = 'botmark'; newspan.innerHTML = marktxt + day; $(jNode).find("a.comment-author-text").after(newspan); $(jNode).next().css({ "background": "linear-gradient(230deg, rgba(" + rgbCustom + ",.4) 20%, rgba(0,0,0,0) 30%)" }); } $(jNode).next().css({ "background-origin": "border-box", "border-right": "3px solid rgba(" + rgbCustom + ",.3)", "padding-right": "3px" }); } function markpersonalNew(jNode, day) { $(jNode).find("#listpadd").html('\u274C'); $(jNode).find("#listpadd")[0].title = 'Удалить из закладок'; var aNode = $(jNode).find("#author-text")[0]; var cNode = $(jNode).parent().find("#content-text")[0]; var checkBadge = $(aNode).parent().find('span#author-comment-badge')[0]; var botmark = $(cNode).parent().parent().parent().find("#botmark"); var rgbCustom = gmColor('colorp1', 1) + "," + gmColor('colorp1', 2) + "," + gmColor('colorp1', 3); var marktxt = '<span id="bookmark" style="' + iconstyledef + ' color: rgb(' + rgbCustom + '); font-size: 1.3em;" title="Добавлен в закладки">' + iconsdef[0] + '</span> '; if (botmark.length > 0) { $(botmark).prepend(marktxt); $(cNode).parent().css({ "background-image": "linear-gradient(230deg, rgba(" + rgbCustom + ",.4) 20%, rgba(0,0,0,0) 30%)" }); } else { var newspan = document.createElement('span'); newspan.id = 'botmark'; newspan.innerHTML = marktxt + day; $(aNode).append(newspan); if ($(checkBadge).length > 0) { $(checkBadge).attr('hidden', ''); $(aNode).removeAttr('hidden'); } $(cNode).parent().css({ "background": "linear-gradient(230deg, rgba(" + rgbCustom + ",.4) 20%, rgba(0,0,0,0) 30%)" }); } $(cNode).parent().css({ "background-origin": "border-box", "border-right": "3px solid rgba(" + rgbCustom + ",.3)", "padding-right": "3px" }); } function gmColor(gmVar, colpos) { return parseInt(parseColor(GM_config.get(gmVar), false).slice(colpos*2-1, colpos*2+1), 16) } function requestDislike(jNode, isNew) { var element; if (isNew) { element = $(jNode).parent().find("ytd-toggle-button-renderer.ytd-comment-action-buttons-renderer:not(.style-default-active)")[1]; } else { element = $(jNode).parent().find(".yt-uix-button.comment-action-buttons-renderer-thumb[aria-checked='false']")[1]; } if (element) orderedClicksArray.push(element); if (bDTaskSet == 0) { bDTaskSet = 1; setTimeout(scheduledDislike, minDCTime + Math.random() * (maxDCTime - minDCTime), isNew); } } function scheduledDislike(isNew) { if ( bDBlur || document.querySelector('paper-dialog.ytd-popup-container:not([style*="display:none"]):not([style*="display: none"])') || document.querySelector('div.yt-dialog-fg-content.yt-dialog-show-content') ) { setTimeout(scheduledDislike, minDCTime + Math.random() * (maxDCTime - minDCTime), isNew); } else { if (orderedClicksArray.length) { var element = orderedClicksArray.shift(); if ( (isNew && !(element.classList.contains("style-default-active"))) || (element.getAttribute("aria-checked") == "false") ) { $(element).css({"background": "rgba(255,50,50,0.3)"}); if (isNew) {$(element).css({"border-radius": "50%"});} element.click(); } else { setTimeout(scheduledDislike, 100, isNew); return; } setTimeout(scheduledDislike, minDCTime + Math.random() * (maxDCTime - minDCTime), isNew); } else { bDTaskSet = 0; } } } function Dparse(day) { day = day.replace(/Joined |Дата регистрации: |Ви приєдналися |Член от |Далучыўся(-лася) /i, ''); day = day.replace(/ янв\. | января | січ\. |\.01\./i, ' Jan, '); day = day.replace(/ февр\. | февраля | лют\. |\.02\./i, ' Feb, '); day = day.replace(/ мар\. | марта | бер\. |\.03\./i, ' Mar, '); day = day.replace(/ апр\. | апреля | квіт\. |\.04\./i, ' Apr, '); day = day.replace(/ мая\. | мая | трав\. |\.05\./i, ' May, '); day = day.replace(/ июн\. | июня | черв\.|\.06\./i, ' Jun, '); day = day.replace(/ июл\. | июля | лип\. |\.07\./i, ' Jul, '); day = day.replace(/ авг\. | августа | серп\. |\.08\./i, ' Aug, '); day = day.replace(/ сент\. | сентября | вер\. |\.09\./i, ' Sep, '); day = day.replace(/ окт\. | октября | жовт\. |\.10\./i, ' Oct, '); day = day.replace(/ нояб\. | ноября | лист\. |\.11\./i, ' Nov, '); day = day.replace(/ дек\. | декабря | груд\. |\.12\./i, ' Dec, '); day = day.replace(/ г\.| р\./i, ''); return day; } function Aparse(text) { if (ytmode === 1) { var isNew = true; } else { var isNew = false; } text = text.replace(/&/g, '&'); text = text.replace(/</g, '<'); text = text.replace(/>/g, '>'); text = text.replace(/\r\n/g, '<br>'); if (isNew) { text = text.replace(/\[(.+?)\]\((.+?)\)/g, '<a href="$2" target="_blank" style="color:rgba(39,147,230,1);">$1</a>'); } else { text = text.replace(/\[(.+?)\]\((.+?)\)/g, '<a href="$2" target="_blank">$1</a>'); } text = text.replace(/\*\*(.*?)\*\*/g, '<b>$1</b>'); text = text.replace(/\*(.*?)\*/g, '<i>$1</i>'); text = text.replace(/__(.*?)__/g, '<u>$1</u>'); return text; } function currentlang() { return regexlang.exec(document.body.innerHTML)[1]; } function currentlangmob() { return document.documentElement.lang; } function getURLParameter(name, link) { return decodeURIComponent((new RegExp('[?|&]' + name + '=([^&;]+?)(&|#|;|$)').exec(link) || [null, ''])[1].replace(/\+/g, '%20')) || null; } function ytOldDesign() { var getDesignCookie = function (cookie) { var prefs = cookie.split("; ").filter(function (v) { return v.indexOf("PREF=") === 0; })[0]; if (!prefs) { return "PREF=f6=8"; } var entries = prefs.substr(5).split('&'); var set = false; for (var i = 0; i < entries.length; i++) { if (entries[i].indexOf("f6=") === 0) { set = true; entries[i] = "f6=8"; } } if (!set) { entries.push("f6=8"); } return "PREF=" + entries.join('&'); }; document.cookie = getDesignCookie(document.cookie) + ";domain=.youtube.com;path=/"; } function ytNewDesign() { var requestSw = new XMLHttpRequest(); requestSw.open("POST", "https://www.youtube.com/new?optin=true", true); requestSw.send(null); } function parseColor(color, toNumber) { if (toNumber === true) { if (typeof color === 'number') { return (color | 0); } if (typeof color === 'string' && color[0] === '#') { color = color.slice(1); } return parseInt(color, 16); } else { color = '#' + ('00000' + (color | 0).toString(16)).substr(-6); return color; } } $(window).focus(function() { bDBlur = 0; }); $(window).blur(function() { bDBlur = 1; }); function getpage(callback, jNode, url) { var request = new XMLHttpRequest(); request.onreadystatechange = function() { if (request.readyState === 4) { if (request.status === 200) { if (request.responseText !== "") { console.log("[MetaBot for Youtube] XMLHttpRequest done: " + url); callback(jNode, request.responseText, url); } } } }; request.open("GET", url, true); request.send(null); } function getlist(callback, numArr, url) { if (typeof GM_xmlhttpRequest !== 'undefined') { GM_xmlhttpRequest({ method: "GET", url: url, onload: function(response) { callback(numArr, response.responseText, response.status, url); } }); } else if (typeof GM !== 'undefined') { GM.xmlHttpRequest({ method: "GET", url: url, onload: function(response) { callback(numArr, response.responseText, response.status, url); } }); } else { console.log("[MetaBot for Youtube] Unable to get supported cross-origin XMLHttpRequest function."); } } function waitForKeyElements(selectorTxt, actionFunction, bWaitOnce, iframeSelector) { var targetNodes, btargetsFound; if (typeof iframeSelector == "undefined") targetNodes = $(selectorTxt); else targetNodes = $(iframeSelector).contents().find(selectorTxt); if (targetNodes && targetNodes.length > 0) { btargetsFound = true; targetNodes.each(function() { var jThis = $(this); var alreadyFound = jThis.data('alreadyFound') || false; if (!alreadyFound) { var cancelFound = actionFunction(jThis); if (cancelFound) btargetsFound = false; else jThis.data('alreadyFound', true); } }); } else { btargetsFound = false; } var controlObj = waitForKeyElements.controlObj || {}; var controlKey = selectorTxt.replace(/[^\w]/g, "_"); var timeControl = controlObj[controlKey]; if (btargetsFound && bWaitOnce && timeControl) { clearInterval(timeControl); delete controlObj[controlKey]; } else { if (!timeControl) { timeControl = setInterval(function() { waitForKeyElements(selectorTxt, actionFunction, bWaitOnce, iframeSelector); }, 300); controlObj[controlKey] = timeControl; } } waitForKeyElements.controlObj = controlObj; }
ccd0 / 4chan X ProxyTool for making 4chan X work in browsers that don't support userscripts.
IanDesuyo / YoutubeMusicLyricsA userscript to add lyric support for Youtube Music.
WulfSkol / SUR SketchfabUtilityRipperA Tampermonkey/Greasemonkey UserScript designed to download models from Sketchfab. It supports extracting models with PBR textures and provides GLTF support.
MrBlankCoding / CodeTweakCodeTweak is a lightweight, user script manager and editor. Designed to be a modern version of tampermonkey and to support manifest v3 unlike violent monkey.