Handy Image

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

18.02.2017 itibariyledir. En son verisyonu görün.

  1. // ==UserScript==
  2. // @name Handy Image
  3. // @version 2017.02.16
  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 *://imgbox.com/*
  21. // @match http://imagetwist.com/*/*
  22. // @match http://www.imagetwist.com/*/*
  23. // @match http://*.imagevenue.com/img.php?*
  24. // @match *://*.imageshack.com/i/*
  25. // @match *://*.imageshack.com/f/*
  26. // @match *://*.image2you.ru/*/*/
  27. // @exclude *://image2you.ru/cabinet/*
  28. // @exclude *://www.image2you.ru/cabinet/*
  29. // @match http://imageban.ru/show*
  30. // @match *://fastpic.ru/view*
  31. // @match http://pixhost.org/show/*
  32. // @match http://*.picpicture.com/image/*
  33. // @match http://*.pic5you.ru/*/*/
  34. // @match http://*.tinypic.com/view*
  35. // @match http://radical-foto.ru/*
  36. // @match http://radikal-foto.ru/*
  37. // @match http://radikal.ru/*
  38. // @match http://f-page.ru/*
  39. // @match http://f-picture.net/*
  40. // @match http://*.pimpandhost.com/image*
  41. // @match http://*.pixroute.com/*.html
  42. // @match http://*.picforall.ru/*/*/
  43. // @match http://*.imagecurl.com/view*
  44. // @match http://*.imagecurl.org/view*
  45. // @match http://*.euro-pic.eu/*share*
  46. // @match http://*.xxxhost.me/view*
  47. // @match http://*.imadul.com/?*
  48. // @match *://postimg.org/image/*
  49. // @match *://postimg.cc/image/
  50. // @match http://*.niceimage.pl/*.html
  51. // @match http://*.pics-money.ru/*
  52. // @match http://*.freeimgup.com/*.*
  53. // @match http://imgtiger.com/view*
  54. // @match http://*.imgspice.com/*.html
  55. // @match http://*.picage.ru/*/*
  56. // @match http://*.imgserve.net/img*
  57. // @match http://*.images-host.biz/*/*
  58. // @match http://*.imgfantasy.com/*
  59. // @match http://*.platimzafoto.ru/full/
  60. // @match http://*.platimzafoto.ru/*.html
  61. // @match http://imgdino.com/view*
  62. // @match http://*.pic-money.ru/*.html
  63. // @match http://*.pic-money.ru/full/
  64. // @match http://*.imgcandy.net/img*
  65. // @match http://*.imagefolks.com/img*
  66. // @match http://*.pzy.be/v*
  67. // @match http://www.turboimagehost.com/p*
  68. // @match http://*.subirimagenes.com/*.html
  69. // @match http://*.screenlist.ru/details.php?image_id=*
  70. // @match http://qrrro.com/images*
  71. // @match http://imgmade.com/images*
  72. // @match http://www.pic-upload.de/view*
  73. // @match http://picshare.geenza.com/pics*
  74. // @match http://www.imgbabes.com/*/*.htm*
  75. // @match http://ibunker.us/f*
  76. // @match http://ichan.org/image.php?path=*
  77. // @match http://*.imagearn.com/*
  78. // @match http://www.dumppix.com/view*
  79. // @match http://www.bilder-upload.eu/show*
  80. // @match http://www.bilder-hochladen.net/file*
  81. // @match http://www.bild.me/bild.php?*
  82. // @match http://www.imagesnake.com/show*
  83. // @match http://www.imagesnake.com/img*
  84. // @match http://www.imagesnake.com/view*
  85. // @match http://www.freebunker.com/show*
  86. // @match http://www.freebunker.com/img*
  87. // @match http://www.freebunker.com/view*
  88. // @match http://bayimg.com/*
  89. // @match http://*.directupload.net/file*
  90. // @match http://*.imagecherry.com/*
  91. // @match http://funkyimg.com/view*
  92. // @match http://*.abload.de/image.php?*
  93. // @match http://*.picfox.org/share*
  94. // @match http://*.pixup.us/img-*
  95. // @match http://*.imagecarry.com/*/*
  96. // @match http://*.imagedunk.com/*/*
  97. // @match http://*.imageswitch.com/*/*
  98. // @match http://*.piclambo.net/*/*
  99. // @match http://*.picleet.com/*/*
  100. // @match http://*.yankoimages.net/*/*
  101. // @match http://*.picturedip.com/*/*
  102. // @match http://*.croftimage.com/img-*
  103. // @match http://*.imagedecode.com/img-*
  104. // @match http://*.imagefruit.com/img*
  105. // @match http://*.imagefruit.com/show*
  106. // @match http://*.miragepics.com/view*
  107. // @match http://*.freeimagehosting.net/*
  108. // @match http://*.keptarolo.hu/*
  109. // @match http://www.uploadhouse.com/view*
  110. // @match http://*.dumpt.com/img/view*
  111. // @match http://imagezilla.net/show/*
  112. // @match http://*.imageup.ru/img*
  113. // @match http://*.casimages.com/photos/*/*/*
  114. // @match http://*.casimages.com/img*
  115. // @match http://*.cyberpics.net/p*
  116. // @match http://*.vvcap.net/db/*
  117. // @match http://*.freeimage.us/share*
  118. // @match http://*.pix-x.net/*/*
  119. // @match http://*.shareimages.com/image*
  120. // @match http://www.xtremeshack.com/image/*
  121. // @match http://*.mrjh.org/gallery.php?entry=*
  122. // @match http://*.itmages.ru/image/view*
  123. // @match http://shrani.najdi.si/*
  124. // @match http://*.iv.pl/view*
  125. // @match http://*.image18.org/show/*
  126. // @match http://*.pic4you.ru/*
  127. // @match http://picload.org/view*
  128. // @match http://*.thebestpichost.com/picture/*
  129. // @match http://*.lostpic.net/image/*
  130. // @match http://subefotos.com/ver/*
  131. // @exclude http://subefotos.com/ver/*#codigos
  132. // @match http://*.pixsor.com/share*
  133. // @match http://*.pixsor.com/XXX/share*
  134. // @match http://*.image-share.com/i*html
  135. // @match http://*.npicture.net/share-*
  136. // @match http://*.overpic.net/view*
  137. // @match http://*.imagecross.com/*
  138. // @match http://*.mojoimage.com/*
  139. // @match http://www.use.com/*
  140. // @match http://www.hostingpics.net/view*
  141. // @match http://*.pictureshoster.com/view*
  142. // @match http://*.imageshost.ru/photo*
  143. // @match http://*.imagestime.com/show*
  144. // @match http://sharenxs.com/view*
  145. // @match http://sharenxs.com/gallery/*/*
  146. // @match http://img4.imagetitan.com/img*
  147. // @match http://*.imagenpic.com/*
  148. // @match http://*.stuffed.ru/images*
  149. // @match http://*.wstaw.org/w/*
  150. // @match http://pikucha.ru/*
  151. // @match http://www.imagesocket.com/photos*
  152. // @match http://www.imagesocket.com/social*
  153. // @match http://imageban.net/show*
  154. // @match http://*.otofotki.pl/*
  155. // @match http://*.imgsin.com/view*
  156. // @match http://*.imagenetz.de/*
  157. // @match http://pix.toile-libre.org/?img*
  158. // @match http://www.servimg.com/image*
  159. // @match http://*.upix.me/files/*
  160. // @match http://*.upix.me/i/v/?q=*
  161. // @match http://*.pixelup.net/image*
  162. // @match http://*.pixelup.net/image*
  163. // @match http://*.picsee.net/*
  164. // @match http://www.fotosik.pl/pokaz_obrazek/pelny*
  165. // @match http://*.depic.me/*
  166. // @match http://www.xup.in/dl*
  167. // @match http://*.hotchyx.com/d*
  168. // @match http://*.imageupper.com/i/*
  169. // @match *://beeimg.com/view*
  170. // @match http://www.noelshack.com/*.*
  171. // @match http://www.turbopix.fr/v/*
  172. // @match http://thumbsnap.com/*
  173. // @match http://deffe.com/image/*
  174. // @match http://*.imageno.com/*.html
  175. // @match http://*.imagehousing.com/image*
  176. // @match http://www.picfront.org/d/*
  177. // @match http://*.imagehost.thasnasty.com/?*
  178. // @match http://*.imagilive.com/*.htm*
  179. // @match http://*.thepornfeeds.com/?*
  180. // @match http://*.picturevip.com/*
  181. // @exclude http://*.picturevip.com/x/clean/
  182. // @match http://img.3ezy.net/*.htm
  183. // @match http://*.xximg.net/img-*
  184. // @match http://*.zaslike.com/view*
  185. // @match http://www.zimagez.com/zimage*
  186. // @match http://*.pictureturn.com/*.html
  187. // @match http://*.cubeupload.com/im/*
  188. // @match http://www.photo-host.org/view-image/*
  189. // @match http://www.fotoszok.pl/show*
  190. // @match http://*.imglink.ru/show*
  191. // @match http://zapodaj.net/*.html
  192. // @match http://www.pixic.ru/view*
  193. // @match http://www.imagesup.de/picture.php?code=*
  194. // @match http://www.pornbus.org/show*
  195. // @match http://www.bilder-space.de/bild-*
  196. // @match http://www.imgcarry.com/show*
  197. // @match http://*.saveimg.ru/show*
  198. // @match http://www.fotos-hochladen.net/view*
  199. // @match http://simplest-image-hosting.net/*
  200. // @match http://jpegbay.com/gallery/*.html
  201. // @match http://www.hostpic.org/view*
  202. // @match *://imagik.fr/image/*
  203. // @match http://www.image-load.net/show*
  204. // @match http://*.sxpics.nl/img-*
  205. // @match http://*.gallerycloud.net/image/*
  206. // @match http://tryimg.com/image/*
  207. // @match http://bilder.nixhelp.de/display-*
  208. // @match http://*.funextra.hostzi.com/view*
  209. // @match http://*.freakimage.com/view*
  210. // @match http://*.fotoo.pl/show.php?img=*.html
  211. // @match http://*.rapid-img.de/img.php?f=*
  212. // @match http://*.1pics.ru/view-*
  213. // @match http://*.1pics.ru//view-*
  214. // @match http://*.upload.djmaster.fr/?v=*
  215. // @match http://img.pereslavl.ru/share*
  216. // @match http://*.dwimg.com/view*
  217. // @match http://www.imageurlhost.com/view*
  218. // @match http://*.imagesup.net/*
  219. // @match http://*.superkipje.com/view*
  220. // @match https://*.2i.sk/i/*
  221. // @match http://www.imgadult.com/img-*
  222. // @match http://www.picshot.pl/public/view*
  223. // @match http://*.imagesmax.de/display-*
  224. // @match http://*.ifotos.pl/zobacz/*
  225. // @match http://www.zimage.fr/photo.php?id=*
  226. // @match http://www.zimage.fr/taillereel.php?id=*
  227. // @match http://ngarko.online.fr/view*
  228. // @match http://*.b4he.com/?v=*
  229. // @match http://*.oxily.com/?*
  230. // @match http://ghanaimages.co/?*
  231. // @match http://*.imgplus.info/view*
  232. // @match http://firepic.org/?v=*
  233. // @match http://savepic.org/*.htm
  234. // @match http://*.fastimages.ru/p*
  235. // @match http://ipic.su/?page=img&pic=*
  236. // @match http://*.jpegshare.net/*.html
  237. // @match http://*.overdream.cz/*
  238. // @match http://*.fastpics.net/?v=*
  239. // @match http://www.ii4.ru/image-*
  240. // @match http://*.picuploader.de/*
  241. // @match http://*.rupict.ru/share*
  242. // @match http://bildr.no/view*
  243. // @match http://www.subeimagenes.com/img*
  244. // @match http://screenshot.ru/*
  245. // @match http://*.hostpix.de/show.php?img*
  246. // @match http://*.freeuploadimages.org/view*
  247. // @match http://smages.com/?v=*
  248. // @match http://*.hostingkartinok.com/show-image.php?id=*
  249. // @match http://*.4put.ru/*max*
  250. // @match http://www.pictureshack.ru/view*
  251. // @match http://*.host99.byethost4.com/share.php?id=*
  252. // @match http://*.eazypics.net/share*
  253. // @match http://xtupload.com/share.php?id=*
  254. // @match http://t.williamgates.net/share*
  255. // @match http://photosex.biz/v.php?id=*
  256. // @match http://*.imageteam.org/img-*
  257. // @match http://*.hostimage.ru/photo*
  258. // @match http://www.loaditup.de/*.html
  259. // @match http://*.imgbox.de/show/img*
  260. // @match http://*.picszone.net/view*
  261. // @match http://*.images.share-films.net/view*
  262. // @match http://www.uploadking.biz/show*
  263. // @match http://foto.xhost.lv/show.php?img=*
  264. // @match http://*.imagefile.org/view*
  265. // @match http://*.onimage.net/show*
  266. // @match http://*.uploadagent.de/show*
  267. // @match http://*.bildjunkies.de/view*
  268. // @match http://*.foto.hcfor.pl/view*
  269. // @match http://*.pic.tooptarinha.com/view*
  270. // @match http://*.poopr.org/view*
  271. // @match http://*.xp-images.hi2.ro/view*
  272. // @match http://*.dayzeddesigns.com/view*
  273. // @match http://*.freeimghosting.co.uk/view*
  274. // @match http://*.123poze.3x.ro/view*
  275. // @match http://*.upload.removed.us/view*
  276. // @match http://*.ximg.co.uk/view*
  277. // @match http://sl-images.ath.cx/view*
  278. // @match http://*.picatom.com/*
  279. // @match http://www.picshare.ru/view*
  280. // @match http://*.pikczery.pl/view*
  281. // @match http://*.imghost.pl/index.php?id=*
  282. // @match http://*.udostepniaj.pl/view*
  283. // @match http://*.hosting-zdjec.pl/view*
  284. // @match http://*.zapisz.net/view*
  285. // @match http://www.imagehosting.cz/?v=*
  286. // @match http://www.dumparump.com/view*
  287. // @match http://*.myxpic.com/showpic*
  288. // @match http://*.picness.com/image/*
  289. // @match http://h4z.it/View*
  290. // @match http://*.freeamateurteens.net/view*
  291. // @match http://*.fotoshack.us/foto*
  292. // @match http://*.image-server.ru/view*
  293. // @match http://*.imagebin.ca/v/*
  294. // @match http://*.loadpix.de/*.html
  295. // @match http://www.public-pic.de/image/show/*
  296. // @match http://*.9foto.ru/photo/*
  297. // @match http://uploads.ru/*
  298. // @match http://*.storepic.com/show*
  299. // @match http://www.myimg.de/?img=*
  300. // @match http://*.root-space.eu/file*
  301. // @match http://*.hot-file.org/p*
  302. // @match http://*.hostarea.de/show*
  303. // @match http://mepic.ru/view/?id=*
  304. // @match http://*.upislam.com/view*
  305. // @match http://*.ngarko.free.fr/view*
  306. // @match http://*.add-screen.com/view*
  307. // @match http://image.siroro.co.uk/p*
  308. // @match http://thaisharing.online.fr/view*
  309. // @match http://*.images.collectiontricks.it/view*
  310. // @match http://*.my-collection.ru/view*
  311. // @match http://img.schattorie.nl/view*
  312. // @match http://*.forexrainbow.com/view*
  313. // @match http://*.imgupload.pl/view*
  314. // @match http://*.1y9y.com/view*
  315. // @match http://*.addpix.net/view*
  316. // @match http://www.myuploadedimages.com/view*
  317. // @match http://multihoster.saxonia-fighter.de/view*
  318. // @match http://knecht.novarata.net/?*
  319. // @match http://*.img.irandeliver.com/?*
  320. // @match http://*.xferz.com/?*
  321. // @match http://*.up.kfesfahan.com/?*
  322. // @match http://*.image.alesher.com/?*
  323. // @match http://upload.khontai.com/?*
  324. // @match http://*.image.pantyhosemania.info/?*
  325. // @match http://*.addyourpics.com/image*
  326. // @match http://*.imgnext.com/img-*
  327. // @match http://*.qattach.com/p*
  328. // @match http://*.host4images.com/view*
  329. // @match http://*.imgbank.cz/*
  330. // @match http://*.nyanimg.com/*
  331. // @match http://*.geekpics.in/*
  332. // @match http://*.imagesloading.altervista.org/?*
  333. // @match http://*.showmyimage.com/*
  334. // @match http://*.phpbbmods.it/immaggini*
  335. // @match http://*.mynameismiz.com/*
  336. // @match http://upload.supreme-elite.fr/?*
  337. // @match http://*.fotohelp.kz/image*
  338. // @match https://*.myimg.me/*
  339. // @match http://*.heberg-hush.org/?*
  340. // @match http://*.oltaciyukle.com/*
  341. // @match http://*.pichost.name/*
  342. // @match *://*.fsfiles.org/flightsimshotsv2/image/*
  343. // @match http://*.imagend.com/*
  344. // @match http://*.imagerocket.com/*
  345. // @match http://*.hyyathost.com/*
  346. // @match http://images.reptilescanada.com/*
  347. // @match http://*.lakhdaria.net/imagebank/?*
  348. // @match http://*.webjardiner.com/hebergement_images_photos/image*
  349. // @match http://*.intergranada.com/images/?*
  350. // @match http://*.partizansk.eu/foto/image*
  351. // @match http://*.xenopix.com/?*
  352. // @match http://*.wepic.ru/*
  353. // @match http://*.imgup.com/images*
  354. // @match http://*.picturepush.com/public*
  355. // @match http://*.upload-image.fr/*
  356. // @match http://*.iezz.com/?*
  357. // @match http://*.fileaimage.com/?*
  358. // @match https://*.images.baconbits.org/?*
  359. // @match http://*.kuvajako.com/*
  360. // @match http://*.upanh.ovo.vn/*
  361. // @match http://*.imagesaur.com/*
  362. // @match http://*.wrzucaj.net/*
  363. // @match http://*.heberge-images.com/?*
  364. // @match http://www.image.kg/*
  365. // @match http://*.picshome.ru/?*
  366. // @match http://*.savemyimage.com/*
  367. // @match http://*.img.dramacafe.tv/*
  368. // @match http://*.hosturimage.com/img-*
  369. // @match http://*.pic-mir.ru/*/*
  370. // @match http://*.244pix.com/view*
  371. // @match http://*.uploadimage.ro/view*
  372. // @match http://*.imgflare.com/*/*
  373. // @match http://www.imagefap.com/photo/*
  374. // @match http://filefap.com/view*
  375. // @match *://imgur.com/*
  376. // @exclude *://imgur.com/*,*
  377. // @match http://motherless.com/*
  378. // @match http://*.xpic.biz/*/view*
  379. // @match http://*.tumblr.com/image/*
  380. // @match http://*.imageporter.com/*
  381. // @match http://*.damimage.com/img-*
  382. // @match http://fapping.empornium.sx/*
  383. // @match http://*.bulkimg.info/img-*
  384. // @match http://imgboxxx.com/view*
  385. // @match http://*.imghere.net/view*
  386. // @match http://*.sharepic.biz/show-image.php?id=*
  387. // @match http://f-lite.ru/*
  388. // @match http://*.picturescream.com/*
  389. // @match http://*.imgdone.com/view*
  390. // @match https://*.2i.cz/i/*
  391. // @match http://awesomescreenshot.com/*
  392. // @match *://*.flickr.com/photos/*/*/
  393. // @exclude /^https?://(www\.)?flickr\.com/photos/([^/]+)/(sets/.*|page.*|with.*|favorites.*)?$/
  394. // @match http://www.amateri.cz/g*/*
  395. // @match http://*.imgshow.me/*
  396. // @match *://*.wikipedia.org/wiki/*:*.jp*
  397. // @match *://*.wikipedia.org/wiki/*:*.png
  398. // @match *://*.wikimedia.org/wiki/File:*.jp*
  399. // @match *://*.wikimedia.org/wiki/File:*.pn*
  400. // @match http://*.xxxscreens.com//img-*
  401. // @match http://avenuexxx.com/*-*
  402. // @match http://www.bilderhoster.net/*.html
  403. // @match http://*.xxxscreens.com/img-*
  404. // @match http://*.imgdope.com/view*
  405. // @match http://*.imagehost.eu/*
  406. // @match http://*.aveimage.com/view*
  407. // @match http://*.fappic.com/*
  408. // @match http://*.imagenimage.com/*/*
  409. // @match http://*.adultur.com/img-*
  410. // @match http://*.imageshimage.com/*/*
  411. // @match http://*.imgswift.com/*/*
  412. // @match http://*.imageporn.eu/?v=*
  413. // @match https://500px.com/photo/*
  414. // @match http://*.greenpiccs.com/images/*.html
  415. // @match http://*.hostmat.eu/view*
  416. // @match http://*.photobucket.com/user/*/media/*.htm*
  417. // @match http://www.imgshots.com/img*
  418. // @match http://www.imgshots.com/show/*
  419. // @match http://*.3xplanet.com/view*
  420. // @match http://*.imgmega.com/*.html
  421. // @match *://img.yt/img-*
  422. // @match http://*.payforpic.ru/*/*/
  423. // @match http://*.keep4u.ru/full/*
  424. // @match http://*.pic.re/*.html
  425. // @match http://*.freshpics.ru/*/*/
  426. // @match http://*.sexyimg.eu/img-*
  427. // @match *://*.imgseeds.com/img-*
  428. // @match http://*.pronpic.org/*/*
  429. // @match http://prnt.sc/*
  430. // @match http://*.imgdream.net/view*
  431. // @match http://*.imgtab.net/*
  432. // @match http://*.kephost.com/image/*
  433. // @match http://i.ruspotting.net/image/*
  434. // @match http://*.gifyu.com/image/*
  435. // @match https://*.picr.ws/image/*
  436. // @match https://www.linkmypic.com/image/*
  437. // @match http://celebimg.com/image/*
  438. // @match http://*.sharepic.org/image/*
  439. // @match http://*.zuly.de/image/*
  440. // @match http://upload.vstanced.com/image/*
  441. // @match http://*.thro.bz/image/*
  442. // @match http://*.qoou.net/image/*
  443. // @match http://brightpic.tk/image/*
  444. // @match http://*.cweb-pix.com/image/*
  445. // @match http://hosting.webspell.fr/image/*
  446. // @match http://*.i-pict.ru/image/*
  447. // @match http://*.images.woh.to/image/*
  448. // @match http://*.imghaze.com/image/*
  449. // @match http://*.imgup.nl/image/*
  450. // @match http://*.kuvapankki.in/image/*
  451. // @match http://*.myimageshare.com/image/*
  452. // @match http://*.nium.co/image/*
  453. // @match http://pix.hostux.net/image/*
  454. // @match http://*.pixoload.de/image/*
  455. // @match http://*.primeimg.co/image/*
  456. // @match http://pic.xtream-reallife.de/image/*
  457. // @match http://*.ultraimg.com/image/*
  458. // @match http://demo.chevereto.com/image/*
  459. // @match http://imgclick.net/*
  460. // @match http://*.gogoimage.org/img-*
  461. // @match http://imgmoney.ru/*.html
  462. // @match http://imgmoney.ru/full/
  463. // @match http://*.imglooks.com/img-*
  464. // @match http://*.you-logo.ru/show*
  465. // @match http://*.uploadimagex.com/view*
  466. // @match http://*.powerlogo.ru/show*
  467. // @match http://youpicture.org/?v=*
  468. // @match http://*.all-poster.ru/?v=*
  469. // @match http://*.picbug.ru/share*
  470. // @match http://*.sxpix.nl/img-*
  471. // @match http://*.hotflick.net/u/v/?q=*
  472. // @match http://*.hotflick.net/f/v/?q=*
  473. // @match http://vavvi.com/images/*.html
  474. // @match http://*.deviantart.com/art/*
  475. // @match http://*.myceleb.net/u/v/?q=*
  476. // @match http://*.imageblinks.com/img-*
  477. // @match http://*.gelbooru.com/index.php?page=post&s=view&id=*
  478. // @match http://*.youhate.us/index.php?page=post&s=view&id=*
  479. // @match http://danbooru.donmai.us/posts/*
  480. // @match http://konachan.com/post/show/*
  481. // @match http://konachan.net/post/show/*
  482. // @match https://yande.re/post/show/*
  483. // @match https://chan.sankakucomplex.com/*post/show/*
  484. // @match https://yande.re/post/show/*
  485. // @match http://www.zerochan.net/*
  486. // @match http://*.imgrock.net/*.php
  487. // @match http://imgzap.com/view*
  488. // @match http://*.funimg.net/img-*
  489. // @match http://*.olivepix.com/view/*
  490. // @match http://*.ocaload.com/img-*
  491. // @match http://*.imghit.com/img-*
  492. // @match http://*.imageon.org/img-*
  493. // @match http://*.imgcentral.com/view*
  494. // @match http://*.chronos.to/*
  495. // @match http://picspornfree.me/img-*
  496. // @match http://*.pic-you.com/p*
  497. // @match http://*.image-bugs.com/*mage/*
  498. // @match http://*.pixhst.com/pictures/*
  499. // @match http://*.imgdrive.net/img-*
  500. // @match http://www.pixiv.net/member_illust.php?mode=medium&illust_id=*
  501. // @match http://*.scrin.org/?v=*
  502. // @match http://*.thumbnailus.com/img-*
  503. // @match http://*.nimplus.com/img-*
  504. // @match http://www.imgtaxi.com/img-*
  505. // @match http://*.imgstudio.org/img-*
  506. // @match http://goimge.com/img-*
  507. // @match http://*.safeimage.biz/image/*
  508. // @match http://*.picclick.ru/*/*/
  509. // @match http://*.imgclover.com/image/*
  510. // @match http://*.imgz.pw/share-*
  511. // @match *://*.imgking.co/img*
  512. // @match http://ask.fm/*/photo/original
  513. // @match http://cuteimg.cc/*
  514. // @match http://*.newimagepost.com/img-*
  515. // @match http://*.imageho.me/img-*
  516. // @match http://myimg.club/*
  517. // @match http://*.imgease.re/img-*
  518. // @match http://www.hotimage.uk/img-*
  519. // @match http://imgview.net/*.php
  520. // @match http://*.10.imageleon.com/i-*
  521. // @match https://www.dropbox.com/s/*/*
  522. // @match http://imgor.net/img-*
  523. // @match http://*.imagedax.net/*/*.html
  524. // @match http://*.imgmonkey.com/*/*.html
  525. // @match http://*.fapat.me/img-*
  526. // @match http://photo.weibo.com/*/large/photo_id/*
  527. // @match http://*.crazyimg.com/images/*.html
  528. // @match http://imgbe.com/img-*
  529. // @match https://*.imgextra.uk/image/*
  530. // @match http://*.extraimago.com/image/*
  531. // @match http://*.fireimg.cc/img-*
  532. // @match http://www.pornimagex.com/image/*
  533. // @match http://*.imgboom.net/img-*
  534. // @match http://*.img24.org/*.html
  535. // @match http://*.pic-maniac.com/*
  536. // @match https://*.instagram.com/p/*
  537. // @exclude https://instagram.com/p/*/embed/*
  538. // @exclude https://*.instagram.com/p/*/embed/*
  539. // @match http://*.imgsay.com/?v=*
  540. // @match http://*.imgsmile.com/?v=*
  541. // @match http://*.balkanelite.org/MultiHoster/view*
  542. // @match https://twitter.com/*/photo/*
  543. // @match http://*.icezap.com/img-*
  544. // @match *://*.rapidimg.net/img-*
  545. // @match http://foxyimg.link/*
  546. // @match http://*.imgtornado.com/img-*
  547. // @match http://*.daily-img.com/image/*
  548. // @match http://*.imageab.com/image/*
  549. // @match http://*.erimge.com/img-*
  550. // @match http://*.imgtrial.com/img-*
  551. // @match http://imgtown.net/*.php
  552. // @match http://ameblo.jp/*/image-*
  553. // @match http://*.loftlm.ru/img-*
  554. // @match http://*.imgdragon.com/*/*.html
  555. // @match http://ftop.ru/*/*
  556. // @match http://*.imgurx.net/share*
  557. // @match http://savepic.ru/*.htm
  558. // @match http://*.imgmaid.net/*
  559. // @match http://*.imggold.org/*/*.html
  560. // @match http://*.imgcredit.xyz/img-*
  561. // @match http://*.dimtus.com/img-*
  562. // @match http://*.coreimg.net/*
  563. // @match http://sfwimg.com/image/*
  564. // @match http://*.imgtiger.org/*/*
  565. // @match http://*.img3x.com/image/*
  566. // @match http://*.imguniversal.com/*
  567. // @match http://*.imagepearl.com/view/*
  568. // @match http://*.tinizo.com/img-*
  569. // @match http://*.imgkings.com/img*
  570. // @match http://*.imagerar.com/img*
  571. // @match http://*.sendpic.org/view/*
  572. // @match http://www.porncomix.info/*/*/
  573. // @exclude http://www.porncomix.info/gallery/*
  574. // @match http://*.imgclick.ru/*/*/
  575. // @match http://*.svetmonet.ru/*.html
  576. // @match http://*.svetmonet.ru/full/
  577. // @match http://*.imgpix.net/*
  578. // @match https://*.imgzulu.com/img-*
  579. // @match http://*.freeimagehostin.com/img-*
  580. // @match http://www.mixbase.net/gallery/image.*
  581. // @match http://www.adultimages.xyz/*/image*.html
  582. // @match http://*.pic4share.ru/*.html
  583. // @match http://*.pic4share.ru/full/
  584. // @match http://*.sximg.nl/img-*
  585. // @match http://*.0img.net/?v=*
  586. // @match http://ss.movierls.net/image/*
  587. // @match http://www.xxximagetpb.org/image/*
  588. // @match http://www.pixsense.net/site/v/*
  589. // @match http://imgoutlet.com/*.php
  590. // @match http://imgoutlet.com/*/*.html
  591. // @match http://*.pix.ac/image/*
  592. // @match *://*.imgmak.com/image/*
  593. // @match http://*.freephotohostin.com/img-*
  594. // @match http://*.imgcat.pw/img-*
  595. // @match http://*.levinpic.org/*.html
  596. // @match https://www.sparrowpics.com/image/*
  597. // @match http://*.imgmax.com/image/*
  598. // @match http://lostpix.com/?v=*
  599. // @match https://extraimago.com/image/*
  600. // @match http://*.imgroute.com/?v=*
  601. // @match http://www.joblo.com/hollywood-celebrities/hottie-profile/*/image-gallery/*.jpg
  602. // @match *://extraimage.net/image/
  603. // @match *://www.bellazon.com/main/attachment/*
  604. // @match *://extraimage.net/image/*
  605. // @match https://www.artstation.com/artwork/*
  606. // @match http://bcy.net/illust/detail/*
  607. // @match http://*.imgpics.nl/img-*
  608. // @match http://*.imagexxx18.com/image/*
  609. // @match http://*.imagepics.xyz/img-*
  610. // @match *://*.imagesouls.net/img*
  611. // @match *://postto.me/*
  612. // @match http://*.imgskull.xyz/image/*
  613. // @match *://*.ninjaimages.com/*.html
  614. // @match *://*.imgprime.com/img*
  615. // @match http://*.imgmaze.com/*.php
  616. // ==/UserScript==
  617.  
  618. if (typeof unsafeWindow === "undefined")
  619. {
  620. unsafeWindow = window;
  621. }
  622.  
  623. if (typeof GM_registerMenuCommand !== "undefined")
  624. {
  625. GM_registerMenuCommand("Handy Image Configuration", cfg, "C");
  626. }
  627.  
  628. if(window.location.href.lastIndexOf(window.location.hostname) + window.location.hostname.length + 1 == window.location.href.length)
  629. {
  630. console.warn("we are on website's main page, aren't we?");
  631. return false;
  632. }
  633. if (document.images.length == 1 && document.images[0].src == window.location.href)
  634. {
  635. console.warn("handy isn't needed for directly opened images");
  636. return false;
  637. }
  638. if(document.referrer)
  639. {
  640. if(document.referrer.lastIndexOf(window.location.hostname) != -1 && document.referrer.lastIndexOf(window.location.hostname) +1 == document.referrer.length - window.location.hostname.length)
  641. {
  642. console.warn("you have just uploaded a picture, haven't you?");
  643. return false;
  644. }
  645. }
  646. if(document.cookie.indexOf("hji=") != -1)
  647. {
  648. if(document.cookie.indexOf("hji=" + window.location.href) != -1)
  649. {
  650. console.warn("you just don't want the script to run now, do you?");
  651. document.cookie = "hji=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
  652. return false;
  653. }
  654. else if(document.cookie.indexOf("backhji=") != -1)
  655. {
  656. console.warn("you have found a time machine, now you are traveling back in history");
  657. window.history.go(-1);
  658. document.cookie = "hji=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
  659. return false;
  660. }
  661. console.warn("found a weird cookie, let's eat it");
  662. document.cookie = "hji=; expires=Thu, 01 Jan 1970 00:00:01 GMT;"; // stealth mode
  663. }
  664. //else{ console.warn("no hji cookie found");}
  665.  
  666. function q(s){if(document.body){return document.body.querySelector(s);}return null;}
  667. var cfg_direct;
  668. var cfg_bgclr;
  669. var cfg_fitWH = true;
  670. var cfg_fitB;
  671. var cfg_fitS;
  672. var cfg_js;
  673. var dp = false;
  674. var rescaled = false;
  675. var tb;
  676. var timeout = 1000;
  677. var FireFox = ((navigator.userAgent.indexOf('Firefox') != -1) ? true : false);
  678. var i;
  679. var j;
  680. var iurl = window.location.hostname;
  681. if(!iurl.indexOf("www."))
  682. {
  683. iurl = iurl.substr(4);
  684. }
  685.  
  686. function ws()
  687. {
  688. if(!FireFox) // NOT firefox
  689. {
  690. window.stop();
  691. }
  692. }
  693.  
  694. function sanitize() // lol I'm such a hacker
  695. {
  696. var lasttask = setTimeout(function() {},0);
  697. for(var n = lasttask; n > 0; n--)
  698. {
  699. clearTimeout(n);
  700. }
  701. }
  702.  
  703. function onscript(e)
  704. {
  705. //console.warn( "STOPPED: " + e.target.src + e.target.innerHTML);
  706. e.preventDefault();
  707. e.stopPropagation();
  708. }
  709.  
  710. function onbeforeunload(e) // back helper
  711. {
  712. //console.warn("setting hji cookie before unloading page");
  713. var now = new Date();
  714. var time = now.getTime();
  715. time += 2000; // 2 sec to help quit double-pages
  716. now.setTime(time);
  717. now.toGMTString();
  718. document.cookie = 'backhji=; expires=' + now.toGMTString() + '; path=/';
  719. }
  720.  
  721. function protected_createElement(el)
  722. {
  723. delete document.createElement;
  724. var r = document.createElement(el);
  725. unsafeWindow.document.createElement = null;
  726. return r;
  727. }
  728.  
  729. function makeimage()
  730. {
  731. loadCfg();
  732. if(cfg_direct){unsafeWindow.location.href = i.src;return false;}
  733. if(cfg_bgclr){document.body.bgColor = cfg_bgclr;}
  734. document.body.style.margin = "0px";
  735. document.body.innerHTML = "<style>img { position: absolute; top: 0; right: 0; bottom: 0; left: 0; image-orientation: from-image; }</style>"; // center image
  736. ws();
  737. var isrc = i.src;
  738. i = protected_createElement("img");
  739. i.src = isrc;
  740. i.style.margin = "auto"; // center image
  741. document.body.appendChild(i);
  742. i.addEventListener("click", rescale, true);
  743. window.addEventListener("keydown", onkeydown, true);
  744. if(dp){console.warn("you are on a double-page image hosting (probably)");window.addEventListener("beforeunload", onbeforeunload, true);}
  745. autoresize();
  746. }
  747.  
  748. function find_text_in_scripts(a, b, o, h)
  749. {
  750. var s = document.getElementsByTagName("script");
  751. for(var c=0;c<s.length;c++)
  752. {
  753. if(h && s[c].innerHTML.indexOf(h) != -1){s[c].innerHTML = s[c].innerHTML.substring(0, s[c].innerHTML.indexOf(h));}
  754. var start_pos = o ? s[c].innerHTML.indexOf(a) : s[c].innerHTML.lastIndexOf(a);
  755. if(start_pos == -1){continue;}
  756. start_pos += a.length;
  757. i = s[c];
  758. i.src = decodeURIComponent(s[c].innerHTML.substring(start_pos,s[c].innerHTML.indexOf(b,start_pos)).split("\\").join("")); // split\join fix for stupidfox GreaseMonkey
  759. return true;
  760. }
  761. return false;
  762. }
  763.  
  764. function post(path, params, method)
  765. {
  766. method = method || "post";
  767. var form = protected_createElement("form");
  768. form.setAttribute("method", method);
  769. form.setAttribute("action", path);
  770. for(var key in params)
  771. {
  772. if(params.hasOwnProperty(key))
  773. {
  774. var hiddenField = protected_createElement("input");
  775. hiddenField.setAttribute("type", "hidden");
  776. hiddenField.setAttribute("name", key);
  777. hiddenField.setAttribute("value", params[key]);
  778.  
  779. form.appendChild(hiddenField);
  780. }
  781. }
  782. document.body.appendChild(form);
  783. form.submit();
  784. }
  785.  
  786. function makeworld()
  787. {
  788. if(i){return;}
  789. // per-host image detection
  790. switch (iurl)
  791. {
  792. case "gist.github.com":
  793. if(document.body){i=1;cfg();}break;
  794. case "vvcap.net":
  795. case "simplest-image-hosting.net":
  796. case "hostimage.ru":
  797. case "imagebin.ca":
  798. case "imgchili.net":
  799. case "pixhst.com":
  800. case "adultimages.xyz":
  801. case "depic.me":
  802. i = q('img');
  803. break;
  804. case "myceleb.net":
  805. i = q('img[id]');
  806. break;
  807. case "savepic.org":
  808. case "savepic.ru":
  809. i = q('a img:not([src*="/images/"])');
  810. break;
  811. case "motherless.com":
  812. j = true;
  813. i = q('div#media-media div a img');
  814. break;
  815. case "awesomescreenshot.com":
  816. i = q('img#screenshot');
  817. break;
  818. case "dropbox.com":
  819. j = true;
  820. i = q('img.preview-image');
  821. if(i)
  822. {
  823. i = q('a[href*="?dl=1"]');
  824. if(i)
  825. {
  826. i.src = i.href;
  827. }
  828. }
  829. break;
  830. case "img.3ezy.net":
  831. case "image-bugs.com":
  832. case "imgclover.com":
  833. case "demo.chevereto.com":
  834. case "daily-img.com":
  835. case "celebimg.com":
  836. case "sfwimg.com":
  837. case "img3x.com":
  838. case "lostpic.net":
  839. case "imgskull.xyz":
  840. case "2i.sk":
  841. case "2i.cz":
  842. case "deffe.com":
  843. case "imagik.fr":
  844. case "gallerycloud.net":
  845. case "tryimg.com":
  846. case "fsfiles.org":
  847. case "picpicture.com":
  848. //chevereto 3.x
  849. i = document.head.querySelector('link[rel="image_src"]');
  850. if(i)
  851. {
  852. i.src = i.href;
  853. i.src = i.src.replace('_800.', '.'); //img.3ezy.net
  854. }
  855. break;
  856. case "directupload.net":
  857. case "bilderhoster.net":
  858. case "noelshack.com":
  859. case "kephost.com":
  860. case "i.ruspotting.net":
  861. case "gifyu.com":
  862. case "picr.ws":
  863. case "linkmypic.com":
  864. case "sharepic.org":
  865. case "zuly.de":
  866. case "upload.vstanced.com":
  867. case "thro.bz":
  868. case "qoou.net":
  869. case "brightpic.tk":
  870. case "cweb-pix.com":
  871. case "hosting.webspell.fr":
  872. case "i-pict.ru":
  873. case "images.woh.to":
  874. case "imghaze.com":
  875. case "imgup.nl":
  876. case "kuvapankki.in":
  877. case "myimageshare.com":
  878. case "nium.co":
  879. case "pix.hostux.net":
  880. case "pixoload.de":
  881. case "primeimg.co":
  882. case "pic.xtream-reallife.de":
  883. case "ultraimg.com":
  884. case "safeimage.biz":
  885. case "imagebam.com":
  886. case "twitter.com":
  887. case "imgextra.uk":
  888. case "ss.movierls.net":
  889. case "xxximagetpb.org":
  890. case "pix.ac":
  891. case "sparrowpics.com":
  892. case "prnt.sc":
  893. case "imgmax.com":
  894. case "extraimago.com":
  895. case "extraimage.net":
  896. i = document.querySelector('meta[property="og:image"] , [name="og:image"]');
  897. if(i)
  898. {
  899. i.src = i.content;
  900. i.src = i.src.replace(':large', ':orig'); //twitter.com
  901. }
  902. else
  903. {
  904. i = q('a[download]');
  905. if(i){i.src = i.href;}
  906. }
  907. break;
  908. case "imgur.com":
  909. j = true;
  910. i = document.head.querySelector('meta[property="og:image"]');
  911. if(i)
  912. {
  913. var f = document.head.querySelector('meta[property="og:url"]');
  914. var v = document.head.querySelector('meta[property="og:video"]');
  915. if((f && (f.content.indexOf("/a/") != -1 || f.content.indexOf("/gallery/") != -1) ) || i.content.indexOf("/images/logo") != -1)
  916. {
  917. return;
  918. }
  919. else if(v)
  920. {
  921. i.src = v.content.replace('.mp4', '.gif');
  922. }
  923. else
  924. {
  925. i.src = i.content;i.src = i.src.split('?')[0];
  926. }
  927. }
  928. break;
  929. case "ameblo.jp":
  930. j=true;
  931. i = q('img#imgItem');
  932. break;
  933. case "instagram.com":
  934. j = true;
  935. find_text_in_scripts('display_src": "', '"');
  936. if(i)
  937. {
  938. if(!find_text_in_scripts('is_video": true', ','))
  939. {
  940. i.src = i.src.replace(/\/p\d+x\d+?\//, '/');
  941. }
  942. else
  943. {
  944. i = null;
  945. }
  946. }
  947. break;
  948. case "flickr.com":
  949. case "secure.flickr.com":
  950. find_text_in_scripts('"url":"', '"', false, '"canComment"');
  951. break;
  952. case "500px.com":
  953. find_text_in_scripts('"https_url":"', '"', false);
  954. break;
  955. case "artstation.com":
  956. find_text_in_scripts('"image_url\\":\\"', '\\"', false);
  957. break;
  958. case "pixiv.net":
  959. j = true;
  960. i = q("img.original-image");
  961. if(i){i.src = i.dataset.src;}
  962. break;
  963. case "chan.sankakucomplex.com":
  964. i = q('a[itemprop="contentUrl"]');
  965. if(i)
  966. {
  967. i.src = i.href;
  968. }
  969. break;
  970. case "bcy.net":
  971. var f = document.querySelectorAll("img.detail_clickable")
  972. if(f.length == 1)
  973. {
  974. i = f[0];
  975. i.src = f[0].src.replace('/w650', '');
  976. }
  977. break;
  978. case "imageshack.com":
  979. i = q('input[value*="' + iurl + '/f/"]');
  980. if(i){window.location.href = i.value.replace('/f/', '/i/');}
  981. i = q('img[data-width]');
  982. break;
  983. case "h4z.it":
  984. i = document.images[2];
  985. if(i){i.src = i.parentNode.href;}
  986. break;
  987. case "thumbsnap.com":
  988. i = q('img#thepic');
  989. if(i && i.parentNode.href){i.src = i.src.replace('/s/', '/i/');}
  990. break;
  991. case "imgbox.com":
  992. case "imageupper.com":
  993. case "hotflick.net":
  994. case "upix.me":
  995. i = q('img#img');
  996. if(!i && window.location.hash) // upix.me
  997. {
  998. i = q('a');
  999. i.src = window.location.href.replace("#","");
  1000. }
  1001. break;
  1002. case "imagesnake.com":
  1003. case "freebunker.com":
  1004. case "imagefruit.com":
  1005. case "imagestime.com":
  1006. case "imgcarry.com":
  1007. case "pornbus.org":
  1008. case "fotoo.pl":
  1009. case "hostpix.de":
  1010. case "uploadking.biz":
  1011. case "foto.xhost.lv":
  1012. case "onimage.net":
  1013. case "storepic.com":
  1014. case "hostarea.de":
  1015. case "imgshots.com":
  1016. i = q('img#img_obj');
  1017. break;
  1018. case "pimpandhost.com":
  1019. case "fastpic.ru":
  1020. case "abload.de":
  1021. i = document.body.querySelectorAll('img#image');
  1022. if(i)
  1023. {
  1024. i = i[i.length-1];
  1025. }
  1026. break;
  1027. case "pikucha.ru":
  1028. i = q('img#image');
  1029. j = true;
  1030. break;
  1031. case "bayimg.com":
  1032. i = q('img#mainImage');
  1033. break;
  1034. case "imageban.ru":
  1035. case "imageban.net":
  1036. i = q('img[src*="' + iurl + '/out/"]');
  1037. break;
  1038. case "xup.in":
  1039. i = q('img[src*="/exec/"]');
  1040. break;
  1041. case "jpegbay.com":
  1042. i = q('a[class]');
  1043. if(i){i.src = i.href;}
  1044. break;
  1045. case "keep4u.ru":
  1046. i = q('img[src*="/b/"]');
  1047. break;
  1048. case "euro-pic.eu":
  1049. case "picfox.org":
  1050. case "freeimage.us":
  1051. case "xxx.freeimage.us":
  1052. case "pixsor.com":
  1053. case "img.pereslavl.ru":
  1054. case "rupict.ru":
  1055. case "host99.byethost4.com":
  1056. case "eazypics.net":
  1057. case "xtupload.com":
  1058. case "t.williamgates.net":
  1059. case "imgz.pw":
  1060. case "imgurx.net":
  1061. //i = q('img#iimg');
  1062. find_text_in_scripts("<img src='", "'");
  1063. break;
  1064. case "amateri.cz":
  1065. if(find_text_in_scripts('var orig_url="', '"'))
  1066. {
  1067. i.src = i.src.replace('http://www.amateri.cz/orig.php?&img=', 'http://img2.amateri.cz/users/');
  1068. }
  1069. break;
  1070. case "pixsense.net":
  1071. find_text_in_scripts('"src","', '"');
  1072. break;
  1073. case "pix-x.net":
  1074. case "imgclick.ru":
  1075. i = q('img[onclick*="mshow"]');
  1076. if(i){i.src = i.src.replace('-thumb', '');i.src = i.src.replace('img_thumb', 'img_full');}
  1077. break;
  1078. case "pics-money.ru":
  1079. i = q('img[src*="/full/"]');if(i){break;}
  1080. case "pic5you.ru":
  1081. case "pic4you.ru":
  1082. case "picforall.ru":
  1083. case "picage.ru":
  1084. case "images-host.biz":
  1085. case "pic-mir.ru":
  1086. case "payforpic.ru":
  1087. case "freshpics.ru":
  1088. case "picclick.ru":
  1089. i = q('img[src*="thumb"]');
  1090. if(i){i.src = i.src.replace('-thumb', '');i.src = i.src.replace('img_thumb', 'img_full');i.src = i.src.replace('_thumb', '');}
  1091. break;
  1092. case "tinypic.com":
  1093. i = q('img#imgElement');
  1094. break;
  1095. case "picshot.pl":
  1096. i = q('img[src*="' + iurl + '/p"]');
  1097. if(i){i.src = i.src.replace('thumb', 'file');}
  1098. break;
  1099. case "sharenxs.com":
  1100. i = q('img.view_photo');
  1101. if(i){i.src = i.src.replace('/thumbnails/', '/images/');
  1102. i.src = i.src.replace('/tn-', '/');
  1103. i.src = i.src.replace('/mid/', '/wz/');
  1104. var fn = q('div.alert.alert-info.nomargin.photo_name span');
  1105. if(fn)
  1106. {
  1107. var url = i.src;
  1108. i.src = url.substring(0,url.lastIndexOf('/')+1) + fn.textContent + url.substring(url.lastIndexOf('.'));
  1109. }}
  1110. break;
  1111. case "radikal.ru":
  1112. case "radical-foto.ru":
  1113. case "radikal-foto.ru":
  1114. case "f-page.ru":
  1115. case "f-lite.ru":
  1116. case "f-picture.net":
  1117. find_text_in_scripts('"Url":"', '"');
  1118. break;
  1119. case "bilder-space.de":
  1120. case "imagesup.de":
  1121. i = q('img.picture');
  1122. break;
  1123. case "pix.toile-libre.org":
  1124. case "photo-host.org":
  1125. case "myxpic.com":
  1126. case "picness.com":
  1127. i = q('a[href*="original"]');
  1128. if(i){i.src = i.href;}
  1129. break;
  1130. case "picsee.net":
  1131. i = q('a[href*="/upload"]');
  1132. if(i){i.src = i.href;}
  1133. break;
  1134. case "danbooru.donmai.us":
  1135. i = q('a[href*="/data/"]');
  1136. if(i){i.src = i.href;}
  1137. break;
  1138. case "imagehost.eu":
  1139. case "fappic.com":
  1140. i = q('a#image');
  1141. if(i){i.src = i.href;}
  1142. break;
  1143. case "imgplus.info":
  1144. i = q('img[src*="full"]');
  1145. break;
  1146. case "zerochan.net":
  1147. i = q('a[href*="full"]');
  1148. if(i){i.src = i.href;}
  1149. break;
  1150. case "wstaw.org":
  1151. i = q('a[href*="/m/"]');
  1152. if(i){i.src = i.href;}
  1153. break;
  1154. case "imageshost.ru":
  1155. i = q('a[href*="/img/"]');
  1156. if(i){i.src = i.href;}
  1157. break;
  1158. case "uploadimage.ro":
  1159. i = q('img[src*="img.php"]');
  1160. break;
  1161. case "imageno.com":
  1162. i = q('img[src*="image.php"]');
  1163. break;
  1164. case "loadpix.de":
  1165. i = q('img[src*="bild.php"]');
  1166. break;
  1167. case "bildr.no":
  1168. i = q('img[src*="image"]');
  1169. break;
  1170. case "iv.pl":
  1171. case "funextra.hostzi.com":
  1172. case "freakimage.com":
  1173. case "imageurlhost.com":
  1174. case "superkipje.com":
  1175. case "ximg.co.uk":
  1176. case "sl-images.ath.cx":
  1177. case "pikczery.pl":
  1178. case "hosting-zdjec.pl":
  1179. case "upislam.com":
  1180. case "add-screen.com":
  1181. case "my-collection.ru":
  1182. case "img.schattorie.nl":
  1183. case "forexrainbow.com":
  1184. case "imgupload.pl":
  1185. case "addpix.net":
  1186. case "myuploadedimages.com":
  1187. case "multihoster.saxonia-fighter.de":
  1188. case "imgdone.com":
  1189. case "gelbooru.com":
  1190. case "youhate.us":
  1191. case "greenpiccs.com":
  1192. case "balkanelite.org":
  1193. i = q('a[href*="images/"]');
  1194. if(i){i.src = i.href;}
  1195. break;
  1196. case "fotoshack.us":
  1197. i = q('img[src*="/fotos/"]');
  1198. break;
  1199. case "subefotos.com":
  1200. j = true;
  1201. i = q('img[src*="fotos.' + iurl + '"]');
  1202. break;
  1203. case "pictureshoster.com":
  1204. case "zaslike.com":
  1205. case "dwimg.com":
  1206. case "uploadagent.de":
  1207. i = q('a[href*="files/"]');
  1208. if(i){i.src = i.href;}
  1209. break;
  1210. case "photosex.biz":
  1211. i = q('img[src*="/pic"]');
  1212. break;
  1213. case "pronpic.org":
  1214. i = q('img[src*="/pic/"]');
  1215. if(i){i.src = i.src.replace('th_', '');}
  1216. break;
  1217. case "imadul.com":
  1218. i = q('div.img_box a');
  1219. if(i){i.src = i.href;}
  1220. break;
  1221. case "imgmega.com":
  1222. case "pic.re":
  1223. case "foxyimg.link":
  1224. i = q('input[type="submit"]');
  1225. dp=true;
  1226. if(i)
  1227. {
  1228. i.click();
  1229. break;
  1230. }
  1231. case "turboimagehost.com":
  1232. case "screenlist.ru":
  1233. case "picshare.geenza.com":
  1234. case "mojoimage.com":
  1235. case "imagecherry.com":
  1236. case "10.imageleon.com":
  1237. case "img4.imagetitan.com":
  1238. case "ninjaimages.com":
  1239. i = q('img[onload*="scale"]');
  1240. break;
  1241. case "bild.me":
  1242. case "imagecarry.com":
  1243. case "imagedunk.com":
  1244. case "imageswitch.com":
  1245. case "piclambo.net":
  1246. case "picleet.com":
  1247. case "yankoimages.net":
  1248. case "picturedip.com":
  1249. case "imagezilla.net":
  1250. case "imageup.ru":
  1251. case "hotchyx.com":
  1252. case "imagehousing.com":
  1253. case "cubeupload.com":
  1254. case "dumparump.com":
  1255. case "uploads.ru":
  1256. case "myimg.de":
  1257. case "root-space.eu":
  1258. case "mepic.ru":
  1259. case "imagepearl.com":
  1260. case "postto.me":
  1261. i = q('img[src*="' + iurl + '"]');
  1262. break;
  1263. case "postimg.org":
  1264. case "postimg.cc":
  1265. i = q('img[data-full]');
  1266. if(i)
  1267. {
  1268. i.src = i.getAttribute('data-full');
  1269. }
  1270. break;
  1271. case "ask.fm":
  1272. i = q('img[src*="' + iurl + '"][id]');
  1273. i.src = i.src.replace('/original/', '/large/'); //ask.fm
  1274. break;
  1275. case "photo.weibo.com":
  1276. i = q('img[src*="/large/"]');
  1277. break;
  1278. case "picfront.org":
  1279. j = true;
  1280. i = q('img[src*="' + iurl + '"][title]');
  1281. break;
  1282. case "platimzafoto.ru":
  1283. case "pic-money.ru":
  1284. case "imgmoney.ru":
  1285. case "img24.org":
  1286. case "svetmonet.ru":
  1287. case "pic4share.ru":
  1288. var f = document.getElementsByTagName("button");
  1289. if(f.length)
  1290. {
  1291. f[0].click();
  1292. break;
  1293. }
  1294. dp=true;
  1295. i = q('img[src*="/pic.jpeg"]');
  1296. break;
  1297. case "imgkings.com":
  1298. case "imagerar.com":
  1299. if(window.location.href.indexOf("img-") != -1)
  1300. {
  1301. window.location.href = window.location.href.replace("img-","img2-");
  1302. break;
  1303. }
  1304. case "imgprime.com":
  1305. if(window.location.href.indexOf("img-") != -1)
  1306. {
  1307. window.location.href = window.location.href.replace("img-","img3-");
  1308. break;
  1309. }
  1310. case "freeimagehosting.net":
  1311. case "uploadhouse.com":
  1312. case "fotos-hochladen.net":
  1313. case "picshare.ru":
  1314. case "imgtab.net":
  1315. i = q('img[src*="uploads/"]');
  1316. break;
  1317. case "xtremeshack.com":
  1318. i = q('img[src*="/photos/"]');
  1319. break;
  1320. case "picturepush.com":
  1321. i = q('img[src*="/photo/"]');
  1322. break;
  1323. case "keptarolo.hu":
  1324. i = q('img[src*="/kep/"]');
  1325. break;
  1326. case "servimg.com":
  1327. i = q('img[src*="/u/"]');
  1328. break;
  1329. case "imagearn.com":
  1330. i = q('img[src*="/imags/"]');
  1331. break;
  1332. case "ichan.org":
  1333. i = q('img[src*="/src/"]');
  1334. break;
  1335. case "ibunker.us":
  1336. case "hostingpics.net":
  1337. i = q('img[src*="pics/"]');
  1338. break;
  1339. case "imgtiger.org":
  1340. i = q('form');
  1341. if(i)
  1342. {
  1343. i.submit();
  1344. break;
  1345. }
  1346. case "cuteimg.cc":
  1347. i = q('input[type="button"]');
  1348. if(i)
  1349. {
  1350. i.click();
  1351. break;
  1352. }
  1353. case "myimg.club":
  1354. case "imgmonkey.com":
  1355. case "imgdragon.com":
  1356. case "imggold.org":
  1357. case "imgoutlet.com":
  1358. case "levinpic.org":
  1359. case "imgrock.net":
  1360. case "imgtown.net":
  1361. case "imgview.net":
  1362. case "imgmaze.com":
  1363. j = true;
  1364. dp=true;
  1365. var f = document.querySelectorAll("input[type='submit']")
  1366. if(f.length)
  1367. {
  1368. var n;
  1369. for(n=f.length-1; n >= 0; n--)
  1370. {
  1371. if(f[n].offsetWidth != 0 && f[n].value.indexOf("eply") == -1 && f[n].value.indexOf("Log") == -1)
  1372. {
  1373. f[n].removeAttribute("disabled");
  1374. f[n].click();
  1375. break;
  1376. }
  1377. }
  1378. }
  1379. case "casimages.com":
  1380. case "thebestpichost.com":
  1381. case "ifotos.pl":
  1382. case "subeimagenes.com":
  1383. case "lostpix.com":
  1384. i = q('img[src*="/img/"]');
  1385. break;
  1386. case "imagenetz.de":
  1387. i = q('img[src*="/img"]');
  1388. break;
  1389. case "picatom.com":
  1390. i = q('img[src*="img/"]');
  1391. break;
  1392. case "imgbabes.com":
  1393. case "imgflare.com":
  1394. i = q('input[onclick*="Decode"]');
  1395. dp=true;
  1396. j = true;
  1397. if(i)
  1398. {
  1399. i.click();
  1400. break;
  1401. }
  1402. case "xxxhost.me":
  1403. case "bilder-hochladen.net":
  1404. case "dumpt.com":
  1405. case "imgsin.com":
  1406. case "loaditup.de":
  1407. case "123poze.3x.ro":
  1408. case "thaisharing.online.fr":
  1409. case "filefap.com":
  1410. case "imgswift.com":
  1411. i = q('img[src*="/files/"]');
  1412. break;
  1413. case "image18.org":
  1414. i = q('img[src*="/file/"]');
  1415. break;
  1416. case "zimagez.com":
  1417. i = q('img[src*="/full/"]');
  1418. break;
  1419. case "niceimage.pl":
  1420. i = q('img[src*="/uploaded/"]');
  1421. break;
  1422. case "imagefap.com":
  1423. i = q('noscript');
  1424. if(i)
  1425. {
  1426. i.src = i.innerHTML.substring(i.innerHTML.indexOf("http"));
  1427. i.src = i.src.substring(0,i.src.indexOf('"'));
  1428. }
  1429. break;
  1430. case "olivepix.com":
  1431. i = q('img[src*="view/"]');
  1432. break;
  1433. case "imgking.co":
  1434. i = q('img[src*="uploads/"]');
  1435. if(i) break;
  1436. if(window.location.href.indexOf("imgs") != -1)
  1437. {
  1438. window.location.href = window.location.href.replace("imgs","imgv");
  1439. break;
  1440. }
  1441. if(window.location.href.indexOf("img3") != -1)
  1442. {
  1443. window.location.href = window.location.href.replace("img3","img4");
  1444. break;
  1445. }
  1446. case "imagesouls.net":
  1447. if(find_text_in_scripts('linkid="', '"', false))
  1448. {
  1449. window.location.href = i.src;
  1450. break;
  1451. }
  1452. case "imgadult.com":
  1453. j = true;
  1454. i = q('a.overlay_ad_link');
  1455. if(i)
  1456. {
  1457. i.click();
  1458. break;
  1459. }
  1460. case "imagefolks.com":
  1461. case "imgcandy.net":
  1462. case "imageteam.org":
  1463. case "imgnext.com":
  1464. case "hosturimage.com":
  1465. case "pixup.us":
  1466. case "xximg.net":
  1467. case "x.xximg.net":
  1468. case "sxpics.nl":
  1469. case "sxpix.nl":
  1470. case "bulkimg.info":
  1471. case "img.yt":
  1472. case "xxxscreens.com":
  1473. case "i.sxpics.nl":
  1474. case "funimg.net":
  1475. case "imageon.org":
  1476. case "nimplus.com":
  1477. case "imag.nimplus.com":
  1478. case "newimagepost.com":
  1479. case "imgease.re":
  1480. case "fapat.me":
  1481. case "imgbe.com":
  1482. case "fireimg.cc":
  1483. case "imgboom.net":
  1484. case "rapidimg.net":
  1485. case "imgtornado.com":
  1486. case "erimge.com":
  1487. case "loftlm.ru":
  1488. case "tinizo.com":
  1489. case "imgpix.net":
  1490. case "freeimagehostin.com":
  1491. case "sximg.nl":
  1492. case "freephotohostin.com":
  1493. case "imgpics.nl":
  1494. case "imagepics.xyz":
  1495. dp=true;
  1496. var f = document.getElementsByTagName("input");
  1497. if(f.length)
  1498. {
  1499. f[f.length-1].removeAttribute("disabled");
  1500. f[f.length-1].click();
  1501. }
  1502. case "fotoszok.pl":
  1503. case "damimage.com":
  1504. case "adultur.com":
  1505. case "croftimage.com":
  1506. case "imagedecode.com":
  1507. case "sexyimg.eu":
  1508. case "gogoimage.org":
  1509. case "imageblinks.com":
  1510. case "imglooks.com":
  1511. case "ocaload.com":
  1512. case "imgstudio.org":
  1513. case "goimge.com":
  1514. case "imageho.me":
  1515. case "imgor.net":
  1516. case "icezap.com":
  1517. case "imgtrial.com":
  1518. case "imgcredit.xyz":
  1519. case "dimtus.com":
  1520. case "imgcat.pw":
  1521. i = q('img[src*="' + iurl + '/upload/"]');
  1522. break;
  1523. case "thumbnailus.com":
  1524. i = q('input[type="submit"]');
  1525. dp=true;
  1526. if(i)
  1527. {
  1528. i.click();
  1529. break;
  1530. }
  1531. i = q('img[src*="' + iurl + '/upload/"].centred');
  1532. break;
  1533. case "imgzulu.com":
  1534. i = q('button[type="submit"]');
  1535. dp=true;
  1536. if(i)
  1537. {
  1538. i.click();
  1539. break;
  1540. }
  1541. i = q('img[src*="' + iurl + '/upload/"]');
  1542. break;
  1543. case "picspornfree.me":
  1544. case "hotimage.uk":
  1545. i = q('input[type="submit"]');
  1546. dp=true;
  1547. if(i)
  1548. {
  1549. i.click();
  1550. break;
  1551. }
  1552. case "image-server.ru":
  1553. case "avenuexxx.com":
  1554. case "uploadimagex.com":
  1555. case "hostingkartinok.com":
  1556. case "bellazon":
  1557. i = q('img[src*="/upload"]');
  1558. break;
  1559. case "imgseeds.com":
  1560. i = q('input');
  1561. if(i)
  1562. {
  1563. i.click();
  1564. break;
  1565. }
  1566. case "imgtaxi.com":
  1567. j = true;
  1568. i = q("a.overlay_ad_link");
  1569. if(i)
  1570. {
  1571. i.click();
  1572. break;
  1573. }
  1574. case "imghit.com":
  1575. i = q('img[alt="image"]');
  1576. break;
  1577. case "3xplanet.com":
  1578. i = q('img[alt="picContent"]');
  1579. break;
  1580. case "subirimagenes.com":
  1581. i = q('input[type="submit"]');
  1582. dp=true;
  1583. if(i)
  1584. {
  1585. i.click();
  1586. break;
  1587. }
  1588. i = q('img[onclick*="scale"]');
  1589. break;
  1590. case "image-share.com":
  1591. case "xpic.biz":
  1592. i = q('img[src*="upload/"]');
  1593. break;
  1594. case "bilder-upload.eu":
  1595. i = q('input[src*="upload/"]');
  1596. break;
  1597. case "picload.org":
  1598. case "imagecross.com":
  1599. case "npicture.net":
  1600. case "public-pic.de":
  1601. case "picbug.ru":
  1602. i = q('img[src*="' + iurl + '/image"]');
  1603. break;
  1604. case "yande.re":
  1605. case "konachan.com":
  1606. case "konachan.net":
  1607. i = q('a[href*="' + iurl + '/image"]');
  1608. if(i){i.src = i.href;}
  1609. break;
  1610. case "imagesup.net":
  1611. i = q('a[href*="/di-"]');
  1612. if(i)
  1613. {
  1614. i.src = i.href;
  1615. }
  1616. break;
  1617. case "cyberpics.net":
  1618. case "fastimages.ru":
  1619. case "hot-file.org":
  1620. case "image.siroro.co.uk":
  1621. case "qattach.com":
  1622. case "fotohelp.kz":
  1623. case "pic-you.com":
  1624. i = q('a[href*="/di/"]');
  1625. if(i)
  1626. {
  1627. i.src = i.href;
  1628. }
  1629. break;
  1630. case "imagehost.thasnasty.com":
  1631. case "thepornfeeds.com":
  1632. case "oxily.com":
  1633. case "ghanaimages.co":
  1634. case "knecht.novarata.net":
  1635. case "img.irandeliver.com":
  1636. case "xferz.com":
  1637. case "up.kfesfahan.com":
  1638. case "image.alesher.com":
  1639. case "upload.khontai.com":
  1640. case "image.pantyhosemania.info":
  1641. i = q('a[href*="?di="]');
  1642. if(i)
  1643. {
  1644. i.src = i.href;
  1645. }
  1646. break;
  1647. case "zimage.fr":
  1648. i = q('img[src*="images.php"]');
  1649. if(i)
  1650. {
  1651. i.src = i.src.replace('.php?nom=', '/');
  1652. break;
  1653. }
  1654. case "dumppix.com":
  1655. i = q('a[href*="enter"]');
  1656. if(i)
  1657. {
  1658. window.location.href = i.href;
  1659. break;
  1660. }
  1661. case "mrjh.org":
  1662. case "stuffed.ru":
  1663. case "rapid-img.de":
  1664. case "ngarko.online.fr":
  1665. case "freeuploadimages.org":
  1666. case "picszone.net":
  1667. case "images.share-films.net":
  1668. case "bildjunkies.de":
  1669. case "foto.hcfor.pl":
  1670. case "pic.tooptarinha.com":
  1671. case "poopr.org":
  1672. case "xp-images.hi2.ro":
  1673. case "dayzeddesigns.com":
  1674. case "freeimghosting.co.uk":
  1675. case "upload.removed.us":
  1676. case "imghost.pl":
  1677. case "udostepniaj.pl":
  1678. case "ngarko.free.fr":
  1679. case "images.collectiontricks.it":
  1680. case "244pix.com":
  1681. case "imgboxxx.com":
  1682. case "imghere.net":
  1683. case "imgdope.com":
  1684. case "hostmat.eu":
  1685. case "imgdream.net":
  1686. case "imgcentral.com":
  1687. case "imgroute.com":
  1688. i = q('img[src*="images/"]');
  1689. break;
  1690. case "use.com":
  1691. i = q('img[src*="images/"][onload]');
  1692. if(i){i.src = i.src.replace('/s_2/', '/s_5/');}
  1693. break;
  1694. case "1y9y.com":
  1695. case "host4images.com":
  1696. case "aveimage.com":
  1697. i = q('img#photo');
  1698. break;
  1699. case "freeimgup.com":
  1700. case "picturevip.com":
  1701. case "image-load.net":
  1702. case "upload.djmaster.fr":
  1703. case "b4he.com":
  1704. case "firepic.org":
  1705. case "overdream.cz":
  1706. case "fastpics.net":
  1707. case "ii4.ru":
  1708. case "picuploader.de":
  1709. case "smages.com":
  1710. case "pictureshack.ru":
  1711. case "imgbox.de":
  1712. case "imagehosting.cz":
  1713. case "9foto.ru":
  1714. case "imagesloading.altervista.org":
  1715. case "phpbbmods.it":
  1716. case "lakhdaria.net":
  1717. case "partizansk.eu":
  1718. case "webjardiner.com":
  1719. case "imgup.com":
  1720. case "iezz.com":
  1721. case "fileaimage.com":
  1722. case "picturescream.com":
  1723. case "all-poster.ru":
  1724. case "imgmak.com":
  1725. case "extraimage.net":
  1726. case "imagexxx18.com":
  1727. i = q('img[src*="/images/"]');
  1728. break;
  1729. case "intergranada.com":
  1730. i = q('img[src*="/images/images/"]');
  1731. break;
  1732. case "pixelup.net":
  1733. i = q('center img[src*="/images/"]');
  1734. break;
  1735. case "saveimg.ru":
  1736. case "imglink.ru":
  1737. case "4put.ru":
  1738. case "sharepic.biz":
  1739. case "you-logo.ru":
  1740. case "powerlogo.ru":
  1741. i = q('img[src*="pictures/"]');
  1742. break;
  1743. case "xenopix.com":
  1744. i = q('img[src*="/pix/"]');
  1745. break;
  1746. case "chronos.to":
  1747. case "imgmaid.net":
  1748. case "pic-maniac.com":
  1749. case "coreimg.net":
  1750. j = true;
  1751. i = q('input[type="submit"]');
  1752. dp=true;
  1753. if(i)
  1754. {
  1755. i.click();
  1756. break;
  1757. }
  1758. case "imgspice.com":
  1759. case "imagetwist.com":
  1760. case "pixroute.com":
  1761. case "pzy.be":
  1762. case "funkyimg.com":
  1763. case "itmages.ru":
  1764. case "imagenpic.com":
  1765. case "turbopix.fr":
  1766. case "pictureturn.com":
  1767. case "pixic.ru":
  1768. case "nyanimg.com":
  1769. case "geekpics.in":
  1770. case "imageporter.com":
  1771. case "imagenimage.com":
  1772. case "imageshimage.com":
  1773. case "imagedax.net":
  1774. case "pornimagex.com":
  1775. case "sendpic.org":
  1776. i = q('img[src*="/i/"]');
  1777. break;
  1778. case "imguniversal.com":
  1779. case "imgclick.net": // no submits
  1780. i = q("form input[type='submit'][value*='continue to image' i]");
  1781. j = true;
  1782. dp = true;
  1783. if(i)
  1784. {
  1785. i.click();
  1786. }
  1787. i = q("img.pic[src*='/i/'], img.pic[src*='/img/']");
  1788. break;
  1789. case "scrin.org":
  1790. i = q('a[href*="/i/"]');
  1791. if(i)
  1792. {
  1793. i.src = i.href;
  1794. break;
  1795. }
  1796. i = q('img[src*="/i/"]');
  1797. break;
  1798. case "miragepics.com":
  1799. case "imagecurl.com":
  1800. case "imagecurl.org":
  1801. i = q('input[value*="' + iurl + '/images/"]');
  1802. if(i){i.src = i.value;}
  1803. break;
  1804. case "ipic.su":
  1805. i = q('input[value*="' + iurl + ' img/"]');
  1806. if(i){i.src = i.value;}
  1807. break;
  1808. case "mixbase.net":
  1809. i = q('img[src*="media/storage/"]');
  1810. break;
  1811. case "image2you.ru":
  1812. i = q('img[src*="images/"]');
  1813. if(i){i.src = i.src.replace('2_', '');}
  1814. break;
  1815. case "qrrro.com":
  1816. case "imgmade.com":
  1817. i = q('form');
  1818. dp=true;
  1819. if(i)
  1820. {
  1821. i.submit();
  1822. break;
  1823. }
  1824. case "imgdrive.net":
  1825. j = true;
  1826. i = q("a.overlay_ad_link");
  1827. if(i)
  1828. {
  1829. i.click();
  1830. break;
  1831. }
  1832. case "pixhost.org":
  1833. case "imgtiger.com":
  1834. case "imgserve.net":
  1835. case "imgdino.com":
  1836. case "overpic.net":
  1837. case "imagesocket.com":
  1838. case "hostpic.org":
  1839. case "zapodaj.net":
  1840. case "jpegshare.net":
  1841. case "screenshot.ru":
  1842. case "imagefile.org":
  1843. case "zapisz.net":
  1844. case "addyourpics.com":
  1845. case "imgbank.cz":
  1846. case "showmyimage.com":
  1847. case "mynameismiz.com":
  1848. case "upload.supreme-elite.fr":
  1849. case "myimg.me":
  1850. case "heberg-hush.org":
  1851. case "oltaciyukle.com":
  1852. case "pichost.name":
  1853. case "imagend.com":
  1854. case "imagerocket.com":
  1855. case "hyyathost.com":
  1856. case "images.reptilescanada.com":
  1857. case "wepic.ru":
  1858. case "upload-image.fr":
  1859. case "images.baconbits.org":
  1860. case "kuvajako.com":
  1861. case "upanh.ovo.vn":
  1862. case "imagesaur.com":
  1863. case "wrzucaj.net":
  1864. case "heberge-images.com":
  1865. case "image.kg":
  1866. case "picshome.ru":
  1867. case "savemyimage.com":
  1868. case "img.dramacafe.tv":
  1869. case "fapping.empornium.sx":
  1870. case "beeimg.com":
  1871. case "1pics.ru":
  1872. case "imgshow.me":
  1873. case "youpicture.org":
  1874. case "vavvi.com":
  1875. case "imgzap.com":
  1876. case "imgdrive.net":
  1877. case "crazyimg.com":
  1878. case "extraimago.com":
  1879. case "ftop.ru":
  1880. case "porncomix.info":
  1881. i = q('img[src*="' + iurl + '/images/"]');
  1882. break;
  1883. case "shareimages.com":
  1884. case "imagesmax.de":
  1885. case "bilder.nixhelp.de":
  1886. i = q('img[src*="' + iurl + '/images"]');
  1887. break;
  1888. case "imgfantasy.com":
  1889. case "imageporn.eu":
  1890. case "imgsmile.com":
  1891. case "imgsay.com":
  1892. case "0img.net":
  1893. //IMGReserve
  1894. j = true;
  1895. dp=true;
  1896. i = q('input[value="YES"]');
  1897. if(i){i.onclick();break;}
  1898. case "pic-upload.de":
  1899. case "shrani.najdi.si":
  1900. case "imageab.com":
  1901. i = q('img[onclick*="(this"]');
  1902. break;
  1903. case "joblo.com":
  1904. i = q('img');
  1905. if(i)
  1906. {
  1907. i.src = "http://www.joblo.com/moviehotties/images/profile-gallery/orig" + window.location.href.substr(window.location.href.lastIndexOf("/"));
  1908. }
  1909. break;
  1910. default: // dynamic subdomain
  1911. switch(iurl.substr(iurl.indexOf(".")+1))
  1912. {
  1913. case "tumblr.com":
  1914. if(FireFox)
  1915. {
  1916. i = q('img[data-src]');
  1917. if(i)
  1918. {
  1919. i.src = i.dataset.src;
  1920. }
  1921. }
  1922. else
  1923. {
  1924. i = q('img:not([src*="data:"])[id]');
  1925. }
  1926. break;
  1927. case "deviantart.com":
  1928. if(q('div.deviation-mlt-preview'))
  1929. {
  1930. i = q('a[href*="/download/"]');
  1931. if(i && i.href.indexOf(".zip?") == -1 && i.href.indexOf(".7z?") == -1 && i.href.indexOf(".rar?") == -1 && i.href.indexOf(".psd?") == -1 && i.href.indexOf("deviantart.com/users/outgoing?")== -1){i.src = i.href;}
  1932. else{i = q('img.dev-content-full');}
  1933. }
  1934. break;
  1935. case "imagevenue.com":
  1936. i = q('img[src*="/loc"]');
  1937. break;
  1938. case "wikipedia.org":
  1939. case "wikimedia.org":
  1940. i = q('a[href*="/upload"]');
  1941. if(i){i.src = i.href;}
  1942. break;
  1943. case "photobucket.com":
  1944. find_text_in_scripts('originalUrl":"', '"');
  1945. break;
  1946. case "freeamateurteens.net":
  1947. i = q('img[src*="images/"]');
  1948. break;
  1949. case "otofotki.pl":
  1950. i = q('img[src*="/obrazki/"]');
  1951. break;
  1952. case "tinypic.com":
  1953. i = q('img#imgElement');
  1954. break;
  1955. case "imagilive.com":
  1956. i = q('a.button');
  1957. if(i)
  1958. {
  1959. dp=true;
  1960. i.click();
  1961. break;
  1962. }
  1963. i = q('img[src*="' + iurl + '"]');
  1964. break;
  1965. default: // for user-added sites
  1966. console.warn("HJI is running on a custom website");
  1967. if(document.readyState != "loading" && document.images.length != 0)
  1968. {
  1969. var b = 0;
  1970. for(var n = 0; n < document.images.length; n++)
  1971. {
  1972. if(document.images[n].width == 0 && !document.images[n].complete) // not started loading
  1973. {
  1974. b = -1;
  1975. break;
  1976. }
  1977. else if(document.images[n].width * document.images[n].height > document.images[b].width * document.images[b].height)
  1978. {
  1979. b = n;
  1980. }
  1981. }
  1982. i = document.images[b];
  1983. if(i){console.warn("HJI is running on a custom website, showing biggest image");}
  1984. }
  1985. break;
  1986. }
  1987. break;
  1988. }
  1989. //
  1990. //firefox handmade noscript
  1991. if(!j)
  1992. {
  1993. j = true;
  1994. window.addEventListener('beforescriptexecute', onscript, true);
  1995. }
  1996. //
  1997. if(i && i.src)
  1998. {
  1999. observer.disconnect();
  2000. function clr_pgn()
  2001. {
  2002. unsafeWindow.open = null;
  2003. unsafeWindow.onbeforeunload = null;
  2004. if(!FireFox)
  2005. {
  2006. delete document.write;
  2007. document.write('<html><head></head><body></body></html>');
  2008. document.close();
  2009. }
  2010. else
  2011. {
  2012. document.replaceChild(document.importNode(document.implementation.createHTMLDocument("").documentElement, true), document.documentElement);
  2013. }
  2014. }
  2015. var ext_list = ['webm', 'mp4', 'ogg'];
  2016. if (ext_list.indexOf(i.src.split('.').pop().toLowerCase()) >= 0)
  2017. {
  2018. console.warn("What we found is not an image");
  2019. return false;
  2020. }
  2021. clr_pgn();
  2022. ws();
  2023. document.head.innerHTML = "";
  2024. sanitize();
  2025. window.removeEventListener('beforescriptexecute', onscript, true);
  2026. makeimage();
  2027. }
  2028. else // try again
  2029. {
  2030. //console.warn("Didnt find image, trying again in " + timeout + " ms");
  2031. if(tb){clearTimeout(tb);}
  2032. tb = setTimeout(function() { console.warn("Didnt find image, waited " + timeout + " ms to try again. page: " + window.location.href); tb=0; timeout*=2; i=0; makeworld(); }, timeout);
  2033. }
  2034. }
  2035.  
  2036. function changecursor()
  2037. {
  2038. i.style.margin = "auto";
  2039. if(!rescaled && (((i.naturalHeight / window.devicePixelRatio).toFixed() == window.innerHeight && (i.naturalWidth / window.devicePixelRatio).toFixed() <= window.innerWidth) || ((i.naturalHeight / window.devicePixelRatio).toFixed() <= window.innerHeight && (i.naturalWidth / window.devicePixelRatio).toFixed() == window.innerWidth))) // one img dimension is equal to screen and other is the same or less than the screen
  2040. {
  2041. i.style.cursor = "";
  2042. }
  2043. else if((i.naturalHeight / window.devicePixelRatio).toFixed() > window.innerHeight || (i.naturalWidth / window.devicePixelRatio).toFixed() > window.innerWidth) // at least one img dimenion is bigger than the screen
  2044. {
  2045. if(rescaled)
  2046. {
  2047. i.style.cursor = "-moz-zoom-in";
  2048. i.style.cursor = "-webkit-zoom-in";
  2049. }
  2050. else
  2051. {
  2052. i.style.cursor = "-moz-zoom-out";
  2053. i.style.cursor = "-webkit-zoom-out";
  2054. if((i.naturalHeight / window.devicePixelRatio).toFixed() > window.innerHeight) // image pushing out-of-screen fix
  2055. {
  2056. i.style.margin = "0px auto";
  2057. }
  2058. }
  2059. }
  2060. else
  2061. {
  2062. if(rescaled)
  2063. {
  2064. i.style.cursor = "-moz-zoom-out";
  2065. i.style.cursor = "-webkit-zoom-out";
  2066. }
  2067. else
  2068. {
  2069. i.style.cursor = "-moz-zoom-in";
  2070. i.style.cursor = "-webkit-zoom-in";
  2071. }
  2072. }
  2073. }
  2074.  
  2075. function rescale(event)
  2076. {
  2077. if(rescaled)
  2078. {
  2079. rescaled = false;
  2080. var scale,ex,ey;
  2081. if(event)
  2082. {
  2083. if (typeof event.y === "undefined") // Firefox
  2084. {
  2085. ex = event.clientX;
  2086. ey = event.clientY;
  2087. }
  2088. else
  2089. {
  2090. ex = event.x;
  2091. ey = event.y;
  2092. }
  2093. ex -= i.offsetLeft;
  2094. ey -= i.offsetTop;
  2095. scale = Math.min((window.innerWidth / (i.naturalWidth / window.devicePixelRatio).toFixed()), (window.innerHeight / (i.naturalHeight / window.devicePixelRatio).toFixed()));
  2096. }
  2097. i.style.width = (i.naturalWidth / window.devicePixelRatio).toFixed() + "px";
  2098. i.style.height = (i.naturalHeight / window.devicePixelRatio).toFixed() + "px";
  2099. changecursor();
  2100. if(event)
  2101. {
  2102. window.scrollTo(ex / scale - window.innerWidth / 2, ey / scale - window.innerHeight / 2);
  2103. }
  2104. }
  2105. else
  2106. {
  2107. i.style.width = (i.naturalWidth / window.devicePixelRatio).toFixed() + "px";
  2108. i.style.height = (i.naturalHeight / window.devicePixelRatio).toFixed() + "px";
  2109. if((i.naturalWidth / window.devicePixelRatio).toFixed() != window.innerWidth)
  2110. {
  2111. i.style.width = window.innerWidth + "px";
  2112. i.style.height = "";
  2113. rescaled = true;
  2114. }
  2115. if((i.height > window.innerHeight) || (i.width > window.innerWidth))
  2116. {
  2117. i.style.width = (i.naturalWidth / window.devicePixelRatio).toFixed() + "px";
  2118. i.style.height = (i.naturalHeight / window.devicePixelRatio).toFixed() + "px";
  2119. if((i.naturalHeight / window.devicePixelRatio).toFixed() != window.innerHeight)
  2120. {
  2121. i.style.height = window.innerHeight + "px";
  2122. i.style.width = "";
  2123. rescaled = true;
  2124. }
  2125. }
  2126. changecursor();
  2127. }
  2128. }
  2129.  
  2130. var ARC = 0;
  2131. function autoresize()
  2132. {
  2133. if(i.naturalWidth)
  2134. {
  2135. var title = i.src.substr(i.src.lastIndexOf("/")+1);
  2136. if(title.indexOf("?") != -1)
  2137. {
  2138. title = title.substr(0, title.indexOf("?"));
  2139. }
  2140. document.title = title + " (" + i.naturalWidth + "x" + i.naturalHeight + ")"; // title
  2141. var link = protected_createElement('link');
  2142. link.type = 'image/x-icon';
  2143. link.rel = 'shortcut icon';
  2144. link.href = i.src;
  2145. document.getElementsByTagName('head')[0].appendChild(link);
  2146. rescaled = true;rescale(0); // to original size in pixels
  2147. if(cfg_fitWH && i.height > window.innerHeight && i.width > window.innerWidth) // both scrollbars
  2148. {
  2149. rescale(0);
  2150. }
  2151. else if(cfg_fitB && (i.height > window.innerHeight || i.width > window.innerWidth)) // one scrollbar
  2152. {
  2153. rescale(0);
  2154. }
  2155. else if(cfg_fitS && i.height <= window.innerHeight && i.width <= window.innerWidth) // no scrollbars
  2156. {
  2157. rescale(0);
  2158. }
  2159. if(cfg_js){eval(cfg_js);}
  2160. }
  2161. else
  2162. {
  2163. ARC++;
  2164. if(ARC == 25 || ARC == 250 || ARC == 750)
  2165. {
  2166. i.src = i.src; // lol fix
  2167. }
  2168. setTimeout(function() { autoresize(); }, 10);
  2169. }
  2170. }
  2171.  
  2172. var observer = new MutationObserver(function(mutations)
  2173. {
  2174. makeworld();
  2175. });
  2176. observer.observe(document, {subtree: true, childList: true});
  2177.  
  2178. // hotkeys
  2179. if (typeof KeyEvent === "undefined")
  2180. {
  2181. var KeyEvent = {
  2182. DOM_VK_SPACE: 32,
  2183. DOM_VK_LEFT: 37,
  2184. DOM_VK_UP: 38,
  2185. DOM_VK_RIGHT: 39,
  2186. DOM_VK_DOWN: 40,
  2187. DOM_VK_A: 65,
  2188. DOM_VK_D: 68,
  2189. DOM_VK_P: 80,
  2190. DOM_VK_Q: 81,
  2191. DOM_VK_R: 82,
  2192. DOM_VK_S: 83,
  2193. DOM_VK_W: 87,
  2194. DOM_VK_NUMPAD2: 98,
  2195. DOM_VK_NUMPAD4: 100,
  2196. DOM_VK_NUMPAD5: 101,
  2197. DOM_VK_NUMPAD6: 102,
  2198. DOM_VK_NUMPAD8: 104,
  2199. DOM_VK_F5: 116
  2200. };
  2201. }
  2202.  
  2203. function cancelEvent(a)
  2204. {
  2205. a = a ? a : window.event;
  2206. if (a.stopPropagation)
  2207. {
  2208. a.stopPropagation();
  2209. }
  2210. if (a.preventDefault)
  2211. {
  2212. a.preventDefault();
  2213. }
  2214. a.cancelBubble = true;
  2215. a.cancel = true;
  2216. a.returnValue = false;
  2217. return false;
  2218. }
  2219.  
  2220. function scroll_space(a, b)
  2221. {
  2222. var by = Math.round((b ? window.innerHeight : window.innerWidth) * 0.50 * (a ? -1 : 1));
  2223. if(!b)
  2224. {
  2225. window.scrollBy(0, by);
  2226. }
  2227. else
  2228. {
  2229. window.scrollBy(by, 0);
  2230. }
  2231. }
  2232.  
  2233. function onkeydown (b)
  2234. {
  2235. var a = (window.event) ? b.keyCode : b.which;
  2236.  
  2237. if (b.altKey || b.metaKey || (b.ctrlKey && a != KeyEvent.DOM_VK_SPACE && a != KeyEvent.DOM_VK_F5 && a != KeyEvent.DOM_VK_R))
  2238. {
  2239. return;
  2240. }
  2241.  
  2242. var by = Math.round(window.innerHeight * 0.10);
  2243.  
  2244. switch (a)
  2245. {
  2246. case KeyEvent.DOM_VK_RIGHT:
  2247. case KeyEvent.DOM_VK_D:
  2248. case KeyEvent.DOM_VK_NUMPAD6:
  2249. window.scrollBy(by, 0);
  2250. cancelEvent(b);
  2251. break;
  2252. case KeyEvent.DOM_VK_LEFT:
  2253. case KeyEvent.DOM_VK_A:
  2254. case KeyEvent.DOM_VK_NUMPAD4:
  2255. window.scrollBy(by * -1, 0);
  2256. cancelEvent(b);
  2257. break;
  2258. case KeyEvent.DOM_VK_W:
  2259. case KeyEvent.DOM_VK_NUMPAD8:
  2260. window.scrollBy(0, by * -1);
  2261. cancelEvent(b);
  2262. break;
  2263. case KeyEvent.DOM_VK_S:
  2264. case KeyEvent.DOM_VK_NUMPAD2:
  2265. window.scrollBy(0, by);
  2266. cancelEvent(b);
  2267. break;
  2268. case KeyEvent.DOM_VK_SPACE:
  2269. scroll_space(b.shiftKey, b.ctrlKey);
  2270. cancelEvent(b);
  2271. break;
  2272. case KeyEvent.DOM_VK_Q:
  2273. case KeyEvent.DOM_VK_NUMPAD5:
  2274. rescale(0);
  2275. cancelEvent(b);
  2276. break;
  2277. case KeyEvent.DOM_VK_P:
  2278. if(i && !FireFox) // Chrome nosave bug
  2279. {
  2280. window.location.href = "https://gist.github.com/Owyn/8553d7953d948228e312";
  2281. }
  2282. else
  2283. {
  2284. cfg();
  2285. }
  2286. cancelEvent(b);
  2287. break;
  2288. case KeyEvent.DOM_VK_R:
  2289. if(!b.ctrlKey)
  2290. {
  2291. document.cookie= "hji=" + window.location.href;
  2292. window.location.reload();
  2293. cancelEvent(b);
  2294. }
  2295. else
  2296. {
  2297. window.removeEventListener("beforeunload", onbeforeunload, true);
  2298. }
  2299. break;
  2300. case KeyEvent.DOM_VK_F5:
  2301. window.removeEventListener("beforeunload", onbeforeunload, true);
  2302. break;
  2303. }
  2304. }
  2305.  
  2306. function cfg()
  2307. {
  2308. if (typeof GM_setValue !== "undefined")
  2309. {
  2310. function saveCfg()
  2311. {
  2312. GM_setValue("directImage", q("#hji_cfg_1_direct").checked);
  2313. GM_setValue("bgColor", q("#hji_cfg_2_bgclr").value);
  2314. GM_setValue("fitWH", q("#hji_cfg_3_fitWH").checked);
  2315. GM_setValue("fitB", q("#hji_cfg_4_fitB").checked);
  2316. GM_setValue("fitS", q("#hji_cfg_5_fitS").checked);
  2317. GM_setValue("js", q("#hji_cfg_6_js").value);
  2318. alert("Configuration Saved");
  2319. if(q("#hji_cfg_2_bgclr").value){document.body.bgColor = q("#hji_cfg_2_bgclr").value;}else{document.body.removeAttribute("bgColor");}
  2320. }
  2321. if(i && i.src){i.removeEventListener("click", rescale, true);}
  2322. window.removeEventListener("keydown", onkeydown, true);
  2323. document.head.innerHTML = "";
  2324. document.body.innerHTML = "";
  2325. ws();
  2326. var div = protected_createElement("div");
  2327. div.style.margin = "11% auto";
  2328. div.style.width = "444px";
  2329. div.style.border = "solid 1px black";
  2330. div.style.background = "silver";
  2331. div.innerHTML = "<b><center>Configuration</center></b><br><input id='hji_cfg_1_direct' type='checkbox'> Open images directly with browser"
  2332. + "<br><br><input id='hji_cfg_2_bgclr' type='text' size='6'> Background color (empty = default)"
  2333. + "<br><br>Fit to window images:"
  2334. + "<br><br><input id='hji_cfg_3_fitWH' type='checkbox'> Larger than window both vertically and horizontally"
  2335. + "<br><br><input id='hji_cfg_4_fitB' type='checkbox'> Larger than window either vertically or horizontally"
  2336. + "<br><br><input id='hji_cfg_5_fitS' type='checkbox'> Smaller than window"
  2337. + "<br><br><center>Custom JS Action:<textarea id='hji_cfg_6_js' style='margin: 0px; width: 400px; height: 50px;'></textarea>"
  2338. + "<br><input id='hji_cfg_save' type='button' value='Save configuration'></center>";
  2339. document.body.appendChild(div);
  2340. q("#hji_cfg_1_direct").checked = GM_getValue("directImage");
  2341. q("#hji_cfg_2_bgclr").value = GM_getValue("bgColor", "");
  2342. q("#hji_cfg_3_fitWH").checked = GM_getValue("fitWH", true);
  2343. q("#hji_cfg_4_fitB").checked = GM_getValue("fitB");
  2344. q("#hji_cfg_5_fitS").checked = GM_getValue("fitS");
  2345. q("#hji_cfg_6_js").value = GM_getValue("js", "");
  2346. q("#hji_cfg_save").addEventListener("click", saveCfg, true);
  2347. }
  2348. else
  2349. {
  2350. alert("Sorry, Chrome userscripts in native mode can't have configurations! Install TamperMonkey extension. (it's very good)");
  2351. }
  2352. }
  2353.  
  2354. function loadCfg()
  2355. {
  2356. if (typeof GM_getValue !== "undefined")
  2357. {
  2358. cfg_direct = GM_getValue("directImage");
  2359. cfg_bgclr = GM_getValue("bgColor");
  2360. cfg_fitWH = GM_getValue("fitWH", true);
  2361. cfg_fitB = GM_getValue("fitB");
  2362. cfg_fitS = GM_getValue("fitS");
  2363. cfg_js = GM_getValue("js");
  2364. }
  2365. }