// ==UserScript== // @name dAhub_MessageCenter_ContestWidget // @namespace dAhub_MessageCenter_ContestWidget // @description integrates dAhub's contest-feature into your messagebox! // @match https://www.deviantart.com/notifications/* // @version 1.29 // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js // @require https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js // @grant GM.setValue // @grant GM.getValue // @grant GM.xmlHttpRequest // @downloadURL https://update.greasyfork.icu/scripts/5769/dAhub_MessageCenter_ContestWidget.user.js // @updateURL https://update.greasyfork.icu/scripts/5769/dAhub_MessageCenter_ContestWidget.meta.js // ==/UserScript== /* GM.xmlHttpRequest({ url:"https://phi.pf-control.de/jquery_min.js", method:"GET", onload: function(data){ eval(data.responseText); insertoptik(); checkupdate(); } }); */ //var $ = unsafeWindow.$; // var DiFi=unsafeWindow.DiFi; var curvis=0; var daten=[]; //{url, title,deadline,by,at,category,prize,description} var lastupdate=0; //timestamp - seconds after 1.1.1970 var hidelist=[]; //items to hide. (clicked on X! can also be unhidden again!) conteins list of id-hashes based on contestURL. var iconlist=[]; var settings=[]; async function loadSets(){ daten=await GM.getValue("daten",""); if(daten!="")daten=JSON.parse(daten);else daten=[]; hidelist=await GM.getValue("hidelist",""); if(hidelist!="")hidelist=JSON.parse(hidelist);else hidelist=[]; lastupdate=await GM.getValue("lastupdate",""); iconlist=await GM.getValue("iconlist",""); if(iconlist!="")iconlist=JSON.parse(iconlist);else iconlist=[]; settings=await GM.getValue("settings",""); if(settings!="")settings=JSON.parse(settings);else settings=[]; } async function getdata(){ GM.xmlHttpRequest({ url:"https://anothercontestgroup.deviantart.com/journal/Upcoming-Contests-Updated-Daily-426223868#"+Math.round(Math.random()*1000), method: "get", onload:function(data){ readdata(data.responseText); }, onerror:function(data){ } }); } function readdata(source){ daten=[]; var analyzeRex=/]*?.deviantart.com\/deviation\/[^>]*?)>(.*?)<\/a>.*?Deadline:<\/b>([^<]*?)(.*?)
.*?(?:Hosted at:<\/b>(.*?)
.*?)?Categor(?:y|ies):<\/b>([^<]*?)
.*?Prize(?:s?):<\/b>([^<]*?)
.*?(.*?)(?:
\s*
]*?>\s*<\/a>\s*
|)/ig; var satz=""; var zwiicon=""; while (satz=analyzeRex.exec(source)){ satz.splice(0,1) if(satz[3].match(/https:\/\/(.*?)\.deviantart\.com/i)==null)continue; //banned! zwiicon+=" :icon"+satz[3].match(/https:\/\/(.*?)\.deviantart\.com/i)[1]+": "; daten.push(satz); } geticons(zwiicon); //setTimeout(function(){ GM.setValue("daten",JSON.stringify(daten)); // $("#dAhub_CM_Tab span.ttext").html("dAhub Contests("+$("div#dAhub_content div.mcbox").filter(":visible").length+")"); //},0);//override security access for GM-features. } function inj(zwiicon){ DiFi.pushPost("Comments","preview_v2",[zwiicon,"1","1","426223868"],function(success, data){ var imgrex=/
]*?)>]*?)><\/a>/gi; var iconlist=data.response.content.match(imgrex); $("
").attr("data",JSON.stringify(iconlist)).appendTo($("body")); $("#dAhub_CM_Tab.selected").click(); }); DiFi.send(); } function iconlistener(){ if($("#dahub_icon_temp").length==0)return; // setTimeout(function(){ GM.setValue("iconlist",$("#dahub_icon_temp").attr("data")); // },0); $("#dahub_icon_script, #dahub_icon_temp").remove(); var prom = (async ()=>{iconlist=JSON.parse(await GM.getValue("iconlist",null));}); prom.then(()=>{ $("#dAhub_CM_Tab span.ttext").html("dAhub Contests("+iconlist.length+")"); clearInterval(iclI); }); } function geticons(zwiicon){ $("