DF Bookmarks

Tool to let you navigate easier through DF

当前为 2017-09-02 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name DF Bookmarks
  3. // @version 1.32
  4. // @description Tool to let you navigate easier through DF
  5. // @author A Meaty Alt
  6. // @include /onlinezombiemmo/index.php/
  7. // @exclude fairview.deadfrontier.com/onlinezombiemmo/index.php?page=21
  8. // @exclude https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=21
  9. // @grant none
  10. // @require https://greasyfork.org/scripts/32816-append-script/code/Append%20Script.js?version=215508
  11. // @noframes
  12. // @run-at document-idle
  13. // @namespace
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. var elements = {};
  18.  
  19. var hamburgerImg = document.createElement("img");
  20. hamburgerImg.src = "https://puu.sh/xpuv8/067b3cef24.png";
  21. hamburgerImg.height = "50";
  22. hamburgerImg.width = "40";
  23. elements.hamburgerLink = document.createElement("a");
  24. elements.hamburgerLink.href = "#";
  25. elements.hamburgerLink.id = "hamburger";
  26. elements.hamburgerLink.appendChild(hamburgerImg);
  27. elements.hamburgerLink.setAttribute("onclick", "showMenu()");
  28. elements.hamburgerLink.style.float += " left";
  29. elements.hamburgerLink.style.textAlign = "center";
  30. elements.hamburgerLink.style.marginLeft = "30px";
  31. function showMenu(){
  32. var menu = document.getElementById("menu_holder");
  33. if(menu){
  34. if(menu.hidden)
  35. menu.hidden = false;
  36. else
  37. menu.hidden = true;
  38. }
  39. else
  40. createMenu();
  41. }
  42. appendScript(showMenu.toString());
  43.  
  44. function createMenu(){
  45. function createBookmark(name, link, id){
  46. var newBookmarkHolder = document.createElement("span");
  47. newBookmarkHolder.classList.add("newBookmark");
  48. newBookmarkHolder.id = id;
  49. newBookmarkHolder.innerHTML += "<a href='"+link+"'>"+name + "</a>";
  50. newBookmarkHolder.style.marginLeft = "30px";
  51. var removeBookmarkImg = document.createElement("img");
  52. removeBookmarkImg.src = "https://cdn1.iconfinder.com/data/icons/perfect-flat-icons-2/512/Erase-2.png";
  53. removeBookmarkImg.style.height = "15px";
  54. removeBookmarkImg.style.width = "15px";
  55. removeBookmarkImg.style.cursor = "pointer";
  56. removeBookmarkImg.style.marginLeft = "10px";
  57. removeBookmarkImg.style.verticalAlign = "middle";
  58. removeBookmarkImg.id = "remove_"+id;
  59. removeBookmarkImg.setAttribute("onclick", 'var bookmarks = JSON.parse(localStorage.getItem("df_bookmarks"));delete bookmarks[this.parentElement.id];localStorage.setItem("df_bookmarks", JSON.stringify(bookmarks));this.parentElement.outerHTML = ""; ');
  60. newBookmarkHolder.appendChild(removeBookmarkImg);
  61. document.getElementById("new_bookmark_holder").appendChild(newBookmarkHolder);
  62. var bookmarks = localStorage.getItem("df_bookmarks")? JSON.parse(localStorage.getItem("df_bookmarks")) : {};
  63. bookmarks[newBookmarkHolder.id] = name+"|"+link;
  64. localStorage.setItem("df_bookmarks", JSON.stringify(bookmarks));
  65. }
  66. appendScript(createBookmark.toString());
  67. function loadBookmarks(){
  68. if(localStorage.getItem("df_bookmarks")){
  69. var bookmarks = JSON.parse(localStorage.getItem("df_bookmarks"));
  70. for(var id in bookmarks){
  71. var bookmark = bookmarks[id].split("|");
  72. createBookmark(bookmark[0], bookmark[1], id);
  73. }
  74. }
  75. }
  76. function createAddBookmark(){
  77. function addBookmark(){
  78. var name = prompt("Please enter a name for the bookmark");
  79. if(name){
  80. var link = prompt("Please enter a link for the bookmark (Don't forget the http:// or https:// at the begining of the address)");
  81. if(link){
  82. var amountBookmarks = localStorage.getItem("amountBookmarks");
  83. if(!amountBookmarks){
  84. localStorage.setItem("amountBookmarks", 0);
  85. }
  86. createBookmark(name, link, "bookmark_"+amountBookmarks+1);
  87. localStorage.setItem("amountBookmarks", parseInt(localStorage.getItem("amountBookmarks"))+1);
  88. }
  89. else{
  90. alert("Error adding bookmark");
  91. }
  92. }
  93. else{
  94. alert("Error adding bookmark");
  95. }
  96. }
  97. appendScript(addBookmark.toString());
  98. var addBookmarkImg = document.createElement("img");
  99. addBookmarkImg.src = "https://cdn3.iconfinder.com/data/icons/musthave/256/Add.png";
  100. addBookmarkImg.style.height = "30px";
  101. addBookmarkImg.style.width = "30px";
  102. addBookmarkImg.style.position = "relative";
  103. addBookmarkImg.style.cursor = "pointer";
  104. addBookmarkImg.style.marginBottom = "10px";
  105. addBookmarkImg.style.verticalAlign = "middle";
  106. addBookmarkImg.style.right = "30px";
  107. addBookmarkImg.style.right = "5px";
  108. addBookmarkImg.style.float = "right";
  109. addBookmarkImg.setAttribute("onclick", "addBookmark()");
  110. document.getElementById("menu_holder").appendChild(addBookmarkImg);
  111. }
  112. var menuHolder = document.createElement("div");
  113. menuHolder.style.position = "relative";
  114. menuHolder.style.top = "10px";
  115. menuHolder.id = "menu_holder";
  116. var bookmarkHolder = document.createElement("span");
  117. bookmarkHolder.id = "new_bookmark_holder";
  118. menuHolder.appendChild(bookmarkHolder);
  119. var table = document.getElementsByTagName("table")[7];
  120. table.appendChild(menuHolder);
  121. loadBookmarks();
  122. createAddBookmark();
  123. }
  124.  
  125. var outpostImg = document.createElement("img");
  126. outpostImg.src = "https://puu.sh/xl87q/22ec393481.png";
  127. outpostImg.height = "30";
  128. outpostImg.width = "30";
  129. elements.outpostLink = document.createElement("a");
  130. elements.outpostLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php";
  131. elements.outpostLink.appendChild(outpostImg);
  132. elements.outpostLink.innerHTML += "<div>Outpost</div>";
  133. elements.outpostLink.style.float += " left";
  134. elements.outpostLink.style.textAlign = "center";
  135. elements.outpostLink.style.marginLeft = "30px";
  136.  
  137. var creditImg = document.createElement("img");
  138. creditImg.src = "https://puu.sh/xl6wJ/505c55fd89.png";
  139. creditImg.height = "30";
  140. creditImg.width = "30";
  141. elements.creditLink = document.createElement("a");
  142. elements.creditLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=28";
  143. elements.creditLink.appendChild(creditImg);
  144. elements.creditLink.innerHTML += "<div>Credit Shop</div>";
  145. elements.creditLink.style.float += " left";
  146. elements.creditLink.style.textAlign = "center";
  147. elements.creditLink.style.marginLeft = "30px";
  148.  
  149. var forumImg = document.createElement("img");
  150. forumImg.src = "https://puu.sh/xl6wI/f7c1dc5342.png";
  151. forumImg.height = "30";
  152. forumImg.width = "30";
  153. elements.forumLink = document.createElement("a");
  154. elements.forumLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?action=forum";
  155. elements.forumLink.appendChild(forumImg);
  156. elements.forumLink.innerHTML += "<div>Forum</div>";
  157. elements.forumLink.style.float += " left";
  158. elements.forumLink.style.textAlign = "center";
  159. elements.forumLink.style.marginLeft = "30px";
  160.  
  161. var marketImg = document.createElement("img");
  162. marketImg.src = "https://puu.sh/xl6wG/9513335dc7.png";
  163. marketImg.height = "30";
  164. marketImg.width = "30";
  165. elements.marketLink = document.createElement("a");
  166. elements.marketLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=35";
  167. elements.marketLink.appendChild(marketImg);
  168. elements.marketLink.innerHTML += "<div>Market</div>";
  169. elements.marketLink.style.float += " left";
  170. elements.marketLink.style.textAlign = "center";
  171. elements.marketLink.style.marginLeft = "30px";
  172.  
  173. var bankImg = document.createElement("img");
  174. bankImg.src = "http://i.imgur.com/ves2oqQ.png";
  175. bankImg.height = "30";
  176. bankImg.width = "30";
  177. elements.bankLink = document.createElement("a");
  178. elements.bankLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=15";
  179. elements.bankLink.appendChild(bankImg);
  180. elements.bankLink.innerHTML += "<div>Bank</div>";
  181. elements.bankLink.style.float += " left";
  182. elements.bankLink.style.textAlign = "center";
  183. elements.bankLink.style.marginLeft = "30px";
  184.  
  185. var storageImg = document.createElement("img");
  186. storageImg.src = "http://i.imgur.com/uwgi6jw.png";
  187. storageImg.height = "30";
  188. storageImg.width = "30";
  189. elements.storageLink = document.createElement("a");
  190. elements.storageLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=50";
  191. elements.storageLink.appendChild(storageImg);
  192. elements.storageLink.innerHTML += "<div>Storage</div>";
  193. elements.storageLink.style.float += " left";
  194. elements.storageLink.style.textAlign = "center";
  195. elements.storageLink.style.marginLeft = "30px";
  196.  
  197. var logoutImg = document.createElement("img");
  198. logoutImg.src = "https://puu.sh/xl6wH/91e58a7b64.png";
  199. logoutImg.height = "30";
  200. logoutImg.width = "30";
  201. elements.logoutLink = document.createElement("a");
  202. elements.logoutLink.href = getLogoutLink();
  203. elements.logoutLink.appendChild(logoutImg);
  204. elements.logoutLink.innerHTML += "<div>Logout</div>";
  205. elements.logoutLink.style.float = "right";
  206. elements.logoutLink.style.textAlign = "center";
  207. elements.logoutLink.style.marginRight = "30px";
  208.  
  209. var profileImg = document.createElement("img");
  210. profileImg.src = "https://puu.sh/xldVQ/91268b98a4.png";
  211. profileImg.height = "30";
  212. profileImg.width = "30";
  213. elements.profileLink = document.createElement("a");
  214. elements.profileLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?action=profile";
  215. elements.profileLink.style.float = "right";
  216. elements.profileLink.appendChild(profileImg);
  217. elements.profileLink.innerHTML += "<div>Profile</div>";
  218. elements.profileLink.style.textAlign = "center";
  219. elements.profileLink.style.marginRight = "30px";
  220.  
  221. var inventoryImg = document.createElement("img");
  222. inventoryImg.src = "https://puu.sh/xle3E/7689941f18.png";
  223. inventoryImg.height = "30";
  224. inventoryImg.width = "30";
  225. elements.inventoryLink = document.createElement("a");
  226. elements.inventoryLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=25";
  227. elements.inventoryLink.style.float = "right";
  228. elements.inventoryLink.appendChild(inventoryImg);
  229. elements.inventoryLink.innerHTML += "<div>Inventory</div>";
  230. elements.inventoryLink.style.textAlign = "center";
  231. elements.inventoryLink.style.marginRight = "30px";
  232.  
  233. var yardImg = document.createElement("img");
  234. yardImg.src = "https://puu.sh/xmmVQ/44651a4cc6.png";
  235. yardImg.height = "30";
  236. yardImg.width = "30";
  237. elements.yardLink = document.createElement("a");
  238. elements.yardLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=24";
  239. elements.yardLink.style.float = "right";
  240. elements.yardLink.appendChild(yardImg);
  241. elements.yardLink.innerHTML += "<div>The Yard</div>";
  242. elements.yardLink.style.textAlign = "center";
  243. elements.yardLink.style.marginRight = "30px";
  244.  
  245. function getLogoutLink(){
  246. return $("img[name=logout]").parent()[0].href;
  247. }
  248.  
  249. var table = document.getElementsByTagName("table")[7];
  250. table.innerHTML = "<div id=bookmark_holder>";
  251. dst = document.getElementById("bookmark_holder");
  252. dst.style.overflow = "hidden";
  253.  
  254. for(var element in elements){
  255. if(element.indexOf("Link") > -1){
  256. dst.appendChild(elements[element]);
  257. }
  258. }
  259. table.style.backgroundImage = "url(https://puu.sh/xm1DU/7f0d182487.png)";
  260. table.style.transform = "scaleY(1.2)";
  261. table.style.position = "relative";
  262. table.style.top = "5px";
  263.  
  264. var annoyingBiatch = document.getElementsByTagName("tr")[1];
  265. annoyingBiatch.style.height = "220px";
  266. appendScript(createMenu.toString());
  267. })();