// ==UserScript==
// @name dev_journal_filter
// @namespace dev_journal_filter
// @description let you filter your journals in your journal-edit-page
// @include http://my.deviantart.com/journal/?browse=1
// @author dediggefedde
// @grant GM_setValue
// @grant GM_getValue
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
// @version 0.96
// ==/UserScript==
// GM_xmlhttpRequest({
// url:"http://phi.pf-control.de/jquery_min.js",
// method:"GET",
// onload: function(data){
// eval(data.responseText);
(function(){
// var $=unsafeWindow.jQuery,holder,query,offset,fPage,pPage,lPage;
var curpage=0;
var user=$("#oh-menu-deviant.oh-hasmenu a.oh-l span.username-with-symbol span.username").html();
var warteico="data:image/gif,GIF89a%14%00%14%00%CC%00%00%00%00%00%00%00%00OOOiii%FF%FF%FF%D2%FF%C7%DA%A4%02%99%99%99%7F%7F%7F%A2z%02%FE%E4%95'''%93%93%93%5C%5C%5C%FD%CB5mmmttt444%88%88%88%B9%9EM%D3%D3%D3%A7%A7%A7%B4%B4%B4%CC%CC%CCdW.%A6%99rND%26LLL%7FrJ%80e%14%94y(%00%00%00!%FF%0BNETSCAPE2.0%03%01%00%00%00!%F9%04%09%19%00%00%00%2C%05%00%01%00%0A%00%12%00%40%05Q%20%00%0CA%19%0Cb%1A%24E%90%8EB%2C%A3%40%608wa%B80A%18%05%01j%200%99%84%A2%95C%C7%13%11%09A%DA%D3%E7%8B%8E%0C%C0%C2o%98%90%C9%0CC%01%B6%A0%40%3A%C5%D6W%E0%D0z%D5~%DAf%C0g%80%12%5C%C4%83~o%26%99h!%00!%F9%04%09%0A%00%00%00%2C%05%00%01%00%0A%00%12%00%40%05R%20%00%0CA%19%0Cb%1A%24E%90%8EB%2C%A3%40%608wa%B80%E1%17%02%D4%40%602%05E%2B%87%8E'%1A%12%804%A7Aa%60%1D%07%BEg%81%20%24%C8d%06%A1%C0%60((%8E%CD1%F4U%3B%B4%D8%81%1F%81%19'%18%9Es%D8a%CFG%93L4!%00!%F9%04%09%19%00%00%00%2C%05%00%01%00%0A%00%12%00%40%05U%20%00%0CA%19%0Cb%1A%24E%90%8EB%2C%A3%40%E0%18%04Q8.L%24%3A%01j%200%99%84%A2%80%C2Q0%F4D%C4%20%8DhPT%0D%05%E4%20W(%E4%86%09%99%8C0%14%24%B0%0A%24T%80U%AB%0E%ADW%8D%80%25%3C%03t%03%CB%0E%3B%F8%FFj%24%264!%00!%F9%04%09%19%00%00%00%2C%05%00%01%00%0A%00%12%00%40%05Q%20%00%0CA%19%0Cb%1A%24E%90%8EB%2C%A3%40%E0%10xA%B8%B0%91(%05%01j%200%99%84%A2%80%C2Q0%F0DDB%90F4(%AC%86%E9(%A7%23%0C%092%99%17%96%90%82i%3D%ED%2Bph%BDj%B9%9D*a%F0%E9%5C%C4%83~%8F%1C%19i!%00!%F9%04%09%19%00%00%00%2C%05%00%01%00%0A%00%12%00%40%05P%20%00%0CA%19%0Cb%1A%24E%90%8EB%2C%A3%40%40%DCDA%B8%B0%92%18%05%01j%200%99%84%A2%80!g%E0%89%889%24%CC%A0%A0%02%91%83%5BAG%18%12d%B2.L%FB%A5M%83%E6%E4%A1%F5%AA%11%80%09%A7%D2%60%605a%87%BC%5EJ2%D1B%00!%F9%04%09%19%00%00%00%2C%03%00%01%00%0F%00%12%00%40%05z%20%20%8E%A2e%1Dd%1Ah%C9%25%04H%8A%04K%005i.6%15Q%BD%B0AC%60(%16%0C%9D%80.%D5%98!%0AN%DD%83P%20X%19%16%00%010%80Q%08%0CeJ%22%80%1C%26GNd%C9%9CFu%01%86%A0%86%20%1C%B2*%06%950%17Hr%0B%19Urb%233%02h%1B%0F)%03%0F%08%14%0A%06%05%1E8%8C%01%07%17%92%06%02%18p%0Be%05%13%9Cl%08%11%0D%03K!%00!%F9%04%09%19%00%00%00%2C%02%00%05%00%10%00%0A%00%40%05D%200%0C%40i%9E%23%10%08B%40%9Eb%40%B4%ABa%14%06q%10%05%E1%174%81%AF%F5%1A%ACx%C1%9B!%11%F4!%03%2B%22%2C6%83%0A%14%05E%F5%F8%0B*%12%85%84%ED%D0%EBZ%C5%D2%98%B0*zMK%A9%10%00!%F9%04%09%19%00%00%00%2C%02%00%01%00%0F%00%12%00%40%05%7B%20%20%02%C7%C3%8C(%8A%04%C2%95hH*%03%10%14%2CA%0C%0C%EB%22T%86%CAc%96%0A%1C%08%05%82r%D1%00%AC%10%06%C4%A2r%92I%18%06C!%3B%24%8E%02%0C%02E%3A%20F%8E%C8%03D%20%11%3D%0D%8F%A6%EC%B0(%F4%04%8C%80U%E0%DB%1A%F2fxZ%19%0B%5E%24%0F%1B%04%13%01%11%3A3%0D%14%13Ic%0Fe)%02%02H%04%17%07%01%96(%98%07j%7CzD%03%0D%8D%23!%00%3B";
var pdown="data:image/gif;base64,R0lGODlhEAAQAMIHACkwMDI6OjQ9PUFNTFVlY2FycWR2df%2F%2F%2FyH%2BEUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAAcALAAAAAAQABAAAAMteLrc%2FjCyIKqtIAOjyPhg%2BHGdKJKlCaKpyS7eCcXhy9CD3cT6PkqwAnBIXCQAADs%3D";
var itemtempl=' <li class="f"> <span class="side"> <a href="##1##" class="a">Edit</a> <form style="display:inline" action="http://my.deviantart.com/journal/delete" method="post"> <input value="##2##" name="journalid" type="hidden"> <a href="#" class="a" onclick="return DWait.readyLink(\'jms/pages/art/deviation.js\', this, \'Deviation._delete(##2##)\')">Delete</a> </form> </span> <span class="side">##3##</span> <a class="a" href="##4##" title="##6##">##5##</a> </li>';
var getjid=new Array();
if(GM_getValue("getjid")){getjid=GM_getValue("getjid").split(".");}
var jlist=new Array();
var zarray=new Array();
var difinach=new Array();
var clist=new Array();
var cvlist=new Array();
var preparr = new Array();
if(GM_getValue("jlist")){
jlist=$.map(GM_getValue("jlist").split(String.fromCharCode(21)),function(n,i){return [n.split(String.fromCharCode(20))];});
}
function getjournals(offset,prepend) {
jlist=new Array();
$.get("http://my.deviantart.com/journal/?browse=1&offset="+offset, function (data) {
var doc=$(data).find("li.f");
doc.each(function(){
var url=$(this).find("span.side a.a").first().attr("href");
var id=$(this).find("span.side a.a").last().attr("onclick").match(/id:(\d+)/i)[1]
var ss=$(this).find("span.side").html();
var fullurl=$(this).children("a.a").attr("href");
var text=$(this).children("a.a").html();
if(prepend && getjid.indexOf(id)!=-1){
jlist=preparr.concat(jlist);
window.setTimeout(function(){
GM_setValue("jlist", $.map(jlist,function(n,i){return n.join(String.fromCharCode(20));}).join(String.fromCharCode(21)));
GM_setValue("getjid",getjid.join("."));
full(0);
$(".gr h2>img:first-child").attr("src","http://st.deviantart.net/minish/gruzecontrol/icons/journal.gif?2");
},0);
return true;
}
if(prepend){
preparr.push(new Array(url,id,ss,fullurl,text,clist[cvlist.indexOf(id)]));
}else{
jlist.push(new Array(url,id,ss,fullurl,text,clist[cvlist.indexOf(id)]));
}
getjid.push(id);
});
if(data.search(new RegExp('class="disabled"><span>Next</span>',"i"))==-1){
getjournals(offset+50,prepend);
}else{
if(prepend){jlist=preparr.concat(jlist);}
window.setTimeout(function(){GM_setValue("jlist", $.map(jlist,function(n,i){return n.join(String.fromCharCode(20));}).join(String.fromCharCode(21)));GM_setValue("getjid",getjid.join("."));},0);
full(0);
$(".gr h2>img:first-child").attr("src","http://st.deviantart.net/minish/gruzecontrol/icons/journal.gif?2");
}
});
}
function getcategories(offset,prepend){
$(".gr h2>img:first-child").attr("src",warteico);
if(offset==0){clist=new Array();cvlist=new Array();}
$.get("http://my.deviantart.com/global/difi/?c[]=%22Resources%22,%22htmlFromQuery%22,[%22by:"+user+"%20in:journals%22,"+offset+",24,%22thumb150%22,%22artist:0,title:1%22]&t=json", function (data) {
var rex = /collect_rid=\\"\d+:(\d+)\\"[\s\S]*?symbol=\\".*?\\" category=\\"(.*?)">/gi;
var iter="";
var it=0;
while(iter = rex.exec(data)){
it+=1;
if(prepend && getjid.indexOf(iter[1])!=-1){
getjournals(0,true);
return true;
}
cvlist.push(iter[1]);
clist.push(iter[2]);
}
if(it==24){
getcategories(offset+24,prepend);
}else{
if(!prepend){getjid=new Array();}
preparr=new Array();
getjournals(0,prepend);
}
});
}
function getcatsnach(offset){
if(offset==0){clist=new Array();cvlist=new Array();}
$.get("http://my.deviantart.com/global/difi/?c[]=%22Resources%22,%22htmlFromQuery%22,[%22by:"+user+"%20in:journals%22,"+offset+",24,%22thumb150%22,%22artist:0,title:1%22]&t=json", function (data) {
var rex = /collect_rid=\\"\d+:(\d+)\\"[\s\S]*?symbol=\\".*?\\" category=\\"(.*?)">/gi;
var iter="";
var it=0;
while(iter = rex.exec(data)){
it+=1;
if(cvlist.indexOf(iter[1])!=-1){return false;}
if(difinach.indexOf(iter[1])!=-1){
cvlist.push(iter[1]);
clist.push(iter[2]);
difinach.splice(difinach.indexOf(iter[1]),1);
if(difinach.lenght==0){return true;}
}
}
if(it==24){getcatsnach(offset+24);}
});
}
function pruf(item){
if($("#djf_search").val()!=""){
if(item[4].search(new RegExp($("#djf_search").val(), "i"))==-1){
return false;}
}
if(!item[5] || item[5]=="Not yet in difi, try again in some minutes!"){
if(cvlist.indexOf(item[1])!=-1){item[5]=clist[cvlist.indexOf(iter[2])];return true}
item[5]="Not yet in difi, try again in some minutes!";
var idx = getjid.indexOf(item[5]);
if(idx!=-1){getjid.splice(idx, 1);}
difinach.push(item[1]);
return true;
}
if(item[5].indexOf("/personal")!=-1 && $("#djf_catlist input")[0].checked){return true;}
if(item[5].indexOf("/culture")!=-1 && $("#djf_catlist input")[1].checked){return true;}
if(item[5].indexOf("/art")!=-1 && $("#djf_catlist input")[2].checked){return true;}
if(item[5].indexOf("/fun")!=-1 && $("#djf_catlist input")[3].checked){return true;}
if(item[5].indexOf("/deviantart")!=-1 && $("#djf_catlist input")[4].checked){return true;}
return false
}
function full(site){
curpage=site;
console.log(jlist.length);
if(jlist.length==0){return true;}
$("#journal_sidebar li.f").remove();
console.log($("#journal_sidebar li.f"));
zarray=new Array();
zarray=$.map(jlist,function(n,i){if(!pruf(n)){return null;}return [n];});
$.each(zarray.slice(site*50,site*50+50),function(i,n){
var item = itemtempl.replace("##1##",n[0]);
item =item.replace(/##2##/g,n[1]);
item =item.replace("##3##",n[2]);
item =item.replace("##4##",n[3]);
item =item.replace("##5##",n[4]);
item =item.replace("##6##",n[5]);
$("#journal_sidebar ul.f.list").append(item);
});
$("#journal_sidebar ul.f.list li.f").filter(":odd").attr("class","f a");
if(curpage<(zarray.length/50)-1){
$("#journal_sidebar .pages .next a").attr("class","");
}else{
$("#journal_sidebar .pages .next a").attr("class","disabled");
}
if(curpage>0){
$("#journal_sidebar .pages .prev a").attr("class","");
}else{
$("#journal_sidebar .pages .prev a").attr("class","disabled");
}
if(difinach.length!=0){if(getcatsnach(0)){full(0);}}
}
var fjid=$("#journal_sidebar ul.f.list li.f form input").attr("value");
if(getjid.indexOf(fjid)==-1){getcategories(0);}
$(".gr-box .gr h2").append("<span id='djf_reit'>Search: <input type='text' id='djf_search' value=''/> <span id='djf_cats'>category <img alt='down' src='"+pdown+"' style='height:10px;'/></span></span>");
$(".gr-box").prepend("<div id='djf_contcatlist'><div id='djf_catlist'><input type='checkbox' checked='checked' />Personal<br /><input type='checkbox' checked='checked' />Culture<br /><input type='checkbox' checked='checked' />Art<br /><input type='checkbox' checked='checked' />Fun<br /><input type='checkbox' checked='checked' />Deviantart</div></div>");
$("#djf_catlist").css({"background-color": "#D6DED4","padding": "10px","border-radius": "15px","border": "1px solid #89968A","z-index": "99"});
$("#djf_contcatlist").css({"padding-top": "30px","position": "absolute","right": "45px","z-index": "999","display":"none"});
$("#djf_reit").css("float","right");
$("#journal_sidebar").css("overflow","visible");
$("#djf_contcatlist").mouseleave(function(){$("#djf_contcatlist").css("display","none");});
$("#djf_cats").mouseover(function(){$("#djf_contcatlist").css("display","");});
full(0);
$("#djf_catlist input").click(function(){full(0);});
$(".gr-box .gr h2>img:first-child").click(function(){jlist=new Array();clist=new Array();getcategories(0,false);});
$("#journal_sidebar .pages .prev a").click(function(){
if(curpage>0){
full(curpage-1);
return false;
}else{return false;}
});
$("#journal_sidebar .pages .next a").click(function(){
if(curpage<(zarray.length/50)-1){
full(curpage+1);
return false;
}else{return false;}
});
if(zarray.length>50){$("#journal_sidebar .pages .next a").attr("class","");}
$("#djf_search").keyup(function(){full(0);})
})();
// }});