Handy Image

Shows just fullsize Image with hotkeys & without pop-ups on many image-hosting sites

Από την 08/03/2016. Δείτε την τελευταία έκδοση.

  1. // ==UserScript==
  2. // @name Handy Image
  3. // @version 2016.03.07
  4. // @author Owyn
  5. // @contributor ubless607, bitst0rm
  6. // @namespace handyimage
  7. // @description Shows just fullsize Image with hotkeys & without pop-ups on many image-hosting sites
  8. // @homepage https://sleazyfork.org/scripts/109-handy-image
  9. // @supportURL https://sleazyfork.org/scripts/109-handy-image/feedback
  10. // @icon http://i.imgur.com/Q5TTIjV.png
  11. // @run-at document-start
  12. // @grant GM_getValue
  13. // @grant GM_setValue
  14. // @grant GM_registerMenuCommand
  15. // @grant GM_unregisterMenuCommand
  16. // @grant unsafeWindow
  17. // @match https://gist.github.com/Owyn/8553d7953d948228e312
  18. // @match http://www.imagebam.com/image*
  19. // @match http://imgchili.net/show*
  20. // @match http://imgbox.com/*
  21. // @match http://*.imagetwist.com/*/*
  22. // @match http://*.imagevenue.com/img.php?*
  23. // @match *://*.imageshack.com/i/*
  24. // @match *://*.imageshack.com/f/*
  25. // @match http://imagepix.org/image*
  26. // @match http://image2you.ru/*/*/
  27. // @match http://imageban.ru/show*
  28. // @match *://fastpic.ru/view*
  29. // @match http://www.pixhost.org/show*
  30. // @match http://*.picpicture.com/share.php?id=*
  31. // @match http://*.pic5you.ru/*/*/
  32. // @match http://*.tinypic.com/view*
  33. // @match http://radical-foto.ru/*
  34. // @match http://radikal-foto.ru/*
  35. // @match http://radikal.ru/*
  36. // @match http://f-page.ru/*
  37. // @match http://f-picture.net/*
  38. // @match http://www.stooorage.com/show*
  39. // @match http://*.pimpandhost.com/image*
  40. // @match http://*.pixroute.com/*.html
  41. // @match http://*.piccash.net/*/*/
  42. // @exclude http://piccash.net/cabinets/*
  43. // @exclude http://www.piccash.net/cabinets/*
  44. // @match http://*.picforall.ru/*/*/
  45. // @match http://*.imagecurl.com/view*
  46. // @match http://*.imagecurl.org/view*
  47. // @match http://*.euro-pic.eu/*share*
  48. // @match http://*.imagescream.com/?v=*
  49. // @match http://*.imagescream.com/img/*
  50. // @match http://*.picturescream.asia/*
  51. // @match http://*.xxxhost.me/view*
  52. // @match http://*.imadul.com/?*
  53. // @match http://*.d69.in/?*
  54. // @match http://postimg.org/image*
  55. // @match http://*.niceimage.pl/*.html
  56. // @match http://*.picbank.pl/*.html
  57. // @match http://*.pics-money.ru/*
  58. // @match http://*.freeimgup.com/*.*
  59. // @match http://imgtiger.com/view*
  60. // @match http://*.imgspice.com/*.html
  61. // @match http://*.ruleimg.com/img*
  62. // @match http://*.picage.ru/*/*
  63. // @match http://*.imgserve.net/img*
  64. // @match http://*.images-host.biz/*/*
  65. // @match http://*.imgfantasy.com/*
  66. // @match http://*.platimzafoto.ru/full/
  67. // @match http://*.platimzafoto.ru/*.html
  68. // @match http://*.imageontime.com/img*
  69. // @match http://*.pic2profit.com/*/*
  70. // @exclude http://pic2profit.com/cabinet/*
  71. // @exclude http://www.pic2profit.com/cabinet/*
  72. // @match http://imgdino.com/view*
  73. // @match http://*.anonpic.com/?v=*
  74. // @match http://*.pic-money.ru/*.html
  75. // @match http://*.pic-money.ru/full/
  76. // @match http://*.imgcandy.net/img*
  77. // @match http://*.imagecorn.com/img*
  78. // @match http://*.imgrill.com/img*
  79. // @match http://imgbar.net/*.html
  80. // @match http://*.imagefolks.com/img*
  81. // @match http://imagepicsa.com/img*
  82. // @match http://*.imgbunk.com/image*
  83. // @match http://*.pzy.be/v*
  84. // @match http://www.turboimagehost.com/p*
  85. // @match http://*.subirimagenes.com/*.html
  86. // @match http://*.screenlist.ru/details.php?image_id=*
  87. // @match http://qrrro.com/images*
  88. // @match http://imgmade.com/images*
  89. // @match http://*.imgnip.com/view*
  90. // @match http://www.pic-upload.de/view*
  91. // @match http://picshare.geenza.com/pics*
  92. // @match http://www.imgbabes.com/*/*.htm*
  93. // @match http://*.goimagehost.com/xxx/*.*
  94. // @exclude http://goimagehost.com/xxx/?v=*
  95. // @exclude http://www.goimagehost.com/xxx/?v=*
  96. // @match http://ibunker.us/f*
  97. // @match http://ichan.org/image.php?path=*
  98. // @match http://*.imagearn.com/*
  99. // @match http://www.dumppix.com/view*
  100. // @match http://www.bilder-upload.eu/show*
  101. // @match http://www.bilder-hochladen.net/file*
  102. // @match http://www.bild.me/bild.php?*
  103. // @match http://www.imagesnake.com/show*
  104. // @match http://www.imagesnake.com/img*
  105. // @match http://www.imagesnake.com/view*
  106. // @match http://www.freebunker.com/show*
  107. // @match http://www.freebunker.com/img*
  108. // @match http://www.freebunker.com/view*
  109. // @match http://bayimg.com/*
  110. // @match http://*.directupload.net/file*
  111. // @match http://*.imgurban.info/?*
  112. // @match http://*.imagecherry.com/*
  113. // @match http://funkyimg.com/view*
  114. // @match http://*.abload.de/image.php?*
  115. // @match http://*.picfox.org/share*
  116. // @match http://*.pixup.us/img-*
  117. // @match http://*.imgtube.net/img-*
  118. // @match http://*.imgcorn.com/img-*
  119. // @match http://*.imagecarry.com/*/*
  120. // @match http://*.imagedunk.com/*/*
  121. // @match http://*.imageswitch.com/*/*
  122. // @match http://*.piclambo.net/*/*
  123. // @match http://*.picleet.com/*/*
  124. // @match http://*.yankoimages.net/*/*
  125. // @match http://*.picturedip.com/*/*
  126. // @match http://*.croftimage.com/img-*
  127. // @match http://*.imagedecode.com/img-*
  128. // @match http://*.imagefruit.com/img*
  129. // @match http://*.imagefruit.com/show*
  130. // @match http://*.hentai-hosting.com/view*
  131. // @match http://*.miragepics.com/view*
  132. // @match http://*.freeimagehosting.net/*
  133. // @match http://*.gratisimage.dk/share*
  134. // @match http://*.keptarolo.hu/*
  135. // @match http://www.uploadhouse.com/view*
  136. // @match http://*.dumpt.com/img/view*
  137. // @match http://imagezilla.net/show/*
  138. // @match http://*.imageup.ru/img*
  139. // @match http://*.casimages.com/photos/*/*/*
  140. // @match http://*.casimages.com/img*
  141. // @match http://*.cyberpics.net/p*
  142. // @match http://*.vvcap.net/db/*
  143. // @match http://*.freeimage.us/share*
  144. // @match http://*.pix-x.net/*/*
  145. // @match http://*.shareimages.com/image*
  146. // @match http://www.xtremeshack.com/image/*
  147. // @match http://*.mrjh.org/gallery.php?entry=*
  148. // @match http://*.itmages.ru/image/view*
  149. // @match http://*.pohrani.com/*
  150. // @match http://shrani.najdi.si/*
  151. // @match http://*.iv.pl/view*
  152. // @match http://*.hostingfailov.com/photo/*
  153. // @match http://www.picamatic.com/view*
  154. // @match http://*.image18.org/show/*
  155. // @match http://*.pic4you.ru/*
  156. // @match http://picload.org/view*
  157. // @match http://*.moyophoto.com/share-*
  158. // @match http://www.imageboss.net/view*
  159. // @match http://*.thebestpichost.com/picture/*
  160. // @match http://*.lostpic.net/?photo=*
  161. // @match http://subefotos.com/ver/*
  162. // @exclude http://subefotos.com/ver/*#codigos
  163. // @match http://*.seedimage.com/P/show*
  164. // @match http://*.pixsor.com/share*
  165. // @match http://*.pixsor.com/XXX/share*
  166. // @match http://*.imgtheif.com/image/*
  167. // @match http://*.image-share.com/i*html
  168. // @match http://*.uaimage.com/*
  169. // @match http://*.npicture.net/share-*
  170. // @match http://*.img.acianetmedia.com/*
  171. // @match http://www.2imgs.com/*
  172. // @match http://*.overpic.net/view*
  173. // @match http://*.unlimitedpicture.com/?*
  174. // @match http://*.imagecross.com/*
  175. // @match http://*.mojoimage.com/*
  176. // @match http://www.use.com/*
  177. // @match http://www.hostingpics.net/view*
  178. // @match http://*.picp2.com/*/*/
  179. // @exclude http://*.picp2.com/cabinet/*
  180. // @exclude http://picp2.com/cabinet/*
  181. // @match http://*.myhotimage.com/img-*
  182. // @match http://*.pictureshoster.com/view*
  183. // @match http://*.imageshost.ru/photo*
  184. // @match http://*.imagestime.com/show*
  185. // @match http://sharenxs.com/view*
  186. // @match http://sharenxs.com/gallery/*/*
  187. // @match http://img4.imagetitan.com/img*
  188. // @match http://*.imagenpic.com/*
  189. // @match http://*.stuffed.ru/images*
  190. // @match http://*.wstaw.org/w/*
  191. // @match http://pikucha.ru/*
  192. // @match http://www.imagesocket.com/photos*
  193. // @match http://www.imagesocket.com/social*
  194. // @match http://imageban.net/show*
  195. // @match http://*.otofotki.pl/*
  196. // @match http://*.imgsin.com/view*
  197. // @match http://*.imagenetz.de/*
  198. // @match http://pix.toile-libre.org/?img*
  199. // @match http://uppix.com/s*
  200. // @match http://www.servimg.com/image*
  201. // @match http://*.upix.me/files/*
  202. // @match http://*.upix.me/i/v/?q=*
  203. // @match http://*.pixelup.net/image*
  204. // @match http://*.pixelup.net/image*
  205. // @match http://*.picsee.net/*
  206. // @match http://www.fotosik.pl/pokaz_obrazek/pelny*
  207. // @match http://imagebin.org/*
  208. // @match *://dumpyourphoto.com/photo*
  209. // @match http://*.depic.me/*
  210. // @match http://www.xup.in/dl*
  211. // @match http://*.foto-save.ru/full/
  212. // @match http://*.flickimg.com/*
  213. // @match http://*.sexseeimage.com/image*
  214. // @match http://*.hotchyx.com/d*
  215. // @match http://ima.so/*
  216. // @match http://*.kinkypic.net/show*
  217. // @match http://*.imageupper.com/i/*
  218. // @match http://*.mypixxx.lonestarnaughtygirls.com/?*
  219. // @match *://beeimg.com/view*
  220. // @match http://www.noelshack.com/*.*
  221. // @match http://www.zupmage.eu/image*
  222. // @match http://*.picstwist.com/img*
  223. // @match http://thumbsnap.com/*
  224. // @match http://*.deffe.com/image*
  225. // @match http://*.imgnook.com/*
  226. // @match http://*.imageno.com/*.html
  227. // @match http://*.imagehousing.com/image*
  228. // @match http://pixpipeline.com/d/*
  229. // @match http://www.picfront.org/d/*
  230. // @match http://*.theimghost.com/?*
  231. // @match http://*.imagehost.thasnasty.com/?*
  232. // @match http://*.imagilive.com/*.htm*
  233. // @match http://*.thepornfeeds.com/?*
  234. // @match http://*.piratescreen.com/*
  235. // @match http://*.hotimages.eu/img-*
  236. // @match http://*.picturevip.com/*
  237. // @exclude http://*.picturevip.com/x/clean/
  238. // @match http://*.emptypix.com/*
  239. // @match http://*.hornyimage.com/show*
  240. // @match http://img.3ezy.net/*.htm
  241. // @match http://*.xximg.net/img-*
  242. // @match http://*.zaslike.com/view*
  243. // @match http://www.zimagez.com/zimage*
  244. // @match http://*.someimage.com/*
  245. // @exclude http://*/someimage.com/compare/*
  246. // @match http://*.sexyxpixels.com/?v=*
  247. // @match http://*.postimg.net/view*
  248. // @match http://*.imagedomino.com/?v=*
  249. // @match http://*.pixhub.eu/images/show*
  250. // @match http://*.pictureturn.com/*.html
  251. // @match http://*.cubeupload.com/im/*
  252. // @match http://*.pixentral.com/show*
  253. // @match http://www.photo-host.org/view-image/*
  254. // @match http://www.fotoszok.pl/show*
  255. // @match http://*.imglink.ru/show*
  256. // @match http://zapodaj.net/*.html
  257. // @match http://www.pixic.ru/view*
  258. // @match http://www.imagesup.de/picture.php?code=*
  259. // @match http://www.pornbus.org/show*
  260. // @match http://www.bilder-space.de/bild-*
  261. // @match http://www.imgcarry.com/show*
  262. // @match http://*.saveimg.ru/show*
  263. // @match http://www.fotos-hochladen.net/view*
  264. // @match http://simplest-image-hosting.net/*
  265. // @match http://jpegbay.com/gallery/*.html
  266. // @match http://www.hostpic.org/view*
  267. // @match http://imagik.fr/view*
  268. // @match http://www.image-load.net/show*
  269. // @match http://*.sxpics.nl/img-*
  270. // @match http://*.sxpics.net/img-*
  271. // @match http://*.gallerycloud.net/img-*
  272. // @match http://*.tryimg.com/?v=*
  273. // @match http://img.deli.sh/view*
  274. // @match http://*.picturespk.pk/view*
  275. // @match http://*.imagevau.eu/view*
  276. // @match http://bilder.nixhelp.de/display-*
  277. // @match http://*.funextra.hostzi.com/view*
  278. // @match http://*.freakimage.com/view*
  279. // @match http://*.fotoo.pl/show.php?img=*.html
  280. // @match http://*.rapid-img.de/img.php?f=*
  281. // @match http://*.1pics.ru/view-*
  282. // @match http://*.1pics.ru//view-*
  283. // @match http://*.picthost.net/v.php?id=*
  284. // @match http://*.tinyphoto.net/show-image.php?id=*
  285. // @match http://*.ushareimg.com/view*
  286. // @match http://*.upload.djmaster.fr/?v=*
  287. // @match http://img.pereslavl.ru/share*
  288. // @match http://*.dwimg.com/view*
  289. // @match http://uprapide.com/*
  290. // @match http://www.imageurlhost.com/view*
  291. // @match http://*.uploadyourimages.org/*.html
  292. // @match http://*.imagesup.net/*
  293. // @match http://*.blackcatpix.com/v.php?id=*
  294. // @match http://*.picgarage.net/public/*
  295. // @match http://*.superkipje.com/view*
  296. // @match http://www.2i.sk/*
  297. // @match http://*.digitalfrenzy.net/share-*
  298. // @match http://www.imgadult.com/img-*
  299. // @match http://www.picshot.pl/public/view*
  300. // @match http://*.imagesmax.de/display-*
  301. // @match http://*.ifotos.pl/zobacz/*
  302. // @match http://*.voila.pl/index.php?f=*
  303. // @match http://www.zimage.fr/photo.php?id=*
  304. // @match http://www.zimage.fr/taillereel.php?id=*
  305. // @match http://ngarko.online.fr/view*
  306. // @match http://*.b4he.com/?v=*
  307. // @match http://*.fullimg.com/?v=*
  308. // @match http://*.oxily.com/?*
  309. // @match http://ghanaimages.co/?*
  310. // @match http://*.imgplus.info/view*
  311. // @match http://*.x45x.info/?*
  312. // @match http://firepic.org/?v=*
  313. // @match http://*.seeit.bz/*
  314. // @match http://savepic.org/*.htm
  315. // @match http://*.fastimages.ru/p*
  316. // @match http://ipic.su/?page=img&pic=*
  317. // @match http://*.jpegshare.net/*.html
  318. // @match http://*.overdream.cz/*
  319. // @match http://uppic.xgn.in.th/share*
  320. // @match http://*.fastpics.net/?v=*
  321. // @match http://www.ii4.ru/image-*
  322. // @match http://*.picuploader.de/*
  323. // @match http://pic.2x4.ru/share*
  324. // @match http://*.rupict.ru/share*
  325. // @match http://bildr.no/view*
  326. // @match http://*.photolair.net/images/*.html
  327. // @match http://*.tuspics.net/*
  328. // @match http://*.freepicninja.com/*
  329. // @match http://www.subeimagenes.com/img*
  330. // @match http://screenshot.ru/*
  331. // @match http://*.picrak.com/view*
  332. // @match http://*.picspider.de/show*
  333. // @match http://*.hostpix.de/show.php?img*
  334. // @match http://*.ld-host.de/show*
  335. // @match http://*.freeuploadimages.org/view*
  336. // @match http://smages.com/?v=*
  337. // @match http://*.hostingkartinok.com/show-image.php?id=*
  338. // @match http://*.4put.ru/*max*
  339. // @match http://www.pictureshack.ru/view*
  340. // @match http://*.host99.byethost4.com/share.php?id=*
  341. // @match http://upanh.depmely.com/share*
  342. // @match http://*.eazypics.net/share*
  343. // @match http://*.image.sabyjai.org/share*
  344. // @match http://xtupload.com/share.php?id=*
  345. // @match http://t.williamgates.net/share*
  346. // @match http://photosex.biz/v.php?id=*
  347. // @match http://*.imageteam.org/img-*
  348. // @match http://*.fotoshara.pl/*.html
  349. // @match http://*.screencity.pl/*.html
  350. // @match http://*.x.thebestpichost.com/*
  351. // @match http://*.hostimage.ru/photo*
  352. // @match http://www.yourimage24.de/view*
  353. // @match http://www.loaditup.de/*.html
  354. // @match http://*.chickupload.com/show*
  355. // @match http://*.imgbox.de/show/img*
  356. // @match http://*.picszone.net/view*
  357. // @match http://*.images.share-films.net/view*
  358. // @match http://www.uploadking.biz/show*
  359. // @match http://*.roboimages.com/view*
  360. // @match http://foto.xhost.lv/show.php?img=*
  361. // @match http://*.imagefile.org/view*
  362. // @match http://*.onimage.net/show*
  363. // @match http://*.uploadagent.de/show*
  364. // @match http://*.bildjunkies.de/view*
  365. // @match http://*.uppic.ilovemyshopping.com/view*
  366. // @match http://*.foto.hcfor.pl/view*
  367. // @match http://*.up.daniyalonline.com/view*
  368. // @match http://*.slikosef.pajek.net/view*
  369. // @match http://*.imagegecko.com/view*
  370. // @match http://*.imagesticky.com/view*
  371. // @match http://*.pic.tooptarinha.com/view*
  372. // @match http://*.up.dlu3at.net/view*
  373. // @match http://*.poopr.org/view*
  374. // @match http://*.xp-images.hi2.ro/view*
  375. // @match http://*.dayzeddesigns.com/view*
  376. // @match http://*.freeimghosting.co.uk/view*
  377. // @match http://*.123poze.3x.ro/view*
  378. // @match http://*.photostand.co.za/view*
  379. // @match http://*.upload.removed.us/view*
  380. // @match http://*.images-hosting.tk/view*
  381. // @match http://*.hostimg.org/show-image.php?id=*
  382. // @match http://*.ximg.co.uk/view*
  383. // @match http://sl-images.ath.cx/view*
  384. // @match http://*.picatom.com/*
  385. // @match http://*.picmoe.net/d.php?id=*
  386. // @match http://*.imagerule.com/view*
  387. // @match http://*.imagepussy.com/view*
  388. // @match http://*.7image.ru/v.php?id=*
  389. // @match http://www.picshare.ru/view*
  390. // @match http://*.bien-vue.com/view*
  391. // @match http://*.pics.tam.in.ua/showpic.php?p=*
  392. // @match http://*.pikczery.pl/view*
  393. // @match http://*.imghost.pl/index.php?id=*
  394. // @match http://*.udostepniaj.pl/view*
  395. // @match http://*.hosting-zdjec.pl/view*
  396. // @match http://*.zapisz.net/view*
  397. // @match http://www.imagehosting.cz/?v=*
  398. // @match http://*.totalsimage.com/site/*
  399. // @match http://www.dumparump.com/view*
  400. // @match http://*.myxpic.com/showpic*
  401. // @match http://*.picness.com/image/*
  402. // @match http://h4z.it/View*
  403. // @match http://*.free-picload.de/pics/*
  404. // @match http://server5.upload69.net/view*
  405. // @match http://*.freeamateurteens.net/view*
  406. // @match http://*.gluner.de/*.html
  407. // @match http://*.fotoshack.us/foto*
  408. // @match http://*.xxx.image-server.ru/view*
  409. // @match http://*.image-server.ru/view*
  410. // @match http://orzz.us/image/*
  411. // @match http://images.orzzso.com/image/*
  412. // @match http://*.imagebin.ca/v/*
  413. // @match http://*.loadpix.de/*.html
  414. // @match http://www.public-pic.de/image/show/*
  415. // @match http://*.img-vidiklub.com/view*
  416. // @match http://*.9foto.ru/photo/*
  417. // @match http://uploads.ru/*
  418. // @match http://*.storepic.com/show*
  419. // @match http://*.img-uploader.de/p*
  420. // @match http://www.myimg.de/?img=*
  421. // @match http://*.root-space.eu/file*
  422. // @match http://photodok.com/*
  423. // @match http://*.hot-file.org/p*
  424. // @match http://*.hostarea.de/show*
  425. // @match http://*.pokazal.ru/v.php?id=*
  426. // @match http://mepic.ru/view/?id=*
  427. // @match http://*.imgcandy.com/p*
  428. // @match http://*.upislam.com/view*
  429. // @match http://*.ngarko.free.fr/view*
  430. // @match http://*.add-screen.com/view*
  431. // @match http://image.siroro.co.uk/p*
  432. // @match http://shell.na.tl/view*
  433. // @match http://thaisharing.online.fr/view*
  434. // @match http://*.images.collectiontricks.it/view*
  435. // @match http://*.my-collection.ru/view*
  436. // @match http://img.schattorie.nl/view*
  437. // @match http://*.forexrainbow.com/view*
  438. // @match http://*.imgupload.pl/view*
  439. // @match http://*.1y9y.com/view*
  440. // @match http://*.addpix.net/view*
  441. // @match http://www.myuploadedimages.com/view*
  442. // @match http://*.imageupload.sketchupthai.com/view*
  443. // @match http://multihoster.saxonia-fighter.de/view*
  444. // @match http://*.img.mdy.ro/?*
  445. // @match http://knecht.novarata.net/?*
  446. // @match http://*.plusgamer.ir/img4up/?*
  447. // @match http://*.tiny-img.com/?*
  448. // @match http://*.img.irandeliver.com/?*
  449. // @match http://img.solpie.net/?*
  450. // @match http://*.xferz.com/?*
  451. // @match http://*.lgeoo.us/?*
  452. // @match http://*.intermcafe.com/imgh/p*
  453. // @match http://*.ddpic.2tl.in/p*
  454. // @match http://*.img.wangolds.com/?*
  455. // @match http://*.fmsecond.com/p*
  456. // @match http://*.up.kfesfahan.com/?*
  457. // @match http://pic.freelian.com/?*
  458. // @match http://*.image.alesher.com/?*
  459. // @match http://ch.1798.in/?*
  460. // @match http://*.images.tapasilo.org/?*
  461. // @match http://upload.khontai.com/?*
  462. // @match http://pic.dnjc8.com/?*
  463. // @match http://*.image.pantyhosemania.info/?*
  464. // @match http://*.addyourpics.com/image*
  465. // @match http://*.imgnext.com/img-*
  466. // @match http://*.vippix.com/share*
  467. // @match http://*.qattach.com/p*
  468. // @match http://*.urimage.net/*
  469. // @match http://*.picfree.org/p*
  470. // @match http://*.imghs.teamfreewill.net/p*
  471. // @match http://*.videoforall.org/p*
  472. // @match http://*.host4images.com/view*
  473. // @match http://*.imgbank.cz/*
  474. // @match http://hosting.tidus.eu/?*
  475. // @match http://*.nyanimg.com/*
  476. // @match http://*.geekpics.in/*
  477. // @match http://*.liolink.com/*
  478. // @match http://*.imagesloading.altervista.org/?*
  479. // @match http://*.showmyimage.com/*
  480. // @match http://*.phpbbmods.it/immaggini*
  481. // @match http://*.givme.de/*
  482. // @match http://upload.crazycraft.pl/*
  483. // @match http://*.mynameismiz.com/*
  484. // @match http://upload.supreme-elite.fr/?*
  485. // @match http://up.vn-hello.com/*
  486. // @match http://*.imagefluff.com/?*
  487. // @match http://*.fotohelp.kz/image*
  488. // @match https://*.myimg.me/*
  489. // @match http://*.upic.kz/*
  490. // @match http://imguploda.inamurajane.info/*
  491. // @match http://*.heberg-hush.org/?*
  492. // @match http://*.oltaciyukle.com/*
  493. // @match http://*.slikomanija.net/*
  494. // @match http://*.pichost.name/*
  495. // @match http://*.fsfiles.org/*
  496. // @match http://*.giveimg.net/*
  497. // @match http://*.evopikz.net/?*
  498. // @match http://www.sxfoto.com/*
  499. // @match http://*.upanh.biz/*
  500. // @match http://*.imagend.com/*
  501. // @match http://*.ilimdunyasi.net/?*
  502. // @match http://*.imagerocket.com/*
  503. // @match http://*.hyyathost.com/*
  504. // @match http://images.reptilescanada.com/*
  505. // @match http://*.imgcode.com/*
  506. // @match http://*.lakhdaria.net/imagebank/?*
  507. // @match http://*.webjardiner.com/hebergement_images_photos/image*
  508. // @match http://*.zagruzitfoto.com/*
  509. // @match http://*.intergranada.com/images/?*
  510. // @match http://*.partizansk.eu/foto/image*
  511. // @match http://*.xenopix.com/?*
  512. // @match http://*.wepic.ru/*
  513. // @match http://*.naeamysig.com/*
  514. // @match http://*.imgup.com/images*
  515. // @match http://*.picturepush.com/public*
  516. // @match http://*.upload-image.fr/*
  517. // @match http://*.picselio.com/*
  518. // @match http://*.t4up.net/*
  519. // @match http://*.iezz.com/?*
  520. // @match http://*.fileaimage.com/?*
  521. // @match http://*.images.gamewind.de/?*
  522. // @match https://*.images.baconbits.org/?*
  523. // @match http://*.kuvajako.com/*
  524. // @match http://*.upanh.ovo.vn/*
  525. // @match http://*.uploads.li/*
  526. // @match http://*.imagesaur.com/*
  527. // @match http://*.wrzucaj.net/*
  528. // @match http://*.api.picx.me/?*
  529. // @match http://*.heberge-images.com/?*
  530. // @match http://*.yehpic.com/*
  531. // @match http://*.joepler.com/*
  532. // @match http://www.image.kg/*
  533. // @match http://*.picshome.ru/?*
  534. // @match http://*.savemyimage.com/*
  535. // @match http://*.subeme.net/*
  536. // @match http://*.img.dramacafe.tv/*
  537. // @match http://*.hosturimage.com/img-*
  538. // @match http://*.pic-mir.ru/*/*
  539. // @match http://*.244pix.com/view*
  540. // @match http://*.imageview.me/view*
  541. // @match http://*.uploadimage.ro/view*
  542. // @match http://imgmaster.net/img-*
  543. // @match http://*.pixtreat.com/show.php*
  544. // @match http://*.imgflare.com/*/*
  545. // @match http://www.imagefap.com/photo/*
  546. // @match http://filefap.com/view*
  547. // @match *://imgur.com/*
  548. // @exclude *://imgur.com/*,*
  549. // @match http://motherless.com/*
  550. // @match http://*.imgult.com/img-*
  551. // @match http://*.xpic.biz/*/view*
  552. // @match http://pictraff.ru/*/*/
  553. // @match http://*.tumblr.com/image/*
  554. // @match http://*.imageporter.com/*
  555. // @match http://*.damimage.com/img-*
  556. // @match http://fapping.empornium.sx/*
  557. // @match http://*.imagehovel.com/view*
  558. // @match http://*.imgfap.net/img-*
  559. // @match http://*.img-zone.com/img-*
  560. // @match http://*.bulkimg.info/img-*
  561. // @match http://imgboxxx.com/view*
  562. // @match http://*.imghere.net/view*
  563. // @match http://*.imghash.com/?v=*
  564. // @match http://*.imagedomino.net/?v=*
  565. // @match http://*.sharepic.biz/show-image.php?id=*
  566. // @match http://f-lite.ru/*
  567. // @match http://*.pixel.so/*
  568. // @match http://*.picify.com/?v=*
  569. // @match http://img.titank.com/*
  570. // @match http://*.picturescream.com/*
  571. // @match http://*.imgdone.com/view*
  572. // @match http://*.imghoney.com/view*
  573. // @match http://*.4ufrom.me/view*
  574. // @match http://www.2i.cz/*
  575. // @match http://awesomescreenshot.com/*
  576. // @match http://*.istoreimg.com/i/*
  577. // @match http://*.imgcoin.net/img-*
  578. // @match http://*.08lkk.com/Image/img-*
  579. // @match *://*.flickr.com/photos/*/*/
  580. // @exclude /^https?://(www\.)?flickr\.com/photos/([^/]+)/(sets/.*|page.*|with.*|favorites.*)?$/
  581. // @match http://*.imgrex.com/view*
  582. // @match http://www.amateri.cz/g*/*
  583. // @match http://*.imgshow.me/*
  584. // @match *://*.wikipedia.org/wiki/*:*.jp*
  585. // @match *://*.wikipedia.org/wiki/*:*.png
  586. // @match *://*.wikimedia.org/wiki/File:*.jp*
  587. // @match *://*.wikimedia.org/wiki/File:*.pn*
  588. // @match http://*.dragimage.org/img-*
  589. // @match http://*.xxxscreens.com//img-*
  590. // @match http://*.trikyimg.com//img-*
  591. // @match http://*.trikyimg.com/img-*
  592. // @match http://*.pixpal.net/*.html
  593. // @match http://avenuexxx.com/*-*
  594. // @match http://www.bilderhoster.net/*.html
  595. // @match http://*.imgfun.biz/img-*
  596. // @match http://iceimg.com/*/*
  597. // @match http://*.dtpics.biz/img-*
  598. // @match http://*.xxxscreens.com/img-*
  599. // @match http://*.imgdope.com/view*
  600. // @match http://*.imagehost.eu/*
  601. // @match http://*.sexyimage.imagepool.in/share-*
  602. // @match http://*.storeimgs.net/img-*
  603. // @match http://*.imgpaying.com/*/*
  604. // @match http://*.aveimage.com/view*
  605. // @match http://*.fappic.com/*
  606. // @match http://*.imagenimage.com/*/*
  607. // @match http://*.adultur.com/img-*
  608. // @match http://*.imageshimage.com/*/*
  609. // @match http://www.urpichost.com/?v=*
  610. // @match http://*.imgswift.com/*/*
  611. // @match http://*.imageporn.eu/?v=*
  612. // @match https://500px.com/photo/*
  613. // @match http://*.gokoimage.com/img-*
  614. // @match http://*.greenpiccs.com/images/*.html
  615. // @match http://*.hostmat.eu/view*
  616. // @match http://*.image.adlock.in/img-*
  617. // @match http://*.photobucket.com/user/*/media/*.htm*
  618. // @match http://*.imagepool.in/share*
  619. // @match http://imgv.net/*.html
  620. // @match http://www.imgshots.com/img*
  621. // @match http://www.imgshots.com/show/*
  622. // @match http://*.3xplanet.com/view*
  623. // @match http://*.imgmega.com/*.html
  624. // @match http://*.imgsee.me/*
  625. // @match http://img.yt/img-*
  626. // @match http://*.payforpic.ru/*/*/
  627. // @match http://*.pic4cash.ru/*.html
  628. // @match http://*.pic4cash.ru/full/
  629. // @match http://*.imgchili.mcdir.ru/v*
  630. // @match http://*.keep4u.ru/full/*
  631. // @match http://*.imgfeel.com/img-*
  632. // @match http://*.pic.re/*.html
  633. // @match http://*.imagebucks.biz/*/*
  634. // @match http://*.freshpics.ru/*/*/
  635. // @match http://imglocker.com/*/*
  636. // @match http://imgspot.org/img*
  637. // @match http://picexposed.com/*.html
  638. // @match http://*.imgpapa.com/img-*
  639. // @match http://*.sexyimg.eu/img-*
  640. // @match http://*.imglemon.com/img-*
  641. // @match *://*.imgseeds.com/img-*
  642. // @match http://*.pronpic.org/*/*
  643. // @match http://prntscr.com/*
  644. // @match http://*.imgdream.net/view*
  645. // @match http://*.imgtab.net/*
  646. // @match http://*.madimage.org/img-*
  647. // @match http://*.kephost.com/image/*
  648. // @match http://i.ruspotting.net/image/*
  649. // @match http://*.gifyu.com/image/*
  650. // @match https://*.picr.ws/image/*
  651. // @match https://www.linkmypic.com/image/*
  652. // @match http://celebimg.com/image/*
  653. // @match http://*.sharepic.org/image/*
  654. // @match http://*.zuly.de/image/*
  655. // @match http://upload.vstanced.com/image/*
  656. // @match http://*.thro.bz/image/*
  657. // @match http://*.qoou.net/image/*
  658. // @match http://*.3intro.com/image/*
  659. // @match http://brightpic.tk/image/*
  660. // @match http://*.cweb-pix.com/image/*
  661. // @match http://*.gsmimagehost.com/image/*
  662. // @match http://hosting.webspell.fr/image/*
  663. // @match http://*.i-pict.ru/image/*
  664. // @match http://*.images.woh.to/image/*
  665. // @match http://*.imagesturk.net/image/*
  666. // @match http://*.imghaze.com/image/*
  667. // @match http://*.imgup.nl/image/*
  668. // @match http://*.kuvapankki.in/image/*
  669. // @match http://*.myimageshare.com/image/*
  670. // @match http://*.nium.co/image/*
  671. // @match http://pix.hostux.net/image/*
  672. // @match http://*.pixit.hu/image/*
  673. // @match http://*.pixoload.de/image/*
  674. // @match http://*.primeimg.co/image/*
  675. // @match http://*.planet-upload.eu/image/*
  676. // @match *://www.imagestorming.com/image/*
  677. // @match http://pic.xtream-reallife.de/image/*
  678. // @match http://*.ultraimg.com/image/*
  679. // @match http://demo.chevereto.com/image/*
  680. // @match http://*.ownimg.com/image/*
  681. // @match http://*.6on9.com/img/*
  682. // @match http://imgclick.net/*/*
  683. // @match http://*.gogoimage.org/img-*
  684. // @match http://imgmoney.ru/*.html
  685. // @match http://imgmoney.ru/full/
  686. // @match http://www.imgili.com/view*
  687. // @match http://*.imglooks.com/img-*
  688. // @match http://*.bababian.com/phoinfo/*
  689. // @match http://*.imageeer.com/*
  690. // @match http://*.xxximagenow.com/img-*
  691. // @match http://*.imgreserve.com/?v=*
  692. // @match http://*.you-logo.ru/show*
  693. // @match http://*.ticklebytes.com/?v=*
  694. // @match http://*.uploadimagex.com/view*
  695. // @match http://*.powerlogo.ru/show*
  696. // @match http://*.rupix.org/view*
  697. // @match http://youpicture.org/?v=*
  698. // @match http://*.all-poster.ru/?v=*
  699. // @match http://*.picbug.ru/share*
  700. // @match http://*.etc.imgextra.com//img-*
  701. // @match http://*.sxpix.nl/img-*
  702. // @match http://*.xxxupload.org/img-*
  703. // @match http://*.hotflick.net/u/v/?q=*
  704. // @match http://*.hotflick.net/f/v/?q=*
  705. // @match http://*.fotooplata.ru/*.html
  706. // @match http://*.fotooplata.ru/full/
  707. // @match http://vavvi.com/images/*.html
  708. // @match http://*.viewvee.com/img-*
  709. // @match http://*.deviantart.com/art/*
  710. // @match http://*.myceleb.net/u/v/?q=*
  711. // @match http://*.imageblinks.com/img-*
  712. // @match http://*.gelbooru.com/index.php?page=post&s=view&id=*
  713. // @match http://danbooru.donmai.us/posts/*
  714. // @match http://konachan.com/post/show/*
  715. // @match http://konachan.net/post/show/*
  716. // @match https://yande.re/post/show/*
  717. // @match https://chan.sankakucomplex.com/*post/show/*
  718. // @match https://yande.re/post/show/*
  719. // @match http://www.zerochan.net/*
  720. // @match http://*.imgrock.net/*/*.html
  721. // @match http://*.imagedoza.com/i.cc/i/*
  722. // @match http://imgzap.com/view*
  723. // @match http://*.funimg.net/img-*
  724. // @match http://*.olivepix.com/view/*
  725. // @match http://*.imageontime.org/img-*
  726. // @match http://*.ocaload.com/img-*
  727. // @match http://*.imgget.net/img-*
  728. // @match http://*.imgs.it/img-*
  729. // @match http://*.imghit.com/img-*
  730. // @match http://*.imagewow.eu/img-*
  731. // @match http://*.imageon.org/img-*
  732. // @match http://*.imgcentral.com/view*
  733. // @match http://*.imgtrex.com/*/*
  734. // @match http://*.imgdoggy.com/img-*
  735. // @match http://*.chronos.to/*
  736. // @match http://picspornfree.me/img-*
  737. // @match http://*.pic-you.com/p*
  738. // @match http://*.imageback.info/view*
  739. // @match http://*.image-bugs.com/*mage/*
  740. // @match http://*.pixhst.com/pictures/*
  741. // @match http://*.imgdrive.net/img-*
  742. // @match http://*.fapic.me/img-*
  743. // @match http://*.gallerynova.se/site/v/*
  744. // @match http://*.image.re/img-*
  745. // @match http://*.uplimg.com/img-*
  746. // @match http://www.pixiv.net/member_illust.php?mode=medium&illust_id=*
  747. // @match http://*.imagelike.org/?v=*
  748. // @match http://*.scrin.org/?v=*
  749. // @match http://*.imghost.us.to/xxx/?v=*
  750. // @match http://*.thumbnailus.com/img-*
  751. // @match http://*.nimplus.com/img-*
  752. // @match http://www.imgtaxi.com/img-*
  753. // @match http://*.imgstudio.org/img-*
  754. // @match http://goimge.com/img-*
  755. // @match http://*.shareimg.fr/img-*
  756. // @match http://*.safeimage.biz/image/*
  757. // @match http://*.picclick.ru/*/*/
  758. // @match http://*.fixxpix.ru/*/*/
  759. // @match http://*.imgclover.com/image/*
  760. // @match http://*.imgz.pw/share-*
  761. // @match http://*.imgking.co/img*
  762. // @match http://ask.fm/*/photo/original
  763. // @match http://cuteimg.cc/*
  764. // @match http://*.newimagepost.com/img-*
  765. // @match http://*.imageho.me/img-*
  766. // @match http://myimg.club/*
  767. // @match http://*.imgease.re/img-*
  768. // @match http://www.hotimage.uk/img-*
  769. // @match http://imgview.net/*/*.html
  770. // @match http://*.picsnova.net/img-*
  771. // @match http://*.holdthemoan.net/x/share-*
  772. // @match http://*.10.imageleon.com/i-*
  773. // @match https://www.dropbox.com/s/*/*
  774. // @match http://imgor.net/img-*
  775. // @match http://*.imagedax.net/*/*.html
  776. // @match http://*.ipicsharer.com/img-*
  777. // @match http://*.imgwet.com/img-*
  778. // @match http://*.imgwel.com/*
  779. // @match http://*.imgmonkey.com/*/*.html
  780. // @match https://*.img.bi/*
  781. // @match http://*.fapat.me/img-*
  782. // @match http://photo.weibo.com/*/large/photo_id/*
  783. // @match http://*.crazyimg.com/images/*.html
  784. // @match http://imgbe.com/img-*
  785. // @match http://*.imgextra.uk/image/*
  786. // @match http://*.extraimago.com/image/*
  787. // @match http://*.fireimg.cc/img-*
  788. // @match http://www.pornimagex.com/image/*
  789. // @match http://*.porno-pirat.ru/img-*
  790. // @match http://*.imgdrive.co/*/*
  791. // @match http://*.imgboom.net/img-*
  792. // @match http://*.img24.org/*.html
  793. // @match http://*.project-photo.net/img-*
  794. // @match http://*.img-planet.com/img-*
  795. // @match http://*.greasyimage.com/img-*
  796. // @match http://*.imgbb.net/v-*
  797. // @match http://*.picangel.com/?v=*
  798. // @match http://*.picangel.com/?p=*
  799. // @match http://*.photolot.org/img-*
  800. // @match http://*.pic-maniac.com/*
  801. // @match https://*.instagram.com/p/*
  802. // @exclude https://instagram.com/p/*/embed/*
  803. // @exclude https://*.instagram.com/p/*/embed/*
  804. // @match http://*.picbee.pw/image/*
  805. // @match http://*.imgglobe.eu/img-*
  806. // @match http://*.imgsay.com/?v=*
  807. // @match http://*.imgsmile.com/?v=*
  808. // @match http://*.balkanelite.org/MultiHoster/view*
  809. // @match http://*.shareimgs.com/show*
  810. // @match https://twitter.com/*/photo/*
  811. // @match http://*.icezap.com/img-*
  812. // @match http://*.imgtea.com/img-*
  813. // @match *://*.imgsen.se/img-*
  814. // @match *://*.rapidimg.net/img-*
  815. // @match http://foxyimg.link/*
  816. // @match *://*.imgflash.net/img-*
  817. // @match http://*.sexyimagexxx.com/img-*
  818. // @match http://*.imgtornado.com/img-*
  819. // @match http://*.img-365.com/image/*
  820. // @match http://*.imgbonk.com/image/*
  821. // @match http://*.imageyo.ga/image/*
  822. // @match http://*.daily-img.com/image/*
  823. // @match http://*.imgcool.net/?*
  824. // @match http://*.imageab.com/image/*
  825. // @match http://*.erimge.com/img-*
  826. // @match http://*.img-pay.com/img-*
  827. // @match http://*.imgtrial.com/img-*
  828. // @match http://imgtown.net/*
  829. // @match http://ameblo.jp/*/image-*
  830. // @match http://*.loftlm.ru/img-*
  831. // @match http://*.imgmag.co/img-*
  832. // @match http://*.imgdragon.com/*/*.html
  833. // @match http://ftop.ru/*/*
  834. // @match http://*.imgurx.net/share*
  835. // @match http://savepic.ru/*.htm
  836. // @match http://*.imgmaid.net/*
  837. // @match http://*.imggold.org/*/*.html
  838. // @match http://*.imgcredit.xyz/img-*
  839. // @match http://*.dimtus.com/img-*
  840. // @match http://*.coreimg.net/*
  841. // @match http://sfwimg.com/image/*
  842. // @match http://*.imgtiger.org/*/*
  843. // ==/UserScript==
  844.  
  845. if (typeof unsafeWindow === "undefined")
  846. {
  847. unsafeWindow = window;
  848. }
  849.  
  850. if (typeof GM_registerMenuCommand !== "undefined")
  851. {
  852. GM_registerMenuCommand("Handy Image Configuration", cfg, "C");
  853. }
  854.  
  855. if(window.location.href.lastIndexOf(window.location.hostname) + window.location.hostname.length + 1 == window.location.href.length)
  856. {
  857. console.warn("we are on website's main page, aren't we?");
  858. return false;
  859. }
  860. if (document.images.length == 1 && document.images[0].src == window.location.href)
  861. {
  862. console.warn("handy isn't needed for directly opened images");
  863. return false;
  864. }
  865. if(document.referrer)
  866. {
  867. if(document.referrer.lastIndexOf(window.location.hostname) != -1 && document.referrer.lastIndexOf(window.location.hostname) +1 == document.referrer.length - window.location.hostname.length)
  868. {
  869. console.warn("you have just uploaded a picture, haven't you?");
  870. return false;
  871. }
  872. }
  873. if(document.cookie.indexOf("hji=") != -1)
  874. {
  875. if(document.cookie.indexOf("hji=" + window.location.href) != -1)
  876. {
  877. console.warn("you just don't want the script to run now, do you?");
  878. document.cookie = "hji=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
  879. return false;
  880. }
  881. else if(document.cookie.indexOf("backhji=") != -1)
  882. {
  883. console.warn("you have found a time machine, now you are traveling back in history");
  884. window.history.go(-1);
  885. document.cookie = "hji=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
  886. return false;
  887. }
  888. console.warn("found a weird cookie, let's eat it");
  889. document.cookie = "hji=; expires=Thu, 01 Jan 1970 00:00:01 GMT;"; // stealth mode
  890. }
  891. //else{ console.warn("no hji cookie found");}
  892.  
  893. function q(s){if(document.body){return document.body.querySelector(s);}return null;}
  894. var cfg_direct;
  895. var cfg_bgclr;
  896. var cfg_fitWH = true;
  897. var cfg_fitB;
  898. var cfg_fitS;
  899. var cfg_js;
  900. var dp = false;
  901. var rescaled = false;
  902. var tb;
  903. var timeout = 1000;
  904. var FireFox = ((navigator.userAgent.indexOf('Firefox') != -1) ? true : false);
  905. var i;
  906. var j;
  907. var iurl = window.location.hostname;
  908. if(!iurl.indexOf("www."))
  909. {
  910. iurl = iurl.substr(4);
  911. }
  912.  
  913. function ws()
  914. {
  915. if(!FireFox) // NOT firefox
  916. {
  917. window.stop();
  918. }
  919. }
  920.  
  921. function sanitize() // lol I'm such a hacker
  922. {
  923. var lasttask = setTimeout(function() {},0);
  924. for(var n = lasttask; n > 0; n--)
  925. {
  926. clearTimeout(n);
  927. }
  928. }
  929.  
  930. function onscript(e)
  931. {
  932. //console.warn( "STOPPED: " + e.target.src + e.target.innerHTML);
  933. e.preventDefault();
  934. e.stopPropagation();
  935. }
  936.  
  937. function onbeforeunload(e) // back helper
  938. {
  939. //console.warn("setting hji cookie before unloading page");
  940. var now = new Date();
  941. var time = now.getTime();
  942. time += 2000; // 2 sec to help quit double-pages
  943. now.setTime(time);
  944. now.toGMTString();
  945. document.cookie = 'backhji=; expires=' + now.toGMTString() + '; path=/';
  946. }
  947.  
  948. function protected_createElement(el)
  949. {
  950. delete document.createElement;
  951. var r = document.createElement(el);
  952. unsafeWindow.document.createElement = null;
  953. return r;
  954. }
  955.  
  956. function makeimage()
  957. {
  958. loadCfg();
  959. if(cfg_direct){unsafeWindow.location.href = i.src;return false;}
  960. if(cfg_bgclr){document.body.bgColor = cfg_bgclr;}
  961. document.body.style.margin = "0px";
  962. document.body.innerHTML = "<style>img { position: absolute; top: 0; right: 0; bottom: 0; left: 0; image-orientation: from-image; }</style>"; // center image
  963. ws();
  964. var isrc = i.src;
  965. i = protected_createElement("img");
  966. i.src = isrc;
  967. i.style.margin = "auto"; // center image
  968. document.body.appendChild(i);
  969. i.addEventListener("click", rescale, true);
  970. window.addEventListener("keydown", onkeydown, true);
  971. if(dp){console.warn("you are on a double-page image hosting (probably)");window.addEventListener("beforeunload", onbeforeunload, true);}
  972. autoresize();
  973. }
  974.  
  975. function find_text_in_scripts(a, b, o, h)
  976. {
  977. var s = document.getElementsByTagName("script");
  978. for(var c=0;c<s.length;c++)
  979. {
  980. if(h && s[c].innerHTML.indexOf(h) != -1){s[c].innerHTML = s[c].innerHTML.substring(0, s[c].innerHTML.indexOf(h));}
  981. var start_pos = o ? s[c].innerHTML.indexOf(a) : s[c].innerHTML.lastIndexOf(a);
  982. if(start_pos == -1){continue;}
  983. start_pos += a.length;
  984. i = s[c];
  985. i.src = decodeURIComponent(s[c].innerHTML.substring(start_pos,s[c].innerHTML.indexOf(b,start_pos)).split("\\").join("")); // split\join fix for stupidfox GreaseMonkey
  986. return true;
  987. }
  988. return false;
  989. }
  990.  
  991. function post(path, params, method)
  992. {
  993. method = method || "post";
  994. var form = protected_createElement("form");
  995. form.setAttribute("method", method);
  996. form.setAttribute("action", path);
  997. for(var key in params)
  998. {
  999. if(params.hasOwnProperty(key))
  1000. {
  1001. var hiddenField = protected_createElement("input");
  1002. hiddenField.setAttribute("type", "hidden");
  1003. hiddenField.setAttribute("name", key);
  1004. hiddenField.setAttribute("value", params[key]);
  1005.  
  1006. form.appendChild(hiddenField);
  1007. }
  1008. }
  1009. document.body.appendChild(form);
  1010. form.submit();
  1011. }
  1012.  
  1013. function makeworld()
  1014. {
  1015. if(i){return;}
  1016. // per-host image detection
  1017. switch (iurl)
  1018. {
  1019. case "gist.github.com":
  1020. if(document.body){i=1;cfg();}break;
  1021. case "vvcap.net":
  1022. case "simplest-image-hosting.net":
  1023. case "hostimage.ru":
  1024. case "gluner.de":
  1025. case "imagebin.ca":
  1026. case "iceimg.com":
  1027. case "pics.tam.in.ua":
  1028. case "pixhst.com":
  1029. i = q('img');
  1030. break;
  1031. case "myceleb.net":
  1032. i = q('img[id]');
  1033. break;
  1034. case "gallerynova.se":
  1035. i = q('a[href*="' + iurl + '"]');
  1036. if(i)
  1037. {
  1038. i.src = i.href;
  1039. }
  1040. break;
  1041. case "tryimg.com":
  1042. i = q('a img:not([href,"' + iurl + '"])');
  1043. break;
  1044. case "savepic.org":
  1045. case "savepic.ru":
  1046. i = q('a img:not([src*="/images/"])');
  1047. break;
  1048. case "motherless.com":
  1049. j = true;
  1050. i = q('div#media-media div a img');
  1051. break;
  1052. case "awesomescreenshot.com":
  1053. i = q('img#screenshot');
  1054. break;
  1055. case "dropbox.com":
  1056. j = true;
  1057. i = q('img.preview-image');
  1058. if(i)
  1059. {
  1060. i = q('a[href*="?dl=1"]');
  1061. if(i)
  1062. {
  1063. i.src = i.href;
  1064. }
  1065. }
  1066. break;
  1067. case "img.3ezy.net":
  1068. case "image-bugs.com":
  1069. case "imgclover.com":
  1070. case "picbee.pw":
  1071. case "demo.chevereto.com":
  1072. case "img-365.com":
  1073. case "imgbonk.com":
  1074. case "imageyo.ga":
  1075. case "daily-img.com":
  1076. case "celebimg.com":
  1077. case "sfwimg.com":
  1078. //chevereto 3.x
  1079. i = document.head.querySelector('link[rel="image_src"]');
  1080. if(i)
  1081. {
  1082. i.src = i.href;
  1083. i.src = i.src.replace('_800.', '.'); //img.3ezy.net
  1084. }
  1085. break;
  1086. case "directupload.net":
  1087. case "bilderhoster.net":
  1088. case "noelshack.com":
  1089. case "kephost.com":
  1090. case "i.ruspotting.net":
  1091. case "gifyu.com":
  1092. case "picr.ws":
  1093. case "linkmypic.com":
  1094. case "sharepic.org":
  1095. case "zuly.de":
  1096. case "upload.vstanced.com":
  1097. case "thro.bz":
  1098. case "qoou.net":
  1099. case "3intro.com":
  1100. case "brightpic.tk":
  1101. case "cweb-pix.com":
  1102. case "gsmimagehost.com":
  1103. case "hosting.webspell.fr":
  1104. case "i-pict.ru":
  1105. case "images.woh.to":
  1106. case "imagesturk.net":
  1107. case "imghaze.com":
  1108. case "imgup.nl":
  1109. case "kuvapankki.in":
  1110. case "myimageshare.com":
  1111. case "nium.co":
  1112. case "pix.hostux.net":
  1113. case "pixit.hu":
  1114. case "pixoload.de":
  1115. case "primeimg.co":
  1116. case "planet-upload.eu":
  1117. case "imagestorming.com":
  1118. case "pic.xtream-reallife.de":
  1119. case "ultraimg.com":
  1120. case "ownimg.com":
  1121. case "safeimage.biz":
  1122. case "imagebam.com":
  1123. case "twitter.com":
  1124. i = document.querySelector('meta[property="og:image"] , [name="og:image"]');
  1125. if(i)
  1126. {
  1127. i.src = i.content;
  1128. i.src = i.src.replace(':large', ':orig'); //twitter.com
  1129. }
  1130. else
  1131. {
  1132. i = q('a[download]');
  1133. if(i){i.src = i.href;}
  1134. }
  1135. break;
  1136. case "imgur.com":
  1137. j = true;
  1138. i = document.head.querySelector('meta[property="og:image"]');
  1139. if(i)
  1140. {
  1141. var f = document.head.querySelector('meta[property="og:url"]');
  1142. if((f && f.content.indexOf("/gallery/") != -1) || i.content.indexOf("/images/logo") != -1)
  1143. {
  1144. return;
  1145. }
  1146. else
  1147. {
  1148. i.src = i.content;i.src = i.src.split('?')[0];
  1149. }
  1150. }
  1151. break;
  1152. case "prntscr.com":
  1153. i = document.querySelector('meta[property="og:image"]');
  1154. if(i)
  1155. {
  1156. i.src = i.content;
  1157. if(FireFox)
  1158. {
  1159. i.src = "http://img.prntscr.com/img?url=" + i.src;
  1160. }
  1161. }
  1162. break;
  1163. case "ameblo.jp":
  1164. j=true;
  1165. i = q('img#imgItem');
  1166. break;
  1167. case "instagram.com":
  1168. j = true;
  1169. find_text_in_scripts('display_src":"', '"');
  1170. if(i)
  1171. {
  1172. if(!find_text_in_scripts('is_video":true', ','))
  1173. {
  1174. i.src = i.src.replace(/\/p\d+x\d+?\//, '/');
  1175. }
  1176. else
  1177. {
  1178. i = null;
  1179. }
  1180. }
  1181. break;
  1182. case "flickr.com":
  1183. case "secure.flickr.com":
  1184. find_text_in_scripts('"url":"', '"', false, '"canComment"');
  1185. break;
  1186. case "pixiv.net":
  1187. {
  1188. i = q("img.original-image");
  1189. if(i){i.src = i.dataset.src;}
  1190. }
  1191. break;
  1192. case "chan.sankakucomplex.com":
  1193. i = q('a[itemprop="contentUrl"]');
  1194. if(i)
  1195. {
  1196. i.src = i.href;
  1197. }
  1198. break;
  1199. case "imageshack.com":
  1200. i = q('input[value*="' + iurl + '/f/"]');
  1201. if(i){window.location.href = i.value.replace('/f/', '/i/');}
  1202. i = q('img[data-width]');
  1203. break;
  1204. case "imgnook.com":
  1205. case "h4z.it":
  1206. i = document.images[2];
  1207. if(i){i.src = i.parentNode.href;}
  1208. break;
  1209. case "dumpyourphoto.com":
  1210. i = q('a img:not([alt])');
  1211. if(i){i.src = i.parentNode.href;}
  1212. break;
  1213. case "thumbsnap.com":
  1214. i = q('img#thepic');
  1215. if(i && i.parentNode.href){i.src = i.src.replace('/s/', '/i/');}
  1216. break;
  1217. case "imgbox.com":
  1218. case "imageupper.com":
  1219. case "hotflick.net":
  1220. case "upix.me":
  1221. i = q('img#img');
  1222. if(!i && window.location.hash) // upix.me
  1223. {
  1224. i = q('a');
  1225. i.src = window.location.href.replace("#","");
  1226. }
  1227. break;
  1228. case "imageban.ru":
  1229. case "imageban.net":
  1230. case "imagesnake.com":
  1231. case "freebunker.com":
  1232. case "imagefruit.com":
  1233. case "imagestime.com":
  1234. case "kinkypic.net":
  1235. case "hornyimage.com":
  1236. case "imgcarry.com":
  1237. case "pornbus.org":
  1238. case "fotoo.pl":
  1239. case "picspider.de":
  1240. case "hostpix.de":
  1241. case "uploadking.biz":
  1242. case "foto.xhost.lv":
  1243. case "onimage.net":
  1244. case "storepic.com":
  1245. case "photodok.com":
  1246. case "hostarea.de":
  1247. case "pixtreat.com":
  1248. case "imgshots.com":
  1249. case "shareimgs.com":
  1250. i = q('img#img_obj');
  1251. break;
  1252. case "pimpandhost.com":
  1253. case "fastpic.ru":
  1254. case "abload.de":
  1255. i = document.body.querySelectorAll('img#image');
  1256. if(i)
  1257. {
  1258. i = i[i.length-1];
  1259. }
  1260. break;
  1261. case "pikucha.ru":
  1262. i = q('img#image');
  1263. j = true;
  1264. break;
  1265. case "bayimg.com":
  1266. case "picgarage.net":
  1267. i = q('img#mainImage');
  1268. break;
  1269. case "xup.in":
  1270. i = q('img[src*="/exec/"]');
  1271. break;
  1272. case "jpegbay.com":
  1273. i = q('a[class]');
  1274. if(i){i.src = i.href;}
  1275. break;
  1276. case "keep4u.ru":
  1277. i = q('img[src*="/b/"]');
  1278. break;
  1279. case "euro-pic.eu":
  1280. case "picpicture.com":
  1281. case "picfox.org":
  1282. case "freeimage.us":
  1283. case "xxx.freeimage.us":
  1284. case "pixsor.com":
  1285. case "img.pereslavl.ru":
  1286. case "digitalfrenzy.net":
  1287. case "uppic.xgn.in.th":
  1288. case "pic.2x4.ru":
  1289. case "rupict.ru":
  1290. case "host99.byethost4.com":
  1291. case "upanh.depmely.com":
  1292. case "eazypics.net":
  1293. case "image.sabyjai.org":
  1294. case "xtupload.com":
  1295. case "t.williamgates.net":
  1296. case "vippix.com":
  1297. case "sexyimage.imagepool.in":
  1298. case "imagepool.in":
  1299. case "imgz.pw":
  1300. case "holdthemoan.net":
  1301. case "imgurx.net":
  1302. //i = q('img#iimg');
  1303. find_text_in_scripts("<img src='", "'");
  1304. break;
  1305. case "amateri.cz":
  1306. if(find_text_in_scripts('var orig_url="', '"'))
  1307. {
  1308. i.src = i.src.replace('http://www.amateri.cz/orig.php?&img=', 'http://img2.amateri.cz/users/');
  1309. }
  1310. break;
  1311. case "pix-x.net":
  1312. i = q('td img[src*="thumb"]');
  1313. if(i){i.src = i.src.replace('-thumb', '');i.src = i.src.replace('img_thumb', 'img_full');}
  1314. break;
  1315. case "pics-money.ru":
  1316. i = q('img[src*="/full/"]');if(i){break;}
  1317. case "pic5you.ru":
  1318. case "pic4you.ru":
  1319. case "picp2.com":
  1320. case "picforall.ru":
  1321. case "piccash.net":
  1322. case "picage.ru":
  1323. case "images-host.biz":
  1324. case "pic2profit.com":
  1325. case "pic-mir.ru":
  1326. case "pictraff.ru":
  1327. case "payforpic.ru":
  1328. case "freshpics.ru":
  1329. case "imglocker.com":
  1330. case "picclick.ru":
  1331. case "fixxpix.ru":
  1332. i = q('img[src*="thumb"]');
  1333. if(i){i.src = i.src.replace('-thumb', '');i.src = i.src.replace('img_thumb', 'img_full');i.src = i.src.replace('_thumb', '');}
  1334. break;
  1335. case "imagik.fr":
  1336. i = q('img[src*="/uploads/"]');
  1337. if(i){i.src = i.src.replace('thumb_', '');}
  1338. break;
  1339. case "tinypic.com":
  1340. i = q('img#imgElement');
  1341. break;
  1342. case "picshot.pl":
  1343. i = q('img[src*="' + iurl + '/p"]');
  1344. if(i){i.src = i.src.replace('thumb', 'file');}
  1345. break;
  1346. case "sharenxs.com":
  1347. i = q('img.view_photo');
  1348. if(i){i.src = i.src.replace('/thumbnails/', '/images/');
  1349. i.src = i.src.replace('/tn-', '/');
  1350. i.src = i.src.replace('/mid/', '/wz/');
  1351. var fn = q('div.alert.alert-info.nomargin.photo_name span');
  1352. if(fn)
  1353. {
  1354. var url = i.src;
  1355. i.src = url.substring(0,url.lastIndexOf('/')+1) + fn.textContent + url.substring(url.lastIndexOf('.'));
  1356. }}
  1357. break;
  1358. case "radikal.ru":
  1359. case "radical-foto.ru":
  1360. case "radikal-foto.ru":
  1361. case "f-page.ru":
  1362. case "f-lite.ru":
  1363. case "f-picture.net":
  1364. find_text_in_scripts('"Url":"', '"');
  1365. break;
  1366. case "bilder-space.de":
  1367. case "imagesup.de":
  1368. i = q('img.picture');
  1369. break;
  1370. case "lostpic.net":
  1371. i = q('a[href*="/orig"]');
  1372. if(i){i.src = i.href;}
  1373. break;
  1374. case "pix.toile-libre.org":
  1375. case "photo-host.org":
  1376. case "myxpic.com":
  1377. case "picness.com":
  1378. i = q('a[href*="original"]');
  1379. if(i){i.src = i.href;}
  1380. break;
  1381. case "picsee.net":
  1382. i = q('a[href*="/upload"]');
  1383. if(i){i.src = i.href;}
  1384. break;
  1385. case "danbooru.donmai.us":
  1386. i = q('a[href*="/data/"]');
  1387. if(i){i.src = i.href;}
  1388. break;
  1389. case "totalsimage.com":
  1390. case "imagehost.eu":
  1391. case "fappic.com":
  1392. i = q('a#image');
  1393. if(i){i.src = i.href;}
  1394. break;
  1395. case "imgplus.info":
  1396. i = q('img[src*="full"]');
  1397. break;
  1398. case "zerochan.net":
  1399. i = q('a[href*="full"]');
  1400. if(i){i.src = i.href;}
  1401. break;
  1402. case "wstaw.org":
  1403. i = q('a[href*="/m/"]');
  1404. if(i){i.src = i.href;}
  1405. break;
  1406. case "imageshost.ru":
  1407. case "imgv.net":
  1408. i = q('a[href*="/img/"]');
  1409. if(i){i.src = i.href;}
  1410. break;
  1411. case "freepicninja.com":
  1412. case "x.thebestpichost.com":
  1413. if(window.location.href.indexOf("ads-cookie.php") != -1)
  1414. {
  1415. i = q('a');
  1416. if(i)
  1417. {
  1418. window.location.href = i.href;
  1419. }
  1420. }
  1421. else
  1422. {
  1423. iurl += "$";
  1424. }
  1425. break;
  1426. case "freepicninja.com$":
  1427. case "uploadimage.ro":
  1428. i = q('img[src*="img.php"]');
  1429. break;
  1430. case "imageno.com":
  1431. i = q('img[src*="image.php"]');
  1432. break;
  1433. case "loadpix.de":
  1434. i = q('img[src*="bild.php"]');
  1435. break;
  1436. case "imagebin.org":
  1437. case "bildr.no":
  1438. i = q('img[src*="image"]');
  1439. break;
  1440. case "iv.pl":
  1441. case "imagevau.eu":
  1442. case "funextra.hostzi.com":
  1443. case "freakimage.com":
  1444. case "imageurlhost.com":
  1445. case "superkipje.com":
  1446. case "yourimage24.de":
  1447. case "ximg.co.uk":
  1448. case "sl-images.ath.cx":
  1449. case "imagepussy.com":
  1450. case "bien-vue.com":
  1451. case "pikczery.pl":
  1452. case "hosting-zdjec.pl":
  1453. case "upislam.com":
  1454. case "add-screen.com":
  1455. case "shell.na.tl":
  1456. case "my-collection.ru":
  1457. case "img.schattorie.nl":
  1458. case "forexrainbow.com":
  1459. case "imgupload.pl":
  1460. case "addpix.net":
  1461. case "myuploadedimages.com":
  1462. case "imageupload.sketchupthai.com":
  1463. case "multihoster.saxonia-fighter.de":
  1464. case "imgdone.com":
  1465. case "rupix.org":
  1466. case "gelbooru.com":
  1467. case "greenpiccs.com":
  1468. case "imagelike.org":
  1469. case "balkanelite.org":
  1470. i = q('a[href*="images/"]');
  1471. if(i){i.src = i.href;}
  1472. break;
  1473. case "fotoshack.us":
  1474. i = q('img[src*="/fotos/"]');
  1475. break;
  1476. case "subefotos.com":
  1477. j = true;
  1478. i = q('img[src*="fotos.' + iurl + '"]');
  1479. break;
  1480. case "uppix.com":
  1481. i = q('img[src*="/f"]');
  1482. break;
  1483. case "pictureshoster.com":
  1484. case "zaslike.com":
  1485. case "dwimg.com":
  1486. case "uploadagent.de":
  1487. i = q('a[href*="files/"]');
  1488. if(i){i.src = i.href;}
  1489. break;
  1490. case "imgtheif.com":
  1491. case "picthost.net":
  1492. case "blackcatpix.com":
  1493. case "photosex.biz":
  1494. i = q('img[src*="/pic"]');
  1495. break;
  1496. case "pronpic.org":
  1497. i = q('img[src*="/pic/"]');
  1498. if(i){i.src = i.src.replace('th_', '');}
  1499. break;
  1500. case "d69.in":
  1501. case "imadul.com":
  1502. i = q('div.img_box a');
  1503. if(i){i.src = i.href;}
  1504. break;
  1505. case "imgmega.com":
  1506. case "pic.re":
  1507. case "imgdrive.co":
  1508. case "foxyimg.link":
  1509. i = q('input[type="submit"]');
  1510. dp=true;
  1511. if(i)
  1512. {
  1513. i.click();
  1514. break;
  1515. }
  1516. case "turboimagehost.com":
  1517. case "screenlist.ru":
  1518. case "picshare.geenza.com":
  1519. case "imageboss.net":
  1520. case "mojoimage.com":
  1521. case "imagecherry.com":
  1522. case "6on9.com":
  1523. case "10.imageleon.com":
  1524. case "img4.imagetitan.com":
  1525. i = q('img[onload*="scale"]');
  1526. break;
  1527. case "bild.me":
  1528. case "imagecarry.com":
  1529. case "imagedunk.com":
  1530. case "imageswitch.com":
  1531. case "piclambo.net":
  1532. case "picleet.com":
  1533. case "yankoimages.net":
  1534. case "picturedip.com":
  1535. case "imagezilla.net":
  1536. case "imageup.ru":
  1537. case "seedimage.com":
  1538. case "hotchyx.com":
  1539. case "imagehousing.com":
  1540. case "cubeupload.com":
  1541. case "dumparump.com":
  1542. case "uploads.ru":
  1543. case "myimg.de":
  1544. case "root-space.eu":
  1545. case "pokazal.ru":
  1546. case "mepic.ru":
  1547. case "imagehovel.com":
  1548. case "imgchili.mcdir.ru":
  1549. case "depic.me":
  1550. case "imagedoza.com":
  1551. i = q('img[src*="' + iurl + '"]');
  1552. break;
  1553. case "postimg.org":
  1554. i = q('img[src*="' + iurl + '"]');
  1555. if(i && i.parentNode.href)
  1556. {
  1557. window.location.assign(i.parentNode.href);
  1558. return;
  1559. }
  1560. break;
  1561. case "ask.fm":
  1562. case "uaimage.com":
  1563. i = q('img[src*="' + iurl + '"][id]');
  1564. i.src = i.src.replace('/original/', '/large/'); //ask.fm
  1565. break;
  1566. case "photo.weibo.com":
  1567. i = q('img[src*="/large/"]');
  1568. break;
  1569. case "picfront.org":
  1570. j = true;
  1571. i = q('img[src*="' + iurl + '"][title]');
  1572. break;
  1573. case "platimzafoto.ru":
  1574. case "pic-money.ru":
  1575. case "pic4cash.ru":
  1576. case "imgmoney.ru":
  1577. case "fotooplata.ru":
  1578. case "img24.org":
  1579. var f = document.getElementsByTagName("button");
  1580. if(f.length)
  1581. {
  1582. f[0].click();
  1583. break;
  1584. }
  1585. dp=true;
  1586. i = q('img[src*="/pic.jpeg"]');
  1587. break;
  1588. case "freeimagehosting.net":
  1589. case "uploadhouse.com":
  1590. case "pixhub.eu":
  1591. case "fotos-hochladen.net":
  1592. case "voila.pl":
  1593. case "ld-host.de":
  1594. case "picshare.ru":
  1595. case "imgtab.net":
  1596. i = q('img[src*="uploads/"]');
  1597. break;
  1598. case "xtremeshack.com":
  1599. i = q('img[src*="/photos/"]');
  1600. break;
  1601. case "images.orzzso.com":
  1602. case "picturepush.com":
  1603. case "500px.com":
  1604. i = q('img[src*="/photo/"]');
  1605. break;
  1606. case "keptarolo.hu":
  1607. i = q('img[src*="/kep/"]');
  1608. break;
  1609. case "servimg.com":
  1610. i = q('img[src*="/u/"]');
  1611. break;
  1612. case "imagearn.com":
  1613. i = q('img[src*="/imags/"]');
  1614. break;
  1615. case "ichan.org":
  1616. i = q('img[src*="/src/"]');
  1617. break;
  1618. case "picmoe.net":
  1619. i = q('img[src*="src/"]');
  1620. break;
  1621. case "ibunker.us":
  1622. case "hostingpics.net":
  1623. case "pixentral.com":
  1624. case "7image.ru":
  1625. case "free-picload.de":
  1626. i = q('img[src*="pics/"]');
  1627. break;
  1628. case "imgtiger.org":
  1629. i = q('form');
  1630. if(i)
  1631. {
  1632. i.submit();
  1633. break;
  1634. }
  1635. case "imageeer.com":
  1636. case "cuteimg.cc":
  1637. i = q('input[type="button"]');
  1638. if(i)
  1639. {
  1640. i.click();
  1641. break;
  1642. }
  1643. case "imagebucks.biz":
  1644. case "imgrock.net":
  1645. case "imgtrex.com":
  1646. case "myimg.club":
  1647. case "imgview.net":
  1648. case "imgwel.com":
  1649. case "imgmonkey.com":
  1650. case "imgdragon.com":
  1651. case "imggold.org":
  1652. case "imgtown.net":
  1653. j = true;
  1654. i = q("input[type='submit']:not([style='display:none;']):not([value*='eply'])");
  1655. dp=true;
  1656. if(i)
  1657. {
  1658. i.click();
  1659. break;
  1660. }
  1661. case "casimages.com":
  1662. case "thebestpichost.com":
  1663. case "deffe.com":
  1664. case "ifotos.pl":
  1665. case "subeimagenes.com":
  1666. case "x.thebestpichost.com$":
  1667. case "imgcode.com":
  1668. case "pixpal.net":
  1669. case "imgpaying.com":
  1670. case "picexposed.com":
  1671. i = q('img[src*="/img/"]');
  1672. break;
  1673. case "imagenetz.de":
  1674. i = q('img[src*="/img"]');
  1675. break;
  1676. case "picatom.com":
  1677. i = q('img[src*="img/"]');
  1678. break;
  1679. case "orzz.us":
  1680. i = q('img[src*="/img/"][title]');
  1681. break;
  1682. case "img.bi":
  1683. j = true;
  1684. i = q('img[ng-src]');
  1685. break;
  1686. case "imgbabes.com":
  1687. case "imgflare.com":
  1688. i = q('input[onclick*="Decode"]');
  1689. dp=true;
  1690. j = true;
  1691. if(i)
  1692. {
  1693. i.click();
  1694. break;
  1695. }
  1696. case "xxxhost.me":
  1697. case "bilder-hochladen.net":
  1698. case "dumpt.com":
  1699. case "imgsin.com":
  1700. case "loaditup.de":
  1701. case "123poze.3x.ro":
  1702. case "thaisharing.online.fr":
  1703. case "filefap.com":
  1704. case "4ufrom.me":
  1705. case "imgswift.com":
  1706. i = q('img[src*="/files/"]');
  1707. break;
  1708. case "image18.org":
  1709. case "imguploda.inamurajane.info":
  1710. i = q('img[src*="/file/"]');
  1711. break;
  1712. case "imagepix.org":
  1713. case "hostingfailov.com":
  1714. case "zimagez.com":
  1715. case "chickupload.com":
  1716. i = q('img[src*="/full/"]');
  1717. break;
  1718. case "picbank.pl":
  1719. case "niceimage.pl":
  1720. case "screencity.pl":
  1721. case "fotoshara.pl":
  1722. i = q('img[src*="/uploaded/"]');
  1723. break;
  1724. case "imagefap.com":
  1725. i = q('noscript');
  1726. if(i)
  1727. {
  1728. i.src = i.innerHTML.substring(i.innerHTML.indexOf("http"));
  1729. i.src = i.src.substring(0,i.src.indexOf('"'));
  1730. }
  1731. break;
  1732. case "imgbar.net":
  1733. case "olivepix.com":
  1734. i = q('img[src*="view/"]');
  1735. break;
  1736. case "imgking.co":
  1737. if(window.location.href.indexOf("img3") != -1)
  1738. {
  1739. window.location.href = window.location.href.replace("img3","img4");
  1740. break;
  1741. }
  1742. case "imgadult.com":
  1743. j = true;
  1744. i = q('a.overlay_ad_link');
  1745. if(i)
  1746. {
  1747. i.click();
  1748. break;
  1749. }
  1750. case "imagepicsa.com":
  1751. case "imagefolks.com":
  1752. case "imgrill.com":
  1753. case "imgcandy.net":
  1754. case "imagecorn.com":
  1755. case "uploadyourimages.org":
  1756. case "imageteam.org":
  1757. case "imgnext.com":
  1758. case "hosturimage.com":
  1759. case "imgmaster.net":
  1760. case "imgcoin.net":
  1761. case "dtpics.biz":
  1762. case "gokoimage.com":
  1763. case "pixup.us":
  1764. case "imgcorn.com":
  1765. case "xximg.net":
  1766. case "x.xximg.net":
  1767. case "sxpics.nl":
  1768. case "sxpics.net":
  1769. case "sxpix.nl":
  1770. case "bulkimg.info":
  1771. case "img-zone.com":
  1772. case "trikyimg.com":
  1773. case "image.adlock.in":
  1774. case "img.yt":
  1775. case "imgfeel.com":
  1776. case "xxxscreens.com":
  1777. case "imgpapa.com":
  1778. case "imglemon.com":
  1779. case "xxximagenow.com":
  1780. case "etc.imgextra.com":
  1781. case "i.sxpics.nl":
  1782. case "viewvee.com":
  1783. case "funimg.net":
  1784. case "imageon.org":
  1785. case "nimplus.com":
  1786. case "imag.nimplus.com":
  1787. case "shareimg.fr":
  1788. case "newimagepost.com":
  1789. case "imgease.re":
  1790. case "ipicsharer.com":
  1791. case "fapat.me":
  1792. case "imgbe.com":
  1793. case "fireimg.cc":
  1794. case "porno-pirat.ru":
  1795. case "thumbnailus.com":
  1796. case "imgboom.net":
  1797. case "project-photo.net":
  1798. case "img-planet.com":
  1799. case "greasyimage.com":
  1800. case "imgbb.net":
  1801. case "imgtea.com":
  1802. case "imgsen.se":
  1803. case "rapidimg.net":
  1804. case "imgflash.net":
  1805. case "sexyimagexxx.com":
  1806. case "imgtornado.com":
  1807. case "erimge.com":
  1808. case "img-pay.com":
  1809. case "loftlm.ru":
  1810. dp=true;
  1811. var f = document.getElementsByTagName("input");
  1812. if(f.length)
  1813. {
  1814. f[f.length-1].click();
  1815. }
  1816. case "myhotimage.com":
  1817. case "picstwist.com":
  1818. case "hotimages.eu":
  1819. case "fotoszok.pl":
  1820. case "gallerycloud.net":
  1821. case "imgult.com":
  1822. case "istoreimg.com":
  1823. case "08lkk.com":
  1824. case "dragimage.org":
  1825. case "imgfun.biz":
  1826. case "storeimgs.net":
  1827. case "damimage.com":
  1828. case "adultur.com":
  1829. case "croftimage.com":
  1830. case "imagedecode.com":
  1831. case "imgfap.net":
  1832. case "imgspot.org":
  1833. case "sexyimg.eu":
  1834. case "madimage.org":
  1835. case "gogoimage.org":
  1836. case "xxxupload.org":
  1837. case "imageblinks.com":
  1838. case "imglooks.com":
  1839. case "imageontime.org":
  1840. case "ocaload.com":
  1841. case "imgget.net":
  1842. case "imgs.it":
  1843. case "imagewow.eu":
  1844. case "imgdoggy.com":
  1845. case "fapic.me":
  1846. case "uplimg.com":
  1847. case "imgstudio.org":
  1848. case "goimge.com":
  1849. case "imageho.me":
  1850. case "picsnova.net":
  1851. case "imgor.net":
  1852. case "photolot.org":
  1853. case "imgglobe.eu":
  1854. case "icezap.com":
  1855. case "imgtrial.com":
  1856. case "imgmag.co":
  1857. case "imgcredit.xyz":
  1858. case "dimtus.com":
  1859. i = q('img[src*="' + iurl + '/upload/"]');
  1860. break;
  1861. case "picspornfree.me":
  1862. case "hotimage.uk":
  1863. i = q('input[type="submit"]');
  1864. dp=true;
  1865. if(i)
  1866. {
  1867. i.click();
  1868. break;
  1869. }
  1870. case "xxx.image-server.ru":
  1871. case "image-server.ru":
  1872. case "avenuexxx.com":
  1873. case "uploadimagex.com":
  1874. case "hostingkartinok.com":
  1875. i = q('img[src*="/upload"]');
  1876. break;
  1877. case "bababian.com":
  1878. i = q('img[src*="/upload"]');
  1879. if(i){i.src = i.src.replace('_500', '');}
  1880. break;
  1881. case "imgseeds.com":
  1882. i = q('input');
  1883. if(i)
  1884. {
  1885. i.click();
  1886. break;
  1887. }
  1888. case "imgtaxi.com":
  1889. j = true;
  1890. i = q("a.overlay_ad_link");
  1891. if(i)
  1892. {
  1893. i.click();
  1894. break;
  1895. }
  1896. case "imageontime.com":
  1897. case "imgwet.com":
  1898. j = true;
  1899. i = q('img[src*="/big/"]');
  1900. break;
  1901. case "imgtube.net":
  1902. i = q('input[value="Continue to image"]');
  1903. dp=true;
  1904. if(i)
  1905. {
  1906. q("#browser_fingerprint").value = unsafeWindow.pstfgrpnt(true);
  1907. i.click();
  1908. }
  1909. else
  1910. {
  1911. i = q('img[src*="/uploads/"]');
  1912. }
  1913. break;
  1914. case "ruleimg.com":
  1915. case "imghit.com":
  1916. case "image.re":
  1917. i = q('img[alt="image"]');
  1918. break;
  1919. case "3xplanet.com":
  1920. i = q('img[alt="picContent"]');
  1921. break;
  1922. case "subirimagenes.com":
  1923. i = q('input[type="submit"]');
  1924. dp=true;
  1925. if(i)
  1926. {
  1927. i.click();
  1928. break;
  1929. }
  1930. i = q('img[onclick*="scale"]');
  1931. break;
  1932. case "image-share.com":
  1933. case "ima.so":
  1934. case "xpic.biz":
  1935. i = q('img[src*="upload/"]');
  1936. break;
  1937. case "bilder-upload.eu":
  1938. i = q('input[src*="upload/"]');
  1939. break;
  1940. case "picload.org":
  1941. case "imagecross.com":
  1942. case "npicture.net":
  1943. case "uprapide.com":
  1944. case "roboimages.com":
  1945. case "public-pic.de":
  1946. case "picbug.ru":
  1947. i = q('img[src*="' + iurl + '/image"]');
  1948. break;
  1949. case "yande.re":
  1950. case "konachan.com":
  1951. case "konachan.net":
  1952. i = q('a[href*="' + iurl + '/image"]');
  1953. if(i){i.src = i.href;}
  1954. break;
  1955. case "imagesup.net":
  1956. case "picfree.org":
  1957. case "imghs.teamfreewill.net":
  1958. case "videoforall.org":
  1959. i = q('a[href*="/di-"]');
  1960. if(i)
  1961. {
  1962. i.src = i.href;
  1963. }
  1964. break;
  1965. case "cyberpics.net":
  1966. case "fastimages.ru":
  1967. case "img-uploader.de":
  1968. case "hot-file.org":
  1969. case "imgcandy.com":
  1970. case "image.siroro.co.uk":
  1971. case "intermcafe.com":
  1972. case "ddpic.2tl.in":
  1973. case "fmsecond.com":
  1974. case "qattach.com":
  1975. case "fotohelp.kz":
  1976. case "pic-you.com":
  1977. i = q('a[href*="/di/"]');
  1978. if(i)
  1979. {
  1980. i.src = i.href;
  1981. }
  1982. break;
  1983. case "theimghost.com":
  1984. case "imagehost.thasnasty.com":
  1985. case "thepornfeeds.com":
  1986. case "oxily.com":
  1987. case "ghanaimages.co":
  1988. case "imgurban.info":
  1989. case "unlimitedpicture.com":
  1990. case "mypixxx.lonestarnaughtygirls.com":
  1991. case "x45x.info":
  1992. case "img.mdy.ro":
  1993. case "knecht.novarata.net":
  1994. case "plusgamer.ir":
  1995. case "tiny-img.com":
  1996. case "img.irandeliver.com":
  1997. case "img.solpie.net":
  1998. case "xferz.com":
  1999. case "lgeoo.us":
  2000. case "img.wangolds.com":
  2001. case "up.kfesfahan.com":
  2002. case "pic.freelian.com":
  2003. case "image.alesher.com":
  2004. case "ch.1798.in":
  2005. case "images.tapasilo.org":
  2006. case "upload.khontai.com":
  2007. case "pic.dnjc8.com":
  2008. case "image.pantyhosemania.info":
  2009. i = q('a[href*="?di="]');
  2010. if(i)
  2011. {
  2012. i.src = i.href;
  2013. }
  2014. break;
  2015. case "zimage.fr":
  2016. i = q('img[src*="images.php"]');
  2017. if(i)
  2018. {
  2019. i.src = i.src.replace('.php?nom=', '/');
  2020. break;
  2021. }
  2022. case "dumppix.com":
  2023. i = q('a[href*="enter"]');
  2024. if(i)
  2025. {
  2026. window.location.href = i.href;
  2027. break;
  2028. }
  2029. case "imgnip.com":
  2030. case "mrjh.org":
  2031. case "stuffed.ru":
  2032. case "postimg.net":
  2033. case "img.deli.sh":
  2034. case "rapid-img.de":
  2035. case "ushareimg.com":
  2036. case "ngarko.online.fr":
  2037. case "picrak.com":
  2038. case "freeuploadimages.org":
  2039. case "picszone.net":
  2040. case "images.share-films.net":
  2041. case "bildjunkies.de":
  2042. case "uppic.ilovemyshopping.com":
  2043. case "foto.hcfor.pl":
  2044. case "up.daniyalonline.com":
  2045. case "slikosef.pajek.net":
  2046. case "imagegecko.com":
  2047. case "imagesticky.com":
  2048. case "pic.tooptarinha.com":
  2049. case "up.dlu3at.net":
  2050. case "poopr.org":
  2051. case "xp-images.hi2.ro":
  2052. case "dayzeddesigns.com":
  2053. case "freeimghosting.co.uk":
  2054. case "photostand.co.za":
  2055. case "upload.removed.us":
  2056. case "images-hosting.tk":
  2057. case "imghost.pl":
  2058. case "udostepniaj.pl":
  2059. case "ngarko.free.fr":
  2060. case "images.collectiontricks.it":
  2061. case "244pix.com":
  2062. case "imageview.me":
  2063. case "imgboxxx.com":
  2064. case "imghere.net":
  2065. case "imghoney.com":
  2066. case "imgdope.com":
  2067. case "hostmat.eu":
  2068. case "imgdream.net":
  2069. case "imgili.com":
  2070. case "imgcentral.com":
  2071. case "imageback.info":
  2072. i = q('img[src*="images/"]');
  2073. break;
  2074. case "use.com":
  2075. i = q('img[src*="images/"][onload]');
  2076. if(i){i.src = i.src.replace('/s_2/', '/s_5/');}
  2077. break;
  2078. case "imagerule.com":
  2079. case "1y9y.com":
  2080. case "host4images.com":
  2081. case "aveimage.com":
  2082. i = q('img#photo');
  2083. break;
  2084. case "picamatic.com":
  2085. i = q('img[src*="/show/"]');
  2086. break;
  2087. case "freeimgup.com":
  2088. case "imagescream.com":
  2089. case "anonpic.com":
  2090. case "goimagehost.com":
  2091. case "picturevip.com":
  2092. case "image-load.net":
  2093. case "picturespk.pk":
  2094. case "upload.djmaster.fr":
  2095. case "fullimg.com":
  2096. case "b4he.com":
  2097. case "firepic.org":
  2098. case "seeit.bz":
  2099. case "overdream.cz":
  2100. case "fastpics.net":
  2101. case "ii4.ru":
  2102. case "picuploader.de":
  2103. case "smages.com":
  2104. case "pictureshack.ru":
  2105. case "imgbox.de":
  2106. case "imagehosting.cz":
  2107. case "server5.upload69.net":
  2108. case "9foto.ru":
  2109. case "hosting.tidus.eu":
  2110. case "imagesloading.altervista.org":
  2111. case "phpbbmods.it":
  2112. case "fsfiles.org":
  2113. case "giveimg.net":
  2114. case "ilimdunyasi.net":
  2115. case "lakhdaria.net":
  2116. case "partizansk.eu":
  2117. case "webjardiner.com":
  2118. case "imgup.com":
  2119. case "iezz.com":
  2120. case "fileaimage.com":
  2121. case "picify.com":
  2122. case "picturescream.com":
  2123. case "urpichost.com":
  2124. case "all-poster.ru":
  2125. case "picturescream.asia":
  2126. case "imghost.us.to":
  2127. i = q('img[src*="/images/"]');
  2128. break;
  2129. case "intergranada.com":
  2130. i = q('img[src*="/images/images/"]');
  2131. break;
  2132. case "someimage.com":
  2133. i = q('img#viewimage');
  2134. break;
  2135. case "pixelup.net":
  2136. i = q('center img[src*="/images/"]');
  2137. break;
  2138. case "saveimg.ru":
  2139. case "imglink.ru":
  2140. case "tinyphoto.net":
  2141. case "4put.ru":
  2142. case "hostimg.org":
  2143. case "sharepic.biz":
  2144. case "you-logo.ru":
  2145. case "powerlogo.ru":
  2146. i = q('img[src*="pictures/"]');
  2147. break;
  2148. case "xenopix.com":
  2149. i = q('img[src*="/pix/"]');
  2150. break;
  2151. case "imgclick.net":
  2152. case "chronos.to":
  2153. case "imgmaid.net":
  2154. case "pic-maniac.com":
  2155. case "coreimg.net":
  2156. j = true;
  2157. i = q('input[type="submit"]');
  2158. dp=true;
  2159. if(i)
  2160. {
  2161. i.click();
  2162. break;
  2163. }
  2164. case "imgsee.me":
  2165. i = q('input[type="button"]');
  2166. if(i)
  2167. {
  2168. i.click();
  2169. break;
  2170. }
  2171. dp=true;
  2172. case "imgspice.com":
  2173. case "imagetwist.com":
  2174. case "pixroute.com":
  2175. case "pzy.be":
  2176. case "funkyimg.com":
  2177. case "itmages.ru":
  2178. case "img.acianetmedia.com":
  2179. case "imagenpic.com":
  2180. case "zupmage.eu":
  2181. case "pictureturn.com":
  2182. case "pixic.ru":
  2183. case "tuspics.net":
  2184. case "nyanimg.com":
  2185. case "geekpics.in":
  2186. case "imagefluff.com":
  2187. case "imageporter.com":
  2188. case "imagenimage.com":
  2189. case "imageshimage.com":
  2190. case "imagedax.net":
  2191. case "pornimagex.com":
  2192. i = q('img[src*="/i/"]');
  2193. break;
  2194. case "pixpipeline.com":
  2195. i = q('img[src*="/s/"]');
  2196. break;
  2197. case "2imgs.com":
  2198. case "2i.sk":
  2199. case "2i.cz":
  2200. case "scrin.org":
  2201. i = q('a[href*="/i/"]');
  2202. if(i)
  2203. {
  2204. i.src = i.href;
  2205. break;
  2206. }
  2207. i = q('img[src*="/i/"]');
  2208. break;
  2209. case "hentai-hosting.com":
  2210. case "miragepics.com":
  2211. case "imagecurl.com":
  2212. case "imagecurl.org":
  2213. i = q('input[value*="' + iurl + '/images/"]');
  2214. if(i){i.src = i.value;}
  2215. break;
  2216. case "gratisimage.dk":
  2217. case "moyophoto.com":
  2218. i = q('input[value*="' + iurl + '/image"]');
  2219. if(i){i.src = i.value;}
  2220. break;
  2221. case "ipic.su":
  2222. i = q('input[value*="' + iurl + ' img/"]');
  2223. if(i){i.src = i.value;}
  2224. break;
  2225. case "image2you.ru":
  2226. i = q('img[src*="images/"]');
  2227. if(i){i.src = i.src.replace('2_', '');}
  2228. break;
  2229. case "imgrex.com":
  2230. i = q('form[action="' + window.location.pathname.substr(1) + window.location.search + '"]');
  2231. if(i)
  2232. {
  2233. i.submit();
  2234. }
  2235. else
  2236. {
  2237. i = q('img[src*="images/"]');
  2238. }
  2239. break;
  2240. case "qrrro.com":
  2241. case "imgmade.com":
  2242. i = q('form');
  2243. dp=true;
  2244. if(i)
  2245. {
  2246. i.submit();
  2247. break;
  2248. }
  2249. case "imgdrive.net":
  2250. j = true;
  2251. i = q("a.overlay_ad_link");
  2252. if(i)
  2253. {
  2254. i.click();
  2255. break;
  2256. }
  2257. case "pixhost.org":
  2258. case "stooorage.com":
  2259. case "imgtiger.com":
  2260. case "imgserve.net":
  2261. case "imgdino.com":
  2262. case "overpic.net":
  2263. case "imagesocket.com":
  2264. case "flickimg.com":
  2265. case "sexseeimage.com":
  2266. case "piratescreen.com":
  2267. case "emptypix.com":
  2268. case "sexyxpixels.com":
  2269. case "hostpic.org":
  2270. case "zapodaj.net":
  2271. case "jpegshare.net":
  2272. case "photolair.net":
  2273. case "screenshot.ru":
  2274. case "imagefile.org":
  2275. case "zapisz.net":
  2276. case "addyourpics.com":
  2277. case "urimage.net":
  2278. case "imgbank.cz":
  2279. case "liolink.com":
  2280. case "showmyimage.com":
  2281. case "givme.de":
  2282. case "upload.crazycraft.pl":
  2283. case "mynameismiz.com":
  2284. case "upload.supreme-elite.fr":
  2285. case "up.vn-hello.com":
  2286. case "myimg.me":
  2287. case "upic.kz":
  2288. case "heberg-hush.org":
  2289. case "oltaciyukle.com":
  2290. case "slikomanija.net":
  2291. case "pichost.name":
  2292. case "evopikz.net":
  2293. case "sxfoto.com":
  2294. case "upanh.biz":
  2295. case "imagend.com":
  2296. case "imagerocket.com":
  2297. case "hyyathost.com":
  2298. case "images.reptilescanada.com":
  2299. case "wepic.ru":
  2300. case "naeamysig.com":
  2301. case "upload-image.fr":
  2302. case "picselio.com":
  2303. case "t4up.net":
  2304. case "images.gamewind.de":
  2305. case "images.baconbits.org":
  2306. case "kuvajako.com":
  2307. case "upanh.ovo.vn":
  2308. case "uploads.li":
  2309. case "imagesaur.com":
  2310. case "wrzucaj.net":
  2311. case "api.picx.me":
  2312. case "heberge-images.com":
  2313. case "yehpic.com":
  2314. case "joepler.com":
  2315. case "image.kg":
  2316. case "picshome.ru":
  2317. case "savemyimage.com":
  2318. case "subeme.net":
  2319. case "img.dramacafe.tv":
  2320. case "fapping.empornium.sx":
  2321. case "pixel.so":
  2322. case "img.titank.com":
  2323. case "beeimg.com":
  2324. case "1pics.ru":
  2325. case "imgshow.me":
  2326. case "ticklebytes.com":
  2327. case "youpicture.org":
  2328. case "zagruzitfoto.com":
  2329. case "vavvi.com":
  2330. case "imgzap.com":
  2331. case "imgdrive.net":
  2332. case "crazyimg.com":
  2333. case "imgextra.uk":
  2334. case "extraimago.com":
  2335. case "ftop.ru":
  2336. i = q('img[src*="' + iurl + '/images/"]');
  2337. break;
  2338. case "shareimages.com":
  2339. case "imagesmax.de":
  2340. case "bilder.nixhelp.de":
  2341. i = q('img[src*="' + iurl + '/images"]');
  2342. break;
  2343. case "imgfantasy.com":
  2344. case "imagedomino.com":
  2345. case "imagedomino.net":
  2346. case "imghash.com":
  2347. case "imageporn.eu":
  2348. case "imgreserve.com":
  2349. case "picangel.com":
  2350. case "imgsmile.com":
  2351. case "imgsay.com":
  2352. case "imgcool.net":
  2353. //IMGReserve
  2354. j = true;
  2355. dp=true;
  2356. i = q('input[value="YES"]');
  2357. if(i){i.onclick();break;}
  2358. case "imgchili.net":
  2359. case "pic-upload.de":
  2360. case "pohrani.com":
  2361. case "shrani.najdi.si":
  2362. case "imageab.com":
  2363. i = q('img[onclick*="(this"]');
  2364. break;
  2365. default: // dynamic subdomain
  2366. switch(iurl.substr(iurl.indexOf(".")+1))
  2367. {
  2368. case "tumblr.com":
  2369. if(FireFox)
  2370. {
  2371. i = q('img[data-src]');
  2372. if(i)
  2373. {
  2374. i.src = i.dataset.src;
  2375. }
  2376. }
  2377. else
  2378. {
  2379. i = q('img:not([src*="data:"])[id]');
  2380. }
  2381. break;
  2382. case "deviantart.com":
  2383. if(q('div.deviation-mlt-preview'))
  2384. {
  2385. i = q('a[href*="/download/"]');
  2386. if(i){i.src = i.href;}
  2387. else{i = q('img.dev-content-full');}
  2388. }
  2389. break;
  2390. case "imagevenue.com":
  2391. i = q('img[src*="/loc"]');
  2392. break;
  2393. case "wikipedia.org":
  2394. case "wikimedia.org":
  2395. i = q('a[href*="/upload"]');
  2396. if(i){i.src = i.href;}
  2397. break;
  2398. case "photobucket.com":
  2399. find_text_in_scripts('originalUrl":"', '"');
  2400. break;
  2401. case "freeamateurteens.net":
  2402. case "img-vidiklub.com":
  2403. i = q('img[src*="images/"]');
  2404. break;
  2405. case "otofotki.pl":
  2406. i = q('img[src*="/obrazki/"]');
  2407. break;
  2408. case "tinypic.com":
  2409. i = q('img#imgElement');
  2410. break;
  2411. case "imagilive.com":
  2412. i = q('a.button');
  2413. if(i)
  2414. {
  2415. dp=true;
  2416. i.click();
  2417. break;
  2418. }
  2419. i = q('img[src*="' + iurl + '"]');
  2420. break;
  2421. default: // for user-added sites
  2422. console.warn("HJI is running on a custom website");
  2423. if(document.readyState != "loading" && document.images.length != 0)
  2424. {
  2425. var b = 0;
  2426. for(var n = 0; n < document.images.length; n++)
  2427. {
  2428. if(document.images[n].width == 0 && !document.images[n].complete) // not started loading
  2429. {
  2430. b = -1;
  2431. break;
  2432. }
  2433. else if(document.images[n].width * document.images[n].height > document.images[b].width * document.images[b].height)
  2434. {
  2435. b = n;
  2436. }
  2437. }
  2438. i = document.images[b];
  2439. if(i){console.warn("HJI is running on a custom website, showing biggest image");}
  2440. }
  2441. break;
  2442. }
  2443. break;
  2444. }
  2445. //
  2446. //firefox handmade noscript
  2447. if(!j)
  2448. {
  2449. j = true;
  2450. window.addEventListener('beforescriptexecute', onscript, true);
  2451. }
  2452. //
  2453. if(i && i.src)
  2454. {
  2455. observer.disconnect();
  2456. function clr_pgn()
  2457. {
  2458. unsafeWindow.open = null;
  2459. unsafeWindow.onbeforeunload = null;
  2460. if(!FireFox)
  2461. {
  2462. delete document.write;
  2463. document.write('<html><head></head><body></body></html>');
  2464. document.close();
  2465. }
  2466. else
  2467. {
  2468. document.replaceChild(document.importNode(document.implementation.createHTMLDocument("").documentElement, true), document.documentElement);
  2469. }
  2470. }
  2471. clr_pgn();
  2472. ws();
  2473. document.head.innerHTML = "";
  2474. sanitize();
  2475. window.removeEventListener('beforescriptexecute', onscript, true);
  2476. makeimage();
  2477. }
  2478. else // try again
  2479. {
  2480. //console.warn("Didnt find image, trying again in " + timeout + " ms");
  2481. if(tb){clearTimeout(tb);}
  2482. tb = setTimeout(function() { console.warn("Didnt find image, waited " + timeout + " ms to try again"); tb=0; timeout*=2; i=0; makeworld(); }, timeout);
  2483. }
  2484. }
  2485.  
  2486. function changecursor()
  2487. {
  2488. i.style.margin = "auto";
  2489. if(!rescaled && (((i.naturalHeight / window.devicePixelRatio).toFixed() == window.innerHeight && (i.naturalWidth / window.devicePixelRatio).toFixed() == window.innerWidth) || ((i.naturalWidth / window.devicePixelRatio).toFixed() == window.innerWidth && (i.naturalWidth / window.devicePixelRatio).toFixed() == window.innerWidth))) // one img dimension is equal to screen and other is the same or less than the screen
  2490. {
  2491. i.style.cursor = "";
  2492. }
  2493. else if((i.naturalHeight / window.devicePixelRatio).toFixed() > window.innerHeight || (i.naturalWidth / window.devicePixelRatio).toFixed() > window.innerWidth)
  2494. {
  2495. if(rescaled)
  2496. {
  2497. i.style.cursor = "-moz-zoom-in";
  2498. i.style.cursor = "-webkit-zoom-in";
  2499. }
  2500. else
  2501. {
  2502. i.style.cursor = "-moz-zoom-out";
  2503. i.style.cursor = "-webkit-zoom-out";
  2504. if((i.naturalHeight / window.devicePixelRatio).toFixed() > window.innerHeight) // chrome bug fuuuuu
  2505. {
  2506. i.style.margin = "0px auto";
  2507. }
  2508. }
  2509. }
  2510. else
  2511. {
  2512. if(rescaled)
  2513. {
  2514. i.style.cursor = "-moz-zoom-out";
  2515. i.style.cursor = "-webkit-zoom-out";
  2516. }
  2517. else
  2518. {
  2519. i.style.cursor = "-moz-zoom-in";
  2520. i.style.cursor = "-webkit-zoom-in";
  2521. }
  2522. }
  2523. }
  2524.  
  2525. function rescale(event)
  2526. {
  2527. if(rescaled)
  2528. {
  2529. rescaled = false;
  2530. var scale,ex,ey;
  2531. if(event)
  2532. {
  2533. if (typeof event.y === "undefined") // Firefox
  2534. {
  2535. ex = event.clientX;
  2536. ey = event.clientY;
  2537. }
  2538. else
  2539. {
  2540. ex = event.x;
  2541. ey = event.y;
  2542. }
  2543. ex -= i.offsetLeft;
  2544. ey -= i.offsetTop;
  2545. scale = Math.min((window.innerWidth / (i.naturalWidth / window.devicePixelRatio).toFixed()), (window.innerHeight / (i.naturalHeight / window.devicePixelRatio).toFixed()));
  2546. }
  2547. i.style.width = (i.naturalWidth / window.devicePixelRatio).toFixed() + "px";
  2548. i.style.height = (i.naturalHeight / window.devicePixelRatio).toFixed() + "px";
  2549. changecursor();
  2550. if(event)
  2551. {
  2552. window.scrollTo(ex / scale - window.innerWidth / 2, ey / scale - window.innerHeight / 2);
  2553. }
  2554. }
  2555. else
  2556. {
  2557. i.style.width = (i.naturalWidth / window.devicePixelRatio).toFixed() + "px";
  2558. i.style.height = (i.naturalHeight / window.devicePixelRatio).toFixed() + "px";
  2559. if((i.naturalWidth / window.devicePixelRatio).toFixed() != window.innerWidth)
  2560. {
  2561. i.style.width = window.innerWidth + "px";
  2562. i.style.height = "";
  2563. rescaled = true;
  2564. }
  2565. if((i.height > window.innerHeight) || (i.width > window.innerWidth))
  2566. {
  2567. i.style.width = (i.naturalWidth / window.devicePixelRatio).toFixed() + "px";
  2568. i.style.height = (i.naturalHeight / window.devicePixelRatio).toFixed() + "px";
  2569. if((i.naturalHeight / window.devicePixelRatio).toFixed() != window.innerHeight)
  2570. {
  2571. i.style.height = window.innerHeight + "px";
  2572. i.style.width = "";
  2573. rescaled = true;
  2574. }
  2575. }
  2576. changecursor();
  2577. }
  2578. }
  2579.  
  2580. var ARC = 0;
  2581. function autoresize()
  2582. {
  2583. if(i.naturalWidth)
  2584. {
  2585. var title = i.src.substr(i.src.lastIndexOf("/")+1);
  2586. if(title.indexOf("?") != -1)
  2587. {
  2588. title = title.substr(0, title.indexOf("?"));
  2589. }
  2590. document.title = title + " (" + i.naturalWidth + "x" + i.naturalHeight + ")"; // title
  2591. var link = protected_createElement('link');
  2592. link.type = 'image/x-icon';
  2593. link.rel = 'shortcut icon';
  2594. link.href = i.src;
  2595. document.getElementsByTagName('head')[0].appendChild(link);
  2596. rescaled = true;rescale(0); // to original size in pixels
  2597. if(cfg_fitWH && i.height > window.innerHeight && i.width > window.innerWidth) // both scrollbars
  2598. {
  2599. rescale(0);
  2600. }
  2601. else if(cfg_fitB && (i.height > window.innerHeight || i.width > window.innerWidth)) // one scrollbar
  2602. {
  2603. rescale(0);
  2604. }
  2605. else if(cfg_fitS && i.height <= window.innerHeight && i.width <= window.innerWidth) // no scrollbars
  2606. {
  2607. rescale(0);
  2608. }
  2609. if(cfg_js){eval(cfg_js);}
  2610. }
  2611. else
  2612. {
  2613. ARC++;
  2614. if(ARC == 25 || ARC == 250 || ARC == 750)
  2615. {
  2616. i.src = i.src; // lol fix
  2617. }
  2618. setTimeout(function() { autoresize(); }, 10);
  2619. }
  2620. }
  2621.  
  2622. var observer = new MutationObserver(function(mutations)
  2623. {
  2624. makeworld();
  2625. });
  2626. observer.observe(document, {subtree: true, childList: true});
  2627.  
  2628. // hotkeys
  2629. if (typeof KeyEvent === "undefined")
  2630. {
  2631. var KeyEvent = {
  2632. DOM_VK_SPACE: 32,
  2633. DOM_VK_LEFT: 37,
  2634. DOM_VK_UP: 38,
  2635. DOM_VK_RIGHT: 39,
  2636. DOM_VK_DOWN: 40,
  2637. DOM_VK_A: 65,
  2638. DOM_VK_D: 68,
  2639. DOM_VK_P: 80,
  2640. DOM_VK_Q: 81,
  2641. DOM_VK_R: 82,
  2642. DOM_VK_S: 83,
  2643. DOM_VK_W: 87,
  2644. DOM_VK_NUMPAD2: 98,
  2645. DOM_VK_NUMPAD4: 100,
  2646. DOM_VK_NUMPAD5: 101,
  2647. DOM_VK_NUMPAD6: 102,
  2648. DOM_VK_NUMPAD8: 104,
  2649. DOM_VK_F5: 116
  2650. };
  2651. }
  2652.  
  2653. function cancelEvent(a)
  2654. {
  2655. a = a ? a : window.event;
  2656. if (a.stopPropagation)
  2657. {
  2658. a.stopPropagation();
  2659. }
  2660. if (a.preventDefault)
  2661. {
  2662. a.preventDefault();
  2663. }
  2664. a.cancelBubble = true;
  2665. a.cancel = true;
  2666. a.returnValue = false;
  2667. return false;
  2668. }
  2669.  
  2670. function scroll_space(a, b)
  2671. {
  2672. var by = Math.round((b ? window.innerHeight : window.innerWidth) * 0.50 * (a ? -1 : 1));
  2673. if(!b)
  2674. {
  2675. window.scrollBy(0, by);
  2676. }
  2677. else
  2678. {
  2679. window.scrollBy(by, 0);
  2680. }
  2681. }
  2682.  
  2683. function onkeydown (b)
  2684. {
  2685. var a = (window.event) ? b.keyCode : b.which;
  2686.  
  2687. if (b.altKey || b.metaKey || (b.ctrlKey && a != KeyEvent.DOM_VK_SPACE && a != KeyEvent.DOM_VK_F5 && a != KeyEvent.DOM_VK_R))
  2688. {
  2689. return;
  2690. }
  2691.  
  2692. var by = Math.round(window.innerHeight * 0.10);
  2693.  
  2694. switch (a)
  2695. {
  2696. case KeyEvent.DOM_VK_RIGHT:
  2697. case KeyEvent.DOM_VK_D:
  2698. case KeyEvent.DOM_VK_NUMPAD6:
  2699. window.scrollBy(by, 0);
  2700. cancelEvent(b);
  2701. break;
  2702. case KeyEvent.DOM_VK_LEFT:
  2703. case KeyEvent.DOM_VK_A:
  2704. case KeyEvent.DOM_VK_NUMPAD4:
  2705. window.scrollBy(by * -1, 0);
  2706. cancelEvent(b);
  2707. break;
  2708. case KeyEvent.DOM_VK_W:
  2709. case KeyEvent.DOM_VK_NUMPAD8:
  2710. window.scrollBy(0, by * -1);
  2711. cancelEvent(b);
  2712. break;
  2713. case KeyEvent.DOM_VK_S:
  2714. case KeyEvent.DOM_VK_NUMPAD2:
  2715. window.scrollBy(0, by);
  2716. cancelEvent(b);
  2717. break;
  2718. case KeyEvent.DOM_VK_SPACE:
  2719. scroll_space(b.shiftKey, b.ctrlKey);
  2720. cancelEvent(b);
  2721. break;
  2722. case KeyEvent.DOM_VK_Q:
  2723. case KeyEvent.DOM_VK_NUMPAD5:
  2724. rescale(0);
  2725. cancelEvent(b);
  2726. break;
  2727. case KeyEvent.DOM_VK_P:
  2728. if(i && !FireFox) // Chrome nosave bug
  2729. {
  2730. window.location.href = "https://gist.github.com/Owyn/8553d7953d948228e312";
  2731. }
  2732. else
  2733. {
  2734. cfg();
  2735. }
  2736. cancelEvent(b);
  2737. break;
  2738. case KeyEvent.DOM_VK_R:
  2739. if(!b.ctrlKey)
  2740. {
  2741. document.cookie= "hji=" + window.location.href;
  2742. window.location.reload();
  2743. cancelEvent(b);
  2744. }
  2745. else
  2746. {
  2747. window.removeEventListener("beforeunload", onbeforeunload, true);
  2748. }
  2749. break;
  2750. case KeyEvent.DOM_VK_F5:
  2751. window.removeEventListener("beforeunload", onbeforeunload, true);
  2752. break;
  2753. }
  2754. }
  2755.  
  2756. function cfg()
  2757. {
  2758. if (typeof GM_setValue !== "undefined")
  2759. {
  2760. function saveCfg()
  2761. {
  2762. GM_setValue("directImage", q("#hji_cfg_1_direct").checked);
  2763. GM_setValue("bgColor", q("#hji_cfg_2_bgclr").value);
  2764. GM_setValue("fitWH", q("#hji_cfg_3_fitWH").checked);
  2765. GM_setValue("fitB", q("#hji_cfg_4_fitB").checked);
  2766. GM_setValue("fitS", q("#hji_cfg_5_fitS").checked);
  2767. GM_setValue("js", q("#hji_cfg_6_js").value);
  2768. alert("Configuration Saved");
  2769. if(q("#hji_cfg_2_bgclr").value){document.body.bgColor = q("#hji_cfg_2_bgclr").value;}else{document.body.removeAttribute("bgColor");}
  2770. }
  2771. if(i && i.src){i.removeEventListener("click", rescale, true);}
  2772. window.removeEventListener("keydown", onkeydown, true);
  2773. document.head.innerHTML = "";
  2774. document.body.innerHTML = "";
  2775. ws();
  2776. var div = protected_createElement("div");
  2777. div.style.margin = "11% auto";
  2778. div.style.width = "444px";
  2779. div.style.border = "solid 1px black";
  2780. div.style.background = "silver";
  2781. div.innerHTML = "<b><center>Configuration</center></b><br><input id='hji_cfg_1_direct' type='checkbox'> Open images directly with browser"
  2782. + "<br><br><input id='hji_cfg_2_bgclr' type='text' size='6'> Background color (empty = default)"
  2783. + "<br><br>Fit to window images:"
  2784. + "<br><br><input id='hji_cfg_3_fitWH' type='checkbox'> Larger than window both vertically and horizontally"
  2785. + "<br><br><input id='hji_cfg_4_fitB' type='checkbox'> Larger than window either vertically or horizontally"
  2786. + "<br><br><input id='hji_cfg_5_fitS' type='checkbox'> Smaller than window"
  2787. + "<br><br><center>Custom JS Action:<textarea id='hji_cfg_6_js' style='margin: 0px; width: 400px; height: 50px;'></textarea>"
  2788. + "<br><input id='hji_cfg_save' type='button' value='Save configuration'></center>";
  2789. document.body.appendChild(div);
  2790. q("#hji_cfg_1_direct").checked = GM_getValue("directImage");
  2791. q("#hji_cfg_2_bgclr").value = GM_getValue("bgColor", "");
  2792. q("#hji_cfg_3_fitWH").checked = GM_getValue("fitWH", true);
  2793. q("#hji_cfg_4_fitB").checked = GM_getValue("fitB");
  2794. q("#hji_cfg_5_fitS").checked = GM_getValue("fitS");
  2795. q("#hji_cfg_6_js").value = GM_getValue("js", "");
  2796. q("#hji_cfg_save").addEventListener("click", saveCfg, true);
  2797. }
  2798. else
  2799. {
  2800. alert("Sorry, Chrome userscripts in native mode can't have configurations! Install TamperMonkey extension. (it's very good)");
  2801. }
  2802. }
  2803.  
  2804. function loadCfg()
  2805. {
  2806. if (typeof GM_getValue !== "undefined")
  2807. {
  2808. cfg_direct = GM_getValue("directImage");
  2809. cfg_bgclr = GM_getValue("bgColor");
  2810. cfg_fitWH = GM_getValue("fitWH", true);
  2811. cfg_fitB = GM_getValue("fitB");
  2812. cfg_fitS = GM_getValue("fitS");
  2813. cfg_js = GM_getValue("js");
  2814. }
  2815. }