Throne3d

NAFA (last updated: 2014-08-30 16:42)

Aug 30th, 2014
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 8.35 KB | None | 0 0
  1. javascript:
  2. var _a = {
  3.     "en" : {
  4.         "Subject" : "Subject",
  5.         "Attacker" : "Attacker",
  6.         "Origin" : "Origin",
  7.         "Defender" : "Defender",
  8.         "Destination" : "Destination"
  9.     }
  10. };
  11. var worldLetters = window.location.host.split(/\W+/)[0].substring(0, 2);
  12. var lang = (worldLetters && _a[worldLetters]) || "en";
  13. function _(thing){
  14.     return (_a[lang] && _a[lang][thing]) || (_a["en"] && _a["en"][thing]) || thing;
  15. }
  16.  
  17. function getQuery(name) {
  18.     name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
  19.     var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
  20.         results = regex.exec(location.search);
  21.     return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
  22. }
  23.  
  24. function getQueryFromHaystack(haystack, name){
  25.     name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
  26.     var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
  27.         results = regex.exec(haystack);
  28.     return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
  29. }
  30.  
  31. function onReport(doc, href){
  32.     var response = {};
  33.     //targetPlayer, targetCoords, targetId, sendPlayer, sendCoords, sendId
  34.     var repTable = $("tbody:has(> tr > th:contains('" + _("Subject") + "'))", doc);
  35.     response.sendPlayer = $("th:not(:contains('" + _("Attacker") + "'))", $("tr:has(> th:contains('" + _("Attacker") + "'))", repTable)).text().trim();
  36.     response.sendId = $("td:not(:contains('" + _("Origin") + "')) span", $("tbody tr:has(td:contains('" + _("Origin") + "'))", repTable)).attr("data-id");
  37.     response.sendCoords = $("td:not(:contains('" + _("Origin") + "')) span", $("tbody tr:has(td:contains('" + _("Origin") + "'))", repTable)).text().split("(")[1].split(")")[0];
  38.    
  39.     response.targetPlayer = $("th:not(:contains('" + _("Defender") + "'))", $("tr:has(> th:contains('" + _("Defender") + "'))", repTable)).text().trim();
  40.     response.targetId = $("td:not(:contains('" + _("Destination") + "')) span", $("tbody tr:has(td:contains('" + _("Destination") + "'))", repTable)).attr("data-id");
  41.     response.targetCoords = $("td:not(:contains('" + _("Destination") + "')) span", $("tbody tr:has(td:contains('" + _("Destination") + "'))", repTable)).text().split("(")[1].split(")")[0];
  42.     response.reportId = getQueryFromHaystack(href, "view");
  43.     return response;
  44. }
  45.  
  46. function def(doc, href, nafaTemplates){
  47.     if (getQuery("screen") === "report"){
  48.         if (getQuery("view") === ""){
  49.             var output = ($("#NAFASave", doc).length > 0) ? $("#NAFASave", doc) : $("<tr><td colspan='3'><textarea style='width:99%;height:100px' /></td></tr>");
  50.             output.get(0).id = "NAFASave";
  51.             var toOut = "[table]\n"
  52.             toOut += "[**]Player[||]Coords[||]";
  53.             for (var i=0; i<nafaTemplates.length; i++){
  54.                 toOut += i + "[||]";
  55.             }
  56.             toOut += "Same[||]RP[/**]\n";
  57.            
  58.             $("#report_list tbody tr:has(img) .quickedit-content", doc).each(function(index){
  59.                 var loc = $("a", this).attr("href");
  60.                 if (loc.substring(0, 1) === "/") loc = href.replace(/\/[^/]*$/, "") + loc;
  61.                 var a = jQuery.ajax(loc, {type: "GET", dataType:"html", async:false});
  62.                 var b = a.responseText;
  63.                 var c = $("<div></div>");
  64.                 c.get(0).id = "NAFAReportThing";
  65.                 c.html(b);
  66.                 var response = onReport(c, loc);
  67.                 if (response){
  68.                     toOut += "[*][player]" + response.targetPlayer + "[/player][|] " + response.targetCoords + " [|]";
  69.                     for (var i=0; i<nafaTemplates.length; i++){
  70.                         toOut += "[url=" + loc.replace(/\?.*/, "") + "?village=" + response.sendId + "&target=" + response.targetId + "&screen=place&nafatemplate=" + i + "]Send[/url][|]";
  71.                     }
  72.                     toOut += "[url=" + loc.replace(/\?.*/, "") + "?village=" + response.sendId + "&target=" + response.targetId + "&screen=place&try=confirm&type=same&report_id=" + response.reportId + "]Send[/url][|]";
  73.                     toOut += "[url=" + loc.replace(/\?.*/, "") + "?village=" + response.sendId + "&target=" + response.targetId + "&screen=place]Send[/url]\n";
  74.                 }
  75.             });
  76.             toOut += "[/table]";
  77.             $("textarea", output).val(toOut);
  78.             $("#report_list tr:contains('Subject')", doc).before(output);
  79.         } else {
  80.             var response = onReport(doc, href);
  81.             if (response){
  82.                 var output = ($("#NAFASave", doc).length > 0) ? $("#NAFASave", doc) : $("<tr><td colspan='2'><textarea style='width:99%;height:100px' /></td></tr>");
  83.                 output.get(0).id = "NAFASave";
  84.                 loc = window.location.href;
  85.                 var toOut = "[table]\n";
  86.                 toOut += "[**]Player[||]Coords[||]";
  87.                 for (var i=0; i<nafaTemplates.length; i++){
  88.                     toOut += i + "[||]";
  89.                 }
  90.                 toOut += "Same[||]RP[/**]\n";
  91.                 toOut += "[*][player]" + response.targetPlayer + "[/player][|] " + response.targetCoords + " [|]";
  92.                 for (var i=0; i<nafaTemplates.length; i++){
  93.                     toOut += "[url=" + loc.replace(/\?.*/, "") + "?village=" + response.sendId + "&target=" + response.targetId + "&screen=place&nafatemplate=" + i + "]Send[/url][|]";
  94.                 }
  95.                 toOut += "[url=" + loc.replace(/\?.*/, "") + "?village=" + response.sendId + "&target=" + response.targetId + "&screen=place&try=confirm&type=same&report_id=" + response.reportId + "]Send[/url][|]";
  96.                 toOut += "[url=" + loc.replace(/\?.*/, "") + "?village=" + response.sendId + "&target=" + response.targetId + "&screen=place]Send[/url]\n";
  97.                 toOut += "[/table]";
  98.                 $("textarea", output).val(toOut);
  99.                 $("table tr:has(> td:contains('" + _("Battle time") + "'))", doc).after(output);
  100.             } else {
  101.                 var output = ($("#NAFASave", doc).length > 0) ? $("#NAFASave", doc) : $("<tr><td colspan='2'><span></span></td></tr>");
  102.                 $("span", output).css("color", "F00").text("An error has occurred! This report cannot be converted to a table.");
  103.                 $("table tr:has(> td:contains('" + _("Battle time") + "'))", doc).after(output);
  104.             }
  105.         }
  106.     } else if (getQuery("screen") == "place"){
  107.         var nafaTemplate = 0;
  108.         if (getQuery("nafatemplate") !== "") nafaTemplate = parseInt(getQuery("nafatemplate"));
  109.         nafaTemplate = nafaTemplates[nafaTemplate] || nafaTemplates;
  110.        
  111.         if (nafaTemplate["scout"]) nafaTemplate["spy"] = nafaTemplate["scout"];
  112.         if (nafaTemplate["lc"]) nafaTemplate["light"] = nafaTemplate["lc"];
  113.         nafaTemplate["spy"] && $("#unit_input_spy").val(nafaTemplate["spy"]);
  114.         nafaTemplate["spear"] && $("#unit_input_spear").val(nafaTemplate["spear"]);
  115.         nafaTemplate["sword"] && $("#unit_input_sword").val(nafaTemplate["sword"]);
  116.         nafaTemplate["axe"] && $("#unit_input_axe").val(nafaTemplate["axe"]);
  117.         nafaTemplate["archer"] && $("#unit_input_archer").val(nafaTemplate["archer"]);
  118.         nafaTemplate["light"] && $("#unit_input_light").val(nafaTemplate["light"]);
  119.         nafaTemplate["ma"] && $("#unit_input_marcher").val(nafaTemplate["ma"]);
  120.         nafaTemplate["heavy"] && $("#unit_input_heavy").val(nafaTemplate["heavy"]);
  121.         nafaTemplate["ram"] && $("#unit_input_ram").val(nafaTemplate["ram"]);
  122.         nafaTemplate["catapult"] && $("#unit_input_catapult").val(nafaTemplate["catapult"]);
  123.        
  124.         !nafaTemplate["spy"] && $("#unit_input_spy").val("");
  125.         !nafaTemplate["spear"] && $("#unit_input_spear").val("");
  126.         !nafaTemplate["sword"] && $("#unit_input_sword").val("");
  127.         !nafaTemplate["axe"] && $("#unit_input_axe").val("");
  128.         !nafaTemplate["archer"] && $("#unit_input_archer").val("");
  129.         !nafaTemplate["light"] && $("#unit_input_light").val("");
  130.         !nafaTemplate["ma"] && $("#unit_input_marcher").val("");
  131.         !nafaTemplate["heavy"] && $("#unit_input_heavy").val("");
  132.         !nafaTemplate["ram"] && $("#unit_input_ram").val("");
  133.         !nafaTemplate["catapult"] && $("#unit_input_catapult").val("");
  134.        
  135.         $('#unit_input_spear').focus();
  136.     }
  137. }
  138.  
  139. /*nafaTemplates = [{spy:1, light:5}];
  140. def(document, window.location.href, nafaTemplates);*/
Advertisement
Add Comment
Please, Sign In to add comment