W.A.R. Links Checker Customized

Automatically checks links from hundreds of file hosts.

  1. // ==UserScript==
  2. // @name W.A.R. Links Checker Customized
  3. // @description Automatically checks links from hundreds of file hosts.
  4. // @details this script automatically checks links from filehosts. For Firefox, Chrome, Opera, Safari.
  5. // @version 1.2.4.7.7.0
  6. // @license GPL version 3 or any later version (http://www.gnu.org/copyleft/gpl.html)
  7. // @icon http://sharenxs.com/photos/2014/02/14/52fd759db90ac/cooltext1428903746.png
  8. // @author mental
  9. // @include http://*
  10. // @include https://*
  11. // @include file:///*
  12. // @grant GM_xmlhttpRequest
  13. // @grant GM_addStyle
  14. // @grant GM_registerMenuCommand
  15. // @grant GM_getResourceText
  16. // @require https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
  17. // @homepage http://usa.x10host.com/mybb/
  18. // @namespace http://usa.x10host.com/mybb/
  19. // @noframes
  20. // ==/UserScript==
  21.  
  22. var War_version = "1.2.4.7.7.0. July 16, 2016";
  23.  
  24. //separate alternative domains with "|" char (first name is considered being main)
  25. var allHostNames = ["1fichier.com|dl4free.com", "2shared.com", "adrive.com", "bezvadata.cz", "filebeam.com","4upld.com","newfileland.com",
  26. "burnupload.com|burnupload.ihiphop.com", "cramit.in|cramitin.net","dataport.cz", "datei.to", "daten-hoster.de|filehosting.org",
  27. "vidxden.com|vidbux.com", "easy-share.com|crocko.com", "easybytez.com", "edisk.cz", "euroshare.eu", "fastshare.cz", "fiberupload.net",
  28. "filefactory.com", "eyesfile.net|eyesfile.com|eyesfile.co|eyesfile.org|eyesfiles.com", "fileflyer.com", "filerio.com|filekeen.com", "filemonster.net",
  29. "nosupload.com", "upsto.re", "files.mail.ru", "filepost.com|fp.io", "filesflash.com", "upafile.com", "turbobit.net","filepom.com",
  30. "secureupload.eu", "filesmonster.com", "filestore.to", "freakshare.net", "filedwon.com", "ukfilehost.com", "free-uploading.com",
  31. "gigapeta.com", "gigasize.com", "gigaup.fr", "videopremium.net", "hostuje.net", "vidup.me", "dizzcloud.com","gboxes.com","clicknupload.com",
  32. "filehost.ro", "gorillavid.in", "hulkshare.com|hu.lk", "ifolder.ru", "jumbofiles.com", "allmyvideos.net", "sharerepo.com","faststore.org",
  33. "leteckaposta.cz|sharegadget.com", "load.to", "mediafire.com", "megafileupload.com", "megashares.com", "filemaze.ws", "movshare.net",
  34. "myupload.dk", "narod.ru|narod.yandex.ru", "netload.in", "speedvid.tv", "partage-facile.com", "putlocker.com|firedrive.com", "fileim.com",
  35. "ultramegabit.com", "sfshare.se", "filewe.com", "queenshare.com|10upload.com", "quickshare.cz", "putcker.com","cloudzilla.to",
  36. "daj.to", "depositfiles.com|dfiles.eu", "rapidgator.net|rg.to", "rarefile.net", "rayfile.com", "rghost.net", "sendmyway.com",
  37. "4savefile.com", "filebulk.com", "videozed.net", "sendspace.com", "share-online.biz|egoshare.com", "sharingmaster.com", "fileplaneta.com",
  38. "midupload.com", "solidfiles.com", "speedfile.cz", "filenuke.com", "fileparadox.in","fileparadox.com", "creafile.net", "rapidstation.com",
  39. "speedshare.org", "tufiles.ru", "zippyshare.com", "ryushare.com", "rodfile.com", "wikiupload.com", "uloz.to|ulozto.cz|bagruj.cz|zachowajto.pl",
  40. "ulozisko.sk", "uloziste.com", "basicupload.com", "fileneo.com", "uploaded.to|ul.to", "uploading.com","wizupload.com",
  41. "swankshare.com", "uploadspace.pl", "upnito.sk", "uptobox.com", "usaupload.net", "veehd.com", "videobb.com", "filecloud.cc", "flexydrive.com",
  42. "uploads.bizhat.com", "webshare.cz", "xdisk.cz", "yunfile.com|filemarkets.com|yfdisk.com", "nitrobits.com", "mega-myfile.com",
  43. "divshare.com", "flyfiles.net", "nowdownload.eu", "prefiles.com", "axifile.com", "zalil.ru", "ortofiles.com", "uploadc.com",
  44. "amonshare.com", "data.hu", "blitzfiles.com", "filesbowl.com", "freestorage.ro", "spaceforfiles.com|filespace.com", "zalaa.com",
  45. "netkups.com", "file-speed.com", "hulkload.com", "speedshare.eu", "tusfiles.net", "uppit.com", "ddlstorage.com",
  46. "downloadani.me", "filesabc.com", "share.az", "sockshare.com", "nekaka.com", "file4safe.com", "sharebeast.com", "180upload.com", "verzend.be",
  47. "zomgupload.com", "ravishare.com", "movreel.com", "4up.me|4upfiles.com", "extmatrix.com", "sendfiles.nl", "yourfilestore.com",
  48. "filebig.net", "sharesix.com", "fileswap.com", "potload.com", "thefilebox.com","vip-file.com","freakshare.com",
  49. "exclusivefaile.com|exclusiveloader.com", "filesbb.com", "myvdrive.com", "filesin.com", "novafile.com","fileupload.pw",
  50. "longfiles.com", "albafile.com", "host4files.com", "uploadhero.com|uploadhero.co", "uploadbaz.com", "expressleech.com",
  51. "file-space.org", "stahovadlo.cz", "datafilehost.com", "bitupload.com", "bayfiles.net", "vshare.eu", "files.indowebster.com", "file4u.pl", "kie.nu",
  52. "superload.cz", "mafiastorage.com", "fileband.com", "filesmall.com", "flashx.tv", "filesmelt.com", "hellupload.com",
  53. "uploadingit.com", "stiahni.si", "sendspace.pl", "fastshare.org", "divxstage.eu", "sinhro.net", "filestore.com.ua",
  54. "filesbomb.com", "project-free-upload.com", "imzupload.com", "hostingbulk.com", "speedy-share.com", "100shared.com", "igetfile.com",
  55. "xvidstage.com", "vidbull.com", "rapidfileshare.net", "filebox.ro|fbx.ro", "mixturecloud.com|mixturefile.com", "filefront.com|gamefront.com",
  56. "yourupload.com", "file-upload.net", "restfiles.net|restfile.com", "fliiby.com", "dodane.pl", "usersfiles.com", "upgolden.com|shallfile.com",
  57. "jumbofiles.org|jumbofilebox.com", "rapidapk.com", "upshared.com", "upload.ee", "putme.org", "hugefiles.net", "mega.nz|mega.co.nz", "thefile.me",
  58. "unlimitshare.com", "share4web.com", "epicshare.net", "novamov.com", "filedropper.com|filesavr.com", "yourfiles.to", "skydrive.live.com",
  59. "uploadboy.com", "city-upload.com", "mijnbestand.nl", "ultrashare.net", "dosya.tc", "exfile.ru", "fileshare.ro", "fshare.vn", "wikifortio.com",
  60. "wyslijto.pl", "kiwi6.com", "localhostr.com|lh.rs|hostr.co", "remixshare.com", "hidemyass.com", "tinyupload.com", "gigabase.com", "trainbit.com",
  61. "videobam.com", "hyperfileshare.com", "uploads.ws", "ge.tt", "donevideo.com", "mightyupload.com", "megafiles.se", "1st-files.com",
  62. "cloud-up.be", "fiberstorage.net", "uploadhunt.com", "junocloud.me", "karelia.pro", "boomupload.net", "bestreams.net", "1-clickshare.com", "flashdrive.it",
  63. "fastupload.ro", "fujifile.me", "howfile.com", "failai.lt", "vidspot.net", "file4go.com", "hostinoo.com", "movdivx.com", "pandamemo.com", "youwatch.org",
  64. "spicyfile.com", "m5zn.com", "upload-il.com", "sube.me", "files2upload.net", "vidto.me", "hyshare.com", "filezy.net", "arabloads.com",
  65. "filesline.com", "megacache.net", "sanshare.com", "sendfile.su", "akafile.com", "todayfile.com", "lafiles.com", "medofire.com", "mystore.to",
  66. "anonfiles.com", "upitus.net", "medafire.net", "medoupload.com", "fastflv.com", "herosh.com", "girlshare.ro", "bin.ge", "nowvideo.eu", "video.tt",
  67. "shareplace.com", "terafiles.net", "uploadmb.com", "exfilehost.com", "cometfiles.com", "filetug.com", "datafile.com", "shareswift.com", "ex-load.com",
  68. "depfile.com", "uncapped-downloads.com", "isavelink.com", "filesear.com", "clicktoview.org", "promptfile.com", "zixshare.com", "maxisharing.com",
  69. "katzfiles.com", "filebar.kz", "yourfilelink.com", "1file.cc", "backin.net", "uploadscenter.com", "vidhog.com", "qshare.com", "guizmodl.net",
  70. "1000shared.com", "gigfiles.net", "freakbit.net", "upload-novalayer.com", "filewist.com", "airupload.com", "dropbox.com", "uplds.com", "wikisend.com",
  71. "wrzuc.to", "safecloud.so", "webfilehost.com", "myuplbox.com", "roshare.info", "demo.ovh.eu", "treefile.org|treefiles.com|treesfile.com",
  72. "filepup.net", "divxpress.com", "dwn.so|dwnshare.pl", "sharephile.com", "upgiga.com", "koofile.com", "earnupload.eu",
  73. "netkozmos.com", "maherfire.com", "droidbin.com", "d-h.st", "loadpot.net", "kingfiles.net", "shareblue.eu", "redload.net", "upfile.vn", "tuxfile.com",
  74. "grifthost.com", "limevideo.net", "batshare.com", "lunaticfiles.com", "wozupload.com", "kingsupload.com", "media1fire.com",
  75. "usefile.com", "vidplay.net", "mydisc.net", "med1fire.com", "stahuj.to", "upbooth.com", "anysend.com", "vodlocker.com", "uploadrocket.net",
  76. "vidx.to", "filecloud.io", "foxishare.com", "redbunker.net", "uploadnetwork.eu", "cloudstor.es", "uploadable.ch", "streamratio.com", "worldbytez.com",
  77. "cloudvidz.net", "maskfile.com", "hexupload.com", "moevideo.net", "dogupload.com", "sendfile.pl", "shareprofi.com",
  78. "salefiles.com", "anafile.com", "bonanzashare.com", "shared.com", "filetrip.net", "fileshareup.com", "imgjungle.com", "unlimitzone.com", "rapidu.net",
  79. "filepi.com", "swatupload.com", "2downloadz.com", "qfpost.com", "rapidfiles.com", "rosharing.com", "storagely.com", "turtleshare.com",
  80. "uploadzeal.com", "wipfiles.net", "superupload.com", "tropicshare.com", "archive.org", "played.to", "streaming.to", "uploadcapital.com", "twojepliki.eu",
  81. "filemoney.com", "filehoot.com", "mxua.com", "uploadsat.com", "cloudyvideos.com", "filekom.com|filemac.com", "interfile.net",
  82. "idup.in", "filedais.com", "fileforever.net", "rioupload.com", "migupload.com", "medofire.co", "filemonkey.in", "bluehaste.com", "up09.com", "nodaup.com",
  83. "filecore.co.nz", "4downfiles.com", "1clickfiles.com", "weshare.me", "filemup.com", "hottera.com", "lomafile.com", "hightail.com|yousendit.com",
  84. "4bigbox.com", "10shared.com", "megaupdown.com", "poslisoubor.cz", "radicalshare.com", "share-byte.net", "sharemods.com", "skyfilebox.com", "crisshare.com",
  85. "vipshare.me","datoid.cz","streamfile.com","cloudstor.es","google.com","files.fm","aisfile.com","pan.baidu.com","yunpan.cn","dotsemper.com",
  86. "gulfup.com","box.net","box.com","sharerapid.cz","rusfolder.net","rusfolder.com","freefilehosting.net","fileshareup.com",
  87. "k2s.cc|keep2share.cc|keep2s.cc|keep2share.com","goldbytez.com","speedy.sh","fboom.me|fileboom.me","megarapid.cz","yadi.sk","4shared.com","inafile.com",'uploadc.com',"shareflare.net",
  88. "megairon.net","imdb.com","hitfile.net","uploadto.us","nitroflare.com","up.top4top.net","free.fr","led.wf","lan.wf","adlink.wf","catshare.net","rockfile.eu",
  89. "click.tf","kyc.pm","ssh.tf","ssh.yt","yep.pm","brupload.net",];
  90.  
  91. try {
  92. //iframes excluded
  93. if (window.top != window.self) {
  94. return;
  95. }
  96. //allHostNames sites excluded
  97. if (window.location.href.match("https?:\/\/(www\.)?[\w\.-]*(?:" + allHostNames.join("|").replace(/\./g, "\\.").replace(/-/g, "\\-") + ")")) {
  98. return;
  99. }
  100. } catch (e) {
  101. return;
  102. }
  103.  
  104. //separate alternative domains with "|" char (first name is considered being main)
  105. var allContainerNames = ["safelinking.net"];
  106.  
  107. //separate alternative domains with "|" char (first name is considered being main)
  108. var allObsoleteNames = ["uloz.cz","storage.to","iskladka.cz","file-rack.com","fast-load.net","subory.sk","bigandfree.com","uplly.com",
  109. "fileop.com","mujsoubor.cz","sendfile.to","superfastfile.com","quickyshare.com","duckload.com","uploadstore.net","meinupload.com",
  110. "dualshare.com","2xupload.to|2xupload.de","oxedion.com","uploadline.com","dll.bz","movieshare.in","milledrive.com","quickupload.net",
  111. "safelink.in","metadivx.com","divxlink.com","uploadrack.com","teradepot.com","dataup.to","upit.to","driveway.com","eatlime.com",
  112. "a2zuploads.com","friendlyfiles.net","flyfile.us","speedyshare.com","uploadspace.eu","keepfile.com","piggyshare.com","luckyshare.net",
  113. "filecrown.com","6giga.com","uploadjockey.com","bluehost.to","filegu.ru","filebase.to","up-file.com","xvideos.com","esnips.com",
  114. "filebling.com","loaded.it","uploadcell.com","uploadshare.cz","mangoshare.com","filestab.com","crazyupload.com","gaiafile.com",
  115. "sharejunky.com","fileho.com","bigandfree.com","bigfile.in","bigshare.eu","dahosting.org","digisofts.net","file4save.com",
  116. "filechip.com","filescloud.com","saveqube.com","turboshare.de","z-upload.com","youshare.com","jiffyupload.com","gigeshare.com",
  117. "datenklo.net","upload.dj","loadfiles.in","upit.to","dsfileshare.com","sharesimple.net","4files.net","wooupload.com", "filesaur.com",
  118. "odsiebie.com","filenavi.com","3oof.com","meshwaar.com","maxupload.com","share.cx","atserver.eu","uploking.com","terafile.co", "terafile.com",
  119. "file2upload.net","filebling.com","turboshare.com","rarhost.com","isharehd.com","i741.com","dataup.de","fofly.com","shareonall.com",
  120. "sexuploader.com","megaupload.com|megavideo.com|megaporn.com|megarotic.com","uploadhyper.com","filespawn.com","caizzii.com",
  121. "volnyweb.cz","usershare.net","filescash.net","metahyper.com","combozip.com","x7.to","uploadbox.com","enterupload.com|flyupload.com",
  122. "filepoint.de","mystream.to","x-fs.com","shareator.com","srapid.eu","sosame.cz","filesdump.com","2-klicks.de","ufox.com",
  123. "silofiles.com","upfile.in","filehook.com","uploadking.com","uploadhere.com","kewlshare.com","rapidable.com","hotfiles.ws","rapidshare.ru",
  124. "filesonic.com|sharingmatrix.com","fileserve.com","wupload.com", "skipfile.com", "smartuploader.com", "dualshare.com", "storeandserve.com",
  125. "mountfile.com", "transitfiles.com", "uploadstation.com", "filejungle.com", "shareshared.com", "quickyshare.com", "save.am", "petandrive.com",
  126. "file2box.com", "flyshare.cz", "yabadaba.ru", "cloudcache.cc", "yourfilehost.com", "jakfile.com", "kickload.com", "pyramidfiles.com",
  127. "refile.net", "zshare.net", "ddlani.me|ddlanime.com", "ftp2share.com", "fooget.com", "rapidhide.com", "gotupload.com", "mooload.com",
  128. "zupload.com", "mytempdir.com", "onionshare.com", "stahnu.to", "oron.com", "badongo.com","filereactor.com","filegaze.com","4bytez.com",
  129. "1hostclick.com", "anonstream.com", "batshare.com", "bitroad.net", "brontofile.com", "cloudnxt.net", "cloudnator.com|shragle.com",
  130. "coolshare.cz", "dotavi.com", "ezyfile.net", "file-bit.net", "filecosy.com", "fileduct.com|fileduct.net", "filefat.com", "filelaser.com", "filemashine.com",
  131. "fileserver.cc", "filetechnology.com", "fireuploads.net", "gigfiles.net", "holderfile.com", "ihostia.com", "k2files.com", "mojofile.com",
  132. "ovfile.com", "qshare.com", "shafiles.me", "sharefilehost.com", "shareupload.com", "stahuj.to", "ugotfile.com", "uploadboost.com",
  133. "vidhog.com", "xfileshare.eu", "bzlink.us", "bulletupload.com", "bloggerarticles.com", "mojedata.sk", "sharpfile.com",
  134. "filerobo.com","filevelocity.com","filezpro.com","file4sharing.com","cing.be","ufile.eu","pigsonic.com","fileupped.com","sharerun.com","rapidshare.com",
  135. "rapidslnare.com","bestsharing.com","savefiles.net","file2share.biz","filecache.de","monsteruploads.eu","b9bb.com","aiotool.net","jamber.info",
  136. "megaftp.com","desiupload.net","file27.com","yastorage.com","filehost.ws","copyload.com","venusfile.com","aieshare.com","uploadwaste.com","billionuploads.com",
  137. "fileza.net","filerose.com","squillion.com","fileprohost.com","bitbonus.com","warserver.cz","uload.to","sharedbit.net","megaload.it","filewinds.com","megabitshare.com",
  138. "uploadcore.com","syfiles.com","eyesfile.com","hotfile.com","superupl.com","oteupload.com","henchfile.com","filegag.com","HenchFile.com","filedefend.com",
  139. "xtu.me","sharebase.de","upgrand.com","nasdilej.cz","mediatack.cz","share-it.to","primeupload.com","filebeer.info","baberepublic.com","bitshare.com",
  140. "share-rapid.com|rapids.cz|share-credit.cz|share-central.cz|share-ms.cz|share-net.cz|srapid.cz|share-rapid.cz","czshare.com","przeklej.net","filecity.net",
  141. "megarelease.org","storagon.com","rocketfile.net","filecity.eu","ziddu.com","acefile.net","sdilej.cz","clz.to","cloudzer.com","fileom.com",
  142. "extabit.com","cloudzer.net","247upload.com","2download.de","4fastfile.com","asixfiles.com","berofile.com","bigupload.com","cepzo.com","clouds.to","cobrashare.sk",
  143. "coraldrive.net","cyberlocker.ch", "darkport.org", "dark-uploads.com", "davvas.com", "enigmashare.com", "erofly.cz", "fastsonic.net", "filebox.com", "filedap.com",
  144. "filedino.com", "filedownloads.org", "filefolks.com", "fileking.co", "filemates.com", "files.to", "files2k.eu", "filesector.cc", "filesega.com", "filesend.net",
  145. "filestay.com", "filestrum.com", "fileuplo.de", "fileupup.com", "forunesia.com", "freeuploads.fr","uploa.dk","getthebit.com","getzilla.net","goldfile.eu",
  146. "good.com","grupload.com","hellfile.com","hipfile.com","hitfile.com","hulkfile.eu|duckfile.net","i-filez.com","ifile.ws","kupload.org","packupload.com",
  147. "lemuploads.com","limelinx.com","maxshare.pl","megashare.com","minus.com|min.us","mlfat4arab.com","multishare.cz","nirafile.com","ok2upload.com","peejeshare.com",
  148. "premiuns.org","qkup.net","rapidupload.sk","rockdizfile.com","share-now.net","share76.com","sharebees.com","sharefiles.co","slingfile.com","asfile.com","filesfrog.net",
  149. "sms4file.com", "space4file.com","tigershare.net","toucansharing.com","ubuntuone.com","unextfiles.com","upaj.pl","upfile.biz","uploadbin.net","uploadic.com","uploadinc.com",
  150. "uploading4u.eu","uploadjet.net","uploadorb.com","upthe.net", "uptorch.com","vidbox.yt","videozer.com","vreer.com","wallobit.com","zooupload.com","privatefiles.com","xerver.co",];
  151.  
  152. String.prototype.contains = function(searchString) {
  153. if (searchString.constructor === RegExp) {
  154. if (searchString.test(this)) return true;
  155. else return false;
  156.  
  157. } else if (searchString.constructor === String) {
  158. function replaceStr(string) {
  159. return string.replace(new RegExp(RAND_STRING, 'g'), '|');
  160. }
  161.  
  162. searchString = searchString.replace(/\\\|/g, RAND_STRING);
  163. var searchArray = searchString.split('|');
  164.  
  165. if (searchArray.length > 1) {
  166. var found = false;
  167. var i = searchArray.length;
  168.  
  169. while (i--) {
  170. if (this.indexOf(replaceStr(searchArray[i])) > -1) {
  171. found = true;
  172. break;
  173. }
  174. }
  175.  
  176. return found;
  177.  
  178. } else {
  179. if (this.indexOf(replaceStr(searchString)) > -1) return true;
  180. else return false;
  181. }
  182. } else {
  183. throw new TypeError('String.contains: Input is not valid, string or regular expression required, ' + searchString.constructor.name + ' given.');
  184. }
  185. }
  186.  
  187. var firstRun = JSON.parse(localStorage.getItem("War_First_Run"));
  188. if (firstRun == null) firstRun = true;
  189.  
  190. var chromeBrowser = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase());
  191.  
  192. var preferences = JSON.parse(localStorage.getItem("War_Preferences"));
  193.  
  194. allHostNames.sort();
  195. allContainerNames.sort();
  196. allObsoleteNames.sort();
  197.  
  198. var RAND_STRING = "8QyvpOSsRG3QWq";
  199. var RAND_INT = Math.floor(Math.random()*10000);
  200. var RAND_INT2 = Math.floor(Math.random()*10000);
  201. var ANONYMIZE_SERVICE;
  202. var ANONYMIZERS = ['http://hiderefer.com/?', 'http://anonymz.com/?', 'http://www.blankrefer.com/?', 'http://hidemyass.com/?', 'http://nullrefer.com/?', 'http://refhide.com/?'];
  203. var TOOLTIP_MAXWIDTH = 600; //in pixels
  204.  
  205. //global settings start
  206. var Do_not_linkify_DL_links, Display_tooltip_info, Last_Update_Check, Allow_spaces_in_DL_links, Display_full_links_in_link_containers;
  207. var Processbox_Pos_X, Processbox_Pos_Y, Progressbox_Scaling;
  208.  
  209. var cLinksTotal = 0;
  210. var cLinksDead = 0;
  211. var cLinksAlive = 0;
  212. var cLinksUnava = 0;
  213. var cLinksUnknown = 0;
  214. var cLinksProcessed = 0;
  215.  
  216. var filehostsAlive = "";
  217. var filehostsDead = "";
  218. var filehostsUnava = "";
  219. var filehostsUnknown = "";
  220.  
  221. var intervalId; //for updateProgress()
  222.  
  223. //icon resources
  224. var alive_link_png = 'data:image/png;base64,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';
  225. var adead_link_png = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAIDSURBVHjabJLNaxNRFMXPe2/mzSSZznQ2xXxBQsykLVqp1VLQP8B0USy4cSG4KG4sUkpdiLhyIUjXClVcqwhKJS4EDQp+gIuiod3YotaUlpZaoeZrpnnXhaaNH2d5OL8L954r0CYBJM85zp3lnR2qEi0AgKfrpx0h+reU+oD/6YzdcZ96e+l5PK4A7Bs0zSu+59GnVIokY0dbOd7GsD5pDEApDJkmk4xNXnTdSZ1zhDmHAJJ/Qy4AKvl+FYyBMwbJ2Imc1B0AeFOvoUa0tAu5gh97kUh8mXLd4r3t7ZdzlQqKtSp+KDX7ulZnNaVw/dtWEcDnMGOHATCcsqy71NNDlMtRv2HcAHAJwGUA0Bib6hKiAGC0EIuVNzIZ8qQc1z4GQQXNJsA5hkwzP9dopAXQldL1k0tBMLPebE6PWtbTYduOgwhxIQ7y943Graubm/iuFOZ9f+2AlBML6dTKYjr98FkisRJm/PwRw+gD51j1fbyt10ut3YYjjN2OatqDjUyGyPOIslmi7m56FIvS8VAoeJdK0UgksgjAZm0nTz+Jx+bzVkcISu25nGOkXC49rlRmAMwCWN7tacAwruUj1h7Afs8jwoXOTq8F/FGuJ+UhCAHwX9bXIIBPBAiBqCYMAIP/vFCE8/Exx149a9vrWSlfMWA6qWmFMcdZ26/rNwGEW9mfAwA9h7IJU7NC2gAAAABJRU5ErkJggg==';
  226. var unava_link_png = 'data:image/png;base64,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';
  227. var processing_link_gif = 'data:image/gif;base64,R0lGODlhCgAKAJEDAMzMzP9mZv8AAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAAADACwAAAAACgAKAAACF5wncgaAGgJzJ647cWua4sOBFEd62VEAACH5BAUAAAMALAEAAAAIAAMAAAIKnBM2IoMDAFMQFAAh+QQFAAADACwAAAAABgAGAAACDJwHMBGofKIRItJYAAAh+QQFAAADACwAAAEAAwAIAAACChxgOBPBvpYQYxYAIfkEBQAAAwAsAAAEAAYABgAAAgoEhmPJHOGgEGwWACH5BAUAAAMALAEABwAIAAMAAAIKBIYjYhOhRHqpAAAh+QQFAAADACwEAAQABgAGAAACDJwncqi7EQYAA0p6CgAh+QQJAAADACwHAAEAAwAIAAACCpRmoxoxvQAYchQAOw%3D%3D';
  228.  
  229. //global settings end
  230.  
  231. function linkify(filterId) { //code from http://userscripts.org/scripts/review/2254 Linkify ting
  232. if (!filterId) {
  233. var regexy = "", ikkeTilladteTags = [];
  234.  
  235. if (Allow_spaces_in_DL_links) {
  236. regexy = "(?:http:\/\/.+?\\?)?(?:https?:\/\/)?(?:[\\w\\.\\-]*[\\w\\-]+\\.(?:com?\\.\\w{2}|in\\.ua|uk\\.com|\\w{2,4})(?::\\d{2,5})?\/|(?:www\\.)?\\w{6,}\\.1fichier\\.com)[\\w\\–\\-\\.+$!*\\/\\(\\)\\[\\]\',~%?:@#&=\\\\\\—;\\u0020…×Ã\\_\\u0080-\\u03FF’‘\\|]*";
  237. } else {
  238. regexy = "(?:http:\/\/.+?\\?)?(?:https?:\/\/)?(?:[\\w\\.\\-]*[\\w\\-]+\\.(?:com?\\.\\w{2}|in\\.ua|uk\\.com|\\w{2,4})(?::\\d{2,5})?\/|(?:www\\.)?\\w{6,}\\.1fichier\\.com)[\\w\\–\\-\\.+$!*\\/()\\[\\]\',~%?:@#&=\\\\\\—;…×Ã\\_\\u0080-\\u03FF’‘\\|]*";
  239. }
  240.  
  241. if (Do_not_linkify_DL_links) {
  242. ikkeTilladteTags = ['a', 'head', 'script', 'style', 'title', 'option', 'iframe', 'textarea', 'span']; //tags, hvor det der stAΞ’Β¥r inden i ikke skal vAΞ’Β¦re links
  243. } else {
  244. ikkeTilladteTags = ['a', 'head', 'script', 'style', 'title', 'option', 'iframe', 'textarea']; //tags, hvor det der stAΞ’Β¥r inden i ikke skal vAΞ’Β¦re links
  245. }
  246.  
  247. var regex = new RegExp(regexy, "g");
  248. var censors = [ ];
  249.  
  250. var censorRegex = new RegExp("(?:https?:\/\/~[\\w\\s\\~]*\/*)|(?:http:\/\/.+?\\?)?(?:https?:\/\/)?[\\w\\.\\-]*~\\s?(?:" + censors.join("|") + ")\\.*\\s?~[\\w\\–\\-\\.+$!*\\/()\\[\\]\',~%?:@#&=\\\\\\—;…×Ã\\_\\u0080-\\u03FF’‘]*", "i");
  251. var ignoreImage = /(?:\.png|\.jpg|\.gif|\.jpeg|\.bmp)$/i, textNode, muligtLink;
  252.  
  253. var path = "//text()[not(parent::" + ikkeTilladteTags.join(" or parent::") + ") and contains(.,'/')]";
  254. var textNodes = document.evaluate(path, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  255.  
  256. var i = textNodes.snapshotLength;
  257. while (i--) {
  258. textNode = textNodes.snapshotItem(i);
  259. muligtLink = textNode.nodeValue; //all links on page
  260.  
  261. var myArray = null;
  262. if (regex.test(muligtLink)) {
  263. var span = document.createElement('span'), lastLastIndex = 0, myArray = null;
  264. regex.lastIndex = 0;
  265.  
  266. while (myArray = regex.exec(muligtLink)) {
  267. var link = $.trim(myArray[0]); //removes whitespace from beginning and end of link (can sometimes cause issues when spaces are still picked up by the regex even when Allow_spaces_in_DL_links is false)
  268. var hostName = gimmeHostName2(link);
  269. var hostNameSafe = hostName.replace(/\./g, "_dot_").replace(/\-/g, "_dash_").toLowerCase();
  270. if (hostName == gimmeHostName(window.location.hostname) || !hostsIDs[hostNameSafe] || ignoreImage.test(link.replace(/\[\/img\]$/, ""))) {
  271. continue;
  272. }
  273. span.appendChild(document.createTextNode(muligtLink.substring(lastLastIndex, myArray.index)));
  274.  
  275. var $a = $("<a>" + link + "</a>")
  276. if (!link.match(/https?:\/\//)) {
  277. link = 'http://' + link;
  278. }
  279.  
  280. $a.attr("href", link.replace(/\[\/hide:\w+\]/,"")).appendTo(span);
  281. lastLastIndex = regex.lastIndex;
  282. }
  283.  
  284. span.appendChild(document.createTextNode(muligtLink.substring(lastLastIndex)));
  285. textNode.parentNode.replaceChild(span, textNode);
  286. } else if (censorRegex.test(muligtLink)) {
  287. if (textNode.parentNode.className == "obsolete_link") continue;
  288. var censoredLink = muligtLink.match(censorRegex)[0];
  289. if (ignoreImage.test(censoredLink)) continue;
  290. var span = document.createElement('span');
  291. span.innerHTML = censoredLink;
  292. span.className = "obsolete_link";
  293. $(span).attr('warlc_error', "Cause of error: <b>Censored link.</b>");
  294. span.addEventListener("mouseover", displayTooltipError, false);
  295. if (filehostsDead.search("censored links") == -1) filehostsDead += "censored links,";
  296. cLinksTotal++; cLinksProcessed++; cLinksDead++;
  297. textNode.parentNode.replaceChild(span, textNode);
  298. }
  299. }
  300. }
  301. var jQ;
  302. filterId ? jQ = "a." + filterId : jQ = "a";
  303. var as = $(jQ);
  304. var i = as.length;
  305. var currA, hostNameSafe, hostID;
  306. while(i--) {
  307. currA = as[i];
  308.  
  309. if (/^https?:\/\/\*{7,100}\//.test(currA.href)||/^https?:\/\/~[\w\s\~]*\//.test(currA.href))
  310. {
  311. currA.className = "obsolete_link";
  312. cLinksDead++;
  313. }
  314. if (currA.href && /^https?:\/\//.test(currA.href) && gimmeHostName2(currA.href) != -1 && gimmeHostName2(currA.href) != gimmeHostName(window.location.host) && (!currA.className || currA.className == "processing_link" || currA.className == filterId)) {
  315. hostNameSafe = gimmeHostName2(currA.href).replace(/\./g, "_dot_").replace(/\-/g, "_dash_").toLowerCase();
  316. if (!hostsIDs[hostNameSafe]) {
  317. if (filterId) cLinksTotal--; currA.className = '';
  318. continue;
  319. } else {
  320. var ix = hostsIDs[hostNameSafe].length;
  321. while(ix--) {
  322. if (new RegExp(hostsIDs[hostNameSafe][ix].linkRegex).test(currA.href)) {
  323. currA.className = "processing_link";
  324. hostID = hostsIDs[hostNameSafe][ix].hostID;
  325. hostsCheck[hostID].links.push(currA);
  326. foundMirrors[hostID.substr(0,2)].push(hostID);
  327. }
  328. }
  329. }
  330. }
  331. }
  332. }
  333.  
  334. function add_WARLC_style()
  335. {
  336. if (!(document.getElementsByTagName('WARLC')[0]))
  337. {
  338. var meta_not_to_add_more_style = document.createElement("WARLC");
  339. meta_not_to_add_more_style.setAttribute('content', 'war_links_checker');
  340. meta_not_to_add_more_style.setAttribute('name', 'description');
  341. document.getElementsByTagName('head')[0].appendChild(meta_not_to_add_more_style);
  342. /* change link colors */
  343. GM_addStyle(
  344. ".alive_link {background:transparent url(" + alive_link_png + ") no-repeat scroll 100% 50%;background-size:13px;padding-right:13px;color:green !important;}\
  345. .adead_link {background:transparent url(" + adead_link_png + ") no-repeat scroll 100% 50%;background-size:13px;padding-right:13px;color:red !important;}\
  346. .obsolete_link {background:transparent url(" + adead_link_png + ") no-repeat scroll 100% 50%;background-size:13px;padding-right:13px;color:red !important;}\
  347. .unava_link {background:transparent url(" + unava_link_png + ") no-repeat scroll 100% 50%;background-size:14px;padding-right:13px;color:#FFD700 !important;}\
  348. .processing_link {background:transparent url(" + processing_link_gif + ") no-repeat scroll 100% 50%;background-size:13px;padding-right:16px;color:grey !important;}\
  349. .container_link {background:transparent url(" + processing_link_gif + ") no-repeat scroll 100% 50%;background-size:13px;padding-right:16px;color:Darkkhaki !important;}"
  350. );
  351. }
  352. }
  353.  
  354. var warlcTooltip = null, mouseoverLink = null; //link href with mouse cursor over it
  355.  
  356. var lastX = 0, lastY = 0;
  357.  
  358. $(document).ready(initTooltip);
  359. //inits tooltip
  360. function initTooltip()
  361. { warlcTooltip = document.createElement("div");
  362. warlcTooltip.setAttribute("style", "background: #EAEAEA; box-shadow: 0 1px 5px rgba(0, 0, 0, 0.5);padding: 6px 6px 6px 6px; border-radius:2px; border:2px solid #6699CC; color:#000000;font-family:Verdana,sans-serif;font-size:11px;position:absolute;z-index:1000; max-width: " + TOOLTIP_MAXWIDTH + "px;");
  363. warlcTooltip.style.visibility = "hidden";
  364. document.body.appendChild(warlcTooltip);
  365. }
  366.  
  367. //"mousemove" event handler for all links
  368. function moveTooltip(event)
  369. {
  370. if ((Math.abs(lastX - event.clientX) + Math.abs(lastY - event.clientY)) < 6)
  371. { //no need to reflow if the cursor moved just a little
  372. return;
  373. }
  374. else
  375. {
  376. lastX = event.clientX;
  377. lastY = event.clientY;
  378. }
  379.  
  380. posX = event.clientX + window.pageXOffset + 10;
  381. posY = event.clientY + window.pageYOffset;
  382. var ttHeight = warlcTooltip.offsetHeight;
  383. var ttFreeSpace = window.innerHeight - event.clientY;
  384. if (ttHeight > ttFreeSpace)
  385. { //prevents tooltip from getting out of the window
  386. posY -= (ttHeight - (ttFreeSpace)) + 10;
  387. }
  388. else
  389. {
  390. posY += 7;
  391. }
  392. warlcTooltip.style.top = posY + "px";
  393. warlcTooltip.style.left = posX + "px";
  394. }
  395.  
  396. //"mouseout" event handler for all links
  397. function hideTooltip(){
  398. warlcTooltip.style.visibility = "hidden";
  399. mouseoverLink = null;
  400. }
  401.  
  402.  
  403. //"mouseover" event handler for dead links
  404. //displays tooltip error message on dead links
  405. function displayTooltipError()
  406. {
  407. mouseoverLink = this.href;
  408. this.addEventListener("mouseout", hideTooltip);
  409. this.addEventListener("mousemove", function(event) { moveTooltip(event); });
  410. warlcTooltip.innerHTML = '<b>CHECKING...</b>';
  411. warlcTooltip.style.minWidth = 0;
  412. warlcTooltip.style.visibility = "visible";
  413. if ($(this).attr('warlc_error')) { //an error message is already known and stored in warlc_error attribute
  414. warlcTooltip.innerHTML = $(this).attr('warlc_error');
  415. }
  416. else
  417. {
  418. loadErrorInfo(this);
  419. }
  420. function loadErrorInfo(link)
  421. {
  422. var href = link.href;
  423. if (link.href.contains('anysend.com') && link.name) href = link.name;
  424. href = href.replace(/quickshare\.cz\/.+/, "quickshare.cz/chyba");
  425. GM_xmlhttpRequest({
  426. method: 'GET',
  427. url: href.replace(ANONYMIZE_SERVICE, ""),
  428. headers: {
  429. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  430. 'Accept': 'text/xml,application/x-httpd-php',
  431. 'Referer': ""
  432. },
  433. onload: function(result) {
  434. var res = result.responseText;
  435. //console.log(res);
  436. //TODO: errorRegexs -
  437. var errorRegexs = [ //generic error messages follow
  438. /(empty directory)/i,
  439. /(soubor nebyl nalezen)/i,
  440. /((?:file|page|link|folder)(?:is|not|does|has been|was|has| ){1,}(?:found|available|blocked|exists?|deleted|removed|expired))/i,
  441. //server specific error messages follow
  442. /msg error" style="cursor: default">(.+?)<\/div>/, //sendspace
  443. /color:red;font\-weight:bold;border\-style:dashed;font-size:12px;border\-width:2px;><tr><td align=center>(.+?)<\/td>/, //fastshare
  444. /errorIcon">\s*<p><strong>(.+?)<br \/>/, //filefactory
  445. /no_download_msg">\s*(.+?)<span/, //depositfiles
  446. /(Takový soubor neexistuje. Je možné, že byl již smazán.)/, //quickshare
  447. /file_info file_info_deleted">\s*<h1>(.+?)<\/h1>/, //filepost
  448. /<br \/>\s*<p style="color:#000">(.+?)<\/p>\s*<\/center>/, //letitbit
  449. /(?:error_div">|<\/h1><p>)<strong>(.+?)<\/strong>/, //share-rapid,quickshare
  450. /class="red">(.+?)<(?:span|br)>/, //czshare, megashares
  451. /class="wp640">\s*<h1 class="h1">(.+?)<\/h1>/, //uloz.to
  452. /download_file">\s*<tr>\s*<td>(.+?)<\/td>/, //hotfile
  453. /error\.gif" \/>\s*(.+?)\s*<\/div>/, //uploading.com
  454. /not-found">\s*<p>(.+?)<\/p>/, //bayfiles
  455. /(Your file could not be found. Please check the download link.)/, //stahnu.to
  456. /error_msg">\s*(<h3>.+?<\/h3><ul>(.+?)<\/ul>)/, //edisk
  457. /id="obsah">\s*<h2>(.+?)<\/h2>/, //euroshare
  458. /error">\s*(?:<[bp]>)?\s*(.+?)<\/[bp]>/, //filesmonster, shragle, gigapeta
  459. /center aC">\s*<h1>(.+?)<br \/>/, //uploaded.to
  460. /icon_err">\s*<h1>(.+?)<\/h1>/, //filejungle
  461. /Code: ER_NFF_\d+<\/h2>\s*(.+?)\s*<\/div>/, //netload
  462. /(File has been removed due to Copyright Claim)/, //filerio
  463. /<span style="color:red;" class="result-form">(.+?)<\/span>/, //safelinking
  464. /(The file link that you requested is not valid.)/, //2shared
  465. /#FF0000"><big>(.+?\s+.+?)<\/big>/, //jumbofiles
  466. /error_msg_title">(.+?)<\/h3>/, //mediafire
  467. /<span class="bold">(?:<br \/>)+(.+?)<\/span>/, //filebox
  468. /err">(.+?)</, //speedy-share, will work for others
  469. /message warning" style=".+?">\s+((?:.+?\s+)+?)<\/div>/, //cloudzer
  470. /<h2 class="error">(.+?)<\/h2>/, //gigasize.com
  471. /<h1 class="filename" id="status">(.+?)<\/h1>/, //anysend.com
  472. /<title>(Removed download) \| AnySend<\/title>/, //anysend.com
  473. /<div class='message t_0'>(.+?)<\/div>/, //sockshare.com
  474. ];
  475. var errorIdx = errorRegexs.length;
  476. var error = "Cause of error: <b>unknown</b>";
  477. var errorCandidate = "";
  478. while(errorIdx--)
  479. {
  480. var errorCandidate = res.match(errorRegexs[errorIdx]);
  481. if (errorCandidate != null)
  482. {
  483. error = "Cause of error: <b>" + errorCandidate[1].replace(/&nbsp;/g," ") + "</b>";
  484. break;
  485. }
  486. }
  487. //link attributes
  488. $(link).attr('warlc_error', error);
  489. if (mouseoverLink == link.href) //mouse cursor is still over the link
  490. {
  491. warlcTooltip.innerHTML = error;
  492. }
  493. }
  494. });
  495. }
  496. }
  497.  
  498. //"mouseover" event handler for alive links
  499. //displays tooltip info (file size, file name,...) on alive links
  500. function displayTooltipInfo()
  501. {
  502. mouseoverLink = this.href;
  503. //exclude direct download filehostings
  504. if (this.href.contains(/(?:uloziste\.com|filemonster\.net|uploadbin\.net|adrive\.com|dropbox(?:usercontent)?\.com|karelia\.pro|archive\.org|demo\.ovh\.eu)/))
  505. {
  506. return;
  507. }
  508. this.addEventListener("mouseout", hideTooltip);
  509. this.addEventListener("mousemove", function(event) { moveTooltip(event); });
  510. warlcTooltip.innerHTML = '<b>CHECKING...</b>';
  511. warlcTooltip.style.minWidth = 0;
  512. warlcTooltip.style.visibility = "visible";
  513. if (this.warlc_tooltipcache) //file size is already known and stored in warlc_filename and warlc_filesize attributes
  514. {
  515. warlcTooltip.innerHTML = this.warlc_tooltipcache;
  516. }
  517. else
  518. {
  519. loadInfo(this);
  520. }
  521. function loadInfo(link)
  522. {
  523. var href = link.href;
  524. if (link.href.contains('anysend.com')) href = link.name;
  525. href = href.replace(/.*(?:share-online\.biz|egoshare\.com)\/(?:dl\/|download\.php\?id=|\?d=)(\w+)/, 'http://api.share-online.biz/linkcheck.php?links=$1');
  526. href = href.replace(/.*(?:uploaded|ul)\.(?:to|net)\/(?:files?\/|\?(?:lang=\w{2}&)?id=|f(?:older)?\/)?(?!img|coupon)(\w+)/, 'http://uploaded.net/api/filemultiple?apikey=lhF2IeeprweDfu9ccWlxXVVypA5nA3EL&id_0=$1');
  527. href = href.replace(/.*(?:depositfiles\.(?:com|lt|org)|dfiles\.(?:eu|ru))\/(?:en\/|ru\/|de\/|es\/|pt\/|)files\/(\w+)/, 'http://depositfiles.com/api/get_download_info.php?id=$1&format=json')
  528. //href = href.replace(/.*(?:cloudzer\.net|clz\.to)\/(?:file\/)?(\w+)/, 'http://cloudzer.net/api/filemultiple?apikey=mai1EN4Zieghey1QueGie7fei4eeh5ne&id_0=$1');
  529. GM_xmlhttpRequest({
  530. method: 'GET',
  531. url: href.replace(ANONYMIZE_SERVICE, ""),
  532. headers: {
  533. 'Accept': 'text/xml,application/x-httpd-php',
  534. 'Referer': ""
  535. },
  536. onload: function(result) {
  537. var res = result.responseText;
  538. //console.log(res);
  539. var nameRegexs = [ /File Name: (.+?)<\/p>/, //filesmall
  540. /(?:finfo|(?:file[-_]?)?name)(?:"|')?>\s*?(.+?)<\/?(?:h1|a|b|div|span style|td)/, //hellshare, uploaded.to, netload, badongo, 4fastfile,
  541. /fl" title="(.+?)">/, //edisk
  542. /Celý název: <a href="http:\/\/czshare.com\/\d+\/\w+\/">(.+?)<\/a>/, //czshare
  543. /<title>\s*(?:Download)?\s*(.+?)\s*(?::: DataPort|\| Ulož|- Share\-Rapid|- WEBSITENAME|download Extabit|- download now for free|\| refile)/, //dataport, uloz.to, share-rapid, shragle, extabit, filefactory, refile.net
  544. /<h3>Stahujete soubor: <\/h3>\s*<div class="textbox">(.+?)<\/div>/, //webshare
  545. /<h3><b><span style=color:black;>(.+?)<\/b><\/h3><br>/, //fastshare
  546. /title="download (.+?)">/, //sendspace
  547. /Stáhnout soubor: (.+?)<\/h1>/, //quickshare
  548. /fz24">Download:\s*<strong>(.+?)<\/strong>/, //crocko
  549. /\w+:<\/b> (.+?)<\/h2>/, //filevelocity
  550. /'file\-icon\d+ \w+'>(?:<\/span><span>)?(.+?)<\/span>/, //hitfile, turbobit
  551. /d0FileName = "(.+?)";/, //letitbit
  552. /file(?:_name|-info)" title="">\w+: <span>(.+?)<\/span>/, //vip-file, shareflare
  553. /download_file_title" title="(.+?)">/, //mediafire
  554. /dl\-btn\-label"> (.+?) <\/div>/, //mediafire
  555. /id="file_title">(.+?)<\/h1>/, //uploading.com
  556. /recent-comments"><h2>(.+) &nbsp;/, //xdisk
  557. /fname" value="(.+?)">/, //sharerun, syfiles, grupload,
  558. /download\-header">\s*<h2>File:<\/h2>\s*<p title="(.+?)">/, //bayfiles
  559. /description">\s*<p><b>Soubor: (.+?)<\/b>/, //bezvadata
  560. /Complete name : (.+?)<br \/>/, //bezvadata
  561. /itemprop="name">(.+?)<\/span>/, //bezvadata
  562. // /Downloading:\s*<\/strong>\s*<a href="">\s*(.+?)\s*<\/a>/, //rapidgator
  563. /(?:Downloading |Lade herunter |<h1>)(.+?) \- \d+/, //bitshare, nitrobits
  564. /Downloading:<\/strong> (.+?) <span>/, //hotfile
  565. /<h1 class="black xxl" style="letter-spacing: -1px" title="(.+?)">/, //megashares
  566. /<span > (.+?) \(\d+.?\d+? \w+\)<\/span>/, //clipshouse
  567. /File Download Area<\/center><\/h1><center><h3>(.+?)<\/h3>/, //filebeam
  568. /<h2 class="float\-left">(.+?)<\/h2>/, //easyfilesharing
  569. /<h1 id="file_name" class=".+?" title="(.+?)">/, //box.com
  570. /file_info">\s+<h2><strong>(.+?)<\/strong>/, //fliiby
  571. /dateiname'>(.+?)<\/h1>/, //file-upload.net
  572. /Filename:<\/p>\s+<\/div>\s+<div class=".+?">\s+<p>\s+(.+?)\s+<\/p>/, //sharesix
  573. /File Name:<\/dt>\s+<dd>(.+?)<\/dd>/, //gamefront
  574. /<h2>Download File (.+?) <span id="span1">/, //jumbofiles.org
  575. /dir="ltr">(.+?) <\/td>/, //unlimitshare.com
  576. /nom_de_fichier">(.+?)<\/div>/, //uploadhero
  577. /OK;(.+?);\d+/, //share-online
  578. /File:\s*<span>(.+?)<\/span>/, //keep2share
  579. /Name:<\/font>\s*<font style=".+?">(.+?)<\/font>/, //zippyshare
  580. /online,\w+,\d+,\w+,(.+)/, //uploaded.net, cloudzer.net
  581. /\{"file_info":\{"size":"\d+","name":"(.+?)"\},"/, //depositfiles.com
  582. /File:<\/div>\s*\n*<div class="name">(.+?)<\/div>/, //dizzcloud.com
  583. /site-content">\s*\n*<h1>(.+?)<strong>/, //putlocker.com
  584. /<div class="external_title_left">(.+)<\/div>/, //putlocker.com
  585. /(?:File name|Nom du fichier) :<\/th><td>(.+?)<\/td>/, //1fichier.com
  586. /<div id="file_name" class="span8">\n\s+<h2>(.+?)<\/h2>/, //filefactory.com
  587. /<span class="bgbtn sprite fileIcon ext\w+"><\/span>\s+<strong title="(.+?)">/, //gigasize.com
  588. /<span class="label label-important">Downloading<\/span>\s<br>\s(.+?)\s[\d\.]+\s\w+\s<\/h4>/, //nowdownload.eu
  589. /<!-- File header informations -->\n\s*<br\/>\n\s*<h1>(.+?)<\/h1>/, //mixturecloud.com
  590. /<span class="file-name">(.+?)<\/span>/, //anysend.com
  591. /<title>ULTRAMEGABIT\.COM - (.+?)<\/title>/, //ultramegabit.com
  592. /<title>Download (.+?) \| myUpload\.dk<\/title>/, //myupload.dk
  593. /<td width="300px" align="left" valign="top">Downloaded \d{1,} times<br>\nFile: (.+?)<br>/, //datafilehost.com
  594. /<div id="download\-title">\n\s*<h2>(.+?)<\/h2>/, //solidfiles.com
  595. /<div class="content_m"><div class="download"><h1>(.+?)<\/h1>/, //mystore.to
  596. /<h4 class="dl_name w420" >\s*(.+?) <span/, //myvdrive.com
  597. /<div class='badge pull-right'>.+?<\/div>\s*<h1>Download (.+?)<\/h1>/, //filemonkey.in
  598. /<strong>File name:<\/strong> (.+?)<br \/>/, //netkups.com
  599. /<div id="file_name" title="(.+?)">/, //uploadable.ch
  600. ];
  601. var nameIdx = nameRegexs.length;
  602. // [sizeRegexs]
  603. // / \ \?
  604. // prefix (size) postfix
  605. // / \
  606. // val quant
  607. var quantRegex = '(?:M|G|K)?i?(?:B)(?:[y|i]te?s?)?';
  608. var valRegex = '\\d+(?:[\\., ]\\d+){0,2}'; // 111([., ]222)?([., ]333)?
  609. var uniSizeRegex = valRegex + '(?:\\s*|&nbsp;)' + quantRegex;
  610. var preSizeRegex = '(?::|\\(|>|>, | - |\\[)';
  611. var postSizeRegex = '(?:\\))?';
  612. var sizeRegexs = [ preSizeRegex + "\\s*(" + uniSizeRegex + ")\\s*" + postSizeRegex,
  613. 'FileSize_master">(.+?)<\/strong>', //hellshare
  614. 'Velikost: <strong>(.+?)<\/strong>', //warserver
  615. 'File Size:(?:<\/b>) (.+?)<\/(?:p|td)>', //filesmall, unlimitzone
  616. 'online,\\w+,(\\d+),', //uploaded.net
  617. '"file_info":{"size":"(\\d+)","name":', //depositfiles.com
  618. '(?:File size|Taille) :<\/th><td>(.+?)<\/td>', //1fichier.com
  619. ';(\\d+)\n$', //share-online.biz
  620. 'label-important">Downloading<\/span>.+?(' + uniSizeRegex + ') <\/h4>', //nowdownload.eu
  621. '<h5>Size : (' + uniSizeRegex + ')<\/h5>', //mixturecloud.com,
  622. '<td>\\n\\s*Total size:\\n\\s*</td>\\n\\s*<td>\\n\\s*(.+?)\\s*</td>', //anysend.com
  623. '<span class="size">(' + uniSizeRegex + ')</span>', //easybytez.com
  624. 'span class="filename_normal">\\((' + uniSizeRegex + ')\\)</span>', //uploadable.ch
  625. ];
  626. var sizeIdx = sizeRegexs.length;
  627. //
  628. //
  629. var tooltip = "File Name: <b>";
  630. var fileName = "unknown";
  631. var nameCandidate = "";
  632. while(nameIdx--)
  633. {
  634. var nameCandidate = res.match(nameRegexs[nameIdx]);
  635. if (nameCandidate != null)
  636. {
  637. fileName = nameCandidate[1].replace(/&nbsp;/g," ").replace("<br>", "");
  638. break;
  639. }
  640. }
  641. tooltip += fileName + "</b><br>File Size: <b>";
  642. var fileSize = "unknown";
  643. var sizeCandidate = "";
  644. while(sizeIdx--)
  645. {
  646. sizeCandidate = res.match(new RegExp(sizeRegexs[sizeIdx], "i"));
  647. if (sizeCandidate != null)
  648. {
  649. fileSize = sizeCandidate[1].replace(/&nbsp;/g," ");
  650. if (/^\d+$/.test(fileSize) && fileSize >= 1024) //assume bytes
  651. {
  652. if(fileSize > (1<<30)) fileSize = Math.round(10 * fileSize / (1<<30)) / 10 + ' GB';
  653. else if(fileSize > (1<<20)) fileSize = Math.round(fileSize / (1<<20)) + ' MB';
  654. else fileSize = Math.round(fileSize / 1024) + ' KB';
  655. }
  656. break;
  657. }
  658. }
  659. tooltip += fileSize + "</b>";
  660. // Safelinking package info
  661. if (href.contains('safelinking.net/p/'))
  662. {
  663. var linkStatus = res.match(/<span style="color:green;" class="result-form">(.+?)<\/span>/);
  664. var linkTitle = res.match(/link\-title">(.+?)<\/span>/);
  665. var linkDesc = res.match(/description" class="result-form">(.+?)<\/span>/);
  666. if (linkStatus) { tooltip = "<b>Link status:</b> " + linkStatus[1].replace(/<\/?strong>/,"").replace(/<br\/>/, " "); }
  667. if (linkTitle) { tooltip += "<br><b>Title:</b> " + linkTitle[1]; }
  668. if (linkDesc) { tooltip += "<br><b>Description:</b> " + linkDesc[1]; }
  669. }
  670. link.warlc_tooltipcache = tooltip;
  671. if (mouseoverLink == link.href) //mouse cursor is still over the link
  672. {
  673. warlcTooltip.innerHTML = tooltip;
  674. }
  675. }
  676. });
  677. }
  678. }
  679.  
  680. //function to return hostname + tld
  681. function gimmeHostName(link) {
  682. if (link.contains(/([\w-]+\.(?:com?\.\w{2}|in\.ua|uk\.com|\w{2,4}))(?::\d+)?$/)) return link.match(/([\w-]+\.(?:com?\.\w{2}|in\.ua|uk\.com|\w{2,4}))(?::\d+)?$/)[1];
  683. else {
  684. console.warn("gimmeHostName error.", link);
  685. return -1;
  686. }
  687. }
  688. //Second gimmehostname function to match whole hostname
  689. function gimmeHostName2(link) {
  690. link = link.replace(/http:\/\/.*?\?http:\/\//, 'http://'); //anonymizers
  691. if (link.contains(/(?:https?:\/\/)?(?:www\.|[\w\.])*?[\w-]+\.(?:com?\.\w{2}|in\.ua|uk\.com|\w{2,4})(?::\d+)?\//)) return link.match(/(?:https?:\/\/)?(?:www\.|[\w\.])*?([\w-]+\.(?:com?\.\w{2}|in\.ua|uk\.com|\w{2,4}))(?::\d+)?\//)[1];
  692. else if (link.contains(".1fichier.com")) {
  693. return "1fichier.com";
  694. } else {
  695. console.warn("gimmeHostName error.", link);
  696. return -1;
  697. }
  698. }
  699.  
  700. function uniqArray(array) {
  701. var uniqueArray = [];
  702. $.each(array, function(i, el){
  703. if($.inArray(el, uniqueArray) === -1) uniqueArray.push(el);
  704. });
  705. return uniqueArray;
  706. }
  707.  
  708. function sendMessage(text)
  709. {
  710. var msgDiv = "<div class='WarInfoMsg'>" + text + "</div>";
  711. $(".WarInfoBox").append(msgDiv).show();
  712. setTimeout(function(){$(".WarInfoBox").hide()}, 5000);
  713. }
  714.  
  715. function genset(pref, def) {
  716. var val = preferences.general[pref];
  717. if (val == undefined) val = def;
  718. return val;
  719. }
  720.  
  721. function lsSave() {
  722. localStorage.setItem("War_Preferences", JSON.stringify(preferences));
  723. }
  724.  
  725. function setVariables()
  726. {
  727. if (firstRun)
  728. {
  729. console.warn('First run, compiling preferences object...');
  730. preferences = {
  731. hosts: {},
  732. general: {}
  733. }
  734. lsSetVal("general", "Display_tooltip_info", false);
  735. lsSetVal("general", "Display_full_links_in_link_containers", true);
  736. lsSetVal("general", "Allow_spaces_in_DL_links", false);
  737. lsSetVal("general", "Do_not_linkify_DL_links", false);
  738. lsSetVal("general", "Extabit_API_Check", false);
  739. lsSetVal("general", "Filefactory_API_Check", false);
  740. lsSetVal("general", "Processbox_Pos_Y", 0);
  741. lsSetVal("general", "Processbox_Pos_X", 90);
  742. lsSetVal("general", "Progressbox_Scaling", 100);
  743. //lsSetVal("general", "Last_Update_Check", new Date().valueOf());
  744. lsSetVal("general", "Ref_anonymize_service", ANONYMIZERS[0]);
  745. localStorage.setItem("War_First_Run", false);
  746. lsSave();
  747. }
  748.  
  749. Display_tooltip_info = genset("Display_tooltip_info", false);
  750. Display_full_links_in_link_containers = genset("Display_full_links_in_link_containers", true);
  751. Allow_spaces_in_DL_links = genset("Allow_spaces_in_DL_links", false);
  752. Do_not_linkify_DL_links = genset("Do_not_linkify_DL_links", false);
  753. Processbox_Pos_Y = genset("Processbox_Pos_Y", 0);
  754. Processbox_Pos_X = genset("Processbox_Pos_X", 90);
  755. Progressbox_Scaling = genset("Progressbox_Scaling", 100);
  756. Last_Update_Check = genset("Last_Update_Check", 0);
  757. ANONYMIZE_SERVICE = genset("Ref_anonymize_service", ANONYMIZERS[0]);
  758. ANONYMIZE_SERVICE = (ANONYMIZE_SERVICE != 'NoRed' ? ANONYMIZE_SERVICE : '');
  759. }
  760.  
  761. function hostSet(key, def) { //will get the value of the key in pref object, if key is undefined -> opposite value of default returned (to keep the compatibility with old GM_getValue and the inversed default values in War 2.0)
  762. var val = preferences.hosts[key];
  763. if (val == undefined) val = !def;
  764. return val;
  765. }
  766.  
  767. function lsSetVal(section, key, value) { //replacement of GM_setValue, valid for both sections of preferences object
  768. preferences[section][key] = value;
  769. lsSave();
  770. }
  771.  
  772. // Delinkifies the links
  773. // params:
  774. // links -> list of links or link components (note they should be sufficiently unique to identify the link on page,
  775. // e.g. 'uloz.to/xs68skxl8')
  776. function delinkifySnapshot(snapshot)
  777. {
  778. var n = snapshot.snapshotLength;
  779.  
  780. while (n--)
  781. {
  782. thisLink = snapshot.snapshotItem(n);
  783.  
  784. var spanElm = document.createElement("span");
  785. spanElm.className = thisLink.className;
  786. spanElm.innerHTML = thisLink.innerHTML;
  787.  
  788. if (Display_tooltip_info)
  789. {
  790. spanElm.href = thisLink.href;
  791. switch (thisLink.className){
  792. case "alive_link": spanElm.addEventListener("mouseover", displayTooltipInfo, false); break
  793. case "adead_link": spanElm.addEventListener("mouseover", displayTooltipError, false); break;
  794. case "obsolete_link": spanElm.addEventListener("mouseover", displayTooltipError, false); break;
  795. case "unava_link": //reserved
  796. default:
  797. }
  798. }
  799. thisLink.parentNode.replaceChild(spanElm, thisLink);
  800. }
  801. }
  802. function checkLinks(filterId)
  803. {
  804. start(filterId);
  805. }
  806.  
  807. /**
  808. * Initialises progress box including event binding and CSS
  809. */
  810. function initProgressBox()
  811. {
  812. if ($("#warlc-progressbox").length > 0)
  813. return;
  814. //progressbox css
  815. var progressboxCss = "#warlc-progressbox {position:fixed; background:lightgrey; bottom:" + Processbox_Pos_Y + "%; left:" + Processbox_Pos_X + "%; padding:5px; font-size:10px; font-weight:bold; font-family:Helvetica; width:130px; cursor:default; border:1px solid #4DD9FF; z-index:200;}\
  816. \
  817. #warlc-hostdetails {position:fixed; background:lightgrey; bottom:" + (parseInt(Processbox_Pos_Y) + 9) + "%; left:" + Processbox_Pos_X + "%; padding:5px; font-size:10px; font-weight:bold; cursor:default; border:1px solid #4DD9FF; display:none; z-index:201;}\
  818. \
  819. .warlc-progressbox-contents {right: 5px;}\
  820. \
  821. .warlc-progressbar {text-align:left; background: blue; height:3px; margin-bottom:5px; width:0px; border-radius:1.5px; }\
  822. \
  823. .warlc-progressitem { display: block; padding:2.5px 0px 2.5px 20px }\
  824. \
  825. .alive {color: green; background:transparent url(" + alive_link_png + ") no-repeat scroll 0% 50%;background-size:15px;}\
  826. \
  827. .adead {color: red; background:transparent url(" + adead_link_png + ") no-repeat scroll 0% 50%;background-size:15px;}\
  828. \
  829. .unava {color: #FFFF00; background:transparent url(ToBeAddedLater) no-repeat scroll 0% 50%;background-size:15px;}\
  830. \
  831. .processing {color: black; background:transparent url(" + processing_link_gif + ") no-repeat scroll 0% 50%;}"
  832. if (Progressbox_Scaling != 100) {
  833. $.each(progressboxCss.match(/[\d\.]+px/g), function(i, el) { //dynamic rescaling of the progressbox according to user settings
  834. progressboxCss = progressboxCss.replace(new RegExp(el + "(?!" + RAND_STRING + ")"), parseFloat(el) * Progressbox_Scaling/100 + "px" + RAND_STRING); //RAND_STRING to prevent the same value replaced twice
  835. });
  836. }
  837. progressboxCss = progressboxCss.replace(new RegExp(RAND_STRING, "g"), "").replace("ToBeAddedLater", unava_link_png); //inserting the unava_link_png at the end because the function messes up its base64 string
  838. GM_addStyle(progressboxCss);
  839. $('body').append(' <div id="warlc-progressbox">\
  840. <div class="warlc-progressbox-contents">\
  841. <div class="warlc-progressbar" aria-valuenow=0></div>\
  842. <div class="warlc-progressitems">\
  843. <span class="warlc-progressitem alive"></span>\
  844. <span class="warlc-progressitem adead"></span>\
  845. <span class="warlc-progressitem unava"></span>\
  846. <span class="warlc-progressitem processing"></span>\
  847. </div>\
  848. </div>\
  849. </div>\
  850. <div id="warlc-hostdetails"></div>');
  851. $('#warlc-progressbox').hide().click(function(){
  852. clearInterval(intervalId);
  853. $(this).hide();
  854. return false;
  855. });
  856. $(".warlc-progressitem").hover(function() {
  857. showHostDetails(this);
  858. }, function() {
  859. showHostDetails("none");
  860. });
  861. }
  862. function showHostDetails(item) {
  863. var $div = $("#warlc-hostdetails");
  864. if (item == "none") {
  865. $div.hide().removeClass();
  866. if ($("#warlc-progressbox").css("display") != "none") intervalId = setInterval(function() { updateProgress(); }, 1000);
  867. }
  868. else {
  869. var statusArr;
  870. var divTxt = "These Links are ";
  871. switch(item.className) {
  872. case "warlc-progressitem alive": divTxt += "Alive: "; statusArr = filehostsAlive; break;
  873. case "warlc-progressitem adead": divTxt += "Dead: "; statusArr = filehostsDead; break;
  874. case "warlc-progressitem unava": divTxt += "Unavailable: "; statusArr = filehostsUnava; break;
  875. case "warlc-progressitem processing": divTxt += "Still processing: "; statusArr = getProcHosts(); break;
  876. }
  877. $div.addClass(item.className);
  878. $("#warlc-progressbox").append($div);
  879. if (statusArr == "") divTxt = divTxt.replace("The following", "No").replace(":", ".");
  880. $div.text(divTxt + statusArr.slice(0,statusArr.length-1).replace(/,/g, ", "));
  881. clearInterval(intervalId);
  882. $div.show();
  883. }
  884. }
  885. function getProcHosts() {
  886. var filehostsProc = "";
  887. var $links = $(".processing_link");
  888. if ($links.length > 0) {
  889. var i = $links.length;
  890. var hostname;
  891. while (i--)
  892. {
  893. hostname = gimmeHostName2($links[i].href);
  894. if (!filehostsProc.contains(hostname)) {
  895. filehostsProc += hostname + ",";
  896. }
  897. }
  898. }
  899. return filehostsProc;
  900. }
  901. function dismissProgressbar() {
  902. $(".warlc-progressbar").fadeOut();
  903. $(".warlc-progressitem.processing").fadeOut();
  904. clearInterval(intervalId); //stops refreshing the stats
  905. }
  906.  
  907. // Updates progress data in progress box
  908. var percAlive, percDead, percUnava, percProc;
  909. function updateProgress()
  910. {
  911. if (cLinksTotal) // some links were detected on page
  912. {
  913. var percProgress = Math.round(((100 / cLinksTotal) * cLinksProcessed));
  914. var $progressItems = $('.warlc-progressitems > .warlc-progressitem');
  915. $(".warlc-progressbar").css("width", percProgress + "%");
  916. $(".warlc-progressbar").attr("aria-valuenow", percProgress);
  917. percAlive = Math.round((cLinksAlive / cLinksTotal) * 100);
  918. percDead = Math.round((cLinksDead / cLinksTotal) * 100);
  919. percUnava = Math.round((cLinksUnava / cLinksTotal) * 100);
  920. percUnknown = Math.round((cLinksUnknown / cLinksTotal) * 100);
  921. percProc = Math.round(((cLinksTotal - cLinksProcessed) / cLinksTotal) * 100);
  922. $progressItems.first().text(cLinksAlive + " - " + "Alive")
  923. .next().text(cLinksDead + " - " + "Dead")
  924. .next().text(cLinksUnava + " - " + "Unavailable")
  925. .next().text(cLinksUnknown + " - " + "Processing")
  926. .next().text(cLinksTotal - cLinksProcessed + " - " + percProc + "% Processing");
  927. if (percProgress > 0) $("#warlc-progressbox").show();
  928. if (percProgress == 100) dismissProgressbar();
  929. }
  930. }
  931.  
  932. function check_all_links()
  933. {
  934. add_WARLC_style();
  935.  
  936. initProgressBox();
  937. intervalId = setInterval(function(){updateProgress();}, 1000);
  938.  
  939. start(null);
  940. }
  941.  
  942. function KeyDownHandler(event)
  943. {
  944. var kcode = (event.keyCode) ? event.keyCode : event.which;
  945. if (event.ctrlKey && event.altKey)
  946. {
  947. switch(kcode)
  948. {
  949. case 65 : check_all_links(); break;
  950. case 67 : configuration(); break;
  951. }
  952. }
  953. }
  954.  
  955. //
  956. //
  957. // SCRIPT EXECUTION START POINT
  958. //
  959. //
  960. //init the stuff
  961. setVariables();
  962. if (RAND_INT == RAND_INT2) sendMessage(Array(16).join("wat" - 1) + " war");
  963.  
  964. //register GM menu commands & keyboard shortcut event handler
  965. $(document).keydown(KeyDownHandler);
  966. GM_registerMenuCommand("[War - Links Checker] Configuration (CTRL + ALT + C)", configuration);
  967. GM_registerMenuCommand("[War - Links Checker] Check All Links (CTRL + ALT + A)", check_all_links);
  968.  
  969. //start linkchecking
  970. $(document).ready(check_all_links);
  971. //
  972. //
  973. // SCRIPT EXECUTION END POINT
  974. //
  975. //
  976.  
  977. //shows configuration box
  978. function configuration()
  979. {
  980.  
  981. //prevent multiple creating of config window
  982. if ($("#hideshow").length)
  983. {
  984. $("#hideshow").show();
  985. return;
  986. }
  987. var settingsIcon = "data:image/png;base64,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";
  988. var configcss = '\
  989. .popup_block .popup fieldset{\
  990. padding: 1%;\
  991. border-style: none;\
  992. border-width: 0;\
  993. border-color: white;\
  994. margin-bottom: 1px;\
  995. }\
  996. .popup_block .popup hr {\
  997. height: 1px;\
  998. border-color:black;\
  999. }\
  1000. #WarTitle{\
  1001. font-size: 2em;\
  1002. width:100%;\
  1003. }\
  1004. #hideshow {\
  1005. position: fixed;\
  1006. width: 100%;\
  1007. height: 100%;\
  1008. top: 0;\
  1009. left: 0;\
  1010. font-size:12px;\
  1011. z-index:2147483647;\
  1012. text-align:left;\
  1013. }\
  1014. #fade {\
  1015. background: #000;\
  1016. position: fixed;\
  1017. width: 100%;\
  1018. height: 100%;\
  1019. opacity: .80;\
  1020. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";\
  1021. left: 0;\
  1022. z-index: 10;\
  1023. }\
  1024. .popup_block {\
  1025. font-family:verdana;\
  1026. color:black;\
  1027. background: #ddd;\
  1028. padding: 10px 20px;\
  1029. border: 2px solid #4DD9FF;\
  1030. float: left;\
  1031. width: 700px;\
  1032. position: absolute;\
  1033. top: 7%;\
  1034. left: 50%;\
  1035. bottom: 7%;\
  1036. margin: 0 0 0 -350px;\
  1037. -moz-border-radius:10px;\
  1038. z-index: 100;\
  1039. }\
  1040. .popup_block .popup {\
  1041. display: block;\
  1042. float: left;\
  1043. width: 100%;\
  1044. height: 95%;\
  1045. background: #fff;\
  1046. margin: 10px 0px;\
  1047. border: 1px solid #4DD9FF;\
  1048. }\
  1049. .popup p {\
  1050. padding: 1px 10px;\
  1051. margin: 0px 0;\
  1052. -x-system-font:none;\
  1053. font-family:verdana,geneva,lucida,"lucida grande",arial,helvetica,sans-serif;\
  1054. font-size:10pt;\
  1055. font-size-adjust:none;\
  1056. font-stretch:normal;\
  1057. font-style:normal;\
  1058. font-variant:normal;\
  1059. font-weight:normal;\
  1060. line-height:normal;\
  1061. }\
  1062. #note {\
  1063. font-size:7pt;\
  1064. color:gray;\
  1065. padding: 1px 10px;\
  1066. margin: 0px 0;display:inline-block;\
  1067. min-width:100px;\
  1068. }\
  1069. #configinfo {\
  1070. font-size:8pt;\
  1071. color:gray;\
  1072. padding: 1px 10px;\
  1073. margin: 0px 0;display:inline-block;width:60em;\
  1074. }\
  1075. #WarTabs > input[type="button"], .WarButtons > input[type="button"] {\
  1076. display: inline-block;\
  1077. font-size: 12px;\
  1078. font-weight: normal;\
  1079. background-color: rgb(238, 238, 238);\
  1080. background-position: 0px -178px;\
  1081. background-repeat: repeat-x;\
  1082. text-shadow: 0px 1px rgb(255, 255, 255);\
  1083. padding: 4px 8px;\
  1084. position: relative;\
  1085. overflow: hidden;\
  1086. color: rgb(51, 51, 51);\
  1087. margin: 0 0;\
  1088. border: 1px solid rgb(170, 170, 170);\
  1089. border-radius: 0 0 0 0;\
  1090. box-shadow: 0px 12px rgb(255, 255, 255) inset;\
  1091. float: left;\
  1092. }\
  1093. #WarTabs > input[type="button"] {\
  1094. border-bottom: none;\
  1095. }\
  1096. #WarSeparator {\
  1097. border-bottom: 1px solid rgb(170, 170, 170);\
  1098. margin-top: 24px;\
  1099. }\
  1100. #selectAllButton {\
  1101. border-radius: 3px 0 0 3px;\
  1102. border-right: none;\
  1103. }\
  1104. #invertButton {\
  1105. border-radius: 0 3px 3px 0;\
  1106. border-left: none;\
  1107. }\
  1108. #WarTabs > input[name="WarHosts"] {\
  1109. border-radius: 3px 0 0 0;\
  1110. border-right:none;\
  1111. margin-left:10px;\
  1112. }\
  1113. #WarTabs > input[name="WarAbout"] {\
  1114. border-radius: 0 3px 0 0;\
  1115. border-left:none;\
  1116. }\
  1117. .WarButtons > input[type="button"]:hover {\
  1118. padding: 5px 8px 3px;\
  1119. box-shadow: 0 0 white;\
  1120. background: none;\
  1121. }\
  1122. #WarTabs > input.activeTab {\
  1123. padding: 5px 8px 3px;\
  1124. box-shadow: 0 0 white;\
  1125. background: none;\
  1126. }\
  1127. .WarTab {\
  1128. display: none;\
  1129. }\
  1130. .WarButtons, #WarTabs, #warlcsitelist1 {\
  1131. margin-left: 5px;\
  1132. }\
  1133. #warlcsitelist1 {\
  1134. border-top: 1px solid grey;\
  1135. padding-top: 5px;\
  1136. overflow:auto;\
  1137. margin-top:2px;\
  1138. }\
  1139. .WarTabContainer {\
  1140. overflow:auto;\
  1141. }\
  1142. input:hover+label {\
  1143. background:#F1F77C;\
  1144. font-size:110%;\
  1145. }\
  1146. .popup_block .popup legend {\
  1147. display:block;\
  1148. width:100%;\
  1149. padding:0;\
  1150. margin-bottom:2px;\
  1151. font-size:15px;\
  1152. line-height:inherit;\
  1153. color:#333;\
  1154. border:0;\
  1155. border-bottom:1px solid #e5e5e5\
  1156. }\
  1157. ';
  1158.  
  1159. GM_addStyle(configcss);
  1160. var configurationinnerHTML =
  1161. '<div id="fade"></div>\
  1162. <div class="popup_block">\
  1163. <div class="popup">\
  1164. <div id="WarTitle" style="height: 1.2em"><img src=' + settingsIcon + ' style="height:35px;margin-left:2px;vertical-align:middle;"></img> W.A.R. Links Checker Customized</div><br>\
  1165. <div id="WarTabs">\
  1166. <input type="button" name="WarHosts" class="activeTab" value="File Hosts">\
  1167. <input type="button" name="WarSettings" value="Settings">\
  1168. <input type="button" name="WarAbout" value="About War">\
  1169. </div>\
  1170. <div id="WarSeparator"></div>\
  1171. <div id="WarHosts" class="WarTab">\
  1172. <br><div class="WarButtons">\
  1173. <input type="button" id="selectAllButton" value="Select All Hosts">\
  1174. <input type="button" id="selectNoneButton" value="Select None">\
  1175. <input type="button" id="invertButton" value="Invert">\
  1176. </div><br><br>\
  1177. <input style="margin-left:5px;" type="textbox" placeholder="Search For file host" id="hostSearchBox" value="">\
  1178. <div id="warlcsitelist1"><span>Empty</span></div>\
  1179. </div>\
  1180. <div id="WarSettings" class="WarTab">\
  1181. <br>\
  1182. <div id="WarPreferences" class="WarTabContainer">\
  1183. <fieldset>\
  1184. <legend>General settings</legend>\
  1185. <p>keyboard shortcuts\
  1186. <p>ctrl+alt+a = Check all links\
  1187. <p>ctrl+alt+c = Open Configuration Window\
  1188. <p><input type="checkbox" id="Do_not_linkify_DL_links"> Do NOT linkify DL links</p>\
  1189. <p><input type="checkbox" id="Allow_spaces_in_DL_links"> Allow spaces in DL links<br><div id="configinfo">Note: All links must end with a new line!</div></p>\
  1190. <p><input type="checkbox" id="Display_full_links_in_link_containers"> Display full links in link containers</p>\
  1191. <p><input type="checkbox" id="Display_tooltip_info"> Display tooltip info<br><div id="configinfo">Note: File name, file size, error messages etc.</p>\
  1192. </fieldset>\
  1193. <fieldset>\
  1194. <legend>Progress box settings</legend>\
  1195. <p>Horizontal positioning of the progressbox: <input type="text" id="Processbox_Pos_X"><br><div id="configinfo">Note: Define this value in percentages starting from the left of the screen.</div></p>\
  1196. <p>Vertical positioning of the progressbox: <input type="text" id="Processbox_Pos_Y"><br><div id="configinfo">Note: Define this value in percentages starting from the bottom of the screen.</div></p>\
  1197. <p>Scaling of the progressbox: <input type="text" id="Progressbox_Scaling"><br><div id="configinfo">Resizes the progressbox. Define this value in percentages. 100% = full size, 200% = double size, 0% = Off</div></p>\
  1198. </fieldset>\
  1199. <fieldset>\
  1200. <legend>Other options</legend>\
  1201. <p>Anonymizer: Select from dropdown box\
  1202. <select style="margin-left:5px;" id="redirector">\
  1203. <option>Lorem ipsum dolorem</option>\
  1204. </select></p>\
  1205. </div>\
  1206. </fieldset>\
  1207. </div>\
  1208. <div id="WarAbout" class="WarTab">\
  1209. <br>\
  1210. <div class="WarTabContainer">\
  1211. <fieldset>\
  1212. <legend>W.A.R. Links Checker Customized v' + War_version + '</legend>\
  1213. <p>Author: <a href="http://www.mentalps.5gbfree.com/viewtopic.php?f=2&t=3">mental</a></p>\
  1214. <p>Based on <a href="http://userscripts-mirror.org/scripts/show/125631.html">W.A.R. Links Checker - Dev</a></p>\
  1215. <p>Original by <a href="http://userscripts-mirror.org/users/302353">dkitty</a></p>\
  1216. </fieldset>\
  1217. <br />\
  1218. <fieldset>\
  1219. <legend>Currently supported Hosts</legend>\
  1220. <p>File Hosts: ' + allHostNames.length + '<br />\
  1221. Container Hosts: ' + allContainerNames.length + '<br />\
  1222. Obsolete Hosts: ' + allObsoleteNames.length + '<br /></p>\
  1223. </fieldset>\
  1224. <br />\
  1225. <fieldset>\
  1226. <legend>Uses</legend>\
  1227. <p>adam_3\'s <a href="http://userscripts-mirror.org/scripts/show/2254">Linkify ting</a> (modified)</p>\
  1228. <p><a href="http://jquery.com/">jQuery</a> JavaScript Library</p>\
  1229. </fieldset>\
  1230. <br />\
  1231. <fieldset>\
  1232. <legend>License</legend>\
  1233. <p>GPL version 3 or any later version (<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>)</p>\
  1234. </fieldset>\
  1235. </div>\
  1236. </div>\
  1237. </div>\
  1238. </div>';
  1239. $('body').append('<div id="hideshow">' + configurationinnerHTML + '</div>');
  1240. $("#WarHosts").show();
  1241. //sets height of warlcsitelist1
  1242. var totalHeight = $(".popup").height();
  1243. $("#warlcsitelist1").height(totalHeight - 155); $(".WarTabContainer").height(totalHeight - 90);
  1244. $("#WarSeparator").css("margin-top", 9 + $(".activeTab").height() + "px"); //because the buttons have a different height on the different themes
  1245. $("#WarTabs > input[type='button']").click(function() {
  1246. var $target = $(this);
  1247. var current = "#" + $(".activeTab").removeClass().attr("name"); $(current).hide();
  1248. var targetTab = "#" + $target.addClass("activeTab").attr("name"); $(targetTab).show();
  1249. });
  1250. $("#fade").click(function(event) {
  1251. $("#hideshow").hide(); event.preventDefault();
  1252. });
  1253. var elmHostList = document.getElementById("warlcsitelist1");
  1254. buildSettings();
  1255. buildSitelist("", allHostNames, elmHostList);
  1256. appendObsolete("", allObsoleteNames, elmHostList);
  1257. //handler for checkbox state change
  1258. function changeConfiguration(e)
  1259. {
  1260. var element = e.target;
  1261.  
  1262. if (element.type == 'checkbox')
  1263. {
  1264. if (element.checked == 1)
  1265. {
  1266. lsSetVal("hosts", element.id, true);
  1267. }
  1268. else
  1269. {
  1270. lsSetVal("hosts", element.id, false);
  1271. }
  1272.  
  1273. }
  1274. }
  1275.  
  1276. //Selects all filehosting checkboxes
  1277. function selectAll()
  1278. {
  1279. $(":checkbox:visible:not(:checked)").prop("checked",true)
  1280. .each(function(index, element){lsSetVal("hosts", this.id, true)});
  1281. }
  1282.  
  1283. //Deselects all filehosting checkboxes
  1284. function selectNone()
  1285. {
  1286. $(":checkbox:visible:checked").prop("checked",false)
  1287. .each(function(index, element){lsSetVal("hosts", this.id, false)});
  1288. }
  1289.  
  1290. //Inverts filehosting checkboxes selection
  1291. function selectInvert()
  1292. {
  1293. var $checked = $(":checkbox:visible:checked");
  1294. var $unchecked = $(":checkbox:visible:not(:checked)");
  1295. $unchecked.prop("checked",true)
  1296. .each(function(index, element){lsSetVal("hosts", this.id, true)});
  1297. $checked.prop("checked",false)
  1298. .each(function(index, element){lsSetVal("hosts", this.id, false)});
  1299. }
  1300. //Sets anonymizer setting
  1301. function changeAnonymizer()
  1302. {
  1303. var val = $("#redirector").val();
  1304. lsSetVal("general", "Ref_anonymize_service", (val == ANONYMIZERS.length ? '' : ANONYMIZERS[val]));
  1305. $('#redirector option[value=' + val + ']').prop('selected', true);
  1306. }
  1307. //Sets selected redirector option
  1308. var anonlist = "";
  1309. $(ANONYMIZERS).each(function(index, value) {
  1310. anonlist += '<option value=' + index + (value == ANONYMIZE_SERVICE ? ' selected' : '') + '>' + gimmeHostName2(value) + '</option>';
  1311. });
  1312. anonlist += '<option value="' + ANONYMIZERS.length + '">No referer</option>';
  1313. $('#redirector').html(anonlist);
  1314. //Sets Processbox position setting
  1315. function changeProgBox(event) {
  1316. var setting;
  1317. switch(event.data.set) {
  1318. case "X": setting = "Processbox_Pos_X"; break;
  1319. case "Y": setting = "Processbox_Pos_Y"; break;
  1320. case "Scale": setting = "Progressbox_Scaling"; break;
  1321. }
  1322. var $setting = $("#" + setting);
  1323. var newSet = $setting.val().replace("%", "");
  1324. lsSetVal("general", setting, newSet);
  1325. }
  1326. //Sets value of Processbox position
  1327. $("#Processbox_Pos_X").val(Processbox_Pos_X + "%");
  1328. $("#Processbox_Pos_Y").val(Processbox_Pos_Y + "%");
  1329. $("#Progressbox_Scaling").val(Progressbox_Scaling + "%");
  1330.  
  1331. function buildSettings()
  1332. {
  1333. $("#WarPreferences :checkbox").each(function(){
  1334. $(this).prop("checked", genset($(this).attr("id")))
  1335. .click(function(e){
  1336. lsSetVal("general", $(this).attr("id"), $(this).prop("checked"));
  1337. setVariables();
  1338. });
  1339. })
  1340. }
  1341. //Dynamic build of host list
  1342. //param search [string] searches for hostnames matching search substring
  1343. //param siteNames [array] array of site names
  1344. //param targetNode [DOM Node] where the list should be built
  1345. // first child node is replaced
  1346. function buildSitelist(search, siteNames, targetNode)
  1347. {
  1348. var searchRegex = new RegExp("\\|?([\\w\\.-]*" + search.replace(/\./g,"\\.").replace(/-/g, "\\-") + "[\\w\\.-]*)\\|?", "i");
  1349. $(targetNode).empty().append("<fieldset id='WarHosts1'><legend>List of File Hosts</legend></fieldset>");
  1350. var $targetNode = $("#WarHosts1");
  1351. var searchedSite = "";
  1352. $.each(siteNames, function(i, site){
  1353. if (searchedSite = site.match(searchRegex))
  1354. {
  1355. var baseSite = site.replace(/\|.+/, ""); //filehosting main domain
  1356. //ensuring backward compatibility with the rest of code.
  1357. var oldRSLCvalue = "Check_" + baseSite.replace(/\|.+/, "").replace(/\./g,"_dot_").replace(/-/g, "_dash_") + "_links";
  1358. //
  1359. $targetNode.append('<input type="checkbox" id="' + oldRSLCvalue +'" />\
  1360. <label for="' + oldRSLCvalue + '">' + searchedSite[1] + '</label>' +
  1361. ((searchedSite[1] != baseSite) ? ('<div id="note"> ( ~ ' + baseSite + ' )</div>') : (""))
  1362. );
  1363. $("#" + oldRSLCvalue).prop("checked", hostSet(oldRSLCvalue, false))
  1364. .change(changeConfiguration);
  1365. $targetNode.append('<br />');
  1366. }
  1367. });
  1368. $(targetNode).append("<fieldset id='WarHosts2'><legend>Containers</legend></fieldset>");
  1369. $targetNode = $("#WarHosts2");
  1370. searchedSite = "";
  1371. $.each(allContainerNames, function(i, site) {
  1372. if (searchedSite = site.match(searchRegex)) {
  1373. var oldRSLCvalue = "Check_" + searchedSite[1].replace(/\|.+/, "").replace(/\./g,"_dot_").replace(/-/g, "_dash_") + "_links";
  1374. $targetNode.append('<input type="checkbox" id="' + oldRSLCvalue +'" />\
  1375. <label for="' + oldRSLCvalue + '">' + searchedSite[1] + '</label>');
  1376. $("#" + oldRSLCvalue).prop("checked", hostSet(oldRSLCvalue, false))
  1377. .change(changeConfiguration);
  1378. $targetNode.append('<br />');
  1379. }
  1380. });
  1381. }
  1382. //obsolete hosts checkbox
  1383. function appendObsolete(search, siteNames, targetNode) {
  1384. var searchRegex = new RegExp("\\|?([\\w\\.-]*" + search.replace(/\./g,"\\.").replace(/-/g, "\\-") + "[\\w\\.-]*)\\|?", "i");
  1385. $(targetNode).append('<fieldset id="WarHosts3"><legend>Obsolete hosts</legend><input type="checkbox" id="Obsolete_file_hosts" /><label for="Obsolete_file_hosts">Check obsolete file hosts</label><br /></fieldset>');
  1386. $("#Obsolete_file_hosts").prop("checked", hostSet("Obsolete_file_hosts", false))
  1387. .change(changeConfiguration);
  1388. var $targetNode = $("#WarHosts3");
  1389. var foundName = "";
  1390. $.each(siteNames, function(i, site){
  1391. if (foundName = siteNames[i].match(searchRegex))
  1392. {
  1393. $targetNode.append('<div id="note">' + foundName[1] + '</div>');
  1394. }
  1395. })
  1396. }
  1397. //event listener binding
  1398. $("#hostSearchBox").keyup(function() {
  1399. buildSitelist($("#hostSearchBox").val(), allHostNames, elmHostList);
  1400. appendObsolete($("#hostSearchBox").val(), allObsoleteNames, elmHostList);
  1401. });
  1402. $("#selectAllButton").click(selectAll);
  1403. $("#selectNoneButton").click(selectNone);
  1404. $("#invertButton").click(selectInvert);
  1405. $("#redirector").change(changeAnonymizer);
  1406. $("#Processbox_Pos_X").change({ set: "X" }, changeProgBox);
  1407. $("#Processbox_Pos_Y").change({ set: "Y" }, changeProgBox);
  1408. $("#Progressbox_Scaling").change({ set: "Scale" }, changeProgBox);
  1409. //buttons and edit boxes init end
  1410. }
  1411.  
  1412. //Objects for linkchecking
  1413. var hostsIDs = {}; //hosts IDs and link regexes
  1414. var hostsCheck = {}; //host status IDs and links
  1415. var foundMirrors = { //mirrors found on the page, listed by type of check
  1416. BC: [],
  1417. HC: [],
  1418. OH: [],
  1419. RH: [],
  1420. WC: []
  1421. }
  1422.  
  1423. //begin standard link checking algorithm
  1424. function start(filterId)
  1425. {
  1426. var doNotLinkify = Do_not_linkify_DL_links;
  1427. var redirectorTypes = { "HTTP_302": 0,
  1428. "INNER_LINK": 1};
  1429.  
  1430. // USER SELECTED FILE HOSTS INITIALIZATION START
  1431. if (!filterId) {
  1432. initFileHosts();
  1433. initBulkHosts();
  1434. initRedirectors();
  1435. initFileHostsHeadersOnly();
  1436. }
  1437. // USER SELECTED FILE HOSTS INITIALIZATION END
  1438.  
  1439. // LINKIFICATION START
  1440. linkify(filterId);
  1441. //LINKIFICATION END
  1442.  
  1443. //
  1444. //HANDLING REDIRECTORS START
  1445. //
  1446. var redirFunctions = {
  1447. //HTTP_302
  1448. HTTP_302_TRIES: 0,
  1449. processRedirectorLink: function(links, redirectorId) {
  1450. $.each(links, function(key, value) {
  1451. $('[href="' + value + '"]').removeClass().addClass('container_link');
  1452. });
  1453.  
  1454. GM_xmlhttpRequest({
  1455. method: 'POST',
  1456. url: 'http://war.pw/decrypt',
  1457. data: 'links=' + links.join(RAND_STRING),
  1458. headers: {
  1459. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  1460. 'Content-type': 'application/x-www-form-urlencoded',
  1461. 'Referer': 'http://war.pw',
  1462. 'X-Requested-With': 'XMLHttpRequest'
  1463. },
  1464. onload: function(result) {
  1465. if (result.status != 200) return;
  1466.  
  1467. var links = JSON.parse(result.responseText);
  1468. var deadlinks = [], failedlinks = [];
  1469.  
  1470. $.each(links, function(key, value) {
  1471. if (value.success) {
  1472. hostsCheck[redirectorId].cProcessed++;
  1473. link = $('[href="' + key + '"]').first();
  1474. link.attr('href', value.link);
  1475. if (Display_full_links_in_link_containers) link.html(value.link);
  1476.  
  1477. } else if (value.error == 'ERROR: Not Found (HTTP_STATUS: 404)') {
  1478. hostsCheck[redirectorId].cProcessed++;
  1479. deadlinks.push(key);
  1480.  
  1481. } else if (value.error.contains('ERROR: ')) {
  1482. hostsCheck[redirectorId].cProcessed++;
  1483. failedlinks.push(key);
  1484. console.warn('Error in decrypting link.\r\nLink: ' + key + '\r\nError thrown: ' + value.error + '\r\nAdditional information:', value);
  1485. }
  1486. });
  1487. if (failedlinks.length > 0) DisplayTheCheckedLinks(failedlinks, 'unknown_link');
  1488. if (deadlinks.length > 0) DisplayTheCheckedLinks(deadlinks, 'adead_link');
  1489. checkLinks('container_link');
  1490. },
  1491. onerror: function(result) {
  1492. if (redirFunctions.HTTP_302_TRIES < 5) { //retry for max 10 times
  1493. redirFunctions.HTTP_302_TRIES++;
  1494. redirFunctions.processRedirectorLink(links, redirectorId);
  1495. } else {
  1496. DisplayTheCheckedLinks(links, 'unknown_link');
  1497. }
  1498. }
  1499. });
  1500. },
  1501. //INNER_LINK (Hotfile.com/links/)
  1502. processRedirectorLinkEx: function(link, redirectorId) {
  1503. link.className = 'container_link';
  1504. GM_xmlhttpRequest({
  1505. method: 'GET',
  1506. url: link.href,
  1507. headers: {
  1508. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  1509. 'Accept': 'text/xml',
  1510. 'Referer': ""
  1511. },
  1512. onload: function(result) {
  1513. link.href = result.responseText.match(hostsCheck[redirectorId].innerLinkRegex)[1];
  1514. hostsCheck[redirectorId].cProcessed++;
  1515. if (hostsCheck[redirectorId].cProcessed >= hostsCheck[redirectorId].cTotal)
  1516. checkLinks('container_link');
  1517. }
  1518. });
  1519. }
  1520. }
  1521. foundMirrors.RH = uniqArray(foundMirrors.RH);
  1522. redirLength = foundMirrors.RH.length;
  1523. if (redirLength > 0) {
  1524. //process redirector links
  1525. var hostID, links, y;
  1526. for(var redirIdx = 0; redirIdx < redirLength; redirIdx++)
  1527. {
  1528. hostID = foundMirrors.RH[redirIdx];
  1529. links = uniqArray(hostsCheck[hostID].links)
  1530. hostsCheck[hostID].cTotal = links.length;
  1531.  
  1532. cLinksTotal += links.length;
  1533. y = links.length;
  1534.  
  1535. if (hostsCheck[hostID].type == redirectorTypes.HTTP_302) {
  1536. var y = links.length;
  1537. while(y--) {
  1538. links[y] = links[y].href;
  1539. }
  1540. redirFunctions.processRedirectorLink(links, hostID);
  1541. } else {
  1542. while(y--) {
  1543. switch(hostsCheck[hostID].type) {
  1544. case redirectorTypes.INNER_LINK: redirFunctions.processRedirectorLinkEx(links[y], hostID); break;
  1545. default:
  1546. }
  1547. }
  1548. }
  1549. hostsCheck[hostID].links = [];
  1550. }
  1551. }
  1552. foundMirrors.RH = [];
  1553. //
  1554. //HANDLING REDIRECTORS END
  1555. //
  1556.  
  1557. //STANDARD LINKCHECKING START
  1558. foundMirrors.WC = uniqArray(foundMirrors.WC);
  1559. var WCLength = foundMirrors.WC.length;
  1560. if (WCLength > 0) {
  1561. var hostID, links, isAliveRegex, isDeadRegex, isUnavaRegex, tryLoop, y;
  1562. while(WCLength--) {
  1563. hostID = foundMirrors.WC[WCLength];
  1564. links = uniqArray(hostsCheck[hostID].links);
  1565. if (filterId == null)
  1566. {
  1567. cLinksTotal += links.length;
  1568. }
  1569.  
  1570. isAliveRegex = hostsCheck[hostID].liveRegex;
  1571. isDeadRegex = hostsCheck[hostID].deadRegex;
  1572. isUnavaRegex = hostsCheck[hostID].unavaRegex;
  1573. tryLoop = hostsCheck[hostID].tryLoop;
  1574.  
  1575. y = links.length;
  1576.  
  1577. while (y--)
  1578. {
  1579. geturl(links[y], isAliveRegex, isDeadRegex, isUnavaRegex, tryLoop);
  1580. }
  1581. hostsCheck[hostID].links = [];
  1582. }
  1583. }
  1584. foundMirrors.WC = [];
  1585. //STANDARD LINKCHECKING END
  1586. //OBSOLETE FILE HOSTS PROCESSING START
  1587. foundMirrors.OH = uniqArray(foundMirrors.OH);
  1588. var OHLength = foundMirrors.OH.length;
  1589. if (OHLength > 0) {
  1590. var hostID, links, y;
  1591. while(OHLength--) {
  1592. hostID = foundMirrors.OH[OHLength];
  1593. links = uniqArray(hostsCheck[hostID].links);
  1594. if (filterId == null)
  1595. {
  1596. cLinksTotal += links.length;
  1597. }
  1598.  
  1599. y = links.length;
  1600.  
  1601. while (y--)
  1602. {
  1603. $(links[y]).attr('warlc_error', 'Cause of error: <b>Obsolete filehosting.</b>');
  1604. displayTheCheckedLink(links[y], "obsolete_link");
  1605. }
  1606. hostsCheck[hostID].links = [];
  1607. }
  1608. }
  1609. foundMirrors.OH = [];
  1610. //OBSOLETE FILE HOSTS PROCESSING END
  1611.  
  1612. //DIRECT LINKCHECKING START
  1613. foundMirrors.HC = uniqArray(foundMirrors.HC);
  1614. var HCLength = foundMirrors.HC.length;
  1615. if (HCLength > 0) {
  1616. var hostID, links, isAliveRegex, isDeadRegex, y;
  1617. while(HCLength--) {
  1618. hostID = foundMirrors.HC[HCLength];
  1619. links = uniqArray(hostsCheck[hostID].links);
  1620. if (filterId == null)
  1621. {
  1622. cLinksTotal += links.length;
  1623. }
  1624.  
  1625. isAliveRegex = hostsCheck[hostID].liveRegex;
  1626. isDeadRegex = hostsCheck[hostID].deadRegex;
  1627.  
  1628. y = links.length;
  1629.  
  1630. while (y--)
  1631. {
  1632. geturlHeader(links[y], isAliveRegex, isDeadRegex);
  1633. }
  1634. hostsCheck[hostID].links = [];
  1635. }
  1636. }
  1637. foundMirrors.HC = [];
  1638. //DIRECT LINKCHECKING END
  1639.  
  1640. //Bulkcheck hosts controller
  1641. foundMirrors.BC = uniqArray(foundMirrors.BC);
  1642. var BCLength = foundMirrors.BC.length;
  1643. if (BCLength > 0) {
  1644. var hostID, links, y, corrLink, m, n;
  1645. while(BCLength--) {
  1646. hostID = foundMirrors.BC[BCLength];
  1647. links = uniqArray(hostsCheck[hostID].links);
  1648. if (filterId == null)
  1649. {
  1650. cLinksTotal += links.length;
  1651. }
  1652. //Replace anchors by href's, and processes link corrections
  1653. y = links.length;
  1654. while(y--) {
  1655. corrLink = links[y].href;
  1656. if (hostsCheck[hostID].corrMatch && hostsCheck[hostID].corrMatch.test(corrLink)) corrLink = corrLink.match(hostsCheck[hostID].corrMatch)[1]; //link match corrections
  1657. if (hostsCheck[hostID].corrReplWhat && hostsCheck[hostID].corrReplWith) corrLink = corrLink.replace(hostsCheck[hostID].corrReplWhat, hostsCheck[hostID].corrReplWith); //link replace corrections
  1658. links[y] = corrLink;
  1659. }
  1660. //Filter out dupe links
  1661. links = uniqArray(links);
  1662. m = links.length;
  1663. n = hostsCheck[hostID].blockSize;
  1664. if (m > n) {
  1665. //insert block separators (RAND_STRING) into the array
  1666. for(var i = n; i < (Math.floor(m/n)+1)*n; i += n + 1)
  1667. {
  1668. links.splice(i, 0, RAND_STRING);
  1669. }
  1670. }
  1671. var sep = hostsCheck[hostID].splitSeparator;
  1672. hostsCheck[hostID].func.call({ links: links.join(sep).replace(new RegExp(sep.replace(/\\/g, "\\") + RAND_STRING + sep.replace(/\\/g, "\\"), "g"), RAND_STRING).replace(new RegExp(RAND_STRING + "$"), "").split(RAND_STRING),
  1673. apiUrl: hostsCheck[hostID].apiUrl,
  1674. postData: hostsCheck[hostID].postData,
  1675. resLinkRegex: hostsCheck[hostID].resLinkRegex,
  1676. resLiveRegex: hostsCheck[hostID].resLiveRegex,
  1677. resDeadRegex: hostsCheck[hostID].resDeadRegex,
  1678. resUnavaRegex: hostsCheck[hostID].resUnavaRegex,
  1679. separator: sep
  1680. });
  1681. hostsCheck[hostID].links.length = 0;
  1682. }
  1683. }
  1684. foundMirrors.BC = [];
  1685. //Processes link
  1686. //
  1687. // [string] link link URL
  1688. // [string] isAliveRegex alive link regex
  1689. // [string] isDeadRegex dead link regex
  1690. // [string] isUnavaRegex unavailable link regex
  1691. // [boolean] tryLoop repeats request until succeeded
  1692. function geturl(link, isAliveRegex, isDeadRegex, isUnavaRegex, tryLoop)
  1693. {
  1694. if ((link.href.contains("yourfilelink.com/")) && (!link.href.contains("&dv=1"))) link.href += "&dv=1"; //to bypass yourfilelink wait times
  1695. link.href = link.href.replace("shareplace.com/?", "shareplace.com/index1.php?a="); //to bypass shareplace iframe on shareplace.com/?{id} links
  1696. GM_xmlhttpRequest(
  1697. {
  1698. method: 'GET',
  1699. url: link.href,
  1700. headers: {
  1701. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  1702. 'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
  1703. 'Referer': ""
  1704. },
  1705. onload: function (result)
  1706. {
  1707. var res = result.responseText;
  1708. if (result.responseHeaders.match(/Content-Disposition: attachment; filename=/))//direct download, simple version
  1709. {
  1710. displayTheCheckedLink(link, 'alive_link');
  1711. return;
  1712. }
  1713.  
  1714. //console.log(res);
  1715.  
  1716. if (res.contains(isAliveRegex))
  1717. {
  1718. displayTheCheckedLink(link, 'alive_link');
  1719. return;
  1720. }
  1721.  
  1722. if (res.contains(isDeadRegex))
  1723. {
  1724. displayTheCheckedLink(link, 'adead_link');
  1725. return;
  1726. }
  1727.  
  1728. if (res.contains(isUnavaRegex))
  1729. {
  1730. displayTheCheckedLink(link, 'unava_link');
  1731. return;
  1732. }
  1733.  
  1734. var resStatus = result.status;
  1735.  
  1736. if (resStatus == 404)
  1737. {
  1738. displayTheCheckedLink(link, 'adead_link');
  1739. return;
  1740. }
  1741. if (resStatus == 500 || resStatus == 503 || resStatus == 403) //not found/available/temp. unava
  1742. {
  1743. if (tryLoop)
  1744. {
  1745. //wait 1-5 seconds and repeat the request
  1746. setTimeout(function(){geturl(link, isAliveRegex, isDeadRegex, isUnavaRegex, tryLoop)}, 1000 + (Math.random() * 4000));
  1747. }
  1748. else
  1749. {
  1750. displayTheCheckedLink(link, 'unava_link');
  1751. }
  1752.  
  1753. return;
  1754. }
  1755. displayTheCheckedLink(link, 'unknown_link');
  1756. res = "";
  1757. },
  1758. onerror: function ()
  1759. {
  1760. displayTheCheckedLink(link, 'unknown_link');
  1761. }
  1762. });
  1763. }
  1764.  
  1765. function geturlHeader(link, isAliveRegex, isDeadRegex)
  1766. {
  1767. if (link.href.contains("disk.karelia.pro/") && !link.href.contains(/karelia\.pro\/fast\/\w+\/.+?/)) {
  1768. geturl(link, 'diskFile\"', '<div id="center">\n+<\/div>', 'optional--', false);
  1769. return;
  1770. }
  1771. if (link.href.contains("demo.ovh.") && link.href.contains("/download/")) {
  1772. specificOvhCheck(link);
  1773. return;
  1774. }
  1775. GM_xmlhttpRequest(
  1776. {
  1777. method: 'HEAD',
  1778. url: link.href,
  1779. headers: {
  1780. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  1781. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  1782. 'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
  1783. 'Referer': ""
  1784. },
  1785. onload: function (result)
  1786. {
  1787. var resStatus = result.status;
  1788. var resHeaders = "";
  1789. if (resStatus == 403 || resStatus == 404 || resStatus == 500) //not found/available
  1790. {
  1791. displayTheCheckedLink(link, 'adead_link');
  1792. return;
  1793. }
  1794. if (resStatus == 509) //public traffic exhausted
  1795. {
  1796. displayTheCheckedLink(link, 'unava_link');
  1797. return;
  1798. }
  1799.  
  1800. resHeaders = result.responseHeaders;
  1801. //console.log(resHeaders);
  1802.  
  1803. if (resHeaders.contains(isDeadRegex) && !link.href.contains('archive.org/'))
  1804. {
  1805. displayTheCheckedLink(link, 'adead_link');
  1806. return;
  1807. } else if (link.href.contains('archive.org/') && resHeaders.contains(isDeadRegex)) {
  1808. specArchCheck(link);
  1809. return;
  1810. }
  1811.  
  1812. if (resHeaders.contains(isAliveRegex))
  1813. {
  1814. displayTheCheckedLink(link, 'alive_link');
  1815. return;
  1816. }
  1817. displayTheCheckedLink(link, 'unknown_link');
  1818. },
  1819. onerror: function ()
  1820. {
  1821. displayTheCheckedLink(link, 'unknown_link');
  1822. }
  1823. });
  1824. }
  1825. function specArchCheck(link) {
  1826. var alive = /<title>Index of/;
  1827. var dead = /<h1>Item not available<\/h1>/;
  1828. var unava = /optional--/;
  1829. geturl(link, alive, dead, unava);
  1830. }
  1831. //Specific handler for demo.ovh.eu/download/ direct link
  1832. function specificOvhCheck(link) {
  1833. GM_xmlhttpRequest(
  1834. {
  1835. method: 'HEAD',
  1836. url: link.href,
  1837. headers: {
  1838. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  1839. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  1840. 'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
  1841. 'Referer': ""
  1842. },
  1843. onload: function (result)
  1844. {
  1845. var resHeaders = "";
  1846. resHeaders = result.responseHeaders;
  1847. if (resHeaders.contains('Content-Type: application/octet-stream'))
  1848. {
  1849. displayTheCheckedLink(link, 'alive_link');
  1850. return;
  1851. }
  1852. if (resHeaders.contains('Content-Type: text/html'))
  1853. {
  1854. var liveRegex = 'download.gif"';
  1855. var deadRegex = 'p_point">';
  1856. var unavRegex = 'optional--';
  1857. geturl(link, liveRegex, deadRegex, unavRegex);
  1858. return;
  1859. }
  1860.  
  1861. },
  1862. onerror: function ()
  1863. {
  1864. displayTheCheckedLink(link, 'unava_link');
  1865. }
  1866. });
  1867. }
  1868.  
  1869. //Delinkfifies the <a> element object
  1870. function delinkifyLink(link)
  1871. {
  1872. var spanElm = document.createElement("span");
  1873. spanElm.className = link.className;
  1874. spanElm.innerHTML = link.innerHTML;
  1875.  
  1876. if (Display_tooltip_info)
  1877. {
  1878. spanElm.href = link.href;
  1879. $(spanElm).attr('warlc_error', $(link).attr('warlc_error'));
  1880. switch (link.className){
  1881. case "alive_link": spanElm.addEventListener("mouseover", displayTooltipInfo, false); break
  1882. case "adead_link": spanElm.addEventListener("mouseover", displayTooltipError, false); break;
  1883. case "unava_link": //reserved
  1884. default:
  1885. }
  1886. }
  1887. link.parentNode.replaceChild(spanElm, link);
  1888. }
  1889.  
  1890. //Assigns result status to the <a> element object and calls delinkifying eventually
  1891. //Possible result states: adead_link, alive_link, unava_link
  1892. function displayTheCheckedLink(link, resultStatus)
  1893. {
  1894. //console.log(link);
  1895. link.className = resultStatus;
  1896. var hostname = gimmeHostName2(link.href);
  1897. link.href = ANONYMIZE_SERVICE + link.href;
  1898. if (Display_tooltip_info)
  1899. {
  1900. switch (resultStatus){
  1901. case "alive_link": link.addEventListener("mouseover", displayTooltipInfo, false); break;
  1902. case "adead_link": link.addEventListener("mouseover", displayTooltipError, false); break;
  1903. case "obsolete_link": link.addEventListener("mouseover", displayTooltipError, false); break;
  1904. case "unava_link": //reserved
  1905. default:
  1906. }
  1907. }
  1908. if (doNotLinkify)
  1909. {
  1910. delinkifyLink(link);
  1911. }
  1912. cLinksProcessed++;
  1913.  
  1914. if (resultStatus == "alive_link")
  1915. {
  1916. cLinksAlive++;
  1917. if (!filehostsAlive.contains(hostname)) filehostsAlive += hostname + ",";
  1918. return;
  1919. }
  1920.  
  1921. if (resultStatus == "adead_link")
  1922. {
  1923. cLinksDead++;
  1924. if (!filehostsDead.contains(hostname)) filehostsDead += hostname + ",";
  1925. return;
  1926. }
  1927. if (resultStatus == "obsolete_link")
  1928. {
  1929. cLinksDead++;
  1930. if (!filehostsDead.contains(hostname)) filehostsDead += hostname + ",";
  1931. return;
  1932. }
  1933.  
  1934. if (resultStatus == "unava_link")
  1935. {
  1936. if (!filehostsUnava.contains(hostname)) filehostsUnava += hostname + ",";
  1937. cLinksUnava++;
  1938. }
  1939. if (resultStatus == "unknown_link")
  1940. {
  1941. if (!filehostsUnknown.contains(hostname)) filehostsUnknown += hostname + ",";
  1942. cLinksUnknown++;
  1943. }
  1944. }
  1945. function DisplayTheCheckedLinks(links, resultStatus, tooltipInfo)
  1946. {
  1947. //(a[href*=link_1], a[href*=link_2], ..., a[href*=link_n])
  1948. var $links = $('a[href*="' + links.join('"], a[href*="') + '"]');
  1949. if (Do_not_linkify_DL_links)
  1950. { //TODO into separate jQuery function
  1951. $links.replaceWith(function(){
  1952. return '<span href="' + this.href + '">' + $(this).text() + '</span>';
  1953. });
  1954. $links = $('span[href*="' + links.join('"], span[href*="') + '"]');
  1955. }
  1956. $links.removeClass().addClass(resultStatus);
  1957. if (tooltipInfo && resultStatus == 'unknown_link' && Display_tooltip_info) {
  1958. $links.mouseover(displayTooltipError);
  1959. $links.attr('warlc_error', 'Cause of error: <b>' + tooltipInfo + '</b>');
  1960. }
  1961. var hostname = gimmeHostName2($links[0].href);
  1962. $links.each(function() {
  1963. if (!this.href.contains('mega.co.nz')&&!this.href.contains('mega.nz')) this.href = ANONYMIZE_SERVICE + $(this).attr("href");
  1964. });
  1965. switch(resultStatus)
  1966. {
  1967. case "alive_link": cLinksAlive += $links.length;
  1968. if (Display_tooltip_info) $links.mouseover(displayTooltipInfo);
  1969. if (!filehostsAlive.contains(hostname)) filehostsAlive += hostname + ",";
  1970. break;
  1971. case "adead_link": cLinksDead += $links.length;
  1972. if (Display_tooltip_info) $links.mouseover(displayTooltipError);
  1973. if (!filehostsDead.contains(hostname)) filehostsDead += hostname + ",";
  1974. break;
  1975. case "obsolete_link": cLinksDead += $links.length;
  1976. if (Display_tooltip_info) $links.mouseover(displayTooltipError);
  1977. if (!filehostsDead.contains(hostname)) filehostsDead += hostname + ",";
  1978. break;
  1979. case "unava_link": cLinksUnava += $links.length;
  1980. if (!filehostsUnava.contains(hostname)) filehostsUnava += hostname + ",";
  1981. break;
  1982. default:
  1983. }
  1984. cLinksProcessed += $links.length;
  1985. }
  1986. function initRedirectors()
  1987. {
  1988. var aRCount = 1;
  1989. function addRedirector(hostName, linkRegex, redirType, innerLinkRegex)
  1990. {
  1991. hostName = hostName.split("|");
  1992. var i = hostName.length;
  1993. var hostID = "RH" + aRCount;
  1994. while(i--) {
  1995. var filehost = hostName[i].replace(/\./g, "_dot_").replace(/\-/g, "_dash_");
  1996. if (!hostsIDs[filehost]) {
  1997. hostsIDs[filehost] = [];
  1998. }
  1999. hostsIDs[filehost].push({
  2000. hostID: hostID,
  2001. linkRegex: linkRegex,
  2002. });
  2003. }
  2004. var RHObj = {
  2005. cProcessed: 0,
  2006. cTotal: 0,
  2007. type: redirType,
  2008. innerLinkRegex: innerLinkRegex,
  2009. links: []
  2010. }
  2011. hostsCheck[hostID] = RHObj;
  2012. aRCount++;
  2013. }
  2014.  
  2015. if (hostSet("Check_safelinking_dot_net_links", false))
  2016. {
  2017. addRedirector(
  2018. 'safelinking.net',
  2019. 'safelinking\\.net\/d\/\\w{10}',
  2020. redirectorTypes.HTTP_302,
  2021. null);
  2022. }
  2023.  
  2024. }
  2025. function initBulkHosts()
  2026. {
  2027. var aHCount = 1;
  2028. function addHost(hostName, linkRegex, blockSize, corrMatch, corrReplWhat, corrReplWith, splitSeparator,
  2029. apiUrl, postData, resLinkRegex, resLiveRegex, resDeadRegex, resUnavaRegex, func)
  2030. {
  2031. hostName = hostName.split("|");
  2032. var i = hostName.length;
  2033. var hostID = "BC" + aHCount;
  2034. while(i--) {
  2035. var filehost = hostName[i].replace(/\./g, "_dot_").replace(/\-/g, "_dash_");
  2036. if (!hostsIDs[filehost]) {
  2037. hostsIDs[filehost] = [];
  2038. }
  2039. hostsIDs[filehost].push({
  2040. hostID: hostID,
  2041. linkRegex: linkRegex,
  2042. });
  2043. }
  2044. var BCObj = {
  2045. blockSize: 50,
  2046. corrMatch: corrMatch,
  2047. corrReplWhat: corrReplWhat,
  2048. corrReplWith: corrReplWith,
  2049. splitSeparator: '\r\n',
  2050. apiUrl: apiUrl,
  2051. postData: postData,
  2052. resLinkRegex: resLinkRegex,
  2053. resLiveRegex: resLiveRegex,
  2054. resDeadRegex: resDeadRegex,
  2055. resUnavaRegex: resUnavaRegex,
  2056. func: genBulkCheck,
  2057. links: []
  2058. }
  2059. if (blockSize != null) {
  2060. BCObj.blockSize = blockSize;
  2061. }
  2062. if (splitSeparator != null) {
  2063. BCObj.splitSeparator = splitSeparator;
  2064. }
  2065. if (func != null) {
  2066. BCObj.func = func;
  2067. }
  2068. hostsCheck[hostID] = BCObj;
  2069. aHCount++;
  2070. }
  2071. var genType1 = [ { host: "rodfile.com", apiurl: "default" },
  2072. { host: "failai.lt", apiurl: "default" },
  2073. { host: "rarefile.net", apiurl: "default" },
  2074. { host: "ddlstorage.com", apiurl: "default" },
  2075. { host: "filesabc.com", apiurl: "http://filesabc.com/checkfiles.html" },
  2076. { host: "sharebeast.com", apiurl: "default" },
  2077. { host: "uploadbaz.com", apiurl: "default" },
  2078. { host: "180upload.com", apiurl: "http://180upload.com/checkfiles.html" },
  2079. { host: "180upload.nl", apiurl: "http://180upload.com/checkfiles.html" },
  2080. { host: "filesbb.com", apiurl: "http://filesbb.com/checkfiles.html" },
  2081. { host: "exfilehost.com", apiurl: "http://exfilehost.com/checkfiles.html" },
  2082. { host: "zomgupload.com", apiurl: "default" },
  2083. { host: "filemaze.ws", apiurl: "default" },
  2084. { host: "upafile.com", apiurl: "http://upafile.com/checkfiles.html" },
  2085. { host: "novafile.com", apiurl: "http://novafile.com/checkfiles.html" },
  2086. { host: "longfiles.com", apiurl: "http://longfiles.com/checkfiles.html" },
  2087. { host: "youwatch.org", apiurl: "http://youwatch.org/checkfiles.html" },
  2088. { host: "fileband.com", apiurl: "http://fileband.com/checkfiles.html" },
  2089. { host: "speedvid.tv", apiurl: "http://speedvid.tv/checkfiles.html" },
  2090. { host: "sharerepo.com", apiurl: "http://sharerepo.com/checkfiles.html" },
  2091. { host: "freestorage.ro", apiurl: "http://freestorage.ro/checkfiles.html" },
  2092. { host: "imzupload.com", apiurl: "default" },
  2093. { host: "allmyvideos.net", apiurl: "http://allmyvideos.net/checkfiles.html" },
  2094. { host: "movdivx.com", apiurl: "default" },
  2095. { host: "gorillavid.in", apiurl: "http://gorillavid.in/checkfiles.html" },
  2096. { host: "vidto.me", apiurl: "http://vidto.me/checkfiles.html" },
  2097. { host: "filesline.com", apiurl: "default" },
  2098. { host: "upitus.net", apiurl: "default" },
  2099. { host: "fastflv.com", apiurl: "default" },
  2100. { host: "swankshare.com", apiurl: "default" },
  2101. { host: "ryushare.com", apiurl: "http://ryushare.com/checkfiles.python" },
  2102. { host: "vidhog.com", apiurl: "http://www.vidhog.com/checkfiles.html" },
  2103. { host: "file4safe.com", apiurl: "http://www.file4safe.com/?op=checkfiles" },
  2104. { host: "uplds.com", apiurl: "http://uplds.com/checkfiles.html" },
  2105. { host: "roshare.info", apiurl: "http://roshare.info/?op=checkfiles" },
  2106. { host: "netkozmos.com", apiurl: "http://www.netkozmos.com/checkfiles.html" },
  2107. { host: "loadpot.net", apiurl: "http://www.loadpot.net/checkfiles.html" },
  2108. { host: "vodlocker.com", apiurl: "http://vodlocker.com/checkfiles.html" },
  2109. { host: "vidx.to", apiurl: "http://vidx.to/?op=checkfiles" },
  2110. { host: "foxishare.com", apiurl: "http://foxishare.com/checkfiles.html" },
  2111. { host: "uploadzeal.com", apiurl: "http://www.uploadzeal.com/checkfiles.html" },
  2112. { host: "played.to", apiurl: "http://played.to/?op=checkfiles" },
  2113. { host: "streamin.to", apiurl: "http://streamin.to/checkfiles.html" },
  2114. { host: "vidspot.net", apiurl: "http://vidspot.net/?op=checkfiles" },
  2115. { host: "bestreams.net", apiurl: "http://bestreams.net/?op=checkfiles" },
  2116. { host: "treesfile.com", apiurl: "http://treesfile.com/checkfiles.html" },
  2117. { host: "treefiles.com", apiurl: "http://treesfile.com/checkfiles.html" }, //same host as treesfile.com
  2118. { host: "treefile.org", apiurl: "http://treesfile.com/checkfiles.html" }, //same host as treesfile.com
  2119. ];
  2120. var genType2 = [ { host: "donevideo.com", apiurl: "http://www.donevideo.com/?op=checkfiles" },
  2121. { host: "sanshare.com", apiurl: "http://sanshare.com/?op=checkfiles" },
  2122. { host: "mightyupload.com", apiurl: "http://mightyupload.com/?op=checkfiles" },
  2123. { host: "megafiles.se", apiurl: "http://megafiles.se/?op=checkfiles" },
  2124. { host: "rapidapk.com", apiurl: "http://rapidapk.com/?op=checkfiles" },
  2125. { host: "isavelink.com", apiurl: "http://isavelink.com/?op=checkfiles" },
  2126. { host: "4savefile.com", apiurl: "http://4savefile.com/?op=checkfiles" },
  2127. { host: "daj.to", apiurl: "http://daj.to/?op=checkfiles" },
  2128. { host: "vidup.me", apiurl: "http://vidup.me/?op=checkfiles" },
  2129. { host: "verzend.be", apiurl: "http://verzend.be/?op=checkfiles" },
  2130. { host: "arabloads.com", apiurl: "http://www.arabloads.net/?op=checkfiles" },
  2131. { host: "arabloads.net", apiurl: "http://www.arabloads.net/?op=checkfiles" },
  2132. { host: "amonshare.com", apiurl: "http://amonshare.com/?op=checkfiles" },
  2133. { host: "filewe.com", apiurl: "http://nornar.com/?op=checkfiles" },
  2134. { host: "nornar.com", apiurl: "http://nornar.com/?op=checkfiles" }, //same host as filewe.com
  2135. { host: "medoupload.com", apiurl: "http://medoupload.com/?op=checkfiles" },
  2136. { host: "file-speed.com", apiurl: "http://file-speed.com/?op=checkfiles" },
  2137. { host: "1st-files.com", apiurl: "http://www.1st-files.com/?op=checkfiles" },
  2138. { host: "katzfiles.com", apiurl: "http://katzfiles.com/?op=checkfiles" },
  2139. { host: "secureupload.eu", apiurl: "http://www.secureupload.eu/checklinks.html"},
  2140. { host: "cometfiles.com", apiurl: "http://www.cometfiles.com/checkfiles.html" },
  2141. { host: "clicktoview.org", apiurl: "http://clicktoview.org/?op=checkfiles" },
  2142. { host: "sinhro.net", apiurl: "http://sinhro.net/checkfiles.html" },
  2143. { host: "ortofiles.com", apiurl: "http://www.ortofiles.com/?op=checkfiles" },
  2144. { host: "blitzfiles.com", apiurl: "http://blitzfiles.com/?op=checkfiles" },
  2145. { host: "hulkload.com", apiurl: "http://www.hulkload.com/?op=checkfiles" },
  2146. { host: "sharingmaster.com", apiurl: "http://sharingmaster.com/?op=checkfiles" },
  2147. { host: "albafile.com", apiurl: "http://albafile.com/?op=checkfiles" },
  2148. { host: "expressleech.com", apiurl: "http://expressleech.com/?op=checkfiles" },
  2149. { host: "upshared.com", apiurl: "http://upshared.com/?op=checkfiles" },
  2150. { host: "filetug.com", apiurl: "http://www.filetug.com/checkfiles.html" },
  2151. { host: "exclusivefaile.com", apiurl: "http://exclusiveloader.com/?op=checkfiles" },
  2152. { host: "exclusiveloader.com",apiurl: "http://exclusiveloader.com/?op=checkfiles" }, //same host as exclusivefaile.com
  2153. { host: "videozed.net", apiurl: "http://videozed.net/?op=checkfiles" },
  2154. { host: "basicupload.com", apiurl: "http://www.basicupload.com/?op=checkfiles" },
  2155. { host: "sharesix.com", apiurl: "http://sharesix.com/?op=checkfiles" },
  2156. { host: "rapidfileshare.net", apiurl: "http://www.rapidfileshare.net/?op=checkfiles"},
  2157. { host: "igetfile.com", apiurl: "http://www.igetfile.com/?op=checkfiles" },
  2158. { host: "project-free-upload.com", apiurl: "http://project-free-upload.com/?op=checkfiles"},
  2159. { host: "vidbull.com", apiurl: "http://vidbull.com/checkfiles.html" },
  2160. { host: "sendmyway.com", apiurl: "http://www.sendmyway.com/?op=checkfiles" },
  2161. { host: "creafile.net", apiurl: "http://creafile.net/?op=checkfiles" },
  2162. { host: "unlimitshare.com", apiurl: "http://www.unlimitshare.com/?op=checkfiles"},
  2163. { host: "speedshare.eu", apiurl: "http://speedshare.eu/?op=checkfiles" },
  2164. { host: "uploadboy.com", apiurl: "http://uploadboy.com/?op=checkfiles" },
  2165. { host: "fiberstorage.net", apiurl: "http://fiberstorage.net/?op=checkfiles" },
  2166. { host: "uploadhunt.com", apiurl: "http://www.uploadhunt.com/?op=checkfiles" },
  2167. { host: "shareswift.com", apiurl: "http://shareswift.com/?op=checkfiles" },
  2168. { host: "epicshare.net", apiurl: "http://epicshare.net/?op=checkfiles" },
  2169. { host: "boomupload.net", apiurl: "http://boomupload.net/?op=checkfiles" },
  2170. { host: "fujifile.me", apiurl: "http://www.fujifile.me/?op=checkfiles" },
  2171. { host: "uncapped-downloads.com", apiurl: "http://uncapped-downloads.com/?op=checkfiles"},
  2172. { host: "pandamemo.com", apiurl: "http://www.pandamemo.com/checkfiles.html" },
  2173. { host: "spicyfile.com", apiurl: "http://spicyfile.com/checkfiles.html" },
  2174. { host: "hugefiles.net", apiurl: "http://www.hugefiles.net/?op=checkfiles" },
  2175. { host: "hyshare.com", apiurl: "http://hyshare.com/?op=checkfiles" },
  2176. { host: "filezy.net", apiurl: "http://filezy.net/?op=checkfiles" },
  2177. { host: "filesear.com", apiurl: "http://filesear.com/?op=checkfiles" },
  2178. { host: "megacache.net", apiurl: "http://megacache.net/?op=checkfiles" },
  2179. { host: "fileparadox.in", apiurl: "http://fileparadox.com/?op=checkfiles" },
  2180. { host: "fileparadox.com", apiurl: "http://fileparadox.com/?op=checkfiles" },
  2181. { host: "rapidstation.com", apiurl: "http://rapidstation.com/?op=checkfiles" },
  2182. { host: "potload.com", apiurl: "http://potload.com/?op=checkfiles" },
  2183. { host: "sube.me", apiurl: "http://sube.me/?op=checkfiles" },
  2184. { host: "akafile.com", apiurl: "http://akafile.com/?op=checkfiles" },
  2185. { host: "files2upload.net", apiurl: "http://files2upload.net/?op=checkfiles" },
  2186. { host: "backin.net", apiurl: "http://backin.net/?op=checkfiles" },
  2187. { host: "uploadscenter.com", apiurl: "http://www.uploadscenter.com/?op=checkfiles"},
  2188. { host: "guizmodl.net", apiurl: "http://www.guizmodl.net/?op=checkfiles" },
  2189. { host: "gigfiles.net", apiurl: "http://gigfiles.net/?op=checkfiles" },
  2190. { host: "upload-novalayer.com",apiurl: "http://upload-novalayer.com/?op=checkfiles"},
  2191. { host: "todayfile.com", apiurl: "http://todayfile.com/?op=checkfiles" },
  2192. { host: "sfshare.se", apiurl: "http://sfshare.se/?op=checkfiles" },
  2193. { host: "lemuploads.com", apiurl: "http://lemuploads.com/?op=checkfiles" },
  2194. { host: "divxpress.com", apiurl: "http://divxpress.com/?op=checkfiles" },
  2195. { host: "upgiga.com", apiurl: "http://www.upgiga.com/?op=checkfiles" },
  2196. { host: "koofile.com", apiurl: "http://koofile.com/op/checkfiles" },
  2197. { host: "earnupload.eu", apiurl: "http://earnupload.eu/?op=checkfiles" },
  2198. { host: "kingfiles.net", apiurl: "http://www.kingfiles.net/?op=checkfiles" },
  2199. { host: "shareblue.eu", apiurl: "http://shareblue.eu/?op=checkfiles" },
  2200. { host: "redload.net", apiurl: "http://redload.net/?op=checkfiles" },
  2201. { host: "grifthost.com", apiurl: "http://grifthost.com/?op=checkfiles" },
  2202. { host: "limevideo.net", apiurl: "http://limevideo.net/?op=checkfiles" },
  2203. { host: "lunaticfiles.com", apiurl: "http://lunaticfiles.com/?op=checkfiles" },
  2204. { host: "vozupload.com", apiurl: "http://vozupload.com/?op=checkfiles" },
  2205. { host: "kingsupload.com", apiurl: "http://kingsupload.com/?op=checkfiles" },
  2206. { host: "usefile.com", apiurl: "http://usefile.com/?op=checkfiles" },
  2207. { host: "vidplay.net", apiurl: "http://vidplay.net/?op=checkfiles" },
  2208. { host: "mydisc.net", apiurl: "http://mydisc.net/checkfiles.html" },
  2209. { host: "med1fire.com", apiurl: "http://med1fire.com/?op=checkfiles" },
  2210. { host: "stahuj.to", apiurl: "http://stahuj.to/?op=checkfiles" },
  2211. { host: "uploadnetwork.eu", apiurl: "http://uploadnetwork.eu/?op=checkfiles" },
  2212. { host: "cloudvidz.net", apiurl: "http://cloudvidz.net/?op=checkfiles" },
  2213. { host: "hexupload.com", apiurl: "http://hexupload.com/?op=checkfiles" },
  2214. // { host: "dogupload.com", apiurl: "http://www.filesfrog.net/?op=checkfiles" }, //same host as filesfrog
  2215. { host: "shareprofi.com", apiurl: "http://shareprofi.com/?op=checkfiles" },
  2216. { host: "salefiles.com", apiurl: "http://salefiles.com/?op=checkfiles" },
  2217. { host: "anafile.com", apiurl: "http://www.anafile.com/?op=checkfiles" },
  2218. { host: "bonanzashare.com", apiurl: "http://bonanzashare.com/?op=checkfiles" },
  2219. { host: "imgjungle.com", apiurl: "http://imgjungle.com/?op=checkfiles" },
  2220. { host: "unlimitzone.com", apiurl: "http://unlimitzone.com/?op=checkfiles" },
  2221. { host: "rosharing.com", apiurl: "http://rosharing.com/?op=checkfiles" },
  2222. { host: "storagely.com", apiurl: "http://storagely.com/?op=checkfiles" },
  2223. { host: "wipfiles.net", apiurl: "http://wipfiles.net/?op=checkfiles" },
  2224. { host: "uploadcapital.com", apiurl: "http://www.uploadcapital.com/?op=checkfiles"},
  2225. { host: "filemoney.com", apiurl: "http://filemoney.com/?op=checkfiles" },
  2226. { host: "filehoot.com", apiurl: "http://filehoot.com/?op=checkfiles" },
  2227. { host: "mxua.com", apiurl: "http://www.mxua.com/?op=checkfiles" },
  2228. { host: "uploadsat.com", apiurl: "http://uploadsat.com/?op=checkfiles" },
  2229. { host: "nodaup.com", apiurl: "http://uploadsat.com/?op=checkfiles" }, //same host as uploadsat
  2230. { host: "cloudyvideos.com", apiurl: "http://cloudyvideos.com/?op=checkfiles" },
  2231. { host: "idup.in", apiurl: "http://idup.in/?op=checkfiles" },
  2232. { host: "filedais.com", apiurl: "http://www.filedais.com/?op=checkfiles" },
  2233. { host: "fileforever.net", apiurl: "http://fileforever.net/?op=checkfiles" },
  2234. { host: "rioupload.com", apiurl: "http://rioupload.com/?op=checkfiles" },
  2235. { host: "medofire.co", apiurl: "http://medofire.co/?op=checkfiles" },
  2236. { host: "vshare.eu", apiurl: "http://vshare.eu/?op=checkfiles" },
  2237. { host: "hellupload.com", apiurl: "http://www.hellupload.com/checkfiles.html" },
  2238. { host: "hostingbulk.com", apiurl: "http://hostingbulk.com/?op=checkfiles" },
  2239. { host: "movreel.com", apiurl: "http://movreel.com/?op=checkfiles" },
  2240. { host: "thefile.me", apiurl: "http://thefile.me/?op=checkfiles" },
  2241. { host: "maxisharing.com", apiurl: "http://maxisharing.com/?op=checkfiles" },
  2242. { host: "spaceforfiles.com", apiurl: "http://www.filespace.com/?op=checkfiles" },
  2243. { host: "filespace.com", apiurl: "http://www.filespace.com/?op=checkfiles" }, //same host as spaceforfiles
  2244. { host: "city-upload.com", apiurl: "http://city-upload.com/?op=checkfiles" },
  2245. { host: "uploadrocket.net", apiurl: "http://uploadrocket.net/?op=checkfiles" },
  2246. { host: "bluehaste.com", apiurl: "http://bluehaste.com/?op=checkfiles" },
  2247. { host: "up09.com", apiurl: "http://file.up09.com/?op=checkfiles" },
  2248. { host: "1clickfiles.com", apiurl: "http://1clickfiles.com/?op=checkfiles" },
  2249. { host: "4downfiles.com", apiurl: "http://4downfiles.com/?op=checkfiles" },
  2250. { host: "filemup.com", apiurl: "http://www.filemup.com/?op=checkfiles" },
  2251. { host: "hottera.com", apiurl: "http://hottera.com/?op=checkfiles" },
  2252. { host: "lomafile.com", apiurl: "http://lomafile.com/?op=checkfiles" },
  2253. { host: "tuxfile.com", apiurl: "http://tuxfile.com/?op=checkfiles" },
  2254. { host: "filecloud.cc", apiurl: "http://filecloud.cc/?op=checkfiles" },
  2255. { host: "streamratio.com", apiurl: "http://www.streamratio.com/?op=checkfiles" },
  2256. { host: "flexydrive.com", apiurl: "http://flexydrive.com/?op=checkfiles" },
  2257. { host: "usersfiles.com", apiurl: "http://usersfiles.com/?op=checkfiles" },
  2258. { host: "megaupdown.com", apiurl: "http://megaupdown.com/?op=checkfiles" },
  2259. { host: "radicalshare.com", apiurl: "http://radicalshare.com/checkfiles.html" },
  2260. { host: "sharemods.com", apiurl: "http://sharemods.com/?op=checkfiles" },
  2261. { host: "worldbytez.com", apiurl: "http://worldbytez.com/?op=checkfiles" },
  2262. { host: "crisshare.com", apiurl: "http://crisshare.com/?op=checkfiles" },
  2263. { host: "vipshare.me", apiurl: "http://vipshare.me/?op=checkfiles" },
  2264. { host: "turbobit.net", apiurl: "http://turbobit.net/linkchecker" },
  2265. ];
  2266. //xfilesharing 1.0
  2267. function addGenericType1()
  2268. {
  2269. var i = genType1.length;
  2270. while(i--)
  2271. {
  2272. var host = genType1[i].host;
  2273. var apiUrl = genType1[i].apiurl;
  2274. if (apiUrl == "default") apiUrl = "http://www." + host + "/checkfiles.html";
  2275. if (hostSet("Check_" + host.replace(/\./g, "_dot_").replace(/-/g, "_dash_") + "_links", false))
  2276. {
  2277. var regexSafe = host.replace(/\./g, "\\.").replace(/-/g, "\\-");
  2278. addHost(
  2279. host, //hostname
  2280. regexSafe + "\/\\w+", //linkregex
  2281. null, //blocksize
  2282. new RegExp("(https?:\/\/(?:|www\\.)" + regexSafe + "\/\\w+)",""), //corrmatch
  2283. null, //corrreplwhat
  2284. null, //corrreplwith
  2285. null, //separator
  2286. apiUrl, //api url
  2287. "op=checkfiles&process=Check+URLs&list=", //postdata
  2288. new RegExp("(" + regexSafe + "\/\\w+)",""), //linkregex
  2289. new RegExp("<font color='green'>https?:\/\/(?:|www\.)" + regexSafe + "\/\\w+","g"), //liveregex
  2290. new RegExp("<font color='red'>https?:\/\/(?:|www\.)" + regexSafe + "\/\\w+","g"), //deadregex
  2291. new RegExp("<font color='orange'>https?:\/\/(?:|www\.)" + regexSafe + "\/\\w+","g"), //unavaregex
  2292. null //function delegate
  2293. )
  2294. }
  2295. }
  2296. }
  2297. //xfilesharing 2.0
  2298. function addGenericType2()
  2299. {
  2300. var i = genType2.length;
  2301. while(i--)
  2302. {
  2303. var host = genType2[i].host;
  2304. var apiUrl = genType2[i].apiurl;
  2305. if (hostSet("Check_" + host.replace(/\./g, "_dot_").replace(/-/g, "_dash_") + "_links", false))
  2306. {
  2307. var regexSafe = host.replace(/\./g, "\\.").replace(/-/g, "\\-");
  2308. addHost(
  2309. host, //hostname
  2310. "https?:\/\/(?:www\\.|file\\.)?" + regexSafe + "\/\\w+", //linkregex
  2311. null, //blocksize
  2312. new RegExp("(https?:\/\/(?:|www\\.)" + regexSafe + "\/\\w+)",""), //corrmatch
  2313. null, //corrreplwhat
  2314. null, //corrreplwith
  2315. null, //separator
  2316. apiUrl, //api url
  2317. "op=checkfiles&process=Check+URLs&list=", //postdata
  2318. new RegExp("(" + regexSafe + "\/\\w+)",""), //linkregex
  2319. new RegExp(regexSafe + "\/\\w+.*?\\s*<\/td>\\s*<td style=\"color:(?:green|#00f100);","g"), //liveregex
  2320. new RegExp(regexSafe + "\/\\w+.*?\\s*<\/td>\\s*<td style=\"color:(?:red|#f10000);","g"), //deadregex
  2321. new RegExp(regexSafe + "\/\\w+.*?\\s*<\/td>\\s*<td style=\"color:orange;","g"), //unavaregex
  2322. null //function delegate
  2323. )
  2324. }
  2325. }
  2326. }
  2327. // TEMPLATE
  2328. // if (hostSet("Check__dot_com_links", false))
  2329. // {
  2330. // addHost(
  2331. // "", //hostname
  2332. // "", //linkregex
  2333. // null, //blocksize
  2334. // null, //corrmatch
  2335. // null, //corrreplwhat
  2336. // null, //corrreplwith
  2337. // null, //separator
  2338. // "", //api url
  2339. // "", //postdata
  2340. // /()/, //linkregex
  2341. // //liveregex
  2342. // //deadregex
  2343. // //unavaregex
  2344. // null //function delegate
  2345. // )
  2346. // }
  2347. addGenericType1();
  2348. addGenericType2();
  2349. if (hostSet("Check_turbobit_dot_net_links", false))
  2350. {
  2351. addHost(
  2352. "turbobit.net", //hostname
  2353. "turbobit\\.(?:net|pl)\/(?:\\w+\/|).+?\\.html", //linkregex
  2354. null, //blocksize
  2355. /(turbobit\.(?:net|pl)\/(?:\w+\/|).+?\.html)/, //corrmatch
  2356. null, //corrreplwhat
  2357. null, //corrreplwith
  2358. "\n", //separator
  2359. 'http://turbobit.net/linkchecker/csv',
  2360. 'links_to_check=',
  2361. /(turbobit\.(?:net|pl)\/\w+)/,
  2362. /turbobit\.(?:net|pl)\/.*?, 1/g,
  2363. /turbobit\.(?:net|pl)\/.*?, 0/g,
  2364. null,
  2365. null //function delegate
  2366. )
  2367. }
  2368. if (hostSet("Check_myvdrive_dot_com_links", false))
  2369. {
  2370. addHost(
  2371. "myvdrive.com|fileserving.com", //hostname
  2372. "(?:fileserving|myvdrive)\\.com\/files\/[\\w-]+", //linkregex
  2373. null, //blocksize
  2374. null, //corrmatch
  2375. null, //corrreplwhat
  2376. null, //corrreplwith
  2377. null, //separator
  2378. "http://www.myvdrive.com/Public/linkchecker", //api url
  2379. "links=", //postdata
  2380. /(?:fileserving|myvdrive)\.com\/(files\/[\w-]+)/, //linkregex
  2381. /icon_file_check_valid"><\/span>\s*http:\/\/(?:www\.)?(?:fileserving|myvdrive)\.com\/files\/[\w-]+/g, //liveregex
  2382. /icon_file_check_(?:removed|notvalid)"><\/span>\s*http:\/\/(?:www\.)?(?:fileserving|myvdrive)\.com\/files\/[\w-]+/g, //deadregex
  2383. null, //unavaregex
  2384. null //function delegate
  2385. )
  2386. }
  2387. if (hostSet("Check_k2s_dot_cc_links", false))
  2388. {
  2389. addHost(
  2390. "k2s.cc|keep2share.cc|keep2s.cc|keep2share.com", //hostname
  2391. "(?:k2s\\.cc\/file|keep2share\\.cc\/file|keep2s\\.cc\/file|keep2share\\.com\/file)\/\\w+", //linkregex
  2392. 50, //blocksize
  2393. null, //corrmatch
  2394. null, //corrreplwhat
  2395. null, //corrreplwith
  2396. "\n", //separator
  2397. 'http://k2s.cc/file/check.html',
  2398. 'LinkCheckerForm%5BresponseType%5D=json&yt0=&LinkCheckerForm%5Blinks%5D=',
  2399. /\\\/file\\\/(\w+)/,
  2400. /http:\\\/\\\/(?:k2s\.cc|keep2share\.cc|keep2s\.cc|keep2share\.com)\\\/file\\\/\w+(?:[^,]+,)(?:[^,]+,)(?:[^,]+,)"status":"available"/g,
  2401. /http:\\\/\\\/(?:k2s\.cc|keep2share\.cc|keep2s\.cc|keep2share\.com)\\\/file\\\/\w+(?:[^,]+,)(?:[^,]+,)(?:[^,]+,)"status":"(?:deleted|not_exist)"/g,
  2402. null,
  2403. null //function delegate
  2404. )
  2405. }
  2406. if (hostSet("Check_fboom_dot_me_links", false))
  2407. {
  2408. addHost(
  2409. "fboom.me|fileboom.me", //hostname
  2410. "(?:fboom\\.me\/file||fileboom\\.me\/file)\/\\w+", //linkregex
  2411. 50, //blocksize
  2412. null, //corrmatch
  2413. null, //corrreplwhat
  2414. null, //corrreplwith
  2415. "\n", //separator
  2416. 'http://fboom.me/file/check.html',
  2417. 'LinkCheckerForm%5BresponseType%5D=json&yt0=&LinkCheckerForm%5Blinks%5D=',
  2418. /\\\/file\\\/(\w+)/,
  2419. /http:\\\/\\\/(?:fboom\.me|fileboom\.me)\\\/file\\\/\w+(?:[^,]+,)(?:[^,]+,)(?:[^,]+,)"status":"available"/g,
  2420. /http:\\\/\\\/(?:fboom\.me|fileboom\.me)\\\/file\\\/\w+(?:[^,]+,)(?:[^,]+,)(?:[^,]+,)"status":"(?:deleted|not_exist)"/g,
  2421. null,
  2422. null //function delegate
  2423. )
  2424. }
  2425.  
  2426. if (hostSet("Check_filepost_dot_com_links", false))
  2427. {
  2428. addHost(
  2429. "filepost.com|fp.io", //hostname
  2430. "(?:filepost\\.com\/files|fp\\.io)\/\\w+", //linkregex
  2431. null, //blocksize
  2432. null, //corrmatch
  2433. null, //corrreplwhat
  2434. null, //corrreplwith
  2435. "\n", //separator
  2436. 'http://filepost.com/files/checker/?JsHttpRequest=0-xml',
  2437. 'urls=',
  2438. /\\\/files\\\/(\w+)/,
  2439. />http:\\\/\\\/filepost\.com\\\/files\\\/\w+(?:[^>]+>){5}(?:\\n|\\t)+<span class=\\"v\\"/g,
  2440. />http:\\\/\\\/filepost\.com\\\/files\\\/\w+(?:[^>]+>){5}(?:\\n|\\t)+<span class=\\"x\\"/g,
  2441. null,
  2442. null //function delegate
  2443. )
  2444. }
  2445. if (hostSet("Check_fiberupload_dot_net_links", false))
  2446. {
  2447. addHost(
  2448. "fiberupload.com|fiberupload.net", //hostname
  2449. "fiberupload\\.(?:com|net)\/\\w+", //linkregex
  2450. null, //blocksize
  2451. /(http:\/\/(?:www\.|)fiberupload\.(?:com|net)\/\w+)/, //corrmatch
  2452. null, //corrreplwhat
  2453. null, //corrreplwith
  2454. null, //separator
  2455. 'http://fiberupload.net/?op=checkfiles',
  2456. 'op=checkfiles&list=',
  2457. /(fiberupload\.(?:com|net)\/\w+)/,
  2458. /'green'>http:\/\/(?:www\.|)fiberupload\.(?:com|net)\/\w+/g,
  2459. /'red'>http:\/\/(?:www\.|)fiberupload\.(?:com|net)\/\w+/g,
  2460. /'orange'>http:\/\/(?:www\.|)fiberupload\.(?:com|net)\/\w+/g,
  2461. null //function delegate
  2462. )
  2463. }
  2464. if (hostSet("Check_edisk_dot_cz_links", false))
  2465. {
  2466. addHost(
  2467. "edisk.cz|edisk.sk|edisk.eu", //hostname
  2468. "(?:(?:muj|data)\\d*\\.|)edisk\\.(?:cz|sk|eu)\/(?:|(?:cz|sk|en|pl)\/)", //linkregex
  2469. null, //blocksize
  2470. null, //corrmatch
  2471. /edisk\.\w{2}\/(?:|\w{2}\/)stahni/, //corrreplwhat
  2472. 'edisk.cz/stahni', //corrreplwith
  2473. null, //separator
  2474. 'http://www.edisk.cz/zkontrolovat-odkazy',
  2475. 'submitBtn=Zkontrolovat&checkFiles=',
  2476. /((?:download|stahn(?:i|out-soubor))\/\d+)/,
  2477. /"ano"\/>\s*<\/td>\s*<td>\s*http:\/\/.+/g,
  2478. /"ne"\/>\s*<\/td>\s*<td>\s*http:\/\/.+/g,
  2479. null,
  2480. null //function delegate
  2481. )
  2482. }
  2483. if (hostSet("Check_bezvadata_dot_cz_links", false))
  2484. {
  2485. addHost(
  2486. "bezvadata.cz", //hostname
  2487. "(?:beta\\.|)bezvadata\.cz\/stahnout\/\\d+\\w+", //linkregex
  2488. null, //blocksize
  2489. null, //corrmatch
  2490. null, //corrreplwhat
  2491. null, //corrreplwith
  2492. null, //separator
  2493. 'http://bezvadata.cz/nastroje/kontrola-odkazu?do=kontrolaOdkazuForm-submit',
  2494. 'zkontrolovat=Zkontrolovat&odkazy=',
  2495. /(bezvadata\.cz\/stahnout\/\d+)/,
  2496. /bezvadata\.cz\/stahnout\/.+?<\/td>\s*<td style="background-color: #d9ffb2/g,
  2497. /bezvadata\.cz\/stahnout\/.+?<\/td>\s*<td style="background-color: #ffb2b2/g,
  2498. null,
  2499. null //function delegate
  2500. )
  2501. }
  2502. if (hostSet("Check_depositfiles_dot_com_links", false))
  2503. {
  2504. addHost(
  2505. "depositfiles.com|dfiles.eu|dfiles.ru|depositfiles.org|depositfiles.lt", //hostname
  2506. "(?:depositfiles\\.(?:com|lt|org)|dfiles\\.(?:eu|ru))\/(?:en\/|ru\/|de\/|es\/|pt\/|)files\/\\w+", //linkregex
  2507. 100000, //blocksize
  2508. null, //corrmatch
  2509. null, //corrreplwhat
  2510. null, //corrreplwith
  2511. null, //separator
  2512. null,
  2513. null,
  2514. null,
  2515. null,
  2516. null,
  2517. null,
  2518. depositfilesBulkCheck //function delegate
  2519. )
  2520. }
  2521. if (hostSet("Check_videobb_dot_com_links", false))
  2522. {
  2523. addHost(
  2524. "videobb.com", //hostname
  2525. "videobb\\.com\/(?:video\/|watch_video\\.php\\?v=)\\w+", //linkregex
  2526. null, //blocksize
  2527. null, //corrmatch
  2528. null, //corrreplwhat
  2529. null, //corrreplwith
  2530. null, //separator
  2531. 'http://www.videobb.com/link_checker.php',
  2532. 'links=',
  2533. /(videobb\.com\/(?:watch_video\.php\?v?=|video\/)\w+)/,
  2534. /<td>http:\/\/(?:www\.|)videobb.com\/(?:watch_video\.php\?v?=|video\/)\w+<\/td>\s+<td>.+?<\/td>\s+<td>\d+:\d+<\/td>\s+<td>Available/g,
  2535. /<td>http:\/\/(?:www\.|)videobb.com\/(?:watch_video\.php\?v?=|video\/)\w+<\/td>\s+<td>(?:|.+?)<\/td>\s+<td>N\/A<\/td>\s+<td>Not Available/g,
  2536. null,
  2537. null //function delegate
  2538. )
  2539. }
  2540. if (hostSet("Check_queenshare_dot_com_links", false))
  2541. {
  2542. addHost(
  2543. "queenshare.com|10upload.com", //hostname
  2544. "(?:queenshare|10upload)\\.com\/\\w+", //linkregex
  2545. null, //blocksize
  2546. /(http:\/\/(?:www\.|)(?:queenshare|10upload)\.com\/\w+)/, //corrmatch
  2547. null, //corrreplwhat
  2548. null, //corrreplwith
  2549. null, //separator
  2550. 'http://www.queenshare.com/?op=checkfiles', //api url
  2551. 'op=checkfiles&process=Check+URLs&list=', //postdata
  2552. /((?:queenshare|10upload)\.com\/\w+)/, //linkregex
  2553. /(?:queenshare|10upload)\.com\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2554. /(?:queenshare|10upload)\.com\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2555. /(?:queenshare|10upload)\.com\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2556. null //function delegate
  2557. )
  2558. }
  2559. /* if (hostSet("Check_bitshare_dot_com_links", false))
  2560. {
  2561. addHost(
  2562. "bitshare.com", //hostname
  2563. "bitshare\\.com\/(?:files\/|\\?[fi]=)\\w+", //linkregex
  2564. null, //blocksize
  2565. null, //corrmatch
  2566. null, //corrreplwhat
  2567. null, //corrreplwith
  2568. null, //separator
  2569. 'http://bitshare.com/linkcheck.html',
  2570. 'submit=Check&links=',
  2571. /(bitshare\.com\/(?:files\/|\?[fi]=)\w+)/,
  2572. /ru_2\.gif" \/>\s*<\/div>\s*<span style="font-size:14px;font-weight:bold;">.*?<\/span>\s*<\/p>\s*<p>\s*<a href="http:\/\/(?:www\.|)bitshare\.com\/(?:files\/|\?[fi]=)\w+/g,
  2573. /ru_3\.gif" \/>\s*<\/div>\s*<span style="font-size:14px;font-weight:bold;">.*?<\/span>\s*<\/p>\s*<p>\s*<a href="http:\/\/(?:www\.|)bitshare\.com\/(?:files\/|\?[fi]=)\w+/g,
  2574. /ru_1\.gif" \/>\s*<\/div>\s*<span style="font-size:14px;font-weight:bold;">.*?<\/span>\s*<\/p>\s*<p>\s*<a href="http:\/\/(?:www\.|)bitshare\.com\/(?:files\/|\?[fi]=)\w+/g,
  2575. null //function delegate
  2576. )
  2577. } */
  2578.  
  2579. if (hostSet("Check_cramit_dot_in_links", false))
  2580. {
  2581. addHost(
  2582. "cramit.in|cramitin.net|cramitin.eu|cramitin.us", //hostname
  2583. "cramit(?:\\.in|in\\.(?:net|eu|us))\/", //linkregex
  2584. null, //blocksize
  2585. /(http:\/\/(?:www\.)?cramit(?:\.in|in\.(?:net|eu|us))\/\w+)/, //corrmatch
  2586. null, //corrreplwhat
  2587. null, //corrreplwith
  2588. null, //separator
  2589. 'http://cramit.in/checkfiles.html',
  2590. 'op=checkfiles&process=CHECK+URL%27S&list=',
  2591. /(cramit(?:\.in|in\.(?:net|eu|us))\/\w+)/,
  2592. /green>http:\/\/(?:www\.|)cramit(?:\.in|in\.(?:net|eu|us))\/\w+/g,
  2593. /red'>http:\/\/(?:www\.|)cramit(?:\.in|in\.(?:net|eu|us))\/\w+/g,
  2594. /orange'>http:\/\/(?:www\.|)cramit(?:\.in|in\.(?:net|eu|us))\/\w+/g,
  2595. null //function delegate
  2596. )
  2597. }
  2598. if (hostSet("Check_filerio_dot_com_links", false))
  2599. {
  2600. addHost(
  2601. "filekeen.com|filerio.in|filerio.com", //hostname
  2602. "file(?:keen|rio)\\.(?:com|in)\/\\w+", //linkregex
  2603. null, //blocksize
  2604. null, //corrmatch
  2605. null, //corrreplwhat
  2606. null, //corrreplwith
  2607. "\n", //separator
  2608. 'http://filerio.in/checkfiles.html',
  2609. 'op=checkfiles&process=Check+URLs&list=',
  2610. /(file(?:keen|rio)\.(?:com|in)\/\w+)/,
  2611. /green'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
  2612. /red'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
  2613. /orange'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
  2614. null //function delegate
  2615. )
  2616. }
  2617. if (hostSet("Check_share_dash_online_dot_biz_links", false))
  2618. {
  2619. addHost(
  2620. "share-online.biz|egoshare.com", //hostname
  2621. "(?:share-online\\.biz|egoshare\\.com)\/(?:dl\/|download\\.php\\?id=|\\?d=)\\w+", //linkregex
  2622. 100, //blocksize
  2623. /http:\/\/(?:www\.|)(?:share-online\.biz|egoshare\.com)\/(?:d(?:l\/|ownload\.php\?id=)|\?d=)(?:\d{1}\/|)(\w+)/, //corrmatch
  2624. null, //corrreplwhat
  2625. null, //corrreplwith
  2626. "\n", //separator
  2627. 'http://api.share-online.biz/linkcheck.php',
  2628. 'links=',
  2629. /(\w+);(?:OK|NOTFOUND|DELETED)/,
  2630. /(\w+);OK/g,
  2631. /(\w+);(?:DELETED|NOTFOUND)/g,
  2632. null,
  2633. null //function delegate
  2634. )
  2635. }
  2636. if (hostSet("Check_quickshare_dot_cz_links", false))
  2637. {
  2638. addHost(
  2639. "quickshare.cz", //hostname
  2640. "quickshare\\.cz\/stahnout-soubor\/\\d+", //linkregex
  2641. null, //blocksize
  2642. null, //corrmatch
  2643. null, //corrreplwhat
  2644. null, //corrreplwith
  2645. null, //separator
  2646. 'http://www.quickshare.cz/nastroje/link-checker',
  2647. 'linky=',
  2648. /quickshare\.cz\/stahnout-soubor\/(\d+(?::\w+)?)/,
  2649. /quickshare\.cz\/stahnout-soubor\/\d+(?::[\w\-.+$!*\/()\[\]\',~%?:@#&=\\]+)?\s*<\/a><\/td><td><img src="\/img\/ok\.gif/g,
  2650. /quickshare\.cz\/stahnout-soubor\/\d+(?::[\w\-.+$!*\/()\[\]\',~%?:@#&=\\]+)?\s*<\/td><td><img src="\/img\/nenalezeno\.gif/g,
  2651. null,
  2652. null //function delegate
  2653. )
  2654. }
  2655. if (hostSet("Check_netload_dot_in_links", false))
  2656. {
  2657. addHost(
  2658. "netload.in", //hostname
  2659. "netload\\.in\/datei\\w{10}", //linkregex
  2660. 100, //blocksize
  2661. null, //corrmatch
  2662. null, //corrreplwhat
  2663. null, //corrreplwith
  2664. "\n", //separator
  2665. "http://api.netload.in/index.php?id=2", //api url
  2666. "send=Absenden&links=", //postdata
  2667. /(\w+);/, //linkregex
  2668. /\w{10,};.+?;.+?;online/g, //liveregex
  2669. /\w{10,};.+?;.+?;offline/g, //deadregex
  2670. null, //unavaregex
  2671. netloadBulkCheck //function delegate
  2672. )
  2673. }
  2674. if (hostSet("Check_videopremium_dot_net_links", false))
  2675. {
  2676. addHost(
  2677. "videopremium.net|videopremium.tv|videopremium.me", //hostname
  2678. "videopremium\\.(?:net|tv)\/\\w+", //linkregex
  2679. null, //blocksize
  2680. /(http:\/\/(?:www\.|)videopremium\.(?:net|tv|me)\/\w+)/, //corrmatch
  2681. null, //corrreplwhat
  2682. null, //corrreplwith
  2683. null, //separator
  2684. 'http://videopremium.me/?op=checkfiles',
  2685. 'op=checkfiles&process=Check+URLs&list=',
  2686. /(videopremium\.(?:net|tv|me)\/\w+)/,
  2687. /videopremium\.(?:net|tv|me)\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2688. /videopremium\.(?:net|tv|me)\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2689. /videopremium\.(?:net|tv|me)\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2690. null //function delegate
  2691. )
  2692. }
  2693. if (hostSet("Check_eyesfile_dot_net_links", false))
  2694. {
  2695. addHost(
  2696. "eyesfile.net|eyesfile.com|eyesfile.co|eyesfile.org|eyesfiles.com", //hostname
  2697. "eyesfiles?\\.(?:com?|net|org)\/\\w+", //linkregex
  2698. null, //blocksize
  2699. null, //corrmatch
  2700. null, //corrreplwhat
  2701. null, //corrreplwith
  2702. null, //separator
  2703. 'http://www.eyesfiles.com/checkfiles.html',
  2704. 'op=checkfiles&process=Check+URLs&list=',
  2705. /(eyesfiles?\.(?:com?|net|org)\/\w+)/,
  2706. /green'>http:\/\/(?:www\.|)eyesfiles?\.(?:com?|net|org)\/\w+/g,
  2707. /red'>http:\/\/(?:www\.|)eyesfiles?\.(?:com?|net|org)\/\w+/g,
  2708. /orange'>http:\/\/(?:www\.|)eyesfiles?\.(?:com?|net|org)\/\w+/g,
  2709. null //function delegate
  2710. )
  2711. }
  2712. if (hostSet("Check_nitrobits_dot_com_links", false))
  2713. {
  2714. addHost(
  2715. "nitrobits.com",
  2716. "nitrobits\\.com\/file\/\\w+",
  2717. null, //blocksize
  2718. null, //corrmatch
  2719. null, //corrreplwhat
  2720. null, //corrreplwith
  2721. null, //separator
  2722. "http://nitrobits.com/linkchecker.php",
  2723. "submit=Check+Links&links=",
  2724. /(nitrobits\.com\/file\/\w+)/,
  2725. /nitrobits\.com\/file\/\w+.*?\s*<\/td>\s*<\w+.*?>\s*<span class="available/g, //liveregex
  2726. /nitrobits\.com\/file\/\w+.*?\s*<\/td>\s*<\w+.*?>\s*<span class="dead/g, //deadregex
  2727. /nitrobits\.com\/file\/\w+.*?\s*<\/td>\s*<\w+.*?>\s*<span class="unavailable/g, //unavaregex
  2728. null
  2729. )
  2730. }
  2731. if (hostSet("Check_uploading_dot_com_links", false))
  2732. {
  2733. addHost(
  2734. "uploading.com",
  2735. "http:\/\/(?:www\\.|)uploading\\.com\/(?:files\/)?\\w+",
  2736. 500, //blocksize
  2737. null, //corrmatch
  2738. null, //corrreplwhat
  2739. null, //corrreplwith
  2740. null, //separator
  2741. "http://uploading.com/filechecker?ajax",
  2742. "urls=",
  2743. /uploading\.com\\\/(\w+)/,
  2744. /ok\\">\\n\\t\\t<span class=\\"num\\">\d+<\\\/span>\\n\\t\\t<i><\\\/i>\\n\\t\\t<div>\\n\\t\\t\\t<a href=\\"http:\\\/\\\/(?:www\.|)uploading\.com\\\/\w+/g,
  2745. /failed\\">\\n\\t\\t<span class=\\"num\\">\d+<\\\/span>\\n\\t\\t<i><\\\/i>\\n\\t\\t<div>\\n\\t\\t\\t<a href=\\"http:\\\/\\\/(?:www\.|)uploading\.com\\\/\w+/g,
  2746. null,
  2747. uploadingBulkCheck
  2748. )
  2749. }
  2750. /*if (hostSet("Check_extabit_dot_com_links", false) && genset("Extabit_API_Check", false))
  2751. {
  2752. addHost(
  2753. "extabit.com",
  2754. "(?:u\\d+\\.)?extabit\\.com\/file(?:\/|\_)\\w+",
  2755. 100, //blocksize
  2756. null, //corrmatch
  2757. /\?upld=1/, //corrreplwhat
  2758. "", //corrreplwith
  2759. null, //separator
  2760. null,
  2761. null,
  2762. null,
  2763. null,
  2764. null,
  2765. null,
  2766. extabitBulkCheck
  2767. )
  2768. }*/
  2769. if (hostSet("Check_megashares_dot_com_links", false))
  2770. {
  2771. addHost(
  2772. "megashares.com",
  2773. "(?:d\\d+\.|)megashares\.com\/(?:dl\/|(?:index\\.php\\?d\\d+|\\?d\\d+)=)\\w+",
  2774. null, //blocksize
  2775. null, //corrmatch
  2776. null, //corrreplwhat
  2777. null, //corrreplwith
  2778. null, //separator
  2779. "http://d01.megashares.com/checkit.php",
  2780. "submit_links=Check+Links&check_links=",
  2781. /((?:d\d+\.|)megashares\.com\/(?:dl\/|(?:index\.php\?d\d+|\?d\d+)=)\w+)/,
  2782. /(?:d\d+\.|)megashares\.com\/(?:dl\/|(?:index\.php\?d\d+|\?d\d+)=)\w+.*?\s*-\s*ok/g,
  2783. /(?:d\d+\.|)megashares\.com\/(?:dl\/|(?:index\.php\?d\d+|\?d\d+)=)\w+.*?\s*-\s*invalid/g,
  2784. null,
  2785. null
  2786. )
  2787. }
  2788. if (hostSet("Check_mega_dot_co_dot_nz_links", false))
  2789. {
  2790. addHost(
  2791. "mega.nz|mega.co.nz",
  2792. "mega\\.(?:co\\.)?nz\/#!\\w+",
  2793. 100000, //blocksize
  2794. null, //corrmatch
  2795. null, //corrreplwhat
  2796. null, //corrreplwith
  2797. null, //separator
  2798. null,
  2799. null,
  2800. null,
  2801. null,
  2802. null,
  2803. null,
  2804. megaBulkCheck //function delegate
  2805. )
  2806. }
  2807. if (hostSet("Check_4up_dot_me_links", false))
  2808. {
  2809. addHost(
  2810. "4up.me|4up.im|4upfiles.com",
  2811. "(?:4upfiles\\.com|4up\\.(?:me|im))\/\\w+",
  2812. null, //blocksize
  2813. null, //corrmatch
  2814. null, //corrreplwhat
  2815. null, //corrreplwith
  2816. null, //separator
  2817. "http://4upfiles.com/?op=checkfiles", //api url
  2818. "op=checkfiles&process=Check+URLs&list=", //postdata
  2819. /(4up(?:files)?\.(?:com|me|im)\/\w+)/, //linkregex
  2820. /4up(?:files)?\.(?:com|me|im)\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2821. /4up(?:files)?\.(?:com|me|im)\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2822. /4up(?:files)?\.(?:com|me|im)\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2823. null //function delegate
  2824. )
  2825. }
  2826. /* if (hostSet("Check_uploaded_dot_to_links", false))
  2827. {
  2828. addHost(
  2829. "uploaded.to|uploaded.net|ul.to",
  2830. '(?:uploaded\\.(?:to|net)|ul\\.to)\/(?:files?\/|\\?(?:lang=\\w{2}&)?id=|folder\/)?(?!img|coupon)\\w{8}',
  2831. 1000,
  2832. null,
  2833. null,
  2834. null,
  2835. null,
  2836. null,
  2837. null,
  2838. null,
  2839. null,
  2840. null,
  2841. null,
  2842. uploadedBulkCheck
  2843. )
  2844. }
  2845. /*if (hostSet("Check_tusfiles_dot_net_links", false))
  2846. {
  2847. addHost(
  2848. "tusfiles.com|tusfiles.net", //hostname
  2849. "tusfiles\\.(?:com|net)\/\\w+", //linkregex
  2850. null, //blocksize
  2851. /(http:\/\/(?:www\.|)tusfiles\.(?:com|net)\/\w+)/, //corrmatch
  2852. null, //corrreplwhat
  2853. null, //corrreplwith
  2854. null, //separator
  2855. 'http://www.tusfiles.net/?op=checkfiles',
  2856. 'op=checkfiles&process=Check+URLs&list=',
  2857. /(tusfiles\.(?:net|com)\/\w+)/,
  2858. /tusfiles\.(?:net|com)\/\w+.*?<\/td>\s*<td style="color:green;">/g, //liveregex
  2859. /tusfiles\.(?:net|com)\/\w+.*?<\/td>\s*<td style="color:red;">/g, //deadregex
  2860. /tusfiles\.(?:net|com)\/\w+.*?<\/td>\s*<td style="color:orange;">/g, //unavaregex
  2861. null //function delegate
  2862. )
  2863. }*/
  2864. if (hostSet("Check_junocloud_dot_me_links", false))
  2865. {
  2866. addHost(
  2867. "junocloud.me",
  2868. "junocloud\\.me\/\\w+",
  2869. null,
  2870. null,
  2871. null,
  2872. null,
  2873. null,
  2874. "http://junocloud.me/checkfiles.html",
  2875. "op=checkfiles&process=Check+URLs&list=",
  2876. /(junocloud\.me\/\w+)/,
  2877. /junocloud\.me\/\w+.*?<span style="color: green;/g,
  2878. /junocloud\.me\/\w+.*?<span style="color: red;/g,
  2879. /junocloud\.me\/\w+.*?<span style="color: orange;/g,
  2880. null //function delegate
  2881. )
  2882. }
  2883. if (hostSet("Check_flashdrive_dot_it_links", false))
  2884. {
  2885. addHost(
  2886. "flashdrive.it|flashdrive.uk.com",
  2887. "flashdrive\\.(?:it|uk\\.com)\/\\w+",
  2888. null,
  2889. null,
  2890. null,
  2891. null,
  2892. null,
  2893. "http://flashdrive.uk.com/?op=checkfiles",
  2894. "op=checkfiles&process=Check+URLs&list=",
  2895. /(flashdrive\.(?:it|uk\.com)\/\w+)/,
  2896. /flashdrive\.(?:it|uk\.com)\/\w+.*?<\/td><td style="color:green;">/g,
  2897. /flashdrive\.(?:it|uk\.com)\/\w+.*?<\/td><td style="color:red;">/g,
  2898. /flashdrive\.(?:it|uk\.com)\/\w+.*?<\/td><td style="color:orange;">/g,
  2899. null //function delegate
  2900. )
  2901. }
  2902. if (hostSet("Check_datei_dot_to_links", false))
  2903. {
  2904. addHost(
  2905. "datei.to",
  2906. "datei\\.to\/(?:datei\/|files\/|1,|\\?)\\w+",
  2907. 100000,
  2908. null,
  2909. null,
  2910. null,
  2911. null,
  2912. null,
  2913. null,
  2914. null,
  2915. null,
  2916. null,
  2917. null,
  2918. dateiToBulk
  2919. )
  2920. }
  2921. if (hostSet("Check_medafire_dot_net_links", false))
  2922. {
  2923. addHost(
  2924. "medafire.net",
  2925. "medafire\\.net\/(?:up\/)?\\w+",
  2926. null,
  2927. null,
  2928. null,
  2929. null,
  2930. null,
  2931. "http://medafire.net/?op=checkfiles",
  2932. "op=checkfiles&process=Check+URLs&list=",
  2933. /(medafire\.net\/(?:up\/)?\w+)/,
  2934. /medafire\.net\/(?:up\/)?\w+.*?<\/td><td style="color:green;">/g,
  2935. /medafire\.net\/(?:up\/)?\w+.*?<\/td><td style="color:red;">/g,
  2936. /medafire\.net\/(?:up\/)?\w+.*?<\/td><td style="color:orange;">/g,
  2937. null //function delegate
  2938. )
  2939. }
  2940. if (hostSet("Check_depfile_dot_com_links", false))
  2941. {
  2942. addHost(
  2943. "depfile.com", //hostname
  2944. "depfile\\.com\/(?:downloads\/i\/\\d+\/f\/|\\w+)", //linkregex
  2945. 22, //blocksize //unsure if right number
  2946. null, //corrmatch
  2947. null, //corrreplwhat
  2948. null, //corrreplwith
  2949. null, //separator
  2950. 'https://depfile.com/checkfiles', //api url
  2951. 'send=Check&files=', //postdata
  2952. /(depfile\.com\/(?:downloads\/i\/\d+|\w+))/, //linkregex
  2953. /depfile\.com\/(?:downloads\/i\/\d+|\w+)[^<]*?<\/td><td><span class='active/g, //liveregex
  2954. /depfile\.com\/(?:downloads\/i\/\d+|\w+)[^<]*?<\/td><td><span class='(?:notfound|badurl)/g, //deadregex
  2955. null, //unavaregex
  2956. null //function delegate
  2957. )
  2958. }
  2959. if (hostSet("Check_filedwon_dot_com_links", false))
  2960. {
  2961. addHost(
  2962. "filedwon.com|filedwon.net|filedwon.info", //hostname
  2963. "filedwon\\.(?:com|net|info)\/\\w+", //linkregex
  2964. null, //blocksize
  2965. /(http:\/\/(?:www\.|)filedwon\.(?:com|net|info)\/\w+)/, //corrmatch
  2966. null, //corrreplwhat
  2967. null, //corrreplwith
  2968. null, //separator
  2969. 'http://filedwon.info/?op=checkfiles',
  2970. 'op=checkfiles&process=Check+URLs&list=',
  2971. /(filedwon\.(?:com|net|info)\/\w+)/,
  2972. /filedwon\.(?:com|net|info)\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2973. /filedwon\.(?:com|net|info)\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2974. /filedwon\.(?:com|net|info)\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2975. null //function delegate
  2976. )
  2977. }
  2978. if (hostSet("Check_ge_dot_tt_links", false))
  2979. {
  2980. addHost(
  2981. "ge.tt", //hostname
  2982. "ge\\.tt\/(?:api\/1\/files\/)?\\w+", //linkregex
  2983. 1000000, //blocksize
  2984. /ge\.tt\/(?:api\/1\/files\/)?(\w+.*)/, //corrmatch
  2985. null, //corrreplwhat
  2986. null, //corrreplwith
  2987. null, //separator
  2988. 'https://open.ge.tt/1/files/', //api url
  2989. null, //postdata
  2990. null, //linkregex
  2991. null, //liveregex
  2992. null, //deadregex
  2993. null, //unavaregex
  2994. gettBulkCheck //function delegate
  2995. )
  2996. }
  2997. if (hostSet("Check_filesbomb_dot_com_links", false))
  2998. {
  2999. addHost(
  3000. "filesbomb.com|filesbomb.biz|filesbomb.in", //hostname
  3001. "filesbomb\\.(?:com|biz|in)\/\\w+", //linkregex
  3002. null, //blocksize
  3003. /(http:\/\/(?:www\.|)filesbomb\.(?:com|biz|in)\/\w+)/, //corrmatch
  3004. null, //corrreplwhat
  3005. null, //corrreplwith
  3006. null, //separator
  3007. 'http://filesbomb.in/?op=checkfiles',
  3008. 'op=checkfiles&process=Check+URLs&list=',
  3009. /(filesbomb\.(?:com|biz|in)\/\w+)/,
  3010. /filesbomb\.(?:com|biz|in)\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  3011. /filesbomb\.(?:com|biz|in)\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  3012. /filesbomb\.(?:com|biz|in)\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  3013. null //function delegate
  3014. )
  3015. }
  3016. if (hostSet("Check_restfiles_dot_net_links", false))
  3017. {
  3018. addHost(
  3019. "restfile.com|restfile.cc|restfile.org|restfile.net|restfile.co|restfile.bz|restfile.ws|restfiles.com|restfiles.net", //hostname
  3020. "restfiles?\\.\\w{2,3}\/\\w+", //linkregex
  3021. null, //blocksize
  3022. null, //corrmatch
  3023. null, //corrreplwhat
  3024. null, //corrreplwith
  3025. null, //separator
  3026. "http://www.restfiles.net/?op=checkfiles", //api url
  3027. "op=checkfiles&process=Check+URLs&list=", //postdata
  3028. /(restfiles?\.\w{2,3}\/\w+)/, //linkregex
  3029. /green'>http:\/\/(?:|www\.)restfiles?\.\w{2,3}\/\w+/g, //liveregex
  3030. /red'>http:\/\/(?:|www\.)restfiles?\.\w{2,3}\/\w+/g, //deadregex
  3031. /orange'>http:\/\/(?:|www\.)restfiles?\.\w{2,3}\/\w+/g, //unavaregex
  3032. null //function delegate
  3033. )
  3034. }
  3035. if (hostSet("Check_filekom_dot_com_links", false))
  3036. {
  3037. addHost(
  3038. "filekom.com|filemac.com", //hostname
  3039. "file(?:kom|mac)\\.com\/\\w+", //linkregex
  3040. null, //blocksize
  3041. /(http:\/\/(?:|www\.)file(?:kom|mac)\.com\/\w+)/, //corrmatch
  3042. null, //corrreplwhat
  3043. null, //corrreplwith
  3044. null, //separator
  3045. "http://filekom.com/checkfiles.html", //api url
  3046. "op=checkfiles&process=Check+URLs&list=", //postdata
  3047. /(file(?:kom|mac)\.com\/\w+)/, //linkregex
  3048. /green'>http:\/\/(?:|www\.)file(?:kom|mac)\.com\/\w+/g, //liveregex
  3049. /red'>http:\/\/(?:|www\.)file(?:kom|mac)\.com\/\w+/g, //deadregex
  3050. /orange'>http:\/\/(?:|www\.)file(?:kom|mac)\.com\/\w+/g, //unavaregex
  3051. null //function delegate
  3052. )
  3053. }
  3054. if (hostSet("Check_filepup_dot_net_links", false))
  3055. {
  3056. addHost(
  3057. "filepup.net", //hostname
  3058. "filepup\\.net\/(?:files|get)\/\\w+", //linkregex
  3059. null, //blocksize
  3060. null, //corrmatch
  3061. /\/get\/(\w+)\/.+/, //corrreplwhat
  3062. "/files/$1.html", //corrreplwith
  3063. null, //separator
  3064. 'http://www.filepup.net/link_checker.php', //api url
  3065. 'task=doCheck&submit=Check+Links&urls=', //postdata
  3066. /filepup\.net\/files(\/\w+)/, //linkregex
  3067. /green">http:\/\/(?:www\.)?filepup\.net\/files\/\w+/g, //liveregex
  3068. /red">http:\/\/(?:www\.)?filepup\.net\/files\/\w+/g, //deadregex
  3069. /orange">http:\/\/(?:www\.)?filepup\.net\/files\/\w+/g, //unavaregex
  3070. null //function delegate
  3071. )
  3072. }
  3073. if (hostSet("Check_media1fire_dot_com_links", false))
  3074. {
  3075. addHost(
  3076. "media1fire.com", //hostname
  3077. "up\\.media1fire\\.com\/\\w+", //linkregex
  3078. null, //blocksize
  3079. /(http:\/\/up\.media1fire\.com\/\w+)/, //corrmatch
  3080. null, //corrreplwhat
  3081. null, //corrreplwith
  3082. null, //separator
  3083. "http://up.media1fire.com/?op=checkfiles", //api url
  3084. "op=checkfiles&process=Check+URLs&list=", //postdata
  3085. /(up\.media1fire\.com\/\w+)/, //linkregex
  3086. /up\.media1fire\.com\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  3087. /up\.media1fire\.com\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  3088. /up\.media1fire\.com\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  3089. null //function delegate
  3090. )
  3091. }
  3092. if (hostSet("Check_filecloud_dot_io_links", false))
  3093. {
  3094. addHost(
  3095. "filecloud.io", //hostname
  3096. "filecloud\\.io\/\\w{6,8}", //linkregex
  3097. 100000000, //blocksize
  3098. /filecloud\.io\/(\w{6,8})/, //corrmatch
  3099. null, //corrreplwhat
  3100. null, //corrreplwith
  3101. null, //separator
  3102. null, //api url
  3103. null, //postdata
  3104. null, //linkregex
  3105. null, //liveregex
  3106. null, //deadregex
  3107. null, //unavaregex
  3108. filecloudBulkCheck //function delegate
  3109. )
  3110. }
  3111. if (hostSet("Check_maskfile_dot_com_links", false))
  3112. {
  3113. addHost(
  3114. "maskfile.com", //hostname
  3115. "[mM]ask[Ff]ile\\.com\/\\w+", //linkregex
  3116. null, //blocksize
  3117. /(https?:\/\/(?:www\.)?maskfile\.com\/\w+)/i, //corrmatch
  3118. null, //corrreplwhat
  3119. null, //corrreplwith
  3120. null, //separator
  3121. 'https://www.maskfile.com/?op=checkfiles', //api url
  3122. 'op=checkfiles&process=Check+URLs&list=', //postdata
  3123. /maskfile\.com\/(\w+)/i, //linkregex
  3124. /maskfile\.com\/\w+.*?<\/td>\s*<td style="color:green;">/gi, //liveregex
  3125. /maskfile\.com\/\w+.*?<\/td>\s*<td style="color:red;">/gi, //deadregex
  3126. /maskfile\.com\/\w+.*?<\/td>\s*<td style="color:orange;">/gi, //unavaregex
  3127. null //function delegate
  3128. )
  3129. }
  3130. if (hostSet("Check_anysend_dot_com_links", false))
  3131. {
  3132. addHost(
  3133. "anysend.com", //hostname
  3134. "anysend\\.com\/\\w{32}", //linkregex
  3135. 100000, //blocksize
  3136. null, //corrmatch
  3137. null, //corrreplwhat
  3138. null, //corrreplwith
  3139. null, //separator
  3140. null, //api url
  3141. null, //postdata
  3142. null, //linkregex
  3143. null, //liveregex
  3144. null, //deadregex
  3145. null, //unavaregex
  3146. anysendBulkCheck //function delegate
  3147. )
  3148. }
  3149. if (hostSet("Check_batshare_dot_com_links", false))
  3150. {
  3151. addHost(
  3152. "batshare.com", //hostname
  3153. "batshare\\.com\/\\w+", //linkregex
  3154. null, //blocksize
  3155. /(https?:\/\/(?:www\.)?batshare\.com\/\w+)/, //corrmatch
  3156. null, //corrreplwhat
  3157. null, //corrreplwith
  3158. null, //separator
  3159. 'http://batshare.com/?op=checkfiles', //api url
  3160. 'op=checkfiles&process=Check+URLs&list=', //postdata
  3161. /(batshare\.com\/\w+)/, //linkregex
  3162. /<font color='green'><a target='_new' href='http:\/\/(?:www\.)?batshare\.com\/\w+(?:\/.*)?'>/g, //liveregex
  3163. /<font color='red'>http:\/\/(?:www\.)?batshare\.com\/\w+(?:\/.*)?/g, //deadregex
  3164. /<font color='orange'><a target='_new' href='http:\/\/(?:www\.)?batshare\.com\/\w+(?:\/.*)?'>/g, //unavaregex
  3165. null //function delegate
  3166. )
  3167. }
  3168. if (hostSet("Check_webshare_dot_cz_links", false))
  3169. {
  3170. addHost(
  3171. "webshare.cz", //hostname
  3172. "webshare\\.cz\/(?:(?:#/)?file/\\w+|\\w+-.*)", //linkregex
  3173. 100000, //blocksize
  3174. null, //corrmatch
  3175. null, //corrreplwhat
  3176. null, //corrreplwith
  3177. null, //separator
  3178. null, //api url
  3179. null, //postdata
  3180. null, //linkregex
  3181. null, //liveregex
  3182. null, //deadregex
  3183. null, //unavaregex
  3184. webshareBulkCheck //function delegate
  3185. )
  3186. }
  3187. if (hostSet("Check_uploadable_dot_ch_links", false))
  3188. {
  3189. addHost(
  3190. "uploadable.ch", //hostname
  3191. "uploadable\\.ch\/file\/\\w+", //linkregex
  3192. null, //blocksize
  3193. null, //corrmatch
  3194. null, //corrreplwhat
  3195. null, //corrreplwith
  3196. null, //separator
  3197. 'http://www.uploadable.ch/check.php', //api url
  3198. 'urls=', //postdata
  3199. /(uploadable\.ch\/file\/\w+)/, //linkregex
  3200. /<div class="col1"><a href="">http:\/\/(?:www\.)?uploadable\.ch\/file\/\w+.*<\/a><\/div>\s+<div class="col2">.+<\/div>\s+<div class="col3">.+<\/div>\s+<div class="col4"><span class="[\w\s]+">&nbsp;<\/span>\s+<span class="left">Available<\/span>/g, //liveregex
  3201. /<div class="col1"><a href="">http:\/\/(?:www\.)?uploadable\.ch\/file\/\w+.*<\/a><\/div>\s+<div class="col2">.+<\/div>\s+<div class="col3">.+<\/div>\s+<div class="col4"><span class="[\w\s]+">&nbsp;<\/span>\s+<span class="left">Not Available<\/span>/g, //deadregex
  3202. null, //unavaregex
  3203. null //function delegate
  3204. )
  3205. }
  3206. if (hostSet("Check_prefiles_dot_com_links", false))
  3207. {
  3208. addHost(
  3209. "prefiles.com", //hostname
  3210. "prefiles\\.com\/\\w+", //linkregex
  3211. null, //blocksize
  3212. /(https?:\/\/(?:www\.)?prefiles\.com\/\w+)/, //corrmatch
  3213. null, //corrreplwhat
  3214. null, //corrreplwith
  3215. null, //separator
  3216. "http://prefiles.com/checker", //api url
  3217. "op=checkfiles&list=", //postdata
  3218. /(prefiles\.com\/\w+)/, //linkregex
  3219. /prefiles\.com\/\w+.*<\/div>\s*<div class="copy" style="color:#6ab621;">/g, //liveregex
  3220. /prefiles\.com\/\w+.*<\/div>\s*<div class="copy" style="color:#f10000;">/g, //deadregex
  3221. null, //unavaregex
  3222. null //function delegate
  3223. )
  3224. }
  3225.  
  3226. if (hostSet("Check_rapidu_dot_net_links", false))
  3227. {
  3228. addHost(
  3229. "rapidu.net", //hostname
  3230. "rapidu\\.net\/\\d+", //linkregex
  3231. 1000000, //blocksize
  3232. /rapidu\.net\/(\d+)/, //corrmatch
  3233. null, //corrreplwhat
  3234. null, //corrreplwith
  3235. null, //separator
  3236. "http://rapidu.net/api/getFileDetails/", //api url
  3237. "id=", //postdata
  3238. null, //linkregex
  3239. null, //liveregex
  3240. null, //deadregex
  3241. null, //unavaregex
  3242. rapiduBulkCheck //function delegate
  3243. )
  3244. }
  3245.  
  3246. if (hostSet("Check_uplea_dot_com_links", false))
  3247. {
  3248. addHost(
  3249. "uplea.com", //hostname
  3250. "uplea\\.com\/dl\/\\w+", //linkregex
  3251. 1000000, //blocksize
  3252. /(https?:\/\/(?:www\.)?uplea\.com\/dl\/\w+)/, //corrmatch
  3253. null, //corrreplwhat
  3254. null, //corrreplwith
  3255. null, //separator
  3256. "http://api.uplea.com/api/check-my-links", //api url
  3257. null, //postdata
  3258. null, //linkregex
  3259. null, //liveregex
  3260. null, //deadregex
  3261. null, //unavaregex
  3262. upleaBC //function delegate
  3263. )
  3264. }
  3265.  
  3266. if (hostSet("Check_oboom_dot_com_links", false))
  3267. {
  3268. addHost(
  3269. "oboom.com", //hostname
  3270. "oboom\\.com\/#?\\w{8}", //linkregex
  3271. null, //blocksize
  3272. /oboom\.com\/#?(\w{8})/, //corrmatch
  3273. null, //corrreplwhat
  3274. null, //corrreplwith
  3275. null, //separator
  3276. null, //api url
  3277. null, //postdata
  3278. null, //linkregex
  3279. null, //liveregex
  3280. null, //deadregex
  3281. null, //unavaregex
  3282. oboomBulk //function delegate
  3283. )
  3284. }
  3285. function genBulkCheck()
  3286. {
  3287. var blockIdx = this.links.length;
  3288. while (blockIdx--)
  3289. {
  3290. postRequest(this.apiUrl, this.postData, this.links[blockIdx],
  3291. this.resLinkRegex, this.resLiveRegex, this.resDeadRegex, this.resUnavaRegex, this.separator);
  3292. }
  3293. function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex, sep)
  3294. {
  3295. GM_xmlhttpRequest(
  3296. {
  3297. method: 'POST',
  3298. url: api,
  3299. headers: {
  3300. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3301. 'Content-type': 'application/x-www-form-urlencoded',
  3302. 'Referer': api,
  3303. 'X-Requested-With': 'XMLHttpRequest'
  3304. },
  3305. data: postData + encodeURIComponent(links),
  3306. onload: function (result)
  3307. {
  3308. var res = result.responseText;
  3309. //console.log(res);
  3310. if ((res.contains(">DDoS protection by CloudFlare") && res.contains(">Checking your browser before accessing<")) || res.contains('<iframe src="/_Incapsula_Resource?')) {
  3311. DisplayTheCheckedLinks(links.split(sep), 'unknown_link', 'Captcha required to check links');
  3312. sendMessage('Some links require you to fill out a captcha! Please open them manually.')
  3313. }
  3314. var i;
  3315.  
  3316. var livelinks = res.match(liveRegex);
  3317. var deadlinks = res.match(deadRegex);
  3318. //console.log(livelinks);
  3319. //console.log(deadlinks);
  3320. if (livelinks != null)
  3321. {
  3322. i = livelinks.length - 1;
  3323. do
  3324. {
  3325. livelinks[i] = livelinks[i].match(linkRegex)[1];
  3326. }
  3327. while (i--);
  3328. DisplayTheCheckedLinks(livelinks, 'alive_link');
  3329. }
  3330.  
  3331. if (deadlinks != null)
  3332. {
  3333. i = deadlinks.length - 1;
  3334. do
  3335. {
  3336. deadlinks[i] = deadlinks[i].match(linkRegex)[1];
  3337. }
  3338. while (i--);
  3339. DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3340. }
  3341.  
  3342. if (unavaRegex != null)
  3343. {
  3344. var unavalinks = res.match(unavaRegex)
  3345. if (unavalinks)
  3346. {
  3347. i = unavalinks.length - 1;
  3348. do
  3349. {
  3350. unavalinks[i] = unavalinks[i].match(linkRegex)[1];
  3351. }
  3352. while (i--);
  3353. DisplayTheCheckedLinks(unavalinks, 'unava_link');
  3354. }
  3355. }
  3356. },
  3357. onerror: function (e) {
  3358. var linkArr = links.split(sep);
  3359. DisplayTheCheckedLinks(linkArr, "unknown_link");
  3360. }
  3361. });
  3362. }
  3363. }
  3364. //specialized bulkchecking handlers follow
  3365. function oboomBulk() {
  3366. var a = [], b = [], c = [];
  3367. var array = this.links;
  3368.  
  3369. GM_xmlhttpRequest({
  3370. method: 'GET',
  3371. url: 'https://www.oboom.com/1/guestsession',
  3372. headers: {
  3373. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3374. 'Content-type': 'application/x-www-form-urlencoded',
  3375. 'Referer': 'https://www.oboom.com',
  3376. 'X-Requested-With': 'XMLHttpRequest'
  3377. },
  3378. onload: function(result) {
  3379. var blockIdx = array.length;
  3380. var token = JSON.parse(result.responseText)[1];
  3381. while (blockIdx--) {
  3382. startCheck(array[blockIdx].split('\r\n'), token);
  3383. }
  3384. }
  3385. });
  3386.  
  3387. function startCheck(links, token) {
  3388. GM_xmlhttpRequest({
  3389. method: 'POST',
  3390. url: "https://api.oboom.com/1/info",
  3391. headers: {
  3392. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3393. 'Content-type': 'application/x-www-form-urlencoded',
  3394. 'Referer': 'https://www.oboom.com/',
  3395. 'X-Requested-With': 'XMLHttpRequest'
  3396. },
  3397. data: "token=" + token + "&items=" + links.join(","),
  3398. onload: function(result) {
  3399. var res = JSON.parse(result.responseText)[1];
  3400. var i = res.length, s;
  3401.  
  3402. while (i--) {
  3403. s = res[i].state;
  3404. if (s == 'online') a.push(res[i].id);
  3405. else if (s == 'blocked' || s == 'abused' || s == 'lost' || s == 'not_found') b.push(res[i].id);
  3406. else c.push(res[i].id);
  3407. }
  3408.  
  3409. if (a.length > 0) DisplayTheCheckedLinks(a, 'alive_link');
  3410. if (b.length > 0) DisplayTheCheckedLinks(b, 'adead_link');
  3411. if (c.length > 0) DisplayTheCheckedLinks(c, 'unknown_link');
  3412. }
  3413. });
  3414. }
  3415. }
  3416.  
  3417. function upleaBC() {
  3418. var json = {
  3419. links: this.links[0].split('\r\n')
  3420. };
  3421.  
  3422. GM_xmlhttpRequest({
  3423. method: 'POST',
  3424. url: this.apiUrl,
  3425. data: 'json=' + JSON.stringify(json),
  3426. headers: {
  3427. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3428. 'Content-type': 'application/x-www-form-urlencoded',
  3429. 'Referer': 'http://uplea.com/checker',
  3430. 'X-Requested-With': 'XMLHttpRequest'
  3431. },
  3432. onload: function(result) {
  3433. var res = JSON.parse(result.responseText);
  3434. if (res.error.length > 0) {
  3435. var mes = 'Error in checking Uplea.com! Error message(s):';
  3436. $.each(res.error, function(key, val) { mes += '\r\n' + val; });
  3437. console.warn(mes); return;
  3438. }
  3439.  
  3440. var deadlinks = [], alivelinks = [], unavalinks = [];
  3441. $.each(res.result, function(key, val) {
  3442. if (val.status == 'OK') alivelinks.push(val.link);
  3443. else if (val.status == 'DELETED') deadlinks.push(val.link);
  3444. else unknownlinks.push(val.link);
  3445. });
  3446.  
  3447. if (deadlinks.length > 0) DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3448. if (alivelinks.length > 0) DisplayTheCheckedLinks(alivelinks, 'alive_link');
  3449. if (unknownlinks.length > 0) DisplayTheCheckedLinks(unavalinks, 'unknown_link');
  3450. }
  3451. });
  3452. }
  3453.  
  3454. function rapiduBulkCheck() {
  3455. var arr = this.links[0].split('\r\n').join(',');
  3456. GM_xmlhttpRequest({
  3457. method: 'POST',
  3458. url: this.apiUrl,
  3459. data: this.postData + arr,
  3460. headers: {
  3461. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3462. 'Content-type': 'application/x-www-form-urlencoded',
  3463. 'Referer': 'http://rapidu.net',
  3464. 'X-Requested-With': 'XMLHttpRequest'
  3465. },
  3466. onload: function(result) {
  3467. var res = JSON.parse(result.responseText);
  3468. var deadlinks = [], alivelinks = [];
  3469. $.each(res, function(key, value) {
  3470. if (value.fileStatus && value.fileStatus == 1) {
  3471. alivelinks.push(value.fileId);
  3472. } else if (value.fileStatus && value.fileStatus == 0) {
  3473. deadlinks.push(value.fileId);
  3474. }
  3475. });
  3476.  
  3477. if (deadlinks.length > 0) DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3478. if (alivelinks.length > 0) DisplayTheCheckedLinks(alivelinks, 'alive_link');
  3479. }
  3480. });
  3481. }
  3482.  
  3483. function webshareBulkCheck()
  3484. {
  3485. var arr = this.links[0].split('\r\n');
  3486. var i = arr.length;
  3487.  
  3488. while(i--)
  3489. {
  3490. postRequest(arr[i]);
  3491. }
  3492.  
  3493. function postRequest(wsLink) {
  3494. var id = wsLink.match(/webshare\.cz\/(?:(?:#\/)?file\/)?(\w+)/)[1];
  3495. GM_xmlhttpRequest({
  3496. method: 'POST',
  3497. url: "http://webshare.cz/api/file_info/",
  3498. headers: {
  3499. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3500. 'Content-type': 'application/x-www-form-urlencoded',
  3501. 'Referer': "",
  3502. },
  3503. data: "wst=&ident=" + id,
  3504. onload: function (result) {
  3505. var res = result.responseText;
  3506. if (res.contains(/<name>.+?<\/name>/))
  3507. {
  3508. DisplayTheCheckedLinks([id], 'alive_link');
  3509. }
  3510. else
  3511. {
  3512. DisplayTheCheckedLinks([id], 'adead_link');
  3513. }
  3514. }
  3515. });
  3516. }
  3517. }
  3518. function anysendBulkCheck() {
  3519. var arr = this.links[0].split('\r\n');
  3520. var blockIdx = arr.length;
  3521. while (blockIdx--) {
  3522. stepOne(arr[blockIdx]);
  3523. }
  3524. function stepOne(link) {
  3525. GM_xmlhttpRequest({
  3526. method: 'GET',
  3527. url: link,
  3528. headers: {
  3529. 'Referer': 'http://anysend.com'
  3530. },
  3531. onload: function(result) {
  3532. if (result.responseText.contains('<title>Removed download \\| AnySend</title>')) {
  3533. displayTheCheckedLink($('a:contains("' + link.match(/anysend\.com\/\w+/)[0] + '")')[0], 'adead_link');
  3534. return;
  3535. }
  3536. stepTwo(result.responseText.match(/f\.src="(http:\/\/download\.anysend\.com\/download\/download\.php\?key=\w{32}(?:&aff=\w+)?&visid=)"/)[1], link);
  3537. }
  3538. });
  3539. }
  3540. function stepTwo(link, origLink) {
  3541. GM_xmlhttpRequest({
  3542. method: 'GET',
  3543. url: 'http://affiliates.anysend.com/scripts/track.php?accountId=default1&tracking=1&url=H_anysend.com%2F%2F' + origLink.match(/\.com\/(\w{32})/[1]) + '&referer=&getParams=&anchor=&isInIframe=false&cookies=',
  3544. headers: {
  3545. 'Referer': origLink
  3546. },
  3547. onload: function(result) {
  3548. var stuff = result.responseText.match(/setVisitor\('(\w+)'\)/);
  3549. var visid = stuff ? stuff[1] : "";
  3550. stepThree(link, visid, origLink);
  3551. }
  3552. });
  3553. }
  3554. function stepThree(link, visid, origLink) {
  3555. link += visid;
  3556. $('a:contains("' + origLink.match(/anysend\.com\/\w+/)[0] + '")').attr('name', link);
  3557. GM_xmlhttpRequest({
  3558. method: 'GET',
  3559. url: link,
  3560. headers: {
  3561. 'Referer': origLink,
  3562. 'Cookie': 'PAPVisitorId=' + visid
  3563. },
  3564. onload: function(result) {
  3565. decideStatus(result.responseText, origLink);
  3566. }
  3567. })
  3568. }
  3569. function decideStatus(res, origLink) {
  3570. if (res.contains('<div class="dl-file-des|<a href="javascript:void(0);" onclick="showDownloadPopupT12')) {
  3571. displayTheCheckedLink($('a:contains("' + origLink.match(/anysend\.com\/\w+/)[0] + '")')[0], 'alive_link');
  3572. } else if (res.contains('>Your download is no longer available')) {
  3573. displayTheCheckedLink($('a:contains("' + origLink.match(/anysend\.com\/\w+/)[0] + '")')[0], 'adead_link');
  3574. } else {
  3575. displayTheCheckedLink($('a:contains("' + origLink.match(/anysend\.com\/\w+/)[0] + '")')[0], 'unknown_link', 'Unable to detect links status from response HTML');
  3576. }
  3577. }
  3578. }
  3579. function filecloudBulkCheck() {
  3580. var arr = this.links[0].split(this.separator);
  3581. var blockIdx = arr.length;
  3582. while (blockIdx--) {
  3583. check(arr[blockIdx]);
  3584. }
  3585. function check(ukey) {
  3586. GM_xmlhttpRequest({
  3587. method: 'POST',
  3588. url: 'http://api.filecloud.io/api-check_file.api',
  3589. headers: {
  3590. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3591. 'Content-type': 'application/x-www-form-urlencoded',
  3592. 'Referer': 'http://filecloud.io',
  3593. 'X-Requested-With': 'XMLHttpRequest'
  3594. },
  3595. data: 'ukey=' + encodeURIComponent(ukey),
  3596. onload: function(result) {
  3597. var res = JSON.parse(result.responseText);
  3598. if (res.status == 'ok' && res.message == 'fetched') {
  3599. DisplayTheCheckedLinks([ukey], 'alive_link');
  3600. } else if (res.status == 'error' && res.message == 'no such file') {
  3601. DisplayTheCheckedLinks([ukey], 'adead_link');
  3602. } else DisplayTheCheckedLinks([ukey], 'unknown_link');
  3603. },
  3604. onerror: function() {
  3605. DisplayTheCheckedLinks([ukey], 'unknown_link');
  3606. }
  3607. });
  3608. }
  3609. }
  3610. function gettBulkCheck() {
  3611. var arr = this.links[0].split("\r\n");
  3612. var i = arr.length;
  3613. var params, sharename, fileid;
  3614. while (i--) {
  3615. params = arr[i].match(/(\w+)(?:\/v\/(\d+))?/);
  3616. sharename = params[1], fileid = params[2] ? params[2] : 0;
  3617. GM_xmlhttpRequest({
  3618. method:"GET",
  3619. url: this.apiUrl + sharename + "/" + fileid,
  3620. headers: {
  3621. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3622. 'Content-type': 'application/x-www-form-urlencoded',
  3623. 'Referer': this.apiUrl,
  3624. 'X-Requested-With': 'XMLHttpRequest'
  3625. },
  3626. onload: function(result) {
  3627. var res = JSON.parse(result.responseText);
  3628. if (res.readystate == "uploaded") {
  3629. DisplayTheCheckedLinks([res.sharename], 'alive_link');
  3630. } else if (res.readystate == "removed") {
  3631. DisplayTheCheckedLinks([res.sharename], 'adead_link');
  3632. } else {
  3633. DisplayTheCheckedLinks([res.sharename], 'unknown_link');
  3634. }
  3635. }
  3636. });
  3637. }
  3638. }
  3639. function uploadingBulkCheck()
  3640. {
  3641. var blockIdx = this.links.length;
  3642. while (blockIdx--)
  3643. {
  3644. postRequest(this.apiUrl, this.postData, this.links[blockIdx],
  3645. this.resLinkRegex, this.resLiveRegex, this.resDeadRegex, this.resUnavaRegex);
  3646. }
  3647. function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex)
  3648. {
  3649. GM_xmlhttpRequest(
  3650. {
  3651. method: 'POST',
  3652. url: api,
  3653. headers: {
  3654. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3655. 'Content-type': 'application/x-www-form-urlencoded',
  3656. 'Referer': api,
  3657. 'X-Requested-With': 'XMLHttpRequest'
  3658. },
  3659. data: postData + encodeURIComponent(links),
  3660. onload: function (result)
  3661. {
  3662. var res = result.responseText;
  3663.  
  3664. var i;
  3665.  
  3666. var livelinks = res.match(liveRegex);
  3667. var deadlinks = res.match(deadRegex);
  3668. var allLinks = links.split("\r\n");
  3669. for(i=0;i<allLinks.length;i++) {
  3670. allLinks[i] = allLinks[i].match(/uploading\.com\/(?:files\/|\w+\/\?get=)?(\w+)/)[1];
  3671. }
  3672. if (livelinks != null)
  3673. {
  3674. i = livelinks.length - 1;
  3675. do
  3676. {
  3677. livelinks[i] = livelinks[i].match(linkRegex)[1].toLowerCase();
  3678. livelinks.push(livelinks[i].toUpperCase());
  3679. allLinks.splice($.inArray(livelinks[i], allLinks), 1);
  3680. }
  3681. while (i--);
  3682. DisplayTheCheckedLinks(livelinks, 'alive_link');
  3683. }
  3684.  
  3685. if (deadlinks != null)
  3686. {
  3687. i = deadlinks.length - 1;
  3688. do
  3689. {
  3690. deadlinks[i] = deadlinks[i].match(linkRegex)[1].toLowerCase();
  3691. deadlinks.push(deadlinks[i].toUpperCase());
  3692. allLinks.splice($.inArray(deadlinks[i], allLinks), 1);
  3693. }
  3694. while (i--);
  3695. DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3696. }
  3697. if (allLinks.length > 0)
  3698. {
  3699. i = allLinks.length - 1;
  3700. do
  3701. {
  3702. websiteCheck(allLinks[i]);
  3703. }
  3704. while (i--);
  3705. }
  3706. }
  3707. });
  3708. }
  3709. function websiteCheck(link) {
  3710. var realLink = "http://uploading.com/files/" + link;
  3711. GM_xmlhttpRequest({
  3712. method: 'GET',
  3713. url: realLink,
  3714. headers: {
  3715. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3716. 'Content-type': 'application/x-www-form-urlencoded',
  3717. 'Referer': realLink,
  3718. 'X-Requested-With': 'XMLHttpRequest'
  3719. },
  3720. onload: function (result) {
  3721. if (result.status == 503) websiteCheck(link);
  3722. res = result.responseText;
  3723. if (res.contains('file_error">|error_404">')) {
  3724. DisplayTheCheckedLinks([link], 'adead_link');
  3725. }
  3726. else if (res.contains('free_method">')) {
  3727. DisplayTheCheckedLinks([link], 'alive_link');
  3728. }
  3729. }
  3730. });
  3731. }
  3732. }
  3733. function dateiToBulk()
  3734. {
  3735. var arr = this.links[0].split("\r\n");
  3736. var data = "key=YYMHGBR9SFQA0ZWA&info=STATUS&datei=";
  3737. var i = arr.length;
  3738. while(i--)
  3739. {
  3740. var token = arr[i].match(/\.to\/(?:datei\/|files\/|1,|\?)(\w+)/)[1];
  3741. postRequest(token);
  3742. }
  3743. function postRequest(token) {
  3744. data += token;
  3745. GM_xmlhttpRequest({
  3746. method:"POST",
  3747. url:"http://api.datei.to/",
  3748. data:data,
  3749. headers: {
  3750. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3751. 'Content-type': 'application/x-www-form-urlencoded',
  3752. 'Referer': ""
  3753. },
  3754. onload: function(result) {
  3755. var res = result.responseText;
  3756. if (res.contains('offline')) {
  3757. DisplayTheCheckedLinks([token],'adead_link');
  3758. }
  3759. else if (res.contains('online')) {
  3760. DisplayTheCheckedLinks([token], 'alive_link');
  3761. }
  3762. }
  3763. });
  3764. }
  3765. }
  3766. /* function uploadedBulkCheck()
  3767. {
  3768. var t = this.links.length;
  3769. while (t--) {
  3770. var arr = this.links[t].split("\r\n");
  3771. var data = "apikey=lhF2IeeprweDfu9ccWlxXVVypA5nA3EL";
  3772. for (var i=0;i<arr.length;i++)
  3773. {
  3774. try {
  3775. arr[i] = arr[i].match(/(?:uploaded|ul)\.(?:to|net)\/(?:files?|\?(?:lang=\w{2}&)?id=|f\/|folder)?\/*(?!img\/|coupon\/)(\w{8})/)[1];
  3776. } catch (e) {
  3777. console.warn("Error in checking Uploaded: " + arr[i]);
  3778. DisplayTheCheckedLinks([arr[i]], "unknown_link");
  3779. }
  3780. data += "&id_"+i+"="+arr[i];
  3781. }
  3782. GM_xmlhttpRequest(
  3783. {
  3784. method: "POST",
  3785. url: "https://uploaded.net/api/filemultiple",
  3786. data: data,
  3787. headers: {
  3788. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3789. 'Content-type': 'application/x-www-form-urlencoded',
  3790. 'Referer': ""
  3791. },
  3792. onload: function (result)
  3793. {
  3794. var res = result.responseText;
  3795.  
  3796. var i;
  3797. var livelinks = res.match(/online,\w+,/g);
  3798. var deadlinks = res.match(/offline,\w+,/g);
  3799. if (livelinks)
  3800. {
  3801. var i = livelinks.length - 1;
  3802. do
  3803. {
  3804. livelinks[i] = livelinks[i].match(/,(\w+),/)[1];
  3805. }
  3806. while (i--);
  3807. DisplayTheCheckedLinks(livelinks, 'alive_link');
  3808. }
  3809. if (deadlinks)
  3810. {
  3811. var i = deadlinks.length - 1;
  3812. do
  3813. {
  3814. deadlinks[i] = deadlinks[i].match(/,(\w+),/)[1];
  3815. }
  3816. while (i--);
  3817. DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3818. }
  3819. }
  3820. });
  3821. }
  3822. }
  3823. */
  3824. function megaBulkCheck()
  3825. {
  3826. var arr = this.links[0].split("\r\n");
  3827. var i = arr.length;
  3828. var seqno = Math.floor(Math.random()*1000000000);
  3829. while(i--)
  3830. {
  3831. postRequest(arr[i]);
  3832. }
  3833. function postRequest(megaLink)
  3834. {
  3835. var id = megaLink.match(/mega\.(?:co\.)?nz\/#!(\w+)(?:!\w+)?/)[1];
  3836.  
  3837. GM_xmlhttpRequest(
  3838. {
  3839. method: "POST",
  3840. url: 'https://g.api.mega.co.nz/cs?id=' + seqno++,
  3841. data: '[{"a":"g","p":"' + id + '","ssl": "1"}]',
  3842. headers: {
  3843. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  3844. 'Content-Type': 'application/xml',
  3845. 'Referer': "https://mega.co.nz/"
  3846. },
  3847. onload: function (result)
  3848. {
  3849. var res = $.parseJSON(result.responseText.match(/\[(.+?)\]/)[1]);
  3850. if ((typeof res == "number" && (res == -9 || res == -16 || res == -6)) || res.d) {
  3851. DisplayTheCheckedLinks([id], 'adead_link');
  3852. } else if (res.e == "ETEMPUNAVAIL") {
  3853. DisplayTheCheckedLinks([id], 'unava_link');
  3854. } else if (res.at) {
  3855. DisplayTheCheckedLinks([id], 'alive_link');
  3856. } else {
  3857. console.warn("Error in checking Mega.co.nz! Please notify devs.\r\nError code: " + result.responseText);
  3858. }
  3859. }
  3860. });
  3861. }
  3862. }
  3863. function netloadBulkCheck()
  3864. {
  3865. var blockIdx = this.links.length;
  3866.  
  3867. while (blockIdx--)
  3868. {
  3869. postRequest(this.apiUrl, this.postData, this.links[blockIdx],
  3870. this.resLinkRegex, this.resLiveRegex, this.resDeadRegex, this.unavaRegex);
  3871. }
  3872. function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex)
  3873. {
  3874. GM_xmlhttpRequest(
  3875. {
  3876. method: 'POST',
  3877. url: api,
  3878. headers: {
  3879. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3880. 'Content-type': 'application/x-www-form-urlencoded',
  3881. 'Referer': ""
  3882. },
  3883. data: postData + encodeURIComponent(links),
  3884. onload: function (result)
  3885. {
  3886. var res = result.responseText;
  3887. //console.log(res);
  3888. if (res.contains('<title>403 - Forbidden</title>')){
  3889. postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex);
  3890. }
  3891. var i;
  3892.  
  3893. var livelinks = res.match(liveRegex);
  3894. var deadlinks = res.match(deadRegex);
  3895. //console.log(livelinks);
  3896. //console.log(deadlinks);
  3897. if (livelinks != null)
  3898. {
  3899. i = livelinks.length - 1;
  3900. do
  3901. {
  3902. recheckLink(livelinks[i].match(linkRegex)[1]);
  3903. //livelinks[i] = livelinks[i].match(linkRegex)[1];
  3904. }
  3905. while(i--);
  3906. //DisplayTheCheckedLinks(livelinks, "alive_link");
  3907. }
  3908.  
  3909. if (deadlinks != null)
  3910. {
  3911. i = deadlinks.length - 1;
  3912. do
  3913. {
  3914. deadlinks[i] = deadlinks[i].match(linkRegex)[1];
  3915. }
  3916. while (i--);
  3917. DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3918. }
  3919. }
  3920. });
  3921. }
  3922. function recheckLink(link)
  3923. {
  3924. var link = link;
  3925. GM_xmlhttpRequest(
  3926. {
  3927. method: 'GET',
  3928. url: 'http://netload.in/datei' + link + '.htm',
  3929. headers: {
  3930. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  3931. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  3932. 'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
  3933. 'Referer': ""
  3934. },
  3935. onload: function (result)
  3936. {
  3937. var res = result.responseText;
  3938.  
  3939. if (res.contains('dl_first_file_download">|download_limit.gif'))
  3940. {
  3941. DisplayTheCheckedLinks([link], 'alive_link');
  3942. return;
  3943. }
  3944.  
  3945. if (res.contains('achtung.jpg"'))
  3946. {
  3947. DisplayTheCheckedLinks([link], 'adead_link');
  3948. }
  3949. },
  3950. onerror: function ()
  3951. {
  3952. displayTheCheckedLink(link, 'unava_link');
  3953. }
  3954. });
  3955. }
  3956. }
  3957.  
  3958. function depositfilesBulkCheck()
  3959. {
  3960. var arr = this.links[0].split("\r\n");
  3961. var i = arr.length;
  3962. while(i--)
  3963. {
  3964. postRequest(arr[i]);
  3965. }
  3966. function postRequest(dfLink)
  3967. {
  3968. var id = dfLink.match(/(?:depositfiles\.(?:com|lt|org)|dfiles\.(?:eu|ru))\/(?:en\/|ru\/|de\/|es\/|pt\/|)files\/(\w+)/)[1];
  3969.  
  3970. GM_xmlhttpRequest(
  3971. {
  3972. method: "POST",
  3973. url: 'http://depositfiles.com/api/get_download_info.php?id=' + id + "&format=json",
  3974. headers: {
  3975. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  3976. 'Content-Type': 'application/x-www-form-urlencoded',
  3977. 'Referer': ""
  3978. },
  3979. onload: function (result)
  3980. {
  3981. var res = result.responseText;
  3982. //console.log(res);
  3983. if (res == "") {
  3984. postRequest(dfLink);
  3985. }
  3986. if (res.contains('no_file'))
  3987. {
  3988. DisplayTheCheckedLinks(["files/" + id], 'adead_link');
  3989. return;
  3990. }
  3991. if (res.contains('file_ban')) {
  3992. DisplayTheCheckedLinks(["files/" + id], 'unknown_link');
  3993. return;
  3994. }
  3995.  
  3996. if (res.contains(/download_li(?:nk|mit)|password_check|file_storage/))
  3997. {
  3998. DisplayTheCheckedLinks(["files/" + id], 'alive_link');
  3999. }
  4000. }
  4001. });
  4002. }
  4003. }
  4004. }
  4005.  
  4006. function initFileHosts()
  4007. {
  4008. var aOHCount = "1";
  4009. function addObsoleteHost(hostName, linkRegex)
  4010. {
  4011. hostName = hostName.split("|");
  4012. var i = hostName.length;
  4013. var hostID = "OH" + aOHCount;
  4014. while(i--) {
  4015. var filehost = gimmeHostName(hostName[i]).replace(/\./g, "_dot_").replace(/\-/g, "_dash_");
  4016. if (!hostsIDs[filehost]) {
  4017. hostsIDs[filehost] = [];
  4018. }
  4019. hostsIDs[filehost].push({
  4020. hostID: hostID,
  4021. linkRegex: linkRegex,
  4022. });
  4023. }
  4024. var OHObj = {
  4025. links: []
  4026. }
  4027. hostsCheck[hostID] = OHObj;
  4028. aOHCount++;
  4029. }
  4030.  
  4031. //obsolete file hosts init start
  4032. if (hostSet("Obsolete_file_hosts", false))
  4033. {
  4034. addObsoleteHost("superfastfile.com", "superfastfile\\.com\/\\w+");
  4035. addObsoleteHost("uploadlab.com", "files\\.uploadlab\\.com\/\\w+");
  4036. addObsoleteHost("zupload.com", "z\\d+\\.zupload\\.com\/\\w+");
  4037. addObsoleteHost("enterupload.com|flyupload.com", "(?:flyupload\\.)?(?:enterupload|flyupload)\\.com\/");
  4038. addObsoleteHost("filesdump.com", "(?:s\\d+\\.|)filesdump\\.com\/file\/\\w+");
  4039. addObsoleteHost("speedie-host.com", "uploads\\.speedie\\-host\\.com\/\\w+");
  4040. addObsoleteHost("turboupload.com", "(?:d\\.|)turboupload\\.com\/\\w+");
  4041. addObsoleteHost("share2u.net", "dl\\.share2u\\.net\/\\w+");
  4042. addObsoleteHost("filestock.net|filestock.ru", "(?:download\\.)?filestock\\.(?:net|ru)\/\\w+");
  4043. addObsoleteHost("ex.ua", "(?:fs\\d{1,2}\\.)?(?:www\\.|)ex\\.ua\/\\w+");
  4044. addObsoleteHost("omxira.com", "(?:get\\.|)omxira\\.com\/\\w+");
  4045. addObsoleteHost("uploadtornado.com", "(?:\\w{2}\\.)uploadtornado\\.com\/\\w+");
  4046. addObsoleteHost("bgdox.com", "(?:turbo\\.)?bgdox\\.com\/\\w+");
  4047. addObsoleteHost("fshare.eu", "www\\d?\\.fshare\\.eu\/\\w+");
  4048. var i = allObsoleteNames.length;
  4049. while(i--)
  4050. {
  4051. addObsoleteHost(
  4052. allObsoleteNames[i],
  4053. "https?:\/\/(?:[a-zA-Z0-9-]+\\.)?(?:" + allObsoleteNames[i].replace(/\./g, "\\.").replace(/\-/g, "\\-") + ")\/"
  4054. );
  4055. }
  4056. }
  4057. //obsolete file hosts init end
  4058. var aFHCount = 1;
  4059. function addFileHost(hostName, linkRegex, isAliveRegex, isDeadRegex, isUnavaRegex, tryLoop)
  4060. {
  4061. hostName = hostName.split("|");
  4062. var i = hostName.length;
  4063. var hostID = "WC" + aFHCount;
  4064. while(i--) {
  4065. var filehost = hostName[i].replace(/\./g, "_dot_").replace(/\-/g, "_dash_");
  4066.  
  4067. if (!hostsIDs[filehost]) {
  4068. hostsIDs[filehost] = [];
  4069. }
  4070. hostsIDs[filehost].push({
  4071. hostID: hostID,
  4072. linkRegex: linkRegex,
  4073. });
  4074. }
  4075. var WCObj = {
  4076. liveRegex: isAliveRegex,
  4077. deadRegex: isDeadRegex,
  4078. unavaRegex: isUnavaRegex,
  4079. tryLoop: false,
  4080. links: []
  4081. }
  4082. if (tryLoop) WCObj.tryLoop = true;
  4083. hostsCheck[hostID] = WCObj;
  4084. aFHCount++;
  4085. }
  4086. var genericWC = [ "filesbowl.com", "freakbit.net", "upfile.vn", "upbooth.com", "fileshareup.com", "rabidfiles.com", "host4files.com",
  4087. "weshare.me", "thefilebay.com"];
  4088. var XFSPWC = [ "fileplanet.com.ua|fileplaneta.com", "xvidstage.com", "midupload.com", "share.az",
  4089. "interfile.net", "medofire.com", "downloadani.me", "uptobox.com", "uppit.com", "filenuke.com",
  4090. "filecore.co.nz", "1000shared.com", "tusfiles.net|tusfiles.com", "lafiles.com"];
  4091.  
  4092. var genThird = [ "jumbofiles.org|jumbofilebox.com", "10shared.com", "4bigbox.com", "skyfilebox.com"]
  4093. var gWC = genericWC.length;
  4094. while(gWC--) {
  4095. if (hostSet("Check_" + genericWC[gWC].replace(/\./g, "_dot_").replace(/\-/g, "_dash_") + "_links", false))
  4096. {
  4097. addFileHost(
  4098. genericWC[gWC],
  4099. genericWC[gWC].replace(/\./g, "\\.").replace(/\-/g, "\\-") + "\/\\w+",
  4100. /<div class="(?:download|captcha)PageTable"|<a class="link btn-free"|download-timer|<span id="loadingSpinner">/,
  4101. /<li>File (?:has been removed|not found)|<div id="uploaderContainer"/,
  4102. 'optional--'
  4103. );
  4104. }
  4105. }
  4106. var xWC = XFSPWC.length;
  4107. while (xWC--) {
  4108. if (hostSet("Check_" + XFSPWC[xWC].match(/[\w\.\-]+/)[0].replace(/\./g, "_dot_").replace(/\-/g, "_dash_") + "_links", false))
  4109. {
  4110. addFileHost(
  4111. XFSPWC[xWC],
  4112. "(?:" + XFSPWC[xWC].replace(/\./g, "\\.").replace(/\-/g, "\\-") + ")\/\\w+",
  4113. 'name="method_free"|id="btn_download"|value="Free Download"',
  4114. />(?:File not found|The file was removed by administrator|Datei nicht gefunden|No such file|The file you are trying to download is no longer available)\s*<|<div id="div_file" class="upload_block">/i,
  4115. '>This server is in maintenance mode|<img src="/images/under.gif"',
  4116. true);
  4117. }
  4118. }
  4119.  
  4120. var tWC = genThird.length;
  4121. while (tWC--) {
  4122. if (hostSet("Check_" + genThird[tWC].match(/[\w\.\-]+/)[0].replace(/\./g, "_dot_").replace(/\-/g, "_dash_") + "_links", false))
  4123. {
  4124. addFileHost(
  4125. genThird[tWC],
  4126. "(?:" + genThird[tWC].replace(/\./g, "\\.").replace(/\-/g, "\\-") + ")\/newfile\\?n=\\w+",
  4127. '<div class="downloadfree">',
  4128. 'div_file"',
  4129. 'optional--'
  4130. );
  4131. }
  4132. }
  4133.  
  4134. if (hostSet("Check_megafileupload_dot_com_links", false))
  4135. {
  4136. addFileHost(
  4137. "megafileupload.com",
  4138. "megafileupload\.com\/..\/file\/",
  4139. 'downloadbtn',
  4140. 'is not found',
  4141. 'optional--');
  4142. }
  4143.  
  4144. if (hostSet("Check_safelinking_dot_net_links", false))
  4145. {
  4146. addFileHost(
  4147. 'safelinking.net',
  4148. "safelinking\\.net\/p\/\\w{10}",
  4149. 'color:green;"',
  4150. 'color:red;"|<p>This link does not exist.',
  4151. 'optional--',
  4152. true);
  4153. }
  4154.  
  4155. if (hostSet("Check_ultramegabit_dot_com_links", false))
  4156. {
  4157. addFileHost(
  4158. "ultramegabit.com",
  4159. "ultramegabit\\.com\/file\/details\/[\\w+-]",
  4160. '>Your download is ready<|>Premium members only<',
  4161. />File (?:not found|restricted|has been deleted(?:\.| in compliance with the DMCA))<|\/folder\/add/,
  4162. 'btn-large btn-danger">|Account limitation notice|>File not available.<|>This download server is overloaded<|502 Bad Gateway',
  4163. true);
  4164. }
  4165. if (hostSet("Check_fastshare_dot_cz_links", false))
  4166. {
  4167. addFileHost(
  4168. "fastshare.cz",
  4169. "fastshare\\.cz\/\\d+\/\\w*",
  4170. 'dwntable">',
  4171. 'nebyla nalezena|nebola nájdená|nie została odnaleziona|color:red;font-weight:bold;border-style:dashed|<b>Requested page not found.',
  4172. 'optional--');
  4173. }
  4174. if (hostSet("Check_fastshare_dot_org_links", false))
  4175. {
  4176. addFileHost(
  4177. "fastshare.org|FastShare.org",
  4178. "[fF]ast[sS]hare\\.org\/download",
  4179. 'Download ">',
  4180. 'Diese Datei wurde wegen|wurde kein Dateiname',
  4181. 'optional--');
  4182. }
  4183.  
  4184. if (hostSet("Check_1fichier_dot_com_links", false))
  4185. {
  4186. addFileHost(
  4187. "1fichier.com|dl4free.com",
  4188. "(?:1fichier|dl4free)\\.com\/",
  4189. 'Download tag"|countdown">|class="form-button"|<input type="submit" value="Download" class="ok" />|<title>Download</title>|form-button" name="submit|ok btn-general btn-orange"',
  4190. 'errorDiv"|File not found|Fichier introuvable|margin:auto;padding-bottom:20px">|Select files to send',
  4191. 'optional--');
  4192. }
  4193.  
  4194. if (hostSet("Check_relink_dot_us_links", false))
  4195. {
  4196. addFileHost(
  4197. "relink.us",
  4198. "relink\\.us\/(?:f\/\\w+|go\\.php\\?id=\\d+|view\\.php\\?id=\\d+)",
  4199. 'online_detail.png" alt="Status',
  4200. /(?:offline|partially)_detail\.png" alt="Status|File deleted/,
  4201. 'unknown_detail.png" alt="Status'
  4202. );
  4203. }
  4204. if (hostSet("Check_flyfiles_dot_net_links", false))
  4205. {
  4206. addFileHost(
  4207. "flyfiles.net",
  4208. "flyfiles\\.net\/\\w+",
  4209. 'download_button"|"Download file"',
  4210. 'File not found!|Файл не найден',
  4211. 'optional--'
  4212. );
  4213. }
  4214. if (hostSet("Check_wikiupload_dot_com_links", false))
  4215. {
  4216. addFileHost(
  4217. "wikiupload.com",
  4218. "wikiupload\\.com\/\\w+",
  4219. 'download-button">',
  4220. 'Sorry, File not found|theme-container">',
  4221. 'optional--'
  4222. );
  4223. }
  4224. if (hostSet("Check_hostuje_dot_net_links", false))
  4225. {
  4226. addFileHost(
  4227. "hostuje.net",
  4228. "hostuje\\.net\/file\\.php\\?id=\\w+",
  4229. 'file.php">|Pobierz Plik',
  4230. 'Podany plik zosta. skasowany z powodu naruszania praw autorskich...|Podany plik nie zosta. odnaleziony...',
  4231. 'optional--'
  4232. );
  4233. }
  4234.  
  4235. if (hostSet("Check_tufiles_dot_ru_links", false))
  4236. {
  4237. addFileHost(
  4238. "tufiles.ru|turbob1t.ru|filesmail.ru|failookmenik.ru|firebit.in|dlbit.net|china-gsm.ru|3aka4aem.ru|turbo-bit.ru|turbosfiles.ru|piratski.ru|mnogofiles.com|links-free.ru",
  4239. "(?:tufiles|turbob1t|failoobmenik|filesmail|firebit|dlbit|files\\.china\\-gsm|3aka4aem|file\\.piratski|mnogofiles|links-free|turbo-bit|turbosfiles)\\.\\w+\/\\w+",
  4240. 'download-file">',
  4241. /col-1">\s*<h1>/,
  4242. 'optional--'
  4243. );
  4244. }
  4245.  
  4246. if (hostSet("Check_data_dot_hu_links", false))
  4247. {
  4248. addFileHost(
  4249. "data.hu",
  4250. "data\\.hu\/get\/\\d+\/",
  4251. 'download_box_button',
  4252. 'missing.php',
  4253. 'optional--',
  4254. true
  4255. );
  4256. }
  4257. if (hostSet("Check_filesmelt_dot_com_links", false))
  4258. {
  4259. addFileHost(
  4260. "filesmelt.com",
  4261. "filesmelt\\.com\/dl\/\\w+",
  4262. 'ready">',
  4263. 'Sorry, but your',
  4264. 'optional--'
  4265. );
  4266. }
  4267. if (hostSet("Check_files_dot_indowebster_dot_com_links", false))
  4268. {
  4269. addFileHost(
  4270. "indowebster.com",
  4271. "files\\.indowebster\\.com\/download\/\\w+\/",
  4272. 'premiumBtn"',
  4273. 'errorMessage"',
  4274. 'optional--'
  4275. );
  4276. }
  4277. if (hostSet("Check_superload_dot_cz_links", false))
  4278. {
  4279. addFileHost(
  4280. "superload.cz",
  4281. "superload\\.cz\/dl\/\\w+",
  4282. 'icon-download">',
  4283. 'soubor nebyl nalezen',
  4284. 'optional--'
  4285. );
  4286. }
  4287. if (hostSet("Check_easybytez_dot_com_links", false))
  4288. {
  4289. addFileHost(
  4290. "easybytez.com",
  4291. "easybytez\\.com\/\\w+",
  4292. 'op" value="download',
  4293. '/stop_error.gif|#FF0000"><h3>Download not available',
  4294. 'optional--'
  4295. );
  4296. }
  4297. if (hostSet("Check_filestore_dot_com_dot_ua_links", false))
  4298. {
  4299. addFileHost(
  4300. "filestore.com",
  4301. "filestore\\.com\\.ua\/\\?d=\\w+",
  4302. 'tdrow1>',
  4303. 'class=warn',
  4304. 'optional--'
  4305. );
  4306. }
  4307. if (hostSet("Check_netkups_dot_com_links", false))
  4308. {
  4309. addFileHost(
  4310. "netkups.com",
  4311. "netkups\\.com\/\\?d=\\w+",
  4312. '<form method="post"',
  4313. '<div align="center">|>File not found',
  4314. 'optional--'
  4315. );
  4316. }
  4317.  
  4318. if (hostSet("Check_extmatrix_dot_com_links", false))
  4319. {
  4320. addFileHost(
  4321. "extmatrix.com",
  4322. "extmatrix\\.com\/files\/\\w+",
  4323. 'div class="success"',
  4324. 'div class="error"',
  4325. 'optional--'
  4326. );
  4327. }
  4328. if (hostSet("Check_sendfiles_dot_nl_links", false))
  4329. {
  4330. addFileHost(
  4331. "sendfiles.nl",
  4332. "sendfiles\\.nl\/download.aspx\\?ID=\\w+",
  4333. 'content_lnkDownload',
  4334. 'error.aspx?',
  4335. 'optional--'
  4336. );
  4337. }
  4338. if (hostSet("Check_sockshare_dot_com_links", false))
  4339. {
  4340. addFileHost(
  4341. "sockshare.com",
  4342. "sockshare\\.com\/file\/\\w+",
  4343. 'choose_speed">',
  4344. 'message t_0\'>|Welcome to SockShare</h1>',
  4345. 'optional--'
  4346. );
  4347. }
  4348. if (hostSet("Check_yourfilestore_dot_com_links", false))
  4349. {
  4350. addFileHost(
  4351. "yourfilestore.com",
  4352. "yourfilestore\\.com\/download\/\\d+\/",
  4353. 'download_data">',
  4354. 'may have been deleted|<h1>Sorry!</h1>',
  4355. 'optional--'
  4356. );
  4357. }
  4358. if (hostSet("Check_nekaka_dot_com_links", false))
  4359. {
  4360. addFileHost(
  4361. "nekaka.com",
  4362. "nekaka\\.com\/d\/[\\w-]+",
  4363. '<b>Please Wait <span id="waittime">',
  4364. /invalid file link|<p>\s*File has been blocked|>File does not exist</,
  4365. 'optional--'
  4366. );
  4367. }
  4368. if (hostSet("Check_filebig_dot_net_links", false))
  4369. {
  4370. addFileHost(
  4371. "filebig.net",
  4372. "filebig\\.net\/files\/\\w+",
  4373. 'downloadFile">',
  4374. '<p>File not found</p>',
  4375. 'optional--'
  4376. );
  4377. }
  4378.  
  4379. if (hostSet("Check_filefront_dot_com_links", false))
  4380. {
  4381. addFileHost(
  4382. "filefront.com|gamefront.com",
  4383. "(?:files\\.|\\w+\\.|)(?:file|game)front\\.com\/\\w+",
  4384. 'downloadLink">|class="downloadNow"|<strong>Download',
  4385. /File not found, you|(?:File|Page) Not Found/,
  4386. 'unavailable at the moment'
  4387. );
  4388. }
  4389. if (hostSet("Check_free_dash_uploading_dot_com_links", false))
  4390. {
  4391. addFileHost(
  4392. "free-uploading.com",
  4393. "free\\-uploading\\.com\/\\w+",
  4394. 'op" value="download',
  4395. 'class="err">|width:500px;text-align:left;">',
  4396. 'optional--'
  4397. );
  4398. }
  4399. if (hostSet("Check_filesin_dot_com_links", false))
  4400. {
  4401. addFileHost(
  4402. "filesin.com",
  4403. "filesin\\.com\/\\w+",
  4404. 'download_area">',
  4405. 'error_note">',
  4406. 'optional--',
  4407. true
  4408. );
  4409. }
  4410. if (hostSet("Check_nowdownload_dot_eu_links", false))
  4411. {
  4412. addFileHost(
  4413. "nowdownload.eu|nowdownload.ch|nowdownload.co",
  4414. "nowdownload\\.(?:eu|ch|co)\/dl\/\\w+",
  4415. 'alert-success"',
  4416. 'This file does not exist!',
  4417. 'The file is being transfered'
  4418. );
  4419. }
  4420. if (hostSet("Check_axifile_dot_com_links", false))
  4421. {
  4422. addFileHost(
  4423. "axfile.com",
  4424. "axifile\\.com(?:\/\w(2))?\/\\??\\w+",
  4425. 'Dbutton_big"',
  4426. 'download-error.php',
  4427. 'optional--'
  4428. );
  4429. }
  4430. /* if (hostSet("Check_asfile_dot_com_links", false))
  4431. {
  4432. addFileHost(
  4433. "asfile.com",
  4434. "asfile\\.com\/file\/\\w+",
  4435. 'link_line">|id="download_button"',
  4436. /Page not found|(?:deleted|is not exist|gelöscht)<\/strong>/,
  4437. 'optional--'
  4438. );
  4439. } */
  4440. //do not use checkfiles.html bulk check, not working properly for all links
  4441. if (hostSet("Check_hulkshare_dot_com_links", false))
  4442. {
  4443. addFileHost(
  4444. "hulkshare.com|hu.lk",
  4445. "(?:hulkshare\\.com|hu\\.lk)\/\\w+",
  4446. 'download.sam.png|bigDownloadBtn basicDownload|halfTop">',
  4447. 'File does not exist|fingerprint protected copyright|disabled for public access|File no longer available!|This is a private file',
  4448. 'optional--'
  4449. );
  4450. }
  4451. if (hostSet("Check_movshare_dot_net_links", false))
  4452. {
  4453. addFileHost(
  4454. "movshare.net",
  4455. "movshare\\.net\/\\w+",
  4456. 'videoPlayer"',
  4457. 'no longer exists',
  4458. 'optional--'
  4459. );
  4460. }
  4461. if (hostSet("Check_mafiastorage_dot_com_links", false))
  4462. {
  4463. addFileHost(
  4464. "mafiastorage.com",
  4465. "mafiastorage\\.com\/\\w+",
  4466. 'op" value="download',
  4467. 'class="err">|style="width:500px;text-align:left;"',
  4468. 'optional--'
  4469. );
  4470. }
  4471.  
  4472. if (hostSet("Check_uploadspace_dot_pl_links", false))
  4473. {
  4474. addFileHost(
  4475. "uploadspace.pl",
  4476. "uploadspace\.pl\/plik\\w+",
  4477. /Downloading .+? \|/,
  4478. 'Downloading a file',
  4479. 'optional--'
  4480. );
  4481. }
  4482. if (hostSet("Check_uploadingit_dot_com_links", false))
  4483. {
  4484. addFileHost(
  4485. "uploadingit.com",
  4486. "uploadingit\\.com\/(?:file|d)\/\\w+",
  4487. 'downloadTitle">',
  4488. 'deleteContent">',
  4489. 'optional--'
  4490. );
  4491. }
  4492. if (hostSet("Check_stiahni_dot_si_links", false))
  4493. {
  4494. addFileHost(
  4495. "stiahni.si",
  4496. "stiahni\\.si\/(?:download\\.php\\?id=|file\/)\\w+",
  4497. 'button-download-symbol">|#downloadModal" onclick="download();">',
  4498. 'exclamation.png|The file not found">|file you are trying to download has been deleted',
  4499. 'optional--'
  4500. );
  4501. }
  4502.  
  4503. if (hostSet("Check_rghost_dot_net_links", false))
  4504. {
  4505. addFileHost(
  4506. "rghost.net|rghost.ru",
  4507. "rghost\.(?:net|ru)\/(?:|private\/)\\d+",
  4508. 'download_link|btn large download"',
  4509. 'file is restricted|File is deleted|503 Service Unavailable',
  4510. 'File was deleted'
  4511. );
  4512. }
  4513.  
  4514. if (hostSet("Check_xdisk_dot_cz_links", false))
  4515. {
  4516. addFileHost(
  4517. "xdisk.cz",
  4518. "xdisk\\.cz\/(?:..\/)?download\\.php\\?id=\\w+",
  4519. /">Staženo:\\s*<\/span>/,
  4520. 'Soubor, který hledáte nenalezen',
  4521. 'optional--'
  4522. );
  4523. }
  4524.  
  4525. if (hostSet("Check_vidxden_dot_com_links", false))
  4526. {
  4527. addFileHost(
  4528. "vidxden.com|vidbux.com",
  4529. "(?:vidxden|vidbux)\.com\/\\w+",
  4530. 'Continue to Video"',
  4531. 'No such file',
  4532. 'optional--'
  4533. );
  4534. }
  4535.  
  4536. if (hostSet("Check_daten_dash_hoster_dot_de_links", false))
  4537. {
  4538. addFileHost(
  4539. "daten-hoster.de|filehosting.org|filehosting.at",
  4540. "(?:daten-hoster\\.de|filehosting\\.(?:org|at))\/file\/\\w+",
  4541. '<table class="table table-bordered',
  4542. '<div class="alert alert-error',
  4543. 'optional--'
  4544. );
  4545. }
  4546.  
  4547. if (hostSet("Check_fileflyer_dot_com_links", false))
  4548. {
  4549. addFileHost(
  4550. "fileflyer.com",
  4551. "fileflyer\.com\/view\/\\w+",
  4552. 'dwlbtn"',
  4553. 'error.gif"|link">Removed|removedlink">|lockedbtn">|unlockdiv">',
  4554. 'optional--'
  4555. );
  4556. }
  4557.  
  4558. if (hostSet("Check_filestore_dot_to_links", false))
  4559. {
  4560. addFileHost(
  4561. "filestore.to",
  4562. "filestore\.to\/\\?d=\\w+",
  4563. '"downloading"',
  4564. 'Datei wurde nicht gefunden',
  4565. 'optional--'
  4566. );
  4567. }
  4568.  
  4569. if (hostSet("Check_easy_dash_share_dot_com_links", false))
  4570. {
  4571. addFileHost(
  4572. "crocko.com|easy-share.com",
  4573. "(?:w\\d*\.|)(?:crocko|easy-share)\\.com\/\\w+",
  4574. 'fz24">Download|td class="first">',
  4575. 'msg-err"|the page you\'re looking for|1>400 Bad Request<|No files in this folder|search_result">|<span class="status">Searching for file',
  4576. 'optional--'
  4577. );
  4578. }
  4579.  
  4580. if (hostSet("Check_burnupload_dot_com_links", false))
  4581. {
  4582. addFileHost(
  4583. "burnupload.com|ihiphop.com",
  4584. "burnupload\\.(?:com\/\\?d=|ihiphop\\.com\/download\\.php\\?id=)\\w+",
  4585. 'File size:',
  4586. 'file is not found',
  4587. 'optional--'
  4588. );
  4589. }
  4590.  
  4591. if (hostSet("Check_yunfile_dot_com_links", false))
  4592. {
  4593. addFileHost(
  4594. "yunfile.com|filemarkets.com|yfdisk.com",
  4595. "(?:\\w+\\.)?(?:yunfile|filemarkets|yfdisk)\\.com\/f(?:ile|s)\/\\w+",
  4596. /<h2 class="title">.+?&nbsp;&nbsp;.+?<\/h2>/,
  4597. /<h2 class="title">.+?&nbsp;&nbsp;<\/h2>|Been deleted|> Access denied/,
  4598. 'optional--'
  4599. );
  4600. }
  4601. if (hostSet("Check_putlocker_dot_com_links", false))
  4602. {
  4603. addFileHost(
  4604. "putlocker.com|firedrive.com",
  4605. "(?:putlocker|firedrive)\\.com\/file\/\\w+",
  4606. '<a class="continue" onclick="$(\'#confirm_form\').submit();|id=\'external_download\' title=\'Download This File\'>Download</a>|class="external_download_button"> Download</a>|<div id=\'fd_dl_drpbtn\'>Download <i></i></div>|<button id="prepare_continue_btn"',
  4607. '<title>File Does Not Exist|<div class="removed_file_image">|<div class="private_file_image">',
  4608. 'undergoing scheduled maintenance'
  4609. );
  4610. }
  4611. /* if (hostSet("Check_luckyshare_dot_net_links", false))
  4612. {
  4613. addFileHost(
  4614. "luckyshare.net",
  4615. "luckyshare\\.net\/\\d+",
  4616. 'class=\'file_name\'>',
  4617. 'no such file available',
  4618. 'optional--',
  4619. true);
  4620. } */
  4621. if (hostSet("Check_uploadhero_dot_com_links", false))
  4622. {
  4623. addFileHost(
  4624. "uploadhero.com|uploadhero.co",
  4625. "uploadhero\\.com?\/dl\/\\w+",
  4626. 'content-dl">',
  4627. 'men_file_lost.jpg"',
  4628. 'optional--'
  4629. );
  4630. }
  4631.  
  4632. if (hostSet("Check_load_dot_to_links", false))
  4633. {
  4634. addFileHost(
  4635. "load.to",
  4636. '(?:www\\.|\/)load\\.to\/(?:|\\?d\\=)\\w+',
  4637. '"download_table_left">Size|<input class="input-button" type="submit" value="Download"',
  4638. 'Can\'t find file',
  4639. 'optional--'
  4640. );
  4641. }
  4642.  
  4643. if (hostSet("Check_divshare_dot_com_links", false))
  4644. {
  4645. addFileHost(
  4646. "divshare.com",
  4647. "divshare\\.com\/download\/",
  4648. 'download_new.png',
  4649. 'have been removed',
  4650. 'optional--'
  4651. );
  4652. }
  4653. if (hostSet("Check_stahovadlo_dot_cz_links", false))
  4654. {
  4655. addFileHost(
  4656. "stahovadlo.cz",
  4657. "stahovadlo\\.cz\/soubor\/\\d+\/[\\.\\w]+",
  4658. 'download" type="submit',
  4659. 'Neplatný nebo neúplný odkaz|Soubor již není dostupný',
  4660. 'optional--',
  4661. true
  4662. );
  4663. }
  4664. if (hostSet("Check_euroshare_dot_eu_links", false))
  4665. {
  4666. addFileHost(
  4667. "euroshare.eu|euroshare.pl|euroshare.sk|euroshare.cz|euroshare.hu",
  4668. "euroshare\\.(?:eu|pl|sk|cz|hu)\/file\/\\d+",
  4669. 'nazev-souboru">',
  4670. /<div id="obsah">\\s*<h1>/,
  4671. 'optional--'
  4672. );
  4673. }
  4674. if (hostSet("Check_datafilehost_dot_com_links", false))
  4675. {
  4676. addFileHost(
  4677. "datafilehost.com",
  4678. "datafilehost\\.com\/(?:download-\\w+\\.html|d\/\\w+)",
  4679. 'dldtable">',
  4680. 'does not exist.',
  4681. 'optional--'
  4682. );
  4683. }
  4684.  
  4685. if (hostSet("Check_files_dot_mail_dot_ru_links", false))
  4686. {
  4687. addFileHost(
  4688. "mail.ru",
  4689. 'files\\.mail\\.ru/(?:\\w*)',
  4690. 'fileList',
  4691. 'errorMessage|error">',
  4692. 'optional--'
  4693. );
  4694. }
  4695.  
  4696. if (hostSet("Check_narod_dot_ru_links", false))
  4697. {
  4698. addFileHost(
  4699. "narod.ru|yandex.ru",
  4700. 'narod\\.(?:yandex\\.|)ru\/disk\/',
  4701. '<a id="b-submit"',
  4702. '<p class="b-download-virus-note"|headCode">404<',
  4703. 'Внутренняя ошибка сервиса'
  4704. );
  4705. }
  4706.  
  4707. if (hostSet("Check_rayfile_dot_com_links", false))
  4708. {
  4709. addFileHost(
  4710. "rayfile.com",
  4711. "rayfile\\.com\/",
  4712. 'FILEtitleTXT',
  4713. 'blueRow',
  4714. 'optional--'
  4715. );
  4716. }
  4717. if (hostSet("Check_filesmonster_dot_com_links", false))
  4718. {
  4719. addFileHost(
  4720. "filesmonster.com",
  4721. "filesmonster\\.com\/download\\.php\\?id=\\w+",
  4722. 'button_green_body"',
  4723. 'error">',
  4724. 'optional--'
  4725. );
  4726. }
  4727. if (hostSet("Check_sendspace_dot_com_links", false))
  4728. {
  4729. addFileHost(
  4730. "sendspace.com",
  4731. 'sendspace\\.com\/file\/\\w+',
  4732. 'file_description',
  4733. 'msg error"',
  4734. 'optional--'
  4735. );
  4736. }
  4737. if (hostSet("Check_sendspace_dot_pl_links", false))
  4738. {
  4739. addFileHost(
  4740. "sendspace.pl",
  4741. 'sendspace\\.pl\/file\/\\w+',
  4742. 'download_file"',
  4743. 'Podany plik nie',
  4744. 'optional--'
  4745. );
  4746. }
  4747.  
  4748. if (hostSet("Check_gigasize_dot_com_links", false))
  4749. {
  4750. addFileHost(
  4751. "gigasize.com",
  4752. 'gigasize\\.com\/get(?:\\.php(?:\/[\\d-]+|\\?d=\\w+)|\/\\w+)',
  4753. 'fileId"',
  4754. 'error">',
  4755. 'optional--'
  4756. );
  4757. }
  4758. if (hostSet("Check_2shared_dot_com_links", false))
  4759. {
  4760. addFileHost(
  4761. "2shared.com",
  4762. '2shared\\.com\/(?:file|video|document)\/\\w*',
  4763. 'File size',
  4764. />\\s*var msg = 'VGhlIGZpbGUgbGluayB0aGF0IHlvdSByZ/,
  4765. 'optional--'
  4766. );
  4767. }
  4768. if (hostSet("Check_gigapeta_dot_com_links", false))
  4769. {
  4770. addFileHost(
  4771. "gigapeta.com",
  4772. 'gigapeta\\.com\/dl\/',
  4773. 'Download file|Скачать файл| Herunterzuladen|Scarica il file|Cargar el fichero|Charger le fichier',
  4774. '404|page_error',
  4775. 'optional--'
  4776. );
  4777. }
  4778. if (hostSet("Check_veehd_dot_com_links", false))
  4779. {
  4780. addFileHost(
  4781. "veehd.com",
  4782. 'veehd\.com\/video\/.*?',
  4783. 'No sound|Download video',
  4784. 'Featured Videos',
  4785. 'optional--'
  4786. );
  4787. }
  4788.  
  4789. if (hostSet("Check_fileswap_dot_com_links", false))
  4790. {
  4791. addFileHost(
  4792. "fileswap.com",
  4793. 'fileswap\\.com\/dl\/\\w+',
  4794. 'dlslowbutton"',
  4795. 'rounded_block_error">',
  4796. 'is temporary unavailable|disponible en estos momentos|vorläufig unerreichbar|Файл временно недоступен'
  4797. );
  4798. }
  4799. if (hostSet("Check_solidfiles_dot_com_links", false))
  4800. {
  4801. addFileHost(
  4802. "solidfiles.com",
  4803. 'solidfiles\\.com\/d\/\\w+',
  4804. '<a id="download-button"',
  4805. />(?:Not found|\s*The file you are trying to download has been claimed)/,
  4806. 'optional--'
  4807. );
  4808. }
  4809. if (hostSet("Check_uloz_dot_to_links", false))
  4810. {
  4811. addFileHost(
  4812. "uloz.to|ulozto.cz|bagruj.cz|zachowajto.pl",
  4813. "(?:uloz|ulozto|bagruj|zachowajto)\\.(to|cz|sk|net|pl)\/\\w",
  4814. 'fileDownload">|fileSize">|passwordProtectedFile">',
  4815. 'grayButton deletedFile">|Stránka nenalezena|upload-button"|jako soukromý.',
  4816. 'frmaskAgeForm-disagree',
  4817. true
  4818. );
  4819. }
  4820. if (hostSet("Check_leteckaposta_dot_cz_links", false))
  4821. {
  4822. addFileHost(
  4823. "leteckaposta.cz|sharegadget.com",
  4824. "(?:leteckaposta\\.cz|sharegadget\\.com)\/\\d+",
  4825. '<body onload="">',
  4826. 'neexistuje|not exist',
  4827. 'optional--'
  4828. );
  4829. }
  4830.  
  4831. if (hostSet("Check_zippyshare_dot_com_links", false))
  4832. {
  4833. addFileHost(
  4834. "zippyshare.com",
  4835. "(?:www\\d+\.|)zippyshare\.com\/(?:v\/\\d+\/file\.html|view\\.jsp\\?)",
  4836. 'download.png|Download Now|images/download_small.png|dlbutton"',
  4837. 'not exist',
  4838. 'optional--'
  4839. );
  4840. }
  4841.  
  4842. if (hostSet("Check_speedshare_dot_org_links", false))
  4843. {
  4844. addFileHost(
  4845. "speedshare.org",
  4846. "speedshare\.org\/.+",
  4847. 'id="downloadbtn"',
  4848. 'Error',
  4849. 'optional--'
  4850. );
  4851. }
  4852.  
  4853. if (hostSet("Check_mediafire_dot_com_links", false))
  4854. {
  4855. addFileHost(
  4856. "mediafire.com",
  4857. "mediafire\.com\/",
  4858. 'download_file_title"|<a class="btn alt download|<div class="filepreview|<div class="fileName">|id="PLAY_downloadButton',
  4859. 'class="error_msg_title">|>Sign Up! It\'s free|<label for="create-file-name">|<div id="privateTitle">This file is currently set to private.</div>',
  4860. 'optional--'
  4861. );
  4862. }
  4863.  
  4864. if (hostSet("Check_ulozisko_dot_sk_links", false))
  4865. {
  4866. addFileHost(
  4867. "ulozisko.sk",
  4868. "ulozisko\.sk\/",
  4869. 'Detaily',
  4870. 'neexistuje',
  4871. 'optional--'
  4872. );
  4873. }
  4874.  
  4875. if (hostSet("Check_speedfile_dot_cz_links", false))
  4876. {
  4877. addFileHost(
  4878. "speedfile.cz",
  4879. "speedfile\.cz\/(?:cs\/|en\/|sk\/|)\\d+\/",
  4880. 'Stáhnout|<span>Download',
  4881. 'error|soubor byl odst|This file was deleted',
  4882. 'optional--'
  4883. );
  4884. }
  4885.  
  4886. if (hostSet("Check_upnito_dot_sk_links", false))
  4887. {
  4888. addFileHost(
  4889. "upnito.sk",
  4890. "(?:dl.\\.|)upnito\\.sk\/(download|subor|file)",
  4891. 'download.php',
  4892. 'notfound|upload-suborov.php"',
  4893. 'optional--'
  4894. );
  4895. }
  4896.  
  4897. if (hostSet("Check_dataport_dot_cz_links", false))
  4898. {
  4899. addFileHost(
  4900. "dataport.cz",
  4901. "dataport\.cz\/file\/",
  4902. 'premium_download">',
  4903. '="error">',
  4904. 'optional--',
  4905. true
  4906. );
  4907. }
  4908.  
  4909. if (hostSet("Check_gigaup_dot_fr_links", false))
  4910. {
  4911. addFileHost(
  4912. "gigaup.fr",
  4913. "gigaup\\.fr\/\\?g=\\w+",
  4914. 'Taille de',
  4915. 'Vous ne pouvez|existe pas',
  4916. 'optional--'
  4917. );
  4918. }
  4919. if (hostSet("Check_myupload_dot_dk_links", false))
  4920. {
  4921. addFileHost(
  4922. "myupload.dk",
  4923. "myupload\\.dk\/showfile\/\\w+",
  4924. '<td class="downloadTblRight"><a class="downloadLink"',
  4925. '<div id="flash_upload_progress"|<td class="downloadTblRight">File has been removed',
  4926. 'optional--'
  4927. );
  4928. }
  4929. if (hostSet("Check_filebeam_dot_com_links", false))
  4930. {
  4931. addFileHost(
  4932. "filebeam.com|fbe.am",
  4933. "(?:filebeam\\.com|fbe\\.am)\/\\w+",
  4934. '<center>File Download Area</center>',
  4935. '<center>Error:</center>',
  4936. 'optional--'
  4937. );
  4938. }
  4939. if (hostSet("Check_upsto_dot_re_links", false))
  4940. {
  4941. addFileHost(
  4942. "upsto.re|upstore.net",
  4943. "(?:upsto\\.re|upstore.net)\/\\w+",
  4944. '<ul class="features minus">|Download files from folder',
  4945. '<span class="error">',
  4946. 'optional--'
  4947. );
  4948. }
  4949. if (hostSet("Check_adrive_dot_com_links", false))
  4950. {
  4951. addFileHost(
  4952. "adrive.com",
  4953. "adrive\\.com\/public\/\\w+",
  4954. 'download should start',
  4955. 'no longer available publicly',
  4956. 'optional--'
  4957. );
  4958. }
  4959. if (hostSet("Check_filebulk_dot_com_links", false))
  4960. {
  4961. addFileHost(
  4962. "filebulk.com",
  4963. "filebulk\\.com\/\\w+",
  4964. '<span id="countdown_str"',
  4965. 'File Not Available',
  4966. 'You can download files up to 100 Mb only.'
  4967. );
  4968. }
  4969. if (hostSet("Check_rnbload_dot_com_links", false))
  4970. {
  4971. addFileHost(
  4972. "rnbload.com",
  4973. "rnbload\\.com\/(file\/\\d+\/|download\\.php\\?id=)",
  4974. '<div id="cubeDiv"',
  4975. 'Your requested file is not found',
  4976. 'optional--'
  4977. );
  4978. }
  4979. if (hostSet("Check_ukfilehost_dot_com_links", false))
  4980. {
  4981. addFileHost(
  4982. "ukfilehost.com",
  4983. "ukfilehost\\.com\/files\/get\/\\w+",
  4984. 'optional--',
  4985. 'The file you have requested cannot be found',
  4986. 'optional--'
  4987. );
  4988. }
  4989. if (hostSet("Check_zalil_dot_ru_links", false))
  4990. {
  4991. addFileHost(
  4992. "zalil.ru",
  4993. "zalil\\.ru\/\\d+",
  4994. 'optional--',
  4995. 'Файл не найден',
  4996. 'optional--'
  4997. );
  4998. }
  4999. if (hostSet("Check_uploads_dot_bizhat_dot_com_links", false))
  5000. {
  5001. addFileHost(
  5002. "bizhat.com",
  5003. "uploads\\.bizhat\\.com\/file\/\\d+",
  5004. 'div id="dl">',
  5005. 'File not found',
  5006. 'optional--'
  5007. );
  5008. }
  5009. if (hostSet("Check_mega_dash_myfile_dot_com_links", false))
  5010. {
  5011. addFileHost(
  5012. "mega-myfile.com",
  5013. "mega\\-myfile\\.com\/file\/\\d+\/\\w+",
  5014. '<b>File name:</b>',
  5015. 'Your requested file is not found',
  5016. 'optional--'
  5017. );
  5018. }
  5019. if (hostSet("Check_speedy_dash_share_dot_com_links", false))
  5020. {
  5021. addFileHost(
  5022. "speedy-share.com",
  5023. "speedy\\-share\\.com\/\\w+",
  5024. 'File Download',
  5025. 'No such file',
  5026. 'optional--'
  5027. );
  5028. }
  5029. if (hostSet("Check_filebox_dot_ro_links", false))
  5030. {
  5031. addFileHost(
  5032. "filebox.ro|fbx.ro",
  5033. "(?:filebox|fbx)\\.ro\/(?:download\\.php\\?key\\=)?\\w+",
  5034. 'fisierul trebuie sa astepti',
  5035. 'downloadezi a expirat',
  5036. 'optional--'
  5037. );
  5038. }
  5039. if (hostSet("Check_100shared_dot_com_links", false)) //checkfiles.html giving false positives
  5040. {
  5041. addFileHost(
  5042. "100shared.com",
  5043. "100shared\\.com\/\\w+",
  5044. '<h2>Download File',
  5045. 'No such file',
  5046. 'optional--'
  5047. );
  5048. }
  5049. if (hostSet("Check_mixturecloud_dot_com_links", false))
  5050. {
  5051. addFileHost(
  5052. "mixturecloud.com|mixturefile.com|mixturevideo.com",
  5053. "mixture(?:cloud|file|video)\\.com\/(?:download\\=|media\/(?:download\/)?)\\w+",
  5054. /download_(?:free|unlimited)">|btn icon i_cloud_download gray|icon\-white"><\/i> Download/,
  5055. 'File not found|class="err"|msgerr alert alert-error text-center">',
  5056. 'optional--'
  5057. );
  5058. }
  5059. if (hostSet("Check_yourupload_dot_com_links", false))
  5060. {
  5061. addFileHost(
  5062. "yourupload.com",
  5063. "yourupload\\.com\/\\w+",
  5064. '<label>Download',
  5065. '404',
  5066. 'optional--'
  5067. );
  5068. }
  5069. if (hostSet("Check_fileneo_dot_com_links", false))
  5070. {
  5071. addFileHost(
  5072. "fileneo.com",
  5073. "fileneo\\.com\/\\w+",
  5074. 'Download File</h3>',
  5075. 'File not found',
  5076. 'optional--'
  5077. );
  5078. }
  5079. if (hostSet("Check_fliiby_dot_com_links", false))
  5080. {
  5081. addFileHost(
  5082. "fliiby.com",
  5083. "fliiby\\.com\/file\/\\d+\/\\w+",
  5084. 'file_panel">',
  5085. 'Not Found</span>|error_container">|<h1>Error 410 / Gone</h1>',
  5086. 'optional--'
  5087. );
  5088. }
  5089. if (hostSet("Check_filesmall_dot_com_links", false))
  5090. {
  5091. addFileHost(
  5092. 'filesmall.com',
  5093. "filesmall\\.com\/\\w+\/download\\.html",
  5094. 'value="Download"',
  5095. 'File Not Found',
  5096. 'optional--'
  5097. );
  5098. }
  5099. if (hostSet("Check_upload_dot_ee_links", false))
  5100. {
  5101. addFileHost(
  5102. 'upload.ee',
  5103. "upload\\.ee\/files\/\\d+\/\\w+",
  5104. 'id="d_l"',
  5105. 'There is no such file',
  5106. 'optional--'
  5107. );
  5108. }
  5109. if (hostSet("Check_share4web_dot_com_links", false))
  5110. {
  5111. addFileHost(
  5112. 'share4web.com',
  5113. "share4web\\.com\/get\/\\w+",
  5114. 'btn_red">',
  5115. 'Page Not Found|File not found',
  5116. 'optional--'
  5117. );
  5118. }
  5119. if (hostSet("Check_novamov_dot_com_links", false))
  5120. {
  5121. addFileHost(
  5122. 'novamov.com',
  5123. "novamov\\.com\/\\w+",
  5124. 'Download file|>Download this video<',
  5125. 'File not found|The video file was removed',
  5126. 'optional--'
  5127. );
  5128. }
  5129. if (hostSet("Check_skydrive_dot_live_dot_com_links", false))
  5130. {
  5131. addFileHost(
  5132. 'live.com|sdrv.ms',
  5133. "(?:skydrive\\.live\\.com|sdrv\\.ms)\/\\w+",
  5134. 'Download file',
  5135. 'no longer available</h1>',
  5136. 'optional--'
  5137. );
  5138. }
  5139. if (hostSet("Check_yourfiles_dot_to_links", false))
  5140. {
  5141. addFileHost(
  5142. 'yourfiles.to',
  5143. "yourfiles\\.to\/\\?d=\\w+",
  5144. 'Download-Link: </strong>',
  5145. 'Die angefragte Datei wurde nicht gefunden',
  5146. 'optional--'
  5147. );
  5148. }
  5149. if (hostSet("Check_filedropper_dot_com_links", false))
  5150. {
  5151. addFileHost(
  5152. 'filedropper.com|filesavr.com',
  5153. "(?:filedropper|filesavr)\\.com\/\\w+",
  5154. 'download"',
  5155. 'steps.png',
  5156. 'optional--',
  5157. true);
  5158. }
  5159. if (hostSet("Check_filehost_dot_ro_links", false))
  5160. {
  5161. addFileHost(
  5162. 'filehost.ro',
  5163. "filehost\\.ro\/\\d+",
  5164. 'Apasati aici pentru a porni download-ul"',
  5165. 'Acest fisier nu exista in baza de date',
  5166. 'optional--'
  5167. );
  5168. }
  5169. if (hostSet("Check_mijnbestand_dot_nl_links", false))
  5170. {
  5171. addFileHost(
  5172. 'mijnbestand.nl',
  5173. "mijnbestand\\.nl\/Bestand\\-\\w+",
  5174. 'downloadfrm"',
  5175. 'stappen">',
  5176. 'optional--'
  5177. );
  5178. }
  5179. if (hostSet("Check_ultrashare_dot_net_links", false))
  5180. {
  5181. addFileHost(
  5182. 'ultrashare.net',
  5183. "ultrashare\\.net\/hosting\/fl\/\\w+",
  5184. 'downloadbutton">',
  5185. 'error">',
  5186. 'optional--'
  5187. );
  5188. }
  5189. if (hostSet("Check_dosya_dot_tc_links", false))
  5190. {
  5191. addFileHost(
  5192. 'dosya.tc',
  5193. "dosya\\.tc\/server\\d*\/\\w+",
  5194. 'id="dl"',
  5195. 'Dosya bulunamad',
  5196. 'optional--'
  5197. );
  5198. }
  5199. if (hostSet("Check_exfile_dot_ru_links", false))
  5200. {
  5201. addFileHost(
  5202. 'exfile.ru',
  5203. "exfile\\.ru\/\\d+",
  5204. 'id="link"><a href="/download/',
  5205. 'class="align_left"><p class="red"',
  5206. 'optional--'
  5207. );
  5208. }
  5209. if (hostSet("Check_fileshare_dot_ro_links", false))
  5210. {
  5211. addFileHost(
  5212. 'fileshare.ro',
  5213. "fileshare\\.ro\/\\w+",
  5214. 'DOWNLOAD NOW',
  5215. 'Acest fisier nu exista.',
  5216. 'optional--'
  5217. );
  5218. }
  5219. if (hostSet("Check_fshare_dot_vn_links", false))
  5220. {
  5221. addFileHost(
  5222. 'fshare.vn',
  5223. "fshare\\.vn\/file\/\\w+",
  5224. 'optional--',
  5225. 'Liên kết bạn chọn không tồn tại trên hệ thống Fshare',
  5226. 'optional--'
  5227. );
  5228. }
  5229. if (hostSet("Check_wikifortio_dot_com_links", false))
  5230. {
  5231. addFileHost(
  5232. 'wikifortio.com',
  5233. "wikifortio\\.com\/\\w+",
  5234. 'screenbutton">',
  5235. "not found on node|doesn't exist or has expired and is no longer available",
  5236. 'optional--'
  5237. );
  5238. }
  5239. if (hostSet("Check_wyslijto_dot_pl_links", false))
  5240. {
  5241. addFileHost(
  5242. 'wyslijto.pl',
  5243. "wyslijto\\.pl\/(?:files\/download|plik)\/\\w+",
  5244. 'optional--',
  5245. /zosta. usuni.ty/,
  5246. 'optional--'
  5247. );
  5248. }
  5249. if (hostSet("Check_kiwi6_dot_com_links", false))
  5250. {
  5251. addFileHost(
  5252. 'kiwi6.com',
  5253. "kiwi6\\.com\/file\/\\w+",
  5254. 'download-link"',
  5255. 'Upload not found',
  5256. 'optional--'
  5257. );
  5258. }
  5259. if (hostSet("Check_localhostr_dot_com_links", false))
  5260. {
  5261. addFileHost(
  5262. 'localhostr.com|lh.rs|hostr.co',
  5263. "(?:localhostr\\.com\/file|lh\\.rs|hostr\\.co\/download)\/\\w+",
  5264. 'download-button',
  5265. 'fourohfour">',
  5266. 'optional--'
  5267. );
  5268. }
  5269. if (hostSet("Check_remixshare_dot_com_links", false))
  5270. {
  5271. addFileHost(
  5272. 'remixshare.com',
  5273. "remixshare\\.com\/(?:dl|download)\/\\w+",
  5274. 'linkContainerDiv"',
  5275. 'Sorry, die Datei konnte nicht gefunden werden.|Die angeforderte Datei steht nicht mehr zur Verfügung.',
  5276. 'optional--'
  5277. );
  5278. }
  5279. if (hostSet("Check_hidemyass_dot_com_links", false))
  5280. {
  5281. addFileHost(
  5282. 'hidemyass.com',
  5283. "hidemyass\\.com\/files\/\\w+",
  5284. 'dlbutton"',
  5285. 'genericerrorbox">',
  5286. 'optional--'
  5287. );
  5288. }
  5289. if (hostSet("Check_tinyupload_dot_com_links", false))
  5290. {
  5291. addFileHost(
  5292. 'tinyupload.com',
  5293. "s\\d+\\.tinyupload\\.com\/(?:index\\.php)?\\?file_id=\\d+",
  5294. 'Download file</h3>',
  5295. 'File was deleted from server.',
  5296. 'optional--'
  5297. );
  5298. }
  5299. if (hostSet("Check_gigabase_dot_com_links", false))
  5300. {
  5301. addFileHost(
  5302. 'gigabase.com',
  5303. "gigabase\\.com\/getfile\/\\w+",
  5304. '/img/but_dnld_regular.jpg|gigaBtn std">',
  5305. /<div class="all" id="Page404"|(?:File|Page) Not Found/,
  5306. 'optional--'
  5307. );
  5308. }
  5309. if (hostSet("Check_trainbit_dot_com_links", false))
  5310. {
  5311. addFileHost(
  5312. 'trainbit.com',
  5313. "trainbit\\.com\/files\/\\w+",
  5314. 'download"',
  5315. 'file not found',
  5316. 'optional--'
  5317. );
  5318. }
  5319. if (hostSet("Check_videobam_dot_com_links", false))
  5320. {
  5321. addFileHost(
  5322. 'videobam.com',
  5323. "videobam\\.com\/\\w+",
  5324. 'wrap-video"',
  5325. 'File not found',
  5326. 'optional--'
  5327. );
  5328. }
  5329. if (hostSet("Check_hyperfileshare_dot_com_links", false))
  5330. {
  5331. addFileHost(
  5332. 'hyperfileshare.com',
  5333. "hyperfileshare\\.com\/d\/\\w+",
  5334. '/img/download_btm_site.gif',
  5335. 'Download URL is incorrect or your file has already been deleted!',
  5336. 'optional--'
  5337. );
  5338. }
  5339. if (hostSet("Check_uploads_dot_ws_links", false))
  5340. {
  5341. addFileHost(
  5342. 'uploads.ws|upl.me',
  5343. "(?:uploads\\.ws|upl\\.me)\/\\w+",
  5344. 'downloadFile"',
  5345. 'download does not exist or has been removed',
  5346. 'optional--'
  5347. );
  5348. }
  5349. if (hostSet("Check_cloud_dash_up_dot_be_links", false))
  5350. {
  5351. addFileHost(
  5352. 'cloud-up.be',
  5353. "(?:download\\.)?cloud\\-up\\.be\/download\\.php\\?file=\\w+",
  5354. 'download file',
  5355. 'This file does not exist!',
  5356. 'optional--'
  5357. );
  5358. }
  5359. if (hostSet("Check_uploadc_dot_com_links", false)) //Do not use bulkcheck, false reports
  5360. {
  5361. addFileHost(
  5362. 'uploadc.com|zalaa.com',
  5363. "(?:uploadc|zalaa)\\.com\/\\w+",
  5364. 'Slow access"',
  5365. 'File Not Found|file has been removed',
  5366. 'optional--'
  5367. );
  5368. }
  5369. if (hostSet("Check_1_dash_clickshare_dot_com_links", false))
  5370. {
  5371. addFileHost(
  5372. '1-clickshare.com',
  5373. "1\\-clickshare\\.com\/(?:\\d+|download\\.php\\?file=\\w+)",
  5374. '<div id="dl"',
  5375. 'File not found|Invalid download link',
  5376. 'optional--'
  5377. );
  5378. }
  5379. if (hostSet("Check_fastupload_dot_ro_links", false))
  5380. {
  5381. addFileHost(
  5382. 'fastupload.ro|rol.ro',
  5383. "fastupload\\.(?:rol\\.)?ro\/\\w+",
  5384. 'isAliveRegex',
  5385. 'FiÅŸierele nu mai sunt active!',
  5386. 'optional--'
  5387. );
  5388. }
  5389. if (hostSet("Check_howfile_dot_com_links", false))
  5390. {
  5391. addFileHost(
  5392. 'howfile.com',
  5393. "howfile\\.com\/file\/\\w+",
  5394. 'btn1"',
  5395. 'File not found',
  5396. 'optional--'
  5397. );
  5398. }
  5399. if (hostSet("Check_file4go_dot_com_links", false))
  5400. {
  5401. addFileHost(
  5402. 'file4go.com',
  5403. "file4go\\.com\/d\/\\w+",
  5404. 'gerarlinkdownload"',
  5405. '<b>DMCA</b>|FILE REMOVED DMCA',
  5406. 'optional--'
  5407. );
  5408. }
  5409. if (hostSet("Check_hostinoo_dot_com_links", false)) //checkfiles.html not working
  5410. {
  5411. addFileHost(
  5412. 'hostinoo.com',
  5413. "hostinoo\\.com\/\\w+",
  5414. 'btn_download',
  5415. 'File Not Found',
  5416. 'optional--'
  5417. );
  5418. }
  5419. if (hostSet("Check_sendfile_dot_su_links", false))
  5420. {
  5421. addFileHost(
  5422. 'sendfile.su',
  5423. "sendfile\\.su\/\\w+",
  5424. 'download_click"',
  5425. 'Файл не найден',
  5426. 'optional--'
  5427. );
  5428. }
  5429. if (hostSet("Check_usaupload_dot_net_links", false))
  5430. {
  5431. addFileHost(
  5432. 'usaupload.net',
  5433. "usaupload\\.net\/d\/\\w+",
  5434. 'Download">',
  5435. 'is not available',
  5436. 'In this moment you can`t download this file, please try again in few minutes, we working on this server, SORRY!'
  5437. );
  5438. }
  5439. if (hostSet("Check_anonfiles_dot_com_links", false))
  5440. {
  5441. addFileHost(
  5442. 'anonfiles.com',
  5443. "anonfiles\\.com\/file\/\\w+",
  5444. 'download_button"',
  5445. 'File not found',
  5446. 'optional--'
  5447. );
  5448. }
  5449. if (hostSet("Check_divxstage_dot_eu_links", false))
  5450. {
  5451. addFileHost(
  5452. 'divxstage.eu|divxstage.net',
  5453. "divxstage\\.(?:eu|net)\/video\/\\w+",
  5454. '>Download the video<',
  5455. '>This file no longer exists on our servers.<',
  5456. 'optional--'
  5457. );
  5458. }
  5459. if (hostSet("Check_herosh_dot_com_links", false))
  5460. {
  5461. addFileHost(
  5462. 'herosh.com',
  5463. "herosh\\.com\/download\/\\d+\/\\w+",
  5464. 'green">Download',
  5465. 'file not found',
  5466. 'optional--'
  5467. );
  5468. }
  5469. if (hostSet("Check_m5zn_dot_com_links", false))
  5470. {
  5471. addFileHost(
  5472. 'm5zn.com',
  5473. "m5zn\\.com\/d\/\\?\\d+",
  5474. 'free_account">',
  5475. 'file not found',
  5476. 'optional--'
  5477. );
  5478. }
  5479. if (hostSet("Check_girlshare_dot_ro_links", false))
  5480. {
  5481. addFileHost(
  5482. 'girlshare.ro',
  5483. "girlshare\\.ro\/\\w+",
  5484. 'download-button.gif',
  5485. 'Acest fisier nu exista.',
  5486. 'optional--'
  5487. );
  5488. }
  5489. if (hostSet("Check_bin_dot_ge_links", false))
  5490. {
  5491. addFileHost(
  5492. 'bin.ge',
  5493. "bin\\.ge\/dl\/\\w+",
  5494. 'captchacode">',
  5495. 'No file found',
  5496. 'optional--'
  5497. );
  5498. }
  5499. if (hostSet("Check_nowvideo_dot_eu_links", false))
  5500. {
  5501. addFileHost(
  5502. 'nowvideo.eu|nowvideo.sx',
  5503. "nowvideo\\.(?:sx|eu)\/video\/\\w+",
  5504. '>Download this video!<',
  5505. '>This file no longer exists on our servers',
  5506. 'optional--'
  5507. );
  5508. }
  5509. if (hostSet("Check_shareplace_dot_com_links", false))
  5510. {
  5511. addFileHost(
  5512. 'shareplace.com',
  5513. "shareplace\\.com\/(?:index1\\.php\\?a=|\\?)",
  5514. 'wait">',
  5515. 'Your requested file is not found',
  5516. 'optional--'
  5517. );
  5518. }
  5519. if (hostSet("Check_terafiles_dot_net_links", false))
  5520. {
  5521. addFileHost(
  5522. 'terafiles.net',
  5523. "terafiles\\.net\/v\\-\\d+",
  5524. 'download file',
  5525. 'Le fichier que vous souhaitez télécharger n\'est plus disponible sur nos serveurs.',
  5526. 'optional--'
  5527. );
  5528. }
  5529. if (hostSet("Check_uploadmb_dot_com_links", false))
  5530. {
  5531. addFileHost(
  5532. 'uploadmb.com',
  5533. "uploadmb\\.com\/dw\\.php\\?id=\\w+",
  5534. 'wait">',
  5535. 'The file you are requesting to download is not available',
  5536. 'optional--'
  5537. );
  5538. }
  5539. if (hostSet("Check_upload_dash_il_dot_com_links", false))
  5540. {
  5541. addFileHost(
  5542. 'upload-il.com|upload-il.net|uploadilcloud.com|filez.bz|przeslij.net|pir.co.il|directil.com',
  5543. "(?:upload\\-il\\.(?:com|net)|uploadilcloud\\.com|filez\\.bz|przeslij\\.net|pir\\.co\\.il|directil\\.com)\/(?:en|he|ar|ru|view|)\/?\\w+",
  5544. 'captchaUl">',
  5545. /\\\u05E9\\u05D2\\\u05D9\\\u05D0\\\u05D4: \\\u05E7\\\u05D5\\\u05D1\\\u05E5 \\\u05D0\\\u05D5 \\\u05D3\\\u05E3 \\\u05DC\\\u05D0 \\\u05E0\\\u05DE\\\u05E6\\\u05D0|Your requested file is not found./,
  5546. 'optional--'
  5547. );
  5548. }
  5549. if (hostSet("Check_bayfiles_dot_net_links", false))
  5550. {
  5551. addFileHost(
  5552. 'bayfiles.net',
  5553. "bayfiles\\.net\/file\/\\w+\/\\w+",
  5554. 'download-header">',
  5555. 'class="not-found">',
  5556. 'optional--'
  5557. );
  5558. }
  5559. if (hostSet("Check_bitupload_dot_com_links", false))
  5560. {
  5561. addFileHost(
  5562. 'bitupload.com',
  5563. "bitupload\\.com\/\\w+",
  5564. 'limited">',
  5565. 'two-col">',
  5566. 'optional--'
  5567. );
  5568. }
  5569. if (hostSet("Check_ravishare_dot_com_links", false))
  5570. {
  5571. addFileHost(
  5572. 'ravishare.com',
  5573. "ravishare\\.com\/\\w+",
  5574. 'Free Download">',
  5575. '>File Not Found<',
  5576. 'optional--'
  5577. );
  5578. }
  5579. if (hostSet("Check_zixshare_dot_com_links", false))
  5580. {
  5581. addFileHost(
  5582. 'zixshare.com',
  5583. "zixshare\\.com\/files\/\\w+",
  5584. 'download_caption">',
  5585. 'File not found',
  5586. 'optional--'
  5587. );
  5588. }
  5589. if (hostSet("Check_promptfile_dot_com_links", false))
  5590. {
  5591. addFileHost(
  5592. 'promptfile.com',
  5593. "promptfile\\.com\/l\/[a-zA-Z0-9-]",
  5594. /<button type="submit" class="gray_btn">Continue to File<\/button>|<a href=".+" class="green_btn download_btn">Download File<\/a>/,
  5595. /\s+<div id="not_found_msg"/,
  5596. 'optional--'
  5597. );
  5598. }
  5599. if (hostSet("Check_filebar_dot_kz_links", false))
  5600. {
  5601. addFileHost(
  5602. 'filebar.kz',
  5603. "filebar\\.kz\/files\/\\d+",
  5604. 'I don\'t think this is a filehost tbh but meh...',
  5605. 'Ошибка 404. Страница не найдена!',
  5606. 'optional--'
  5607. );
  5608. }
  5609. if (hostSet("Check_yourfilelink_dot_com_links", false))
  5610. {
  5611. addFileHost(
  5612. 'yourfilelink.com',
  5613. "yourfilelink\\.com\/get\\.php\\?fid=\\d+",
  5614. 'optional--',
  5615. 'File not found.</div>',
  5616. 'optional--'
  5617. );
  5618. }
  5619. if (hostSet("Check_1file_dot_cc_links", false))
  5620. {
  5621. addFileHost(
  5622. '1f.cc|1file.cc',
  5623. "1f(?:ile)?\\.cc\/\\w+",
  5624. 'download-btn">',
  5625. '>File Not Found<',
  5626. 'optional--'
  5627. );
  5628. }
  5629. if (hostSet("Check_qshare_dot_com_links", false))
  5630. {
  5631. addFileHost(
  5632. 'quickshare.com|qshare.com',
  5633. "(?:quickshare|qshare)\\.com\/get\/\\d+",
  5634. '>Free<',
  5635. 'File not found',
  5636. 'optional--'
  5637. );
  5638. }
  5639. if (hostSet("Check_filewist_dot_com_links", false))
  5640. {
  5641. addFileHost(
  5642. 'filewist.com',
  5643. "filewist\\.com\/\\w+",
  5644. 'link btn-free"',
  5645. '>File not found<',
  5646. 'optional--'
  5647. );
  5648. }
  5649. if (hostSet("Check_airupload_dot_com_links", false))
  5650. {
  5651. addFileHost(
  5652. 'airupload.com',
  5653. "airupload\\.com\/file\/i\/\\w+",
  5654. 'download" value="Slow download',
  5655. '<span class="glyph attention"></span>File was removed',
  5656. 'optional--'
  5657. );
  5658. }
  5659. if (hostSet("Check_dropbox_dot_com_links", false)) //shared links
  5660. {
  5661. addFileHost(
  5662. 'dropbox.com',
  5663. "dropbox\\.com\/sh?\/\\w+",
  5664. 'default_content_download_button" class="freshbutton-blue">',
  5665. '>Nothing Here<|>Error (404)<',
  5666. '>Error \\(509\\)<|Error (509)'
  5667. );
  5668. }
  5669. if (hostSet("Check_wikisend_dot_com_links", false))
  5670. {
  5671. addFileHost(
  5672. 'wikisend.com',
  5673. "wikisend\\.com\/download\/\\d+",
  5674. 'button_download.gif" alt="Download file',
  5675. 'File not found',
  5676. 'optional--'
  5677. );
  5678. }
  5679. if (hostSet("Check_webfilehost_dot_com_links", false))
  5680. {
  5681. addFileHost(
  5682. 'webfilehost.com',
  5683. "webfilehost\\.com\/\\?mode=viewupload&id=\\d+",
  5684. 'linkDownload">',
  5685. 'File not found',
  5686. 'optional--'
  5687. );
  5688. }
  5689. if (hostSet("Check_wrzuc_dot_to_links", false))
  5690. {
  5691. addFileHost(
  5692. 'wrzuc.to',
  5693. "wrzuc.to\/\\w+",
  5694. 'Download file">',
  5695. 'został usunięty przez użytkownika.',
  5696. 'optional--'
  5697. );
  5698. }
  5699. if (hostSet("Check_safecloud_dot_so_links", false))
  5700. {
  5701. addFileHost(
  5702. 'safecloud.so',
  5703. "safecloud\\.so\/\\d+\/.+?",
  5704. 'download">',
  5705. '>File not found<',
  5706. 'optional--'
  5707. );
  5708. }
  5709. if (hostSet("Check_myuplbox_dot_com_links", false))
  5710. {
  5711. addFileHost(
  5712. 'myuplbox.com',
  5713. "myuplbox\\.com\/file\/download\/\\d+",
  5714. 'dwl_button corner-all">Click',
  5715. 'deleted_file">File Not Found',
  5716. 'optional--'
  5717. );
  5718. }
  5719. if (hostSet("Check_filesflash_dot_com_links", false))
  5720. {
  5721. addFileHost(
  5722. 'filesflash.com|filesflash.net',
  5723. "filesflash\\.(?:com|net)\/\\w+",
  5724. 'freedownload.php">',
  5725. />That file (?:was deleted|is not available)/,
  5726. 'optional--'
  5727. );
  5728. }
  5729. if (hostSet("Check_demo_dot_ovh_dot_eu_links", false))
  5730. {
  5731. addFileHost(
  5732. 'ovh.eu',
  5733. "demo\\.ovh\\.eu\/(?:en|de)\/\\w+",
  5734. 'download.gif"',
  5735. 'p_point">',
  5736. 'optional--'
  5737. );
  5738. }
  5739. if (hostSet("Check_dwn_dot_so_links", false))
  5740. {
  5741. addFileHost(
  5742. 'dwn.so|dwnshare.pl',
  5743. "(?:dwn\\.so|dwnshare.pl)\/show\\-file\/\\w+",
  5744. '$(\'.link_download\').click(function()',
  5745. '<div id="main_container',
  5746. 'optional--'
  5747. );
  5748. }
  5749. if (hostSet("Check_sharephile_dot_com_links", false))
  5750. {
  5751. addFileHost(
  5752. 'sharephile.com',
  5753. "sharephile\\.com\/\\w+",
  5754. '<h1 class="download-file">',
  5755. />\\\u0424\\\u0430\\\u0439\\\u043B \\\u043D\\\u0435 \\\u043D\\\u0430\\\u0439\\\u0434\\\u0435\\\u043D./,
  5756. 'optional--'
  5757. );
  5758. }
  5759. if (hostSet("Check_maherfile_dot_com_links", false))
  5760. {
  5761. addFileHost(
  5762. 'maherfire.com',
  5763. "maherfire\\.com\/\\?d=\\w+",
  5764. '<input type="button" onclick="startDownload();"',
  5765. '>Your requested file is not found',
  5766. 'optional--'
  5767. );
  5768. }
  5769. if (hostSet("Check_droidbin_dot_com_links", false))
  5770. {
  5771. addFileHost(
  5772. 'droidbin.com|apkhosting.com',
  5773. "(?:droidbin\\.com|apkhosting.com)\/\\w+",
  5774. 'optional--',
  5775. '>That\'s a 404<|<li>File has been removed by the site administrator.</li>',
  5776. 'optional--'
  5777. );
  5778. }
  5779. if (hostSet("Check_d_dash_h_dot_st_links", false))
  5780. {
  5781. addFileHost(
  5782. 'd-h.st',
  5783. "d\\-h\\.st\/\\w+",
  5784. '>File Information<\/h2>',
  5785. '>File Not Found<',
  5786. 'optional--'
  5787. );
  5788. }
  5789. if (hostSet("Check_jumbofiles_dot_com_links", false))
  5790. {
  5791. addFileHost(
  5792. 'jumbofiles.com',
  5793. "jumbofiles\\.com\/\\w+",
  5794. '<h3>Download File',
  5795. />File\n*\s*Not Found/,
  5796. 'optional--'
  5797. );
  5798. }
  5799. if (hostSet("Check_cloudstor_dot_es_links", false))
  5800. {
  5801. addFileHost(
  5802. 'cloudstor.es',
  5803. "cloudstor\\.es\/f\/\\w+",
  5804. '<div id="btn_download"',
  5805. '>File not found<',
  5806. 'optional--'
  5807. );
  5808. }
  5809. if (hostSet("Check_moevideo_dot_net_links", false))
  5810. {
  5811. addFileHost(
  5812. 'moevideo.net',
  5813. "moevideo\\.net\/video\/\\d+\\.\\w+",
  5814. />Download\s*video</,
  5815. '>Video not found<',
  5816. 'optional--'
  5817. );
  5818. }
  5819. if (hostSet("Check_dizzcloud_dot_com_links", false))
  5820. {
  5821. addFileHost(
  5822. 'dizzcloud.com',
  5823. "dizzcloud\\.com\/(?:file|dl)?\/?\\w+",
  5824. /<div\s+id="download-counter">/,
  5825. '<div class="font-404-1">',
  5826. '>File is temporary unavailable<'
  5827. );
  5828. }
  5829. if (hostSet("Check_shared_dot_com_links", false))
  5830. {
  5831. addFileHost(
  5832. 'shared.com',
  5833. "shared\\.com\/\\w+",
  5834. /<div class="attachment\-icon">\n\s*<a href="https:\/\/dl\.shared\.com\/\w+/,
  5835. 'optional--',
  5836. 'optional--'
  5837. );
  5838. }
  5839. if (hostSet("Check_filetrip_dot_net_links", false))
  5840. {
  5841. addFileHost(
  5842. 'filetrip.net',
  5843. "filetrip\\.net\/dl\\?\\w+",
  5844. '<input type="submit" name="download" value="Download"|<i>Your download will be ready in a second...</i>',
  5845. '>Sorry, the file you requested does not exist.',
  5846. 'optional--'
  5847. );
  5848. }
  5849. if (hostSet("Check_filepi_dot_com_links", false))
  5850. {
  5851. addFileHost(
  5852. 'filepi.com',
  5853. "filepi\\.com\/\\w+",
  5854. '<button class="submit" id="button_start"',
  5855. '<div id="big_title">File not found or deleted :(',
  5856. 'optional--'
  5857. );
  5858. }
  5859. if (hostSet("Check_2downloadz_dot_com_links", false))
  5860. {
  5861. addFileHost(
  5862. '2downloadz.com',
  5863. "2downloadz\\.com\/\\w+",
  5864. '<div title="Slow Download"',
  5865. '>File not found<',
  5866. 'optional--'
  5867. );
  5868. }
  5869. if (hostSet("Check_qfpost_dot_com_links", false))
  5870. {
  5871. addFileHost(
  5872. 'qfpost.com',
  5873. "qfpost\\.com\/file\/d\\?g=\\w+",
  5874. '<input src="/i/download2.png"',
  5875. '>File not found<',
  5876. 'optional--'
  5877. );
  5878. }
  5879. if (hostSet("Check_superupload_dot_com_links", false))
  5880. {
  5881. addFileHost(
  5882. 'superupload.com',
  5883. "superupload\\.com\/(?:\\?|files\/)\\w+",
  5884. '<span id="regularspeed" class="speedt">',
  5885. '>DUNNO<',
  5886. 'optional--'
  5887. );
  5888. }
  5889. if (hostSet("Check_tropicshare_dot_com_links", false))
  5890. {
  5891. addFileHost(
  5892. 'tropicshare.com',
  5893. "tropicshare\\.com\/files\/\\d+",
  5894. '"free-download">FREE<br/>',
  5895. '>FNF<',
  5896. 'optional--'
  5897. );
  5898. }
  5899. if (hostSet("Check_filemonkey_dot_in_links", false))
  5900. {
  5901. addFileHost(
  5902. 'filemonkey.in',
  5903. "filemonkey\\.in\/file\/\\w+",
  5904. '<span class="waitseconds">30</span>',
  5905. '>This file has not been found<',
  5906. 'optional--'
  5907. );
  5908. }
  5909. if (hostSet("Check_mystore_dot_to_links", false))
  5910. {
  5911. addFileHost(
  5912. 'mystore.to',
  5913. "mystore\\.to\/dl\/\\w+",
  5914. /<button wert="\w+">Download File</,
  5915. '>file not found<', //?
  5916. 'optional--'
  5917. );
  5918. }
  5919. if (hostSet("Check_putcker_dot_com_links", false))
  5920. {
  5921. addFileHost(
  5922. 'putcker.com',
  5923. "putcker\\.com\/.+",
  5924. '<div class="downloadfree">',
  5925. 'div_file"',
  5926. 'optional--'
  5927. );
  5928. }
  5929. if (hostSet("Check_turtleshare_dot_com_links", false))
  5930. {
  5931. addFileHost(
  5932. 'turtleshare.com',
  5933. "turtleshare\\.com\/download\/\\w+",
  5934. /<div style=".+" id="download_link">Preparing Download/,
  5935. 'We do not know this file.',
  5936. 'optional--'
  5937. );
  5938. }
  5939. if (hostSet("Check_flashx_dot_tv_links", false))
  5940. {
  5941. addFileHost(
  5942. 'flashx.tv',
  5943. "flashx\\.tv\/video\/\\w+",
  5944. /<iframe width="\d+" height="\d+" src="http:\/\/play\.flashx\.tv\/player\/embed\.php/,
  5945. '>File not found<', //?
  5946. 'optional--'
  5947. );
  5948. }
  5949. if (hostSet("Check_nosupload_dot_com_links", false))
  5950. {
  5951. addFileHost(
  5952. "nosupload.com",
  5953. "nosupload\\.com\/(?:\\?d=)?\\w+",
  5954. 'op" value="download',
  5955. />(?:File Not Found|The file was removed by administrator)</,
  5956. 'optional--',
  5957. true
  5958. );
  5959. }
  5960. if (hostSet("Check_fileim_dot_com_links", false))
  5961. {
  5962. addFileHost(
  5963. 'fileim.com',
  5964. "fileim\\.com\/file\/\\w+",
  5965. '<a id="freedown"',
  5966. '>Not Found<',
  5967. 'optional--'
  5968. );
  5969. }
  5970. if (hostSet("Check_socifiles_dot_com_links", false))
  5971. {
  5972. addFileHost(
  5973. 'socifiles.com',
  5974. "socifiles\\.com\/d\/\\w+",
  5975. '<h1 class="file-link"',
  5976. 'something something darkside', //?
  5977. 'optional--'
  5978. );
  5979. }
  5980.  
  5981. if (hostSet("Check_file4u_dot_pl_links", false))
  5982. {
  5983. addFileHost(
  5984. 'file4u.pl',
  5985. 'file4u\\.pl\/download\/\\d+',
  5986. />Zwyk.y U.ytkownik<\/button>/,
  5987. />\s*Plik kt.ry pr.bujesz pobra./,
  5988. 'optional--'
  5989. );
  5990. }
  5991.  
  5992. if (hostSet("Check_kie_dot_nu_links", false))
  5993. {
  5994. addFileHost(
  5995. 'kie.nu',
  5996. 'kie\\.nu\/\\w+',
  5997. '<input type="submit" value="download" id="submit-dl" />',
  5998. '404 NOT FOUND',
  5999. 'optional--'
  6000. );
  6001. }
  6002.  
  6003. if (hostSet("Check_dodane_dot_pl_links", false))
  6004. {
  6005. addFileHost(
  6006. 'dodane.pl',
  6007. 'dodane\\.pl\/file\/\\d+',
  6008. '>Pobierz plik<',
  6009. '<div class="error-page-title">Strona o podanym adresie nie istnieje <',
  6010. 'optional--'
  6011. );
  6012. }
  6013.  
  6014. if (hostSet("Check_file-space_dot_org_links", false))
  6015. {
  6016. addFileHost(
  6017. 'file-space.org',
  6018. 'file\\-space\\.org\/files\/get\/[a-z0-9-]+',
  6019. '<a href="#" onclick="javascript:gotofree();"',
  6020. 'nothingyet',
  6021. 'optional--'
  6022. );
  6023. }
  6024.  
  6025. if (hostSet("Check_sendfile_dot_pl_links", false))
  6026. {
  6027. addFileHost(
  6028. 'sendfile.pl',
  6029. 'sendfile\\.pl\/\\d+',
  6030. '<font color="#0000FF"><b><u>Pobierz</u>',
  6031. '<div class="error">Plik nie istnieje!</div>',
  6032. 'optional--'
  6033. );
  6034. }
  6035.  
  6036. if (hostSet("Check_uploadizer_dot_net_links", false))
  6037. {
  6038. addFileHost(
  6039. 'uploadizer.net',
  6040. 'uploadizer\\.net\/\\?d=\\d+',
  6041. '<input type="button" onclick="startDownload();"',
  6042. 'optional--',
  6043. 'optional--'
  6044. );
  6045. }
  6046.  
  6047. if (hostSet("Check_filesso_dot_com_links", false))
  6048. {
  6049. addFileHost(
  6050. 'filesso.com',
  6051. 'filesso\\.com\/file\/\\w+',
  6052. '<input type="submit" value="Pobierz plik" />',
  6053. 'Plik nie został odnaleziony w bazie danych.',
  6054. 'optional--'
  6055. );
  6056. }
  6057.  
  6058. if (hostSet("Check_twojepliki_dot_eu_links", false))
  6059. {
  6060. addFileHost(
  6061. 'twojepliki.eu',
  6062. 'twojepliki\\.eu\/\\w+',
  6063. '<td><a class="free-btn-4 free-btn" href="/download/free',
  6064. '<h1>File not found. Probably it was deleted.</h1>|<div class="code-404" style="display:none;">404</div>',
  6065. 'optional--'
  6066. );
  6067. }
  6068.  
  6069. if (hostSet("Check_video_dot_tt_links", false))
  6070. {
  6071. addFileHost(
  6072. 'video.tt',
  6073. 'video\\.tt\/video\/\\w+',
  6074. '<div class="video_player" id="videoPlayer">',
  6075. '<font size="5">This video is no longer available</font>',
  6076. 'optional--'
  6077. );
  6078. }
  6079.  
  6080. if (hostSet("Check_hightail_dot_com_links", false))
  6081. {
  6082. addFileHost(
  6083. 'hightail.com|yousendit.com',
  6084. '(?:hightail|yousendit)\\.com\/download\/\\w+',
  6085. '<a id="saveToDesktop" class="btn-save hightailWhite"',
  6086. 'deadregex',
  6087. 'optional--'
  6088. );
  6089. }
  6090.  
  6091. if (hostSet("Check_upgolden_dot_com_links", false))
  6092. {
  6093. addFileHost(
  6094. 'upgolden.com|shallfile.com',
  6095. '(?:upgolden\\.com|shallfile\\.com)\/download\\.php\\?file=\\d{3}',
  6096. '<input type="submit" value="Continue as a Guest"',
  6097. '>File not found<', //?
  6098. 'optional--'
  6099. );
  6100. }
  6101.  
  6102. if (hostSet("Check_poslisoubor_dot_cz_links", false))
  6103. {
  6104. addFileHost(
  6105. 'poslisoubor.cz',
  6106. 'poslisoubor\\.cz\/stahni\/\\w+',
  6107. '<i>kliknutím na název souburu začne stahování</i>',
  6108. />\s*Zadaná zásilka již na/,
  6109. 'optional--'
  6110. );
  6111. }
  6112. if (hostSet("Check_share_dash_byte_dot_net_links", false))
  6113. {
  6114. addFileHost(
  6115. 'share-byte.net',
  6116. 'share-byte\.net\/\\w+',
  6117. '<input type="button" name="downloadFile" ',
  6118. '>File not found<', //?
  6119. 'optional--'
  6120. );
  6121. }
  6122.  
  6123. if (hostSet("Check_datoid_dot_cz_links", false))
  6124. {
  6125. addFileHost(
  6126. 'datoid.cz',
  6127. 'datoid\.cz\/\\w+',
  6128. 'btn-download|class="icon-download-large"',
  6129. 'Stránka nenalezena|error-404|Soubor byl zablokován',
  6130. 'optional--'
  6131. );
  6132. }
  6133. if (hostSet("Check_streamfile_dot_com_links", false))
  6134. {
  6135. addFileHost(
  6136. 'streamfile.com',
  6137. 'streamfile\\.com\/\\w+',
  6138. 'class="btn',
  6139. 'class="green-btn',
  6140. 'optional--'
  6141. );
  6142. }
  6143. if (hostSet("Check_cloudstor_dot_es_links", false))
  6144. {
  6145. addFileHost(
  6146. 'cloudstor.es',
  6147. 'cloudstor\.es\/\\w+',
  6148. '"btn_download"',
  6149. '404: Page Not Found',
  6150. 'optional--'
  6151. );
  6152. }
  6153. if (hostSet("Check_swatupload_dot_com_links", false))
  6154. {
  6155. addFileHost(
  6156. 'swatupload.com',
  6157. "swatupload\.com\/\\w+",
  6158. 'btn_download|google-site-verification',
  6159. 'var rr =|invalid license_key',
  6160. 'optional--'
  6161. );
  6162. }
  6163. if (hostSet("Check_migupload_dot_com_links", false))
  6164. {
  6165. addFileHost(
  6166. 'migupload.com',
  6167. "migupload\.com\/\\w+",
  6168. 'content="1" name="|var download_url',
  6169. 'var rr =|AVOID_IE_BUG',
  6170. 'optional--'
  6171. );
  6172. }
  6173. if (hostSet("Check_partage_dash_facile_dot_com_links", false))
  6174. {
  6175. addFileHost(
  6176. 'partage-facile.com',
  6177. "partage-facile\.com\/\\w+",
  6178. 'class="title"><strong>|colspan="2"',
  6179. 'Page introuvable|class="alert-message',
  6180. 'optional--'
  6181. );
  6182. }
  6183. if (hostSet("Check_google_dot_com_links", false))
  6184. {
  6185. addFileHost(
  6186. 'google.com',
  6187. "google\\.com\/file\/\\w+",
  6188. 'content="!">|color:#2d2d2d',
  6189. '12pt; font-weight:|class="errorMessage"|F0F6FF',
  6190. 'optional--'
  6191. );
  6192. }
  6193. if (hostSet("Check_google_dot_com_links", false))
  6194. {
  6195. addFileHost(
  6196. 'google.com',
  6197. "docs.google.com\/\\w+",
  6198. 'content="!">|color:#2d2d2d',
  6199. '12pt; font-weight:|class="errorMessage"|F0F6FF|Error 404',
  6200. 'optional--'
  6201. );
  6202. }
  6203. if (hostSet("Check_redbunker_dot_net_links", false))
  6204. {
  6205. addFileHost(
  6206. 'redbunker.net',
  6207. "redbunker\.net\/\\w+",
  6208. 'dload.png|rowspan="3">|yep.gif',
  6209. 'CONTENT="RedBunker|#D3D3D3;|color:#d33|AVOID_IE_BUG',
  6210. 'optional--'
  6211. );
  6212. }
  6213. if (hostSet("Check_files_dot_fm_links", false))
  6214. {
  6215. addFileHost(
  6216. 'files.fm',
  6217. "files\.fm\/\\w+",
  6218. 'dl.png"|background-color: transparent',
  6219. 'margin: 40px 40px|background: none;',
  6220. 'optional--'
  6221. );
  6222. }
  6223. if (hostSet("Check_filefactory_dot_com_links", false))
  6224. {
  6225. addFileHost(
  6226. 'filefactory.com',
  6227. "filefactory\\.com\/\\w+",
  6228. '<div id="download-(?:free|Premium Account Required|div id="file_holder"|download.css',
  6229. 'File Removed|Invalid Download Link|File Unavailable|Server Failed|Datei entfernt|This file has been removed',
  6230. 'temporarily overloaded|Server Maintenance'
  6231. );
  6232. }
  6233. if (hostSet("Check_aisfile_dot_com_links", false))
  6234. {
  6235. addFileHost(
  6236. 'aisfile.com',
  6237. "aisfile\.com\/\\w+",
  6238. '<h3 style="text-align:left;">|align=right><b>Filename:',
  6239. '<div style="width:500px;text-align:left;">|File Not Found',
  6240. 'optional--'
  6241. );
  6242. }
  6243. if (hostSet("Check_pan_dot_baidu_dot_com_links", false))
  6244. {
  6245. addFileHost(
  6246. 'pan.baidu.com',
  6247. "pan.baidu\.com\/\\w+",
  6248. 'target="_blank" title=|share-personal-info',
  6249. 'share_notfound.png|background:#f9f9f9',
  6250. 'optional--'
  6251. );
  6252. }
  6253. if (hostSet("Check_yunpan_dot_cn_links", false))
  6254. {
  6255. addFileHost(
  6256. 'yunpan.cn',
  6257. "yunpan\.cn\/\\w+",
  6258. 'class="icon icon-download|è¯·è¾“å…¥è®¿é—®å¯†ç è®¿é—®æ–‡ä»¶ï¼š',
  6259. 'content="360|http://p5.qhimg.com/t01d1c98667df9dc6cc.jpg',
  6260. 'optional--'
  6261. );
  6262. }
  6263. if (hostSet("Check_file_dash_upload_dot_net_links", false))
  6264. {
  6265. addFileHost(
  6266. "file-upload.net",
  6267. "(?:en\\.|)file\\-upload\\.net\/download\\-\\d+\/\\w+",
  6268. 'downbutton.gif|getElementById("downbild")|style.display',
  6269. 'Datei existiert nicht!|File does not exist!|hochgeladene Datei nicht gefunden werden|has not been found',
  6270. 'optional--'
  6271. );
  6272. }
  6273. if (hostSet("Check_dotsemper_dot_com_links", false))
  6274. {
  6275. addFileHost(
  6276. "dotsemper.com",
  6277. "dotsemper\.com\/\\w+",
  6278. 'btn_download',
  6279. 'style="width:500px;text-align:left;">',
  6280. 'optional--'
  6281. );
  6282. }
  6283. if (hostSet("Check_gulfup_dot_com_links", false))
  6284. {
  6285. addFileHost(
  6286. "gulfup.com",
  6287. "gulfup\.com\/",
  6288. '<!-- Downlod template -->|download.gif',
  6289. '<!-- Errors template -->|class="error">|<!-- form upload -->|[ رفع الملفات ]',
  6290. 'optional--'
  6291. );
  6292. }
  6293. if (hostSet("Check_archive_dot_org_links", false))
  6294. {
  6295. addFileHost(
  6296. 'archive.org',
  6297. "archive\.org\/\\w+",
  6298. '/Content-Length: \d{6,}/',
  6299. 'Content-Type: text/html|<title>Internet Archive: Error</title>|does not exist'
  6300. );
  6301. }
  6302. if (hostSet("Check_box_dot_net_links", false))
  6303. {
  6304. addFileHost(
  6305. "box.net",
  6306. "box\.net\/\\w+",
  6307. 'download-file-btn|id="download_button',
  6308. 'BIyMin.png| <div class="error_message',
  6309. 'optional--'
  6310. );
  6311. }
  6312. if (hostSet("Check_box_dot_com_links", false))
  6313. {
  6314. addFileHost(
  6315. "box.com",
  6316. "box\.com\/\\w+",
  6317. 'download-file-btn|id="download_button',
  6318. 'BIyMin.png| <div class="error_message',
  6319. 'optional--'
  6320. );
  6321. }
  6322. if (hostSet("Check_sharerapid_dot_cz_links", false))
  6323. {
  6324. addFileHost(
  6325. "sharerapid.cz",
  6326. "sharerapid\.cz\/\\w+",
  6327. 'value="Stáhnout"|soubor" style|Stahování je povoleno pouze pro přihlášené uživatele',
  6328. 'error_div">|404 - Not Found|id="error">Soubor nenalezen',
  6329. 'optional--'
  6330. );
  6331. }
  6332. if (hostSet("Check_rusfolder_dot_net_links", false))
  6333. {
  6334. addFileHost(
  6335. "rusfolder.net",
  6336. "rusfolder\\.net",
  6337. '"download-step-one-form"|Название: <b>|Файлы|Файлы в папке',
  6338. '"ui-state-error ui-corner-all"|File is removed|File not found|удален|папка не существует',
  6339. 'optional--'
  6340. );
  6341. }
  6342. if (hostSet("Check_rusfolder_dot_com_links", false))
  6343. {
  6344. addFileHost(
  6345. "rusfolder.com",
  6346. "rusfolder\\.com",
  6347. '"download-step-one-form"|Название: <b>|Файлы|Файлы в папке',
  6348. '"ui-state-error ui-corner-all"|File is removed|File not found|удален|папка не существует',
  6349. 'optional--'
  6350. );
  6351. }
  6352. if (hostSet("Check_ifolder_dot_ru_links", false))
  6353. {
  6354. addFileHost(
  6355. "ifolder.ru",
  6356. "ifolder\\.ru",
  6357. '"download-step-one-form"|Название: <b>|Файлы|Файлы в папке',
  6358. '"ui-state-error ui-corner-all"|File is removed|File not found|удален|папка не существует',
  6359. 'optional--'
  6360. );
  6361. }
  6362. if (hostSet("Check_freefilehosting_dot_net_links", false))
  6363. {
  6364. addFileHost(
  6365. "freefilehosting.net",
  6366. "freefilehosting\.net\/\\w+",
  6367. 'Type: cbr|Type: rar|Type: jpg|Type: mkv|Type: avi|Type: mpg|Type: mpeg|Type: zip|Type: wmvType: bmpType: gifType: mp4Type: mp3',
  6368. '175px;" value="http://www.freefilehosting.net/"|Filename: <br>',
  6369. 'optional--'
  6370. );
  6371. }
  6372. if (hostSet("Check_fileshareup_dot_com_links", false))
  6373. {
  6374. addFileHost(
  6375. "fileshareup.com",
  6376. "fileshareup\.com\/\\w+",
  6377. 'downloadPageTable|btn-free|download-timer-seconds',
  6378. '404 Not Found|errorPageStrings|<title>Upload Files',
  6379. 'optional--'
  6380. );
  6381. }
  6382. if (hostSet("Check_datafile_dot_com_links", false))
  6383. {
  6384. addFileHost(
  6385. "datafile.com",
  6386. "datafile\.com\/\\w+",
  6387. 'captchaForm|class="file-size"|Download will start in',
  6388. 'ErrorCode|class="error-msg"',
  6389. 'optional--'
  6390. );
  6391. }
  6392. if (hostSet("Check_goldbytez_dot_com_links", false))
  6393. {
  6394. addFileHost(
  6395. "goldbytez.com",
  6396. "goldbytez\.com\/\\w+",
  6397. '<h2>Download</h2>|<center><h2>File: <font color="red">',
  6398. '<div style="width:500px;text-align:left;">|<h2>Error</h2>',
  6399. 'optional--'
  6400. );
  6401. }
  6402. if (hostSet("Check_speedy_dot_sh_links", false))
  6403. {
  6404. addFileHost(
  6405. "speedy.sh",
  6406. "speedy\.sh\/\\w+",
  6407. 'bgcolor=#eeeeee|class="addthis',
  6408. 'File not found|downloadfilenamenotfound>',
  6409. 'optional--'
  6410. );
  6411. }
  6412. if (hostSet("Check_sdilej_dot_cz_links", false))
  6413. {
  6414. addFileHost(
  6415. "sdilej.cz",
  6416. "sdilej\.cz\/\\w+",
  6417. 'class="page-download"',
  6418. '<h2 class="red">|czshare.com|sponsored listings|This domain is for sale',
  6419. 'optional--'
  6420. );
  6421. }
  6422. if (hostSet("Check_acefile_dot_net_links", false))
  6423. {
  6424. addFileHost(
  6425. "acefile.net",
  6426. "acefile\.net\/\\w+",
  6427. 'align=right nowrap><b>',
  6428. 'File Not Found|<div style="width:322px;text-align:left;" class="no_file">',
  6429. 'optional--'
  6430. );
  6431. }
  6432. if (hostSet("Check_ziddu_dot_com_links", false))
  6433. {
  6434. addFileHost(
  6435. "ziddu.com",
  6436. "ziddu\.com\/\\w+",
  6437. 'downloads.ziddu.com|downloadfilelinkicon',
  6438. 'errortracking.php|images/oops.png|fontfamilyverdana error',
  6439. 'optional--'
  6440. );
  6441. }
  6442. if (hostSet("Check_letitbit_dot_net_links", false))
  6443. {
  6444. addFileHost(
  6445. "letitbit.net",
  6446. "(?:u\\d+\\.)?letitbit\\.net\/download\/\\w+",
  6447. '<div id="way_selection_tab" class="download-tab">',
  6448. 'color:#000">|Запрашиваемый файл не найден|страница не существует|File not found',
  6449. 'optional--'
  6450. );
  6451. }
  6452. if (hostSet("Check_uploaded_dot_to_links", false))
  6453. {
  6454. addFileHost(
  6455. "uploaded.net|ul.to|uploaded.to",
  6456. '(?:uploaded\\.(?:to|net)\/(?:.id|file|folder|f|410|404))|(?:ul\\.to\/)',
  6457. 'download" class="center|right:20px" class="file">',
  6458. 'box_red|Error: 404|Error: 410|fileList"><thead><tr><td colspan="2"><\/td><\/tr><\/thead><tbody>\\s*<tr>',
  6459. 'optional--'
  6460. );
  6461. }
  6462. if (hostSet("Check_megarapid_dot_cz_links", false))
  6463. {
  6464. addFileHost(
  6465. "megarapid.cz",
  6466. "megarapid\.cz\/\\w+",
  6467. 'value="Stáhnout"|soubor" style|Stahování je povoleno pouze pro přihlášené uživatele',
  6468. 'error_div">|404 - Not Found',
  6469. 'optional--'
  6470. );
  6471. }
  6472. if (hostSet("Check_yadi_dot_sk_links", false))
  6473. {
  6474. addFileHost(
  6475. "yadi.sk",
  6476. "yadi\.sk\/\\w+",
  6477. 'twitter:site|View and download',
  6478. 'error code|Nothing found',
  6479. 'optional--'
  6480. );
  6481. }
  6482. if (hostSet("Check_4shared_dot_com_links", false))
  6483. {
  6484. addFileHost(
  6485. "4shared.com",
  6486. "4shared\\.com\/.+\/",
  6487. '<input type="hidden" class="jsSocialTwDefaultText" value=',
  6488. 'class="warn\"|big red"|GetDataBack',
  6489. 'Service Unavailable'
  6490. );
  6491. }
  6492. if (hostSet("Check_inafile_dot_com_links", false))
  6493. {
  6494. addFileHost(
  6495. "inafile.com",
  6496. "inafile\\.com\/\\w+",
  6497. 'value="download1">|<h2>File: <font style="color:darkred">',
  6498. '<div style="width:500px;text-align:left;">|File Not Found',
  6499. 'optional--'
  6500. );
  6501. }
  6502. if (hostSet("Check_uploadc_dot_com_links", false))
  6503. {
  6504. addFileHost(
  6505. "uploadc.com",
  6506. "uploadc\\.com\/\\w+",
  6507. 'id="prebut"',
  6508. 'File Not Found|This file has been removed due',
  6509. 'optional--'
  6510. );
  6511. }
  6512. if (hostSet("Check_shareflare_dot_net_links", false))
  6513. {
  6514. addFileHost(
  6515. "shareflare.net",
  6516. 'shareflare\\.net\/download\/',
  6517. 'download-pnl',
  6518. 'File not found|Поиск зеркала на фа',
  6519. 'optional--'
  6520. );
  6521. }
  6522. if (hostSet("Check_megairon_dot_net_links", false))
  6523. {
  6524. addFileHost(
  6525. "megairon.net",
  6526. "megairon\.net\/\\w+",
  6527. 'border: 5px #ffeb90 solid;',
  6528. 'CONTENT="Download File ">|var rr =',
  6529. 'optional--'
  6530. );
  6531. }
  6532. if (hostSet("Check_imdb_dot_com_links", false))
  6533. {
  6534. addFileHost(
  6535. "imdb.com",
  6536. "imdb\.com\/\\w+",
  6537. 'imdb.com',
  6538. '404 Error',
  6539. 'optional--'
  6540. );
  6541. }
  6542. if (hostSet("Check_hitfile_dot_net_links", false))
  6543. {
  6544. addFileHost(
  6545. "hitfile.net",
  6546. "hitfile\.net\/\\w+",
  6547. 'class="download-file',
  6548. 'style="width:16px;height:16px;border:0;|File not found',
  6549. 'optional--');
  6550. }
  6551. /* if (hostSet("Check_xerver_dot_co_links", false))
  6552. {
  6553. addFileHost(
  6554. "xerver.co",
  6555. "xerver\.co\/\\w+",
  6556. 'style="text-transform:uppercase|value="download1',
  6557. '404 Error|FILE NOT FOUND',
  6558. '502 Bad Gateway'
  6559. );
  6560. } */
  6561. if (hostSet("Check_uploadto_dot_us_links", false))
  6562. {
  6563. addFileHost(
  6564. "uploadto.us",
  6565. "uploadto\\.us\/file\/details\/[\\w+-]",
  6566. '>Your download is ready<|>Premium members only<',
  6567. '/>File (?:not found|restricted|has been deleted(?:\.| in compliance with the DMCA))<|\/folder\/add/|<title>UPLOADTO.US</title>',
  6568. 'btn-large btn-danger">|Account limitation notice|>File not available.<|>This download server is overloaded<|502 Bad Gateway',
  6569. true);
  6570. }
  6571. /* if (hostSet("Check_filesfrog_dot_net_links", false))
  6572. {
  6573. addFileHost(
  6574. "filesfrog.net",
  6575. "filesfrog\.net\/\\w+",
  6576. 'download-now.png|File: <font style="color:darkred">',
  6577. '<div style="width:500px;text-align:left;">|File Not Found|Services for this domain have been discontinued',
  6578. 'optional--'
  6579. );
  6580. } */
  6581. if (hostSet("Check_filepom_dot_com_links", false))
  6582. {
  6583. addFileHost(
  6584. "filepom.com",
  6585. "filepom\.com\/\\w+",
  6586. 'happy downloading|download1',
  6587. 'File Not Found|523: Origin is unreachable',
  6588. 'optional--'
  6589. );
  6590. }
  6591. if (hostSet("Check_nitroflare_dot_com_links", true))
  6592. {
  6593. addFileHost(
  6594. "nitroflare.com",
  6595. "nitroflare\.com\/\\w+",
  6596. 'alert.png|LowSpeedMeter.png',
  6597. 'file has been removed|id="error" style="display|File doesn|Probably deleted',
  6598. 'optional--'
  6599. );
  6600. }
  6601. if (hostSet("Check_top4top_dot_net_links", false))
  6602. {
  6603. addFileHost(
  6604. "top4top.net",
  6605. "top4top\.net\/\\w+",
  6606. 'start Downlod template',
  6607. 'start err template',
  6608. 'optional--'
  6609. );
  6610. }
  6611. if (hostSet("Check_filejoker_dot_net_links", false))
  6612. {
  6613. addFileHost(
  6614. "filejoker.net",
  6615. "filejoker\.net\/\\w+",
  6616. 'button id="regular-download">Slow|method_free" value="1|<div id="download" class="download0">',
  6617. 'File Not Found|class="not_found|<div id="download" class="not_found">',
  6618. 'optional--'
  6619. );
  6620. }
  6621. if (hostSet("Check_rapidgator_dot_net_links", false))
  6622. {
  6623. addFileHost(
  6624. 'rapidgator.net|rg.to',
  6625. "(?:rapidgator\\.net|rg.to)\/file\/\\w+",
  6626. '/download/AjaxStartTimer|Click here to download|not more than 1 file at a time|This file can be downloaded by premium only|your hourly downloads limit|почасовой лимит скачиваний|limite horaire de téléchargements|límite de descargas en una hora',
  6627. 'Error 404|File not found|Error 500',
  6628. 'optional--'
  6629. );
  6630. }
  6631. /* if (hostSet("Check_privatefiles_dot_com_links", false))
  6632. {
  6633. addFileHost(
  6634. 'privatefiles.com',
  6635. "privatefiles\.com\/\\w+",
  6636. '<Title>Download|/img-h1Title.jpg">|icon icon-cloud-download',
  6637. '404 Not Found|No such file with this filename|file that is not available',
  6638. 'optional--');
  6639. } */
  6640. if (hostSet("Check_free_dot_fr_links", false))
  6641. {
  6642. addFileHost(
  6643. 'free.fr',
  6644. "(?:dl.\\.|)free\\.fr",
  6645. 'Valider et t&eacute;l&eacute',
  6646. 'Fichier inexistant',
  6647. 'optional--');
  6648. }
  6649. if (hostSet("Check_gboxes_dot_com_links", false))
  6650. {
  6651. addFileHost(
  6652. 'gboxes.com',
  6653. "gboxes\.com\/\\w+",
  6654. 'You have requested|color="red">http://www.gboxes.com',
  6655. 'File Not Found|<div style="width:500px;text-align:left;">',
  6656. 'optional--');
  6657. }
  6658. if (hostSet("Check_vip_dash_file_dot_com_links", false))
  6659. {
  6660. addFileHost(
  6661. 'vip-file.com',
  6662. '(?:u\\d+\\.)?vip-file\\.com\/download.*?\/(?:.*?)\/(?:.*?)\\.html',
  6663. 'download_link = ',
  6664. '<p style="text-align:center">',
  6665. 'optional--');
  6666. }
  6667. if (hostSet("Check_led_dot_wf_links", false))
  6668. {
  6669. addFileHost(
  6670. 'led.wf',
  6671. "led\.wf\/\\w+",
  6672. 'logo_0.png|downloads.gif"',
  6673. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6674. 'optional--');
  6675. }
  6676. if (hostSet("Check_lan_dot_wf_links", false))
  6677. {
  6678. addFileHost(
  6679. 'lan.wf',
  6680. "lan\.wf\/\\w+",
  6681. 'logo_0.png|downloads.gif"',
  6682. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6683. 'optional--');
  6684. }
  6685. if (hostSet("Check_adlink_dot_wf_links", false))
  6686. {
  6687. addFileHost(
  6688. 'adlink.wf',
  6689. "adlink\.wf\/\\w+",
  6690. 'logo_0.png|downloads.gif"',
  6691. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6692. 'optional--');
  6693. }
  6694. if (hostSet("Check_click_dot_tf_links", false))
  6695. {
  6696. addFileHost(
  6697. 'click.tf',
  6698. "click\.tf\/\\w+",
  6699. 'logo_0.png|downloads.gif"',
  6700. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6701. 'optional--');
  6702. }
  6703. if (hostSet("Check_ssh_dot_tf_links", false))
  6704. {
  6705. addFileHost(
  6706. 'ssh.tf',
  6707. "ssh\.tf\/\\w+",
  6708. 'logo_0.png|downloads.gif"',
  6709. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6710. 'optional--');
  6711. }
  6712. if (hostSet("Check_ssh_dot_yt_links", false))
  6713. {
  6714. addFileHost(
  6715. 'ssh.yt',
  6716. "ssh\.yt\/\\w+",
  6717. 'logo_0.png|downloads.gif"',
  6718. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6719. 'optional--');
  6720. }
  6721. if (hostSet("Check_yep_dot_pm_links", false))
  6722. {
  6723. addFileHost(
  6724. 'yep.pm',
  6725. "yep\.pm\/\\w+",
  6726. 'logo_0.png|downloads.gif"',
  6727. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6728. 'optional--');
  6729. }
  6730. if (hostSet("Check_kyc_dot_pm_links", false))
  6731. {
  6732. addFileHost(
  6733. 'kyc.pm',
  6734. "kyc\.pm\/\\w+",
  6735. 'logo_0.png|downloads.gif"',
  6736. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6737. 'optional--');
  6738. }
  6739. if (hostSet("Check_catshare_dot_net_links", false))
  6740. {
  6741. addFileHost(
  6742. 'catshare.net',
  6743. "catshare\\.net/\\w+",
  6744. '"icon-share',
  6745. 'alert alert-error',
  6746. 'optional--');
  6747. }
  6748. if (hostSet("Check_brupload_dot_net_links", false))
  6749. {
  6750. addFileHost(
  6751. 'brupload.net',
  6752. "brupload\\.net/\\w+",
  6753. 'Download Gratuito',
  6754. '<div style="width:500px;text-align:left;">',
  6755. 'optional--');
  6756. }
  6757. if (hostSet("Check_cloudzilla_dot_to_links", false))
  6758. {
  6759. addFileHost(
  6760. 'cloudzilla.to',
  6761. "cloudzilla\\.to/\\w+",
  6762. 'btn1" id="free_download|onclick="freeDownload|id="pwd_protected">',
  6763. 'File not found|/imgs/broken.png',
  6764. 'optional--');
  6765. }
  6766. if (hostSet("Check_clicknupload_dot_com_links", false))
  6767. {
  6768. addFileHost(
  6769. "clicknupload.com",
  6770. "clicknupload\.com\/\\w+",
  6771. 'name="method_free',
  6772. 'File Not Found',
  6773. 'optional--'
  6774. );
  6775. }
  6776. if (hostSet("Check_ex_dash_load_dot_com_links", false))
  6777. {
  6778. addFileHost(
  6779. "ex-load.com",
  6780. "ex-load\.com\/\\w+",
  6781. 'name="method_free|<p>Download File:</p>|Are you trying to download',
  6782. 'Folder Not Found|File Not Found|Error 404',
  6783. 'optional--'
  6784. );
  6785. }
  6786. if (hostSet("Check_wizupload_dot_com_links", false))
  6787. {
  6788. addFileHost(
  6789. "wizupload.com",
  6790. "wizupload\.com\/\\w+",
  6791. 'btn_download|class="downloadbtn"',
  6792. '>File Not Found<',
  6793. 'optional--'
  6794. );
  6795. }
  6796. if (hostSet("Check_freakshare_dot_net_links", false))
  6797. {
  6798. addFileHost(
  6799. "freakshare.net",
  6800. "freakshare\.net\/files\/",
  6801. 'box_heading',
  6802. 'Este archivo no existe|Esse arquivo não existe|existent pas|К сожалению, этот файл больше не существует|Plik nie istnieje|Ez a fájl nem létezik|Acest fișier nu există|Dosya bulunamadı|ไฟล์นี้ไม่มีอยู่ |Tệp này không tồn tại|ファイルをありません|이 파일은 존재하지 않습니다!|此文件不存在|This file does not exist|Dieser Download existiert nicht|الملف المطلوب غير موجود',
  6803. 'Your Traffic is used up for today'
  6804. );
  6805. }
  6806. if (hostSet("Check_freakshare_dot_net_links", false))
  6807. {
  6808. addFileHost(
  6809. "freakshare.net",
  6810. "freakshare\.net\/folder\/",
  6811. 'Files: [1-9]',
  6812. 'Files: 0',
  6813. 'optional--'
  6814. );
  6815. }
  6816. if (hostSet("Check_freakshare_dot_com_links", false))
  6817. {
  6818. addFileHost(
  6819. "freakshare.com",
  6820. "freakshare\.com\/files\/",
  6821. 'box_heading',
  6822. 'Este archivo no existe|Esse arquivo não existe|existent pas|К сожалению, этот файл больше не существует|Plik nie istnieje|Ez a fájl nem létezik|Acest fișier nu există|Dosya bulunamadı|ไฟล์นี้ไม่มีอยู่ |Tệp này không tồn tại|ファイルをありません|이 파일은 존재하지 않습니다!|此文件不存在|This file does not exist|Dieser Download existiert nicht|الملف المطلوب غير موجود',
  6823. 'Your Traffic is used up for today'
  6824. );
  6825. }
  6826. if (hostSet("Check_freakshare_dot_com_links", false))
  6827. {
  6828. addFileHost(
  6829. "freakshare.com",
  6830. "freakshare\.com\/folder\/",
  6831. 'Files: [1-9]',
  6832. 'Files: 0',
  6833. 'optional--'
  6834. );
  6835. }
  6836. if (hostSet("Check_rockfile_dot_eu_links", false))
  6837. {
  6838. addFileHost(
  6839. "rockfile.eu",
  6840. "rockfile\.eu\/\\w+",
  6841. 'You have requested:',
  6842. 'The file you were looking for could not be found, sorry for any inconvenience.',
  6843. 'optional--'
  6844. );
  6845. }
  6846. if (hostSet("Check_fileupload_dot_pw_links", false))
  6847. {
  6848. addFileHost(
  6849. "fileupload.pw",
  6850. "fileupload\.pw\/\\w+",
  6851. 'value="Free"',
  6852. 'File Not Found',
  6853. 'optional--'
  6854. );
  6855. }
  6856. if (hostSet("Check_4upld_dot_com_links", false))
  6857. {
  6858. addFileHost(
  6859. "4upld.com",
  6860. "4upld\.com\/\\w+",
  6861. 'alt="Download Now"|content="Download file">|btn-free-element',
  6862. '<title>Error|content="error|File not found',
  6863. 'optional--'
  6864. );
  6865. }
  6866. if (hostSet("Check_newfileland_dot_com_links", false))
  6867. {
  6868. addFileHost(
  6869. "newfileland.com",
  6870. "newfileland\.com\/\\w+",
  6871. 'name="method_free',
  6872. 'File Not Found',
  6873. 'optional--'
  6874. );
  6875. }
  6876. if (hostSet("Check_faststore_dot_org_links", false))
  6877. {
  6878. addFileHost(
  6879. "faststore.org",
  6880. "faststore\.org\/\\w+",
  6881. 'name="method_free',
  6882. 'File Not Found',
  6883. 'optional--'
  6884. );
  6885. }
  6886. }
  6887. //start here
  6888. //hosts with direct download, so they must be requested for headers only
  6889. function initFileHostsHeadersOnly()
  6890. {
  6891. var aFHHCOCount = 1;
  6892. function addFileHostHeadersOnly(hostName, linkRegex, isAliveRegex, isDeadRegex)
  6893. {
  6894. hostName = hostName.split("|");
  6895. var i = hostName.length;
  6896. var hostID = "HC" + aFHHCOCount;
  6897. while(i--) {
  6898. var filehost = hostName[i].replace(/\./g, "_dot_").replace(/\-/g, "_dash_");
  6899.  
  6900. if (!hostsIDs[filehost]) {
  6901. hostsIDs[filehost] = [];
  6902. }
  6903. hostsIDs[filehost].push({
  6904. hostID: hostID,
  6905. linkRegex: linkRegex,
  6906. });
  6907. }
  6908. var HCObj = {
  6909. liveRegex: isAliveRegex,
  6910. deadRegex: isDeadRegex,
  6911. links: []
  6912. }
  6913. hostsCheck[hostID] = HCObj;
  6914. aFHHCOCount++;
  6915. }
  6916. if (hostSet("Check_uloziste_dot_com_links", false))
  6917. {
  6918. addFileHostHeadersOnly(
  6919. 'uloziste.com',
  6920. "(?:|files\\.)uloziste\\.com\/\\w+\/\\w+",
  6921. 'Connection: Keep-Alive',
  6922. 'Content-Length: 3857'
  6923. )
  6924. }
  6925.  
  6926. if (hostSet("Check_filemonster_dot_net_links", false))
  6927. {
  6928. addFileHostHeadersOnly(
  6929. 'folemonster.net',
  6930. "filemonster\\.net\/(?:..\/|)file\/\\w+",
  6931. 'filename="',
  6932. 'Content-Type: text/html'
  6933. )
  6934. }
  6935.  
  6936. if (hostSet("Check_karelia_dot_pro_links", false))
  6937. {
  6938. addFileHostHeadersOnly(
  6939. 'karelia.pro',
  6940. "(?:disk|fast)\\.karelia\\.pro\/\\w+",
  6941. "Content-Disposition: attachment; filename=",
  6942. "Content-Type: text/html"
  6943. )
  6944. }
  6945. if (hostSet("Check_dropbox_dot_com_links", false))
  6946. {
  6947. addFileHostHeadersOnly(
  6948. 'dropbox.com|dropboxusercontent.com',
  6949. "dl\\.dropbox(?:usercontent)?\\.com\/u\/\\d+\/.+?",
  6950. /x-dropbox-request-id: \w+/,
  6951. "optional--"
  6952. )
  6953. }
  6954. if (hostSet("Check_demo_dot_ovh_dot_eu_links", false))
  6955. {
  6956. addFileHostHeadersOnly(
  6957. 'ovh.eu',
  6958. "demo\\.ovh\\.eu\/download\/\\w+",
  6959. "optional--",
  6960. "optional--"
  6961. )
  6962. }
  6963. /* if (hostSet("Check_archive_dot_org_links", false))
  6964. {
  6965. addFileHostHeadersOnly(
  6966. 'archive.org',
  6967. "archive\.org\/\\w+",
  6968. '/Content-Length: \d{6,}/|Internet Archive<',
  6969. 'Content-Type: text/html|Internet Archive: Error</title>|does not exist'
  6970. );
  6971. }
  6972. */
  6973. if (hostSet("Check_blueshare_dot_be_links", false))
  6974. {
  6975. addFileHostHeadersOnly(
  6976. 'blueshare.be',
  6977. 'blueshare\\.be\/file\/\\w+',
  6978. 'Content-Description: File Transfer',
  6979. 'optional--'
  6980. );
  6981. }
  6982. }
  6983. }