From 53af3849cc0b9b9203e29585c9ab52b879dca916 Mon Sep 17 00:00:00 2001 From: Danielv123 Date: Tue, 11 Jul 2017 13:10:58 +0200 Subject: [PATCH] Fix ddosing wiki.factorio.com with 404 picture requests --- static/head.html | 1 + static/main.js | 84 +++++++++----------- static/nodeDetails.html | 1 - static/pictures/Battery_MK2.png | Bin 0 -> 1648 bytes static/pictures/Energy_shield_MK2.png | Bin 0 -> 2030 bytes static/pictures/Fish.png | Bin 0 -> 1674 bytes static/pictures/Personal_roboport_MK2.png | Bin 0 -> 2276 bytes static/pictures/green_module_1.png | Bin 0 -> 2819 bytes static/pictures/green_module_2.png | Bin 0 -> 2823 bytes static/pictures/green_module_3.png | Bin 0 -> 2839 bytes static/pictures/piercing_shotgun_shells.png | Bin 0 -> 2332 bytes static/pictures/rail.png | Bin 0 -> 4193 bytes static/storage.js | 9 +-- 13 files changed, 40 insertions(+), 55 deletions(-) create mode 100644 static/pictures/Battery_MK2.png create mode 100644 static/pictures/Energy_shield_MK2.png create mode 100644 static/pictures/Fish.png create mode 100644 static/pictures/Personal_roboport_MK2.png create mode 100644 static/pictures/green_module_1.png create mode 100644 static/pictures/green_module_2.png create mode 100644 static/pictures/green_module_3.png create mode 100644 static/pictures/piercing_shotgun_shells.png create mode 100644 static/pictures/rail.png diff --git a/static/head.html b/static/head.html index 52dfa7b2..22eb23a2 100644 --- a/static/head.html +++ b/static/head.html @@ -1,5 +1,6 @@ Clusterio + diff --git a/static/main.js b/static/main.js index 50db8daf..eb46d81d 100644 --- a/static/main.js +++ b/static/main.js @@ -61,60 +61,52 @@ Date.prototype.yyyymmdd = function(time) { // http://stackoverflow.com/questions return this.getFullYear()+""+mm+""+dd+ ""; // padding }; var date = new Date(); -String.prototype.replaceAll = function(search, replacement) { - var target = this; +function replaceAll(target, search, replacement) { return target.split(search).join(replacement); }; +function getImageFromName(name){ + if(imagelinks[name]){ + return imagelinks[name]; + } else if(imagedata[name]) { + return "https://wiki.factorio.com/images/" + imagedata[name] + ".png" + } else if(factorioLocale["entity-name"][name]){ + return "https://wiki.factorio.com/images/" + capitalizeFirstLetter(replaceAll(factorioLocale["entity-name"][name], ' ', '_').toLowerCase()) + ".png"; + } else if(factorioLocale["item-name"][name]){ + return "https://wiki.factorio.com/images/" + capitalizeFirstLetter(replaceAll(factorioLocale["item-name"][name], ' ', '_').toLowerCase()) + ".png"; + } else if(factorioLocale["fluid-name"][name]){ + return "https://wiki.factorio.com/images/" + capitalizeFirstLetter(replaceAll(factorioLocale["fluid-name"][name], ' ', '_').toLowerCase()) + ".png"; + } else if(factorioLocale["equipment-name"][name]){ + return "https://wiki.factorio.com/images/" + capitalizeFirstLetter(replaceAll(factorioLocale["equipment-name"][name], ' ', '_').toLowerCase()) + ".png"; + } else return ""; +} +$.getJSON("/api/getFactorioLocale", (locale) => { + window.factorioLocale = locale; +}); // image data // key is the name of the item in the database, value is the name of the image on wiki.factorio.com/images/* // this list has to include all entities that doesn't just follow the simple capitalize first letter convention -var imagedata = {}; -/* Notice: All icon images hosted on this Wiki have been renamed to use their in-game names, with underscores. If your external tool references these icons, please correct your links. +/* Notice: All icon images hosted on this Wiki have been renamed to use their in-game names, with underscores. If your external tool references these icons, please correct your links. */ var imagedata = { - ["empty-barrel"]: "Barrel-empty", - ["transport-belt"]: "Basic-transport-belt", - ["underground-belt"]: "Basic-transport-belt-to-ground", - ["fast-underground-belt"]: "Fast-transport-belt-to-ground", - ["express-underground-belt"]: "Express-transport-belt-to-ground", - ["splitter"]: "Basic-splitter", - ["inserter"]: "Inserter-icon", - ["stack-inserter"]: "Stack_inserter", - ["stack-filter-inserter"]: "Stack_filter_inserter", - ["efficiency-module"]: "Effectivity-module", - ["efficiency-module_2"]: "Effectivity-module-2", - ["efficiency-module_3"]: "Effectivity-module-3", - ["low-density-structure"]: "Rocket-structure", - ["electric-mining-drill"]: "Basic-mining-drill", - ["burner-mining-drill"]: "Burner-mining-drill", - ["active-provider-chest"]: "Logistic-chest-active-provider", - ["passive-provider-chest"]: "Logistic-chest-passive-provider", - ["storage-chest"]: "Logistic-chest-storage", - ["requester-chest"]: "Logistic-chest-requester", - ["wall"]: "Stone-wall", - ["medium-electric-pole"]: "Medium-electric-pole", - ["lamp"]: "Small-lamp", - ["regular-magazine"]: "Basic-bullet-magazine", - ["piercing-rounds_magazine"]: "Piercing-bullet-magazine", - ["flamethrower-ammo"]: "Flame-thrower-ammo", - ["cannon-shells"]: "Cannon-shell", - ["explosive-cannon-shells"]: "Explosive-cannon-shell", - ["land-mine"]: "Land-mine-research", - ["cluster-grenade"]: "Cluster_grenade", - ["shotgun-shells"]: "Shotgun-shell", - ["piercing-shotgun-shells"]: "Piercing-shotgun-shell", - ["accumulator"]: "Basic-accumulator", - ["beacon"]: "Basic-beacon", - ["rail"]: "Straight-rail", - ["piercing-rounds-magazine"]: "Piercing-bullet-magazine", - ["grenade"]: "Basic-grenade", - ["raw-fish"]: "Fish", - ["water-barrel"]: "Barrel-empty", - ["smart-train-stop"]: "Train-stop", - ["put-combinator"]: "Decider-combinator", -}*/ + "put-combinator": "Decider_combinator", + "smart-train-stop": "Train_stop", + "raw-fish": "Fish", + "solar-panel-equipment": "Portable_solar_panel", + "diesel-locomotive": "Locomotive", // pre 0.15 loco name + "small-lamp": "Lamp", + +} // value:link pairs where you can add modded item icons that are missing var imagelinks = { - "fictional-modded-item": "/pictures/fictional-modded-item.png" + "fictional-modded-item": "/pictures/fictional-modded-item.png", + "raw-fish": "/pictures/Fish.png", + "rail": "/pictures/rail.png", + "effectivity-module-1": "/pictures/green_module_1.png", + "effectivity-module-2": "/pictures/green_module_2.png", + "effectivity-module-3": "/pictures/green_module_3.png", + "piercing-shotgun-shell": "/pictures/piercing_shotgun_shells.png", + "energy-shield-mk2-equipment": "/pictures/Energy_shield_MK2.png", + "battery-mk2-equipment": "/pictures/Battery_MK2.png", + "personal-roboport-mk2-equipment": "/pictures/Personal_roboport_MK2.png" } diff --git a/static/nodeDetails.html b/static/nodeDetails.html index e4080b1e..df924409 100644 --- a/static/nodeDetails.html +++ b/static/nodeDetails.html @@ -1,7 +1,6 @@ <%- include("head.html") %> - diff --git a/static/pictures/Battery_MK2.png b/static/pictures/Battery_MK2.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cd8670f194fb2a3230754ce0561afd5b20892d GIT binary patch literal 1648 zcmV-$29NoPP)N2bPDNB8 zb~7$DE-^4L^m3s900rzxL_t(oN3EB6P!o3)$I0$yv)P=RgFt{mgB*bb2qAc?RZpdr~RXKlom%0ky^A?feKa}rV<kU@cAF&i?!6Gw*$W?|q-ks{#N37YKqtgoz+r9+xW=3q@i#u|(n_k;?pKerj!) z+TVYcQYgWEP(D*iXVdvKm`UPv#F6e33U4oEbEP8L%NF5*ZTc`9nwyvki;K zZt0gtmWQSU9`Vt5v+e1oA0QosPyx#KRC}sc6ldSwaqYvtvaTPW7PaiPuBltmJNrtq z#r>3rnR%FNhKpGvKT^ywi%+?mQqCutG#_a?f))ix?CGW-APhoGF)DP8a?>RLo?4x5 z%_R2Wg@YS=H;@av7Le*zHGy8?62L{6fU1}T<0^|_-Q*MAZ8Bo%vos>A)zCPjz!$Tp zn|{#f0K{-bgjkeN6H}j58P}6c?CSr3eEZ27GNnBkSGFi|#w8X`I}hWW8VtvN72|GA zUby<93g7-blZd4NWS{ss0ziZ4B3QuD^3SHRDe@76T`!|xydNT32Hr-eSei+w+(F*kE5DCWkCjb3`&H!MCs_g)q`ZtUL z+#LsSd2$O9jR{Qw2ZEdh5L>D29tL<-1;zkk#sSC=Dx3qLY0y>LDli4Wun4E9K$0=> zPT)bMa{$sx7S^Z!viN!NqtBmiZ{B2GbTieWy`nL(zT%p|V~7bo!!@x>_$KTdu|;t{ zpm*KXjK1ij+RmV&VCMiVI5GcPM%7ZX%v3sf?A{@AeeDWzUTGr9F5r^DPCCiRM@i<# z9Fn^aBjv|^$t{&xWb|j+cIBZE=Kw@B#8r*Gf~?6Jn4$$K#-u--2%vurz}Pb!6=8}o z(U}0_D=_XE{xrD)qX5aytU%h?g$?6HxcDUzGN%+_WT(Pe0P|1GtIfDPD#9Y02rmqa zkTX$)`vnt3=(Ja$skhC6|02TC77WjUpdu&Dfssi#4nRMufqwy@CgC0V0jEqt){9** z0pK+iaN;hoZ$oMqi~u~&oD48w7le-hIBy#|D6KF+Y`i9w6$-SvW{=n|RwbpkB=XA{`gYO3ujA|A^yGSRXN`!!a zW)W=aE|9nT5_toegwAMak`*`t009ufN4Szui8AZ(l7_cx)>_X#EV1snx2ren))Gr} zO_Z5iA~4gBqh|Ot+r&7{F{3AW7Vq!8%`3~(OyM7?I~3^-Tt)y001Orb70wWPWvrfG zxPH&N+S@nknlF9-ZR_6SxgDztmUOzMO1hW^^ebqLWjCNl|P1^}WF#aWa@M9P=|0#BiB1Gs>u zQ)>3InS7kjl{MQg>ALRdlu{;Ts0Y!yvEE#zLDbWp0)pWw^$;Lq0P}4#-yIkjNuAvI ziok(pD353X9~jY$e%a)=%X#N6r!btQMqLTv6F@yPfC~_pz*u+eG8r103a!lUdwz04 zllcC`J{0s^PO6B;t$A;z?^>5?*({fZY^T`i#Q@SB11Nw1&^*R$R&Xjwxjf}6cC^#= zj@t*ZtMI~#2ou@F{?-26eER0XxDS7$OM_2>qtAq zV2VtpQj}Fjw_|{Ay9ElM!m?~WSe;yz`ipDSe}$LCOiLEE4aWt|8X#9%P{c+NrG$cv1?UqKrJR967@@Y=z}wG_VtUtZl!gZxhn7`@*aBdi zJ9z^J2sbGLN6*iXZ~ATXKm~E$!I3@Vm^?HCj}~xr(!(LqLe}o$o^Ru|83W?c2K?V# z-W<0?mP^Vs0L3Q&X!t++1wg1qHCf1I`;zAR)DlTMsOo8=dq-wvu(U>3cpk4E_zoT= z^C(DQG7Rv^r4ZNJgII0|Q4Wa5H1V>p2M8cFKk_ZN^KjUtpA4Gxk{PmV z$tG+3@bjx)Vi=f9J9y83fMnf7ZP~_PkVCalz~xdEW;LS;1<54$6Dh^cf=D4z&303d z5sN=4x)p{;N7^0L!*NrK^_Mk0~144J-ok}YDg0$ zrP@&r5I`xZV(RwR`C7BCC1HIkqhGikrNIp0ax;+_C^@i*hCjFp6W>08iB~2tyS$2F zcV6jQ>QP$ZXi@BIVSMs}}`)fRALaTIiH96@au(ZFEgPS77$y6$lHpM_<|<5+CnHWUi;eYB#{+;hiA z_krgJ;4a=nZei(e&d;n>_EuiCiv>{0K?lltQ)nQXo*_)r@hlE#P=Epqu#9i8$^ngm z3|8=bwTL0x?%i6CDPk|a$CJ1xBn~(M_OL#wP=6Sj#*`x3GXX#dNDA49YJMtk7~KwL zC`SmAius$@Q-P$eSuc3&O|x_DGKTk-Q0g@`PAd{h#!!l5yR+cz*|TMADO8Yx%OuZO z;{c2D(?@Htb`zYx@)=obax1k|vr{tid8%nI@6LtaURnlzp{<#S=iH+&Ks#NUPOSx~|7tJE4*(PZYS|3GMc>W!26egWhT< zJ(Yn*RVqW`>%4`v&*tD}tq?}~kf%w{NfO@xcn6pNGkJS?4h7an|X1|d{3orP=JdW zT-OB*BN3c)gGlda4xNii)K>f^lvU_UVtX4R=IbK;vUOvzoq;kuNrFcr>D7II>c?E9 z&$O1GK7E>;n4Lu_6=_VQcOei}PjpJ(Knhz7XSv4XwvfTqAZ!U0C<;O%DMeSQ^m!?6 zQ($}3aDINC?%%&(z5MdaeQ)Il)d||$Z(nDG_Bo3U%oInvRbRvbZcNVnmaca zuO+>pmGX^MDb20m>PcX38MwIZkIBD_O914;g$ojZHZn580YDKF>b-6wQsUNXvo{{M z(=|W2udeg3!IR`#Q_6A#tO58GzzqO`;OoVn)cVF_V_}~L_{``5IIdevB;MDPRS_@A0gv*X#77k3J$__htL)WPp7D-T^QIfMN&w7po%gjh&CBy#N3J M07*qoM6N<$f{Uup9RL6T literal 0 HcmV?d00001 diff --git a/static/pictures/Fish.png b/static/pictures/Fish.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd9cb0c1c5366641e872eeeffac6becff99345f GIT binary patch literal 1674 zcmV;526g#~P)N2bPDNB8 zb~7$DE-^4L^m3s900st0L_t(oN9~noP!nbt$CcVztymRLMiK%ftdKzn3B)9rD3Jic zuw(^f$*2f2Ey_r77Z9zW1W-f~t;k8;vtk{gsHliIXa#3fs^Xx+)vN#Fx1QIYCfI)H z_5J+(f6woI?%wwqHtheS#{`@dUy-Eo6*kHBcP;gZ4?SW*n;tKknT(X}*TRQR(}O^D zk1dEOu0hR($N#=SP~x5uVMW!QhqOItztfYThyTzb%d#?J_Ls-ve*1Q4J2YJq6Bm7$|_8g6Zoqi0_@o@g@g;%XUQ-l)d$=0ihIp`a9G+L2;YGa_?(7ahm{;Jk|t z$$Jg;mSBiwHIgaPQ;WF9*y?783b7Fa94T;iW`IALfkjF&I^xFSdZ+=qLx-a$$^g&f z4e(55f=V$J-hn<~gs-gETi{L5-%mAKJ&W`Da26X!vf0>_!b5DZ7#xKH!U!eKYzW4^ z!by1W^%y)^YKVaq6Y#vq95rGBe5W!Yja%}Xlh>*L&fvO91J@=`#fhqTXsY9IqC6bC zOO#li6NZe%**LxVS``y zurbgg$F+Pm>ZeV_BAE^B_+FS*)sm){fS=U0x=v_>^2tW1U>f2F;U{R7e}wj+;b;pR zj_WZ7xS3>t-qbO8I(H=cmVb=L)iyX3OvVO*F;ih) zfgG1fP&rP-fdC^ke?dZfCK;W%MBH0V!P5pl`nIvqx5Wg#-%@cXfq`8fW3f?Ugd&+8 zoV{jZZbMtH&H@CAM5z?eKxVmuO{bwiL_)DQ1>cth<8*B@+V|x^+g6Du*Vp6e)k1Xb zjeTz7#u;F+{PLfOdbRbJLK?9ks=^t-F!dn zuV03XC##^nREdYp1!ybx#pc;O`0}hlqS`}XOGX}-gm|7kLRHIiS%6^SS`sig z0foIKqF9zlXPaW);ElYce55S-5~U5L*se}TuK(cQ;7h?8i8&-p8ffxpi0mj(IT<0` zM}UyUn}72u?b3ZOkf@?!f+ZcU4)*X8Fu`ZB!F1t*K<7W8MP|W$?RQW_rXzG32N{kg zSm8`SDw71cttGM@2`J{6g2@xWZ}H~e(+>BK(s=@J0#t^l8_n6(pGXn;Td_QZ)^vZ8 z8GVM$cnTM0`~ZZ^F9g*|(#&T$4J7mFn9s06KAngaY-1z{t-)7#B20bos9w$gE@Urs zPcgOS!qr!S@C9l_X1jo?T3wRMVP6_I6(yZl=MhE0vG4x8QrEhG}I{xDV|JeqA0G$vT UDtX+m2><{907*qoM6N<$f{x%1!2kdN literal 0 HcmV?d00001 diff --git a/static/pictures/Personal_roboport_MK2.png b/static/pictures/Personal_roboport_MK2.png new file mode 100644 index 0000000000000000000000000000000000000000..a4af6cce38b8241ccdc3bd44865cb8fe6328106f GIT binary patch literal 2276 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 Z{1=}IH2YjlQ-}Zn002ovPDHLkV1n>GUkLyJ literal 0 HcmV?d00001 diff --git a/static/pictures/green_module_3.png b/static/pictures/green_module_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd180cc89960aa103c7967c949eacc1eca5df7e GIT binary patch literal 2839 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 literal 0 HcmV?d00001 diff --git a/static/pictures/rail.png b/static/pictures/rail.png new file mode 100644 index 0000000000000000000000000000000000000000..fc4565fef0cca4ef8a937a649529be3c883e3bc6 GIT binary patch literal 4193 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 literal 0 HcmV?d00001 diff --git a/static/storage.js b/static/storage.js index 8b9c7dbd..c68cd982 100644 --- a/static/storage.js +++ b/static/storage.js @@ -3,14 +3,7 @@ function drawcontents(data) { data = sortByKey(data, "count"); let result = ""; for(i = 0;i < data.length; i++) { - var img = ""; - if(imagedata[data[i].name]) { - img = "https://wiki.factorio.com/images/" + imagedata[data[i].name] + ".png" - } else if(imagelinks[data[i].name]) { - img = imagelinks[data[i].name]; - } else { - img = "https://wiki.factorio.com/images/" + capitalizeFirstLetter(data[i].name.replaceAll('-','_')) + ".png"; - } + var img = getImageFromName(data[i].name); var searchField = document.querySelector("#search"); if(!searchField.value || data[i].name.includes(searchField.value)) { result = result + "";
" + data[i].name + "" + data[i].count + "