dev_journal_filter

let you filter your journals in your journal-edit-page

  1. // ==UserScript==
  2. // @name dev_journal_filter
  3. // @namespace dev_journal_filter
  4. // @description let you filter your journals in your journal-edit-page
  5. // @include http://my.deviantart.com/journal/?browse=1
  6. // @author dediggefedde
  7. // @grant GM_setValue
  8. // @grant GM_getValue
  9. // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
  10. // @version 0.96
  11. // ==/UserScript==
  12.  
  13. // GM_xmlhttpRequest({
  14. // url:"http://phi.pf-control.de/jquery_min.js",
  15. // method:"GET",
  16. // onload: function(data){
  17. // eval(data.responseText);
  18. (function(){
  19. // var $=unsafeWindow.jQuery,holder,query,offset,fPage,pPage,lPage;
  20. var curpage=0;
  21. var user=$("#oh-menu-deviant.oh-hasmenu a.oh-l span.username-with-symbol span.username").html();
  22. 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";
  23. var pdown="data:image/gif;base64,R0lGODlhEAAQAMIHACkwMDI6OjQ9PUFNTFVlY2FycWR2df%2F%2F%2FyH%2BEUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAAcALAAAAAAQABAAAAMteLrc%2FjCyIKqtIAOjyPhg%2BHGdKJKlCaKpyS7eCcXhy9CD3cT6PkqwAnBIXCQAADs%3D";
  24. 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>';
  25.  
  26. var getjid=new Array();
  27. if(GM_getValue("getjid")){getjid=GM_getValue("getjid").split(".");}
  28.  
  29. var jlist=new Array();
  30. var zarray=new Array();
  31. var difinach=new Array();
  32. var clist=new Array();
  33. var cvlist=new Array();
  34. var preparr = new Array();
  35. if(GM_getValue("jlist")){
  36. jlist=$.map(GM_getValue("jlist").split(String.fromCharCode(21)),function(n,i){return [n.split(String.fromCharCode(20))];});
  37. }
  38.  
  39. function getjournals(offset,prepend) {
  40. jlist=new Array();
  41. $.get("http://my.deviantart.com/journal/?browse=1&offset="+offset, function (data) {
  42. var doc=$(data).find("li.f");
  43. doc.each(function(){
  44. var url=$(this).find("span.side a.a").first().attr("href");
  45. var id=$(this).find("span.side a.a").last().attr("onclick").match(/id:(\d+)/i)[1]
  46. var ss=$(this).find("span.side").html();
  47. var fullurl=$(this).children("a.a").attr("href");
  48. var text=$(this).children("a.a").html();
  49. if(prepend && getjid.indexOf(id)!=-1){
  50. jlist=preparr.concat(jlist);
  51. window.setTimeout(function(){
  52. GM_setValue("jlist", $.map(jlist,function(n,i){return n.join(String.fromCharCode(20));}).join(String.fromCharCode(21)));
  53. GM_setValue("getjid",getjid.join("."));
  54. full(0);
  55. $(".gr h2>img:first-child").attr("src","http://st.deviantart.net/minish/gruzecontrol/icons/journal.gif?2");
  56. },0);
  57. return true;
  58. }
  59. if(prepend){
  60. preparr.push(new Array(url,id,ss,fullurl,text,clist[cvlist.indexOf(id)]));
  61. }else{
  62. jlist.push(new Array(url,id,ss,fullurl,text,clist[cvlist.indexOf(id)]));
  63. }
  64. getjid.push(id);
  65. });
  66. if(data.search(new RegExp('class="disabled"><span>Next</span>',"i"))==-1){
  67. getjournals(offset+50,prepend);
  68. }else{
  69. if(prepend){jlist=preparr.concat(jlist);}
  70. 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);
  71. full(0);
  72. $(".gr h2>img:first-child").attr("src","http://st.deviantart.net/minish/gruzecontrol/icons/journal.gif?2");
  73. }
  74. });
  75. }
  76. function getcategories(offset,prepend){
  77. $(".gr h2>img:first-child").attr("src",warteico);
  78. if(offset==0){clist=new Array();cvlist=new Array();}
  79. $.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) {
  80. var rex = /collect_rid=\\"\d+:(\d+)\\"[\s\S]*?symbol=\\".*?\\" category=\\"(.*?)">/gi;
  81. var iter="";
  82. var it=0;
  83. while(iter = rex.exec(data)){
  84. it+=1;
  85. if(prepend && getjid.indexOf(iter[1])!=-1){
  86. getjournals(0,true);
  87. return true;
  88. }
  89. cvlist.push(iter[1]);
  90. clist.push(iter[2]);
  91. }
  92. if(it==24){
  93. getcategories(offset+24,prepend);
  94. }else{
  95. if(!prepend){getjid=new Array();}
  96. preparr=new Array();
  97. getjournals(0,prepend);
  98. }
  99. });
  100. }
  101. function getcatsnach(offset){
  102. if(offset==0){clist=new Array();cvlist=new Array();}
  103. $.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) {
  104. var rex = /collect_rid=\\"\d+:(\d+)\\"[\s\S]*?symbol=\\".*?\\" category=\\"(.*?)">/gi;
  105. var iter="";
  106. var it=0;
  107. while(iter = rex.exec(data)){
  108. it+=1;
  109. if(cvlist.indexOf(iter[1])!=-1){return false;}
  110. if(difinach.indexOf(iter[1])!=-1){
  111. cvlist.push(iter[1]);
  112. clist.push(iter[2]);
  113. difinach.splice(difinach.indexOf(iter[1]),1);
  114. if(difinach.lenght==0){return true;}
  115. }
  116. }
  117. if(it==24){getcatsnach(offset+24);}
  118. });
  119. }
  120.  
  121. function pruf(item){
  122. if($("#djf_search").val()!=""){
  123. if(item[4].search(new RegExp($("#djf_search").val(), "i"))==-1){
  124. return false;}
  125. }
  126. if(!item[5] || item[5]=="Not yet in difi, try again in some minutes!"){
  127. if(cvlist.indexOf(item[1])!=-1){item[5]=clist[cvlist.indexOf(iter[2])];return true}
  128. item[5]="Not yet in difi, try again in some minutes!";
  129. var idx = getjid.indexOf(item[5]);
  130. if(idx!=-1){getjid.splice(idx, 1);}
  131. difinach.push(item[1]);
  132. return true;
  133. }
  134. if(item[5].indexOf("/personal")!=-1 && $("#djf_catlist input")[0].checked){return true;}
  135. if(item[5].indexOf("/culture")!=-1 && $("#djf_catlist input")[1].checked){return true;}
  136. if(item[5].indexOf("/art")!=-1 && $("#djf_catlist input")[2].checked){return true;}
  137. if(item[5].indexOf("/fun")!=-1 && $("#djf_catlist input")[3].checked){return true;}
  138. if(item[5].indexOf("/deviantart")!=-1 && $("#djf_catlist input")[4].checked){return true;}
  139. return false
  140. }
  141. function full(site){
  142. curpage=site;
  143. console.log(jlist.length);
  144. if(jlist.length==0){return true;}
  145. $("#journal_sidebar li.f").remove();
  146. console.log($("#journal_sidebar li.f"));
  147. zarray=new Array();
  148. zarray=$.map(jlist,function(n,i){if(!pruf(n)){return null;}return [n];});
  149. $.each(zarray.slice(site*50,site*50+50),function(i,n){
  150. var item = itemtempl.replace("##1##",n[0]);
  151. item =item.replace(/##2##/g,n[1]);
  152. item =item.replace("##3##",n[2]);
  153. item =item.replace("##4##",n[3]);
  154. item =item.replace("##5##",n[4]);
  155. item =item.replace("##6##",n[5]);
  156. $("#journal_sidebar ul.f.list").append(item);
  157. });
  158. $("#journal_sidebar ul.f.list li.f").filter(":odd").attr("class","f a");
  159. if(curpage<(zarray.length/50)-1){
  160. $("#journal_sidebar .pages .next a").attr("class","");
  161. }else{
  162. $("#journal_sidebar .pages .next a").attr("class","disabled");
  163. }
  164. if(curpage>0){
  165. $("#journal_sidebar .pages .prev a").attr("class","");
  166. }else{
  167. $("#journal_sidebar .pages .prev a").attr("class","disabled");
  168. }
  169. if(difinach.length!=0){if(getcatsnach(0)){full(0);}}
  170. }
  171.  
  172. var fjid=$("#journal_sidebar ul.f.list li.f form input").attr("value");
  173. if(getjid.indexOf(fjid)==-1){getcategories(0);}
  174.  
  175.  
  176. $(".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>");
  177. $(".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>");
  178.  
  179. $("#djf_catlist").css({"background-color": "#D6DED4","padding": "10px","border-radius": "15px","border": "1px solid #89968A","z-index": "99"});
  180. $("#djf_contcatlist").css({"padding-top": "30px","position": "absolute","right": "45px","z-index": "999","display":"none"});
  181. $("#djf_reit").css("float","right");
  182. $("#journal_sidebar").css("overflow","visible");
  183.  
  184. $("#djf_contcatlist").mouseleave(function(){$("#djf_contcatlist").css("display","none");});
  185. $("#djf_cats").mouseover(function(){$("#djf_contcatlist").css("display","");});
  186.  
  187. full(0);
  188.  
  189. $("#djf_catlist input").click(function(){full(0);});
  190. $(".gr-box .gr h2>img:first-child").click(function(){jlist=new Array();clist=new Array();getcategories(0,false);});
  191. $("#journal_sidebar .pages .prev a").click(function(){
  192. if(curpage>0){
  193. full(curpage-1);
  194. return false;
  195. }else{return false;}
  196. });
  197. $("#journal_sidebar .pages .next a").click(function(){
  198. if(curpage<(zarray.length/50)-1){
  199. full(curpage+1);
  200. return false;
  201. }else{return false;}
  202. });
  203. if(zarray.length>50){$("#journal_sidebar .pages .next a").attr("class","");}
  204. $("#djf_search").keyup(function(){full(0);})
  205. })();
  206. // }});