W.A.R. Links Checker Customized

Automatically checks links from hundreds of file hosts.

Versione datata 25/05/2015. Vedi la nuova versione l'ultima versione.

  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.6.6
  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://www.mentalps.5gbfree.com
  18. // @namespace http://www.mentalps.5gbfree.com
  19. // @noframes
  20. // ==/UserScript==
  21.  
  22. var War_version = "1.2.4.7.6.6. May 19, 2015";
  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",
  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",
  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",
  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.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","keep2share.cc","keep2s.cc",
  87. "k2s.cc","goldbytez.com","keep2share.com","speedy.sh","fboom.me","megarapid.cz","yadi.sk","4shared.com","inafile.com",'uploadc.com',"shareflare.net","fileboom.me",
  88. "megairon.net","imdb.com","hitfile.net","uploadto.us","nitroflare.com","up.top4top.net","free.fr","led.wf","lan.wf","adlink.wf","catshare.net",
  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,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';
  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 = 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.  
  2388. if (hostSet("Check_filepost_dot_com_links", false))
  2389. {
  2390. addHost(
  2391. "filepost.com|fp.io", //hostname
  2392. "(?:filepost\\.com\/files|fp\\.io)\/\\w+", //linkregex
  2393. null, //blocksize
  2394. null, //corrmatch
  2395. null, //corrreplwhat
  2396. null, //corrreplwith
  2397. "\n", //separator
  2398. 'http://filepost.com/files/checker/?JsHttpRequest=0-xml',
  2399. 'urls=',
  2400. /\\\/files\\\/(\w+)/,
  2401. />http:\\\/\\\/filepost\.com\\\/files\\\/\w+(?:[^>]+>){5}(?:\\n|\\t)+<span class=\\"v\\"/g,
  2402. />http:\\\/\\\/filepost\.com\\\/files\\\/\w+(?:[^>]+>){5}(?:\\n|\\t)+<span class=\\"x\\"/g,
  2403. null,
  2404. null //function delegate
  2405. )
  2406. }
  2407. if (hostSet("Check_fiberupload_dot_net_links", false))
  2408. {
  2409. addHost(
  2410. "fiberupload.com|fiberupload.net", //hostname
  2411. "fiberupload\\.(?:com|net)\/\\w+", //linkregex
  2412. null, //blocksize
  2413. /(http:\/\/(?:www\.|)fiberupload\.(?:com|net)\/\w+)/, //corrmatch
  2414. null, //corrreplwhat
  2415. null, //corrreplwith
  2416. null, //separator
  2417. 'http://fiberupload.net/?op=checkfiles',
  2418. 'op=checkfiles&list=',
  2419. /(fiberupload\.(?:com|net)\/\w+)/,
  2420. /'green'>http:\/\/(?:www\.|)fiberupload\.(?:com|net)\/\w+/g,
  2421. /'red'>http:\/\/(?:www\.|)fiberupload\.(?:com|net)\/\w+/g,
  2422. /'orange'>http:\/\/(?:www\.|)fiberupload\.(?:com|net)\/\w+/g,
  2423. null //function delegate
  2424. )
  2425. }
  2426. if (hostSet("Check_edisk_dot_cz_links", false))
  2427. {
  2428. addHost(
  2429. "edisk.cz|edisk.sk|edisk.eu", //hostname
  2430. "(?:(?:muj|data)\\d*\\.|)edisk\\.(?:cz|sk|eu)\/(?:|(?:cz|sk|en|pl)\/)", //linkregex
  2431. null, //blocksize
  2432. null, //corrmatch
  2433. /edisk\.\w{2}\/(?:|\w{2}\/)stahni/, //corrreplwhat
  2434. 'edisk.cz/stahni', //corrreplwith
  2435. null, //separator
  2436. 'http://www.edisk.cz/zkontrolovat-odkazy',
  2437. 'submitBtn=Zkontrolovat&checkFiles=',
  2438. /((?:download|stahn(?:i|out-soubor))\/\d+)/,
  2439. /"ano"\/>\s*<\/td>\s*<td>\s*http:\/\/.+/g,
  2440. /"ne"\/>\s*<\/td>\s*<td>\s*http:\/\/.+/g,
  2441. null,
  2442. null //function delegate
  2443. )
  2444. }
  2445. if (hostSet("Check_bezvadata_dot_cz_links", false))
  2446. {
  2447. addHost(
  2448. "bezvadata.cz", //hostname
  2449. "(?:beta\\.|)bezvadata\.cz\/stahnout\/\\d+\\w+", //linkregex
  2450. null, //blocksize
  2451. null, //corrmatch
  2452. null, //corrreplwhat
  2453. null, //corrreplwith
  2454. null, //separator
  2455. 'http://bezvadata.cz/nastroje/kontrola-odkazu?do=kontrolaOdkazuForm-submit',
  2456. 'zkontrolovat=Zkontrolovat&odkazy=',
  2457. /(bezvadata\.cz\/stahnout\/\d+)/,
  2458. /bezvadata\.cz\/stahnout\/.+?<\/td>\s*<td style="background-color: #d9ffb2/g,
  2459. /bezvadata\.cz\/stahnout\/.+?<\/td>\s*<td style="background-color: #ffb2b2/g,
  2460. null,
  2461. null //function delegate
  2462. )
  2463. }
  2464. if (hostSet("Check_depositfiles_dot_com_links", false))
  2465. {
  2466. addHost(
  2467. "depositfiles.com|dfiles.eu|dfiles.ru|depositfiles.org|depositfiles.lt", //hostname
  2468. "(?:depositfiles\\.(?:com|lt|org)|dfiles\\.(?:eu|ru))\/(?:en\/|ru\/|de\/|es\/|pt\/|)files\/\\w+", //linkregex
  2469. 100000, //blocksize
  2470. null, //corrmatch
  2471. null, //corrreplwhat
  2472. null, //corrreplwith
  2473. null, //separator
  2474. null,
  2475. null,
  2476. null,
  2477. null,
  2478. null,
  2479. null,
  2480. depositfilesBulkCheck //function delegate
  2481. )
  2482. }
  2483. if (hostSet("Check_videobb_dot_com_links", false))
  2484. {
  2485. addHost(
  2486. "videobb.com", //hostname
  2487. "videobb\\.com\/(?:video\/|watch_video\\.php\\?v=)\\w+", //linkregex
  2488. null, //blocksize
  2489. null, //corrmatch
  2490. null, //corrreplwhat
  2491. null, //corrreplwith
  2492. null, //separator
  2493. 'http://www.videobb.com/link_checker.php',
  2494. 'links=',
  2495. /(videobb\.com\/(?:watch_video\.php\?v?=|video\/)\w+)/,
  2496. /<td>http:\/\/(?:www\.|)videobb.com\/(?:watch_video\.php\?v?=|video\/)\w+<\/td>\s+<td>.+?<\/td>\s+<td>\d+:\d+<\/td>\s+<td>Available/g,
  2497. /<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,
  2498. null,
  2499. null //function delegate
  2500. )
  2501. }
  2502. if (hostSet("Check_queenshare_dot_com_links", false))
  2503. {
  2504. addHost(
  2505. "queenshare.com|10upload.com", //hostname
  2506. "(?:queenshare|10upload)\\.com\/\\w+", //linkregex
  2507. null, //blocksize
  2508. /(http:\/\/(?:www\.|)(?:queenshare|10upload)\.com\/\w+)/, //corrmatch
  2509. null, //corrreplwhat
  2510. null, //corrreplwith
  2511. null, //separator
  2512. 'http://www.queenshare.com/?op=checkfiles', //api url
  2513. 'op=checkfiles&process=Check+URLs&list=', //postdata
  2514. /((?:queenshare|10upload)\.com\/\w+)/, //linkregex
  2515. /(?:queenshare|10upload)\.com\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2516. /(?:queenshare|10upload)\.com\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2517. /(?:queenshare|10upload)\.com\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2518. null //function delegate
  2519. )
  2520. }
  2521. /* if (hostSet("Check_bitshare_dot_com_links", false))
  2522. {
  2523. addHost(
  2524. "bitshare.com", //hostname
  2525. "bitshare\\.com\/(?:files\/|\\?[fi]=)\\w+", //linkregex
  2526. null, //blocksize
  2527. null, //corrmatch
  2528. null, //corrreplwhat
  2529. null, //corrreplwith
  2530. null, //separator
  2531. 'http://bitshare.com/linkcheck.html',
  2532. 'submit=Check&links=',
  2533. /(bitshare\.com\/(?:files\/|\?[fi]=)\w+)/,
  2534. /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,
  2535. /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,
  2536. /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,
  2537. null //function delegate
  2538. )
  2539. } */
  2540.  
  2541. if (hostSet("Check_cramit_dot_in_links", false))
  2542. {
  2543. addHost(
  2544. "cramit.in|cramitin.net|cramitin.eu|cramitin.us", //hostname
  2545. "cramit(?:\\.in|in\\.(?:net|eu|us))\/", //linkregex
  2546. null, //blocksize
  2547. /(http:\/\/(?:www\.)?cramit(?:\.in|in\.(?:net|eu|us))\/\w+)/, //corrmatch
  2548. null, //corrreplwhat
  2549. null, //corrreplwith
  2550. null, //separator
  2551. 'http://cramit.in/checkfiles.html',
  2552. 'op=checkfiles&process=CHECK+URL%27S&list=',
  2553. /(cramit(?:\.in|in\.(?:net|eu|us))\/\w+)/,
  2554. /green>http:\/\/(?:www\.|)cramit(?:\.in|in\.(?:net|eu|us))\/\w+/g,
  2555. /red'>http:\/\/(?:www\.|)cramit(?:\.in|in\.(?:net|eu|us))\/\w+/g,
  2556. /orange'>http:\/\/(?:www\.|)cramit(?:\.in|in\.(?:net|eu|us))\/\w+/g,
  2557. null //function delegate
  2558. )
  2559. }
  2560. if (hostSet("Check_filerio_dot_com_links", false))
  2561. {
  2562. addHost(
  2563. "filekeen.com|filerio.in|filerio.com", //hostname
  2564. "file(?:keen|rio)\\.(?:com|in)\/\\w+", //linkregex
  2565. null, //blocksize
  2566. null, //corrmatch
  2567. null, //corrreplwhat
  2568. null, //corrreplwith
  2569. "\n", //separator
  2570. 'http://filerio.in/checkfiles.html',
  2571. 'op=checkfiles&process=Check+URLs&list=',
  2572. /(file(?:keen|rio)\.(?:com|in)\/\w+)/,
  2573. /green'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
  2574. /red'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
  2575. /orange'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
  2576. null //function delegate
  2577. )
  2578. }
  2579. if (hostSet("Check_share_dash_online_dot_biz_links", false))
  2580. {
  2581. addHost(
  2582. "share-online.biz|egoshare.com", //hostname
  2583. "(?:share-online\\.biz|egoshare\\.com)\/(?:dl\/|download\\.php\\?id=|\\?d=)\\w+", //linkregex
  2584. 100, //blocksize
  2585. /http:\/\/(?:www\.|)(?:share-online\.biz|egoshare\.com)\/(?:d(?:l\/|ownload\.php\?id=)|\?d=)(?:\d{1}\/|)(\w+)/, //corrmatch
  2586. null, //corrreplwhat
  2587. null, //corrreplwith
  2588. "\n", //separator
  2589. 'http://api.share-online.biz/linkcheck.php',
  2590. 'links=',
  2591. /(\w+);(?:OK|NOTFOUND|DELETED)/,
  2592. /(\w+);OK/g,
  2593. /(\w+);(?:DELETED|NOTFOUND)/g,
  2594. null,
  2595. null //function delegate
  2596. )
  2597. }
  2598. if (hostSet("Check_quickshare_dot_cz_links", false))
  2599. {
  2600. addHost(
  2601. "quickshare.cz", //hostname
  2602. "quickshare\\.cz\/stahnout-soubor\/\\d+", //linkregex
  2603. null, //blocksize
  2604. null, //corrmatch
  2605. null, //corrreplwhat
  2606. null, //corrreplwith
  2607. null, //separator
  2608. 'http://www.quickshare.cz/nastroje/link-checker',
  2609. 'linky=',
  2610. /quickshare\.cz\/stahnout-soubor\/(\d+(?::\w+)?)/,
  2611. /quickshare\.cz\/stahnout-soubor\/\d+(?::[\w\-.+$!*\/()\[\]\',~%?:@#&=\\]+)?\s*<\/a><\/td><td><img src="\/img\/ok\.gif/g,
  2612. /quickshare\.cz\/stahnout-soubor\/\d+(?::[\w\-.+$!*\/()\[\]\',~%?:@#&=\\]+)?\s*<\/td><td><img src="\/img\/nenalezeno\.gif/g,
  2613. null,
  2614. null //function delegate
  2615. )
  2616. }
  2617. if (hostSet("Check_netload_dot_in_links", false))
  2618. {
  2619. addHost(
  2620. "netload.in", //hostname
  2621. "netload\\.in\/datei\\w{10}", //linkregex
  2622. 100, //blocksize
  2623. null, //corrmatch
  2624. null, //corrreplwhat
  2625. null, //corrreplwith
  2626. "\n", //separator
  2627. "http://api.netload.in/index.php?id=2", //api url
  2628. "send=Absenden&links=", //postdata
  2629. /(\w+);/, //linkregex
  2630. /\w{10,};.+?;.+?;online/g, //liveregex
  2631. /\w{10,};.+?;.+?;offline/g, //deadregex
  2632. null, //unavaregex
  2633. netloadBulkCheck //function delegate
  2634. )
  2635. }
  2636. if (hostSet("Check_videopremium_dot_net_links", false))
  2637. {
  2638. addHost(
  2639. "videopremium.net|videopremium.tv|videopremium.me", //hostname
  2640. "videopremium\\.(?:net|tv)\/\\w+", //linkregex
  2641. null, //blocksize
  2642. /(http:\/\/(?:www\.|)videopremium\.(?:net|tv|me)\/\w+)/, //corrmatch
  2643. null, //corrreplwhat
  2644. null, //corrreplwith
  2645. null, //separator
  2646. 'http://videopremium.me/?op=checkfiles',
  2647. 'op=checkfiles&process=Check+URLs&list=',
  2648. /(videopremium\.(?:net|tv|me)\/\w+)/,
  2649. /videopremium\.(?:net|tv|me)\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2650. /videopremium\.(?:net|tv|me)\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2651. /videopremium\.(?:net|tv|me)\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2652. null //function delegate
  2653. )
  2654. }
  2655. if (hostSet("Check_eyesfile_dot_net_links", false))
  2656. {
  2657. addHost(
  2658. "eyesfile.net|eyesfile.com|eyesfile.co|eyesfile.org|eyesfiles.com", //hostname
  2659. "eyesfiles?\\.(?:com?|net|org)\/\\w+", //linkregex
  2660. null, //blocksize
  2661. null, //corrmatch
  2662. null, //corrreplwhat
  2663. null, //corrreplwith
  2664. null, //separator
  2665. 'http://www.eyesfiles.com/checkfiles.html',
  2666. 'op=checkfiles&process=Check+URLs&list=',
  2667. /(eyesfiles?\.(?:com?|net|org)\/\w+)/,
  2668. /green'>http:\/\/(?:www\.|)eyesfiles?\.(?:com?|net|org)\/\w+/g,
  2669. /red'>http:\/\/(?:www\.|)eyesfiles?\.(?:com?|net|org)\/\w+/g,
  2670. /orange'>http:\/\/(?:www\.|)eyesfiles?\.(?:com?|net|org)\/\w+/g,
  2671. null //function delegate
  2672. )
  2673. }
  2674. if (hostSet("Check_nitrobits_dot_com_links", false))
  2675. {
  2676. addHost(
  2677. "nitrobits.com",
  2678. "nitrobits\\.com\/file\/\\w+",
  2679. null, //blocksize
  2680. null, //corrmatch
  2681. null, //corrreplwhat
  2682. null, //corrreplwith
  2683. null, //separator
  2684. "http://nitrobits.com/linkchecker.php",
  2685. "submit=Check+Links&links=",
  2686. /(nitrobits\.com\/file\/\w+)/,
  2687. /nitrobits\.com\/file\/\w+.*?\s*<\/td>\s*<\w+.*?>\s*<span class="available/g, //liveregex
  2688. /nitrobits\.com\/file\/\w+.*?\s*<\/td>\s*<\w+.*?>\s*<span class="dead/g, //deadregex
  2689. /nitrobits\.com\/file\/\w+.*?\s*<\/td>\s*<\w+.*?>\s*<span class="unavailable/g, //unavaregex
  2690. null
  2691. )
  2692. }
  2693. if (hostSet("Check_uploading_dot_com_links", false))
  2694. {
  2695. addHost(
  2696. "uploading.com",
  2697. "http:\/\/(?:www\\.|)uploading\\.com\/(?:files\/)?\\w+",
  2698. 500, //blocksize
  2699. null, //corrmatch
  2700. null, //corrreplwhat
  2701. null, //corrreplwith
  2702. null, //separator
  2703. "http://uploading.com/filechecker?ajax",
  2704. "urls=",
  2705. /uploading\.com\\\/(\w+)/,
  2706. /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,
  2707. /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,
  2708. null,
  2709. uploadingBulkCheck
  2710. )
  2711. }
  2712. /*if (hostSet("Check_extabit_dot_com_links", false) && genset("Extabit_API_Check", false))
  2713. {
  2714. addHost(
  2715. "extabit.com",
  2716. "(?:u\\d+\\.)?extabit\\.com\/file(?:\/|\_)\\w+",
  2717. 100, //blocksize
  2718. null, //corrmatch
  2719. /\?upld=1/, //corrreplwhat
  2720. "", //corrreplwith
  2721. null, //separator
  2722. null,
  2723. null,
  2724. null,
  2725. null,
  2726. null,
  2727. null,
  2728. extabitBulkCheck
  2729. )
  2730. }*/
  2731. if (hostSet("Check_megashares_dot_com_links", false))
  2732. {
  2733. addHost(
  2734. "megashares.com",
  2735. "(?:d\\d+\.|)megashares\.com\/(?:dl\/|(?:index\\.php\\?d\\d+|\\?d\\d+)=)\\w+",
  2736. null, //blocksize
  2737. null, //corrmatch
  2738. null, //corrreplwhat
  2739. null, //corrreplwith
  2740. null, //separator
  2741. "http://d01.megashares.com/checkit.php",
  2742. "submit_links=Check+Links&check_links=",
  2743. /((?:d\d+\.|)megashares\.com\/(?:dl\/|(?:index\.php\?d\d+|\?d\d+)=)\w+)/,
  2744. /(?:d\d+\.|)megashares\.com\/(?:dl\/|(?:index\.php\?d\d+|\?d\d+)=)\w+.*?\s*-\s*ok/g,
  2745. /(?:d\d+\.|)megashares\.com\/(?:dl\/|(?:index\.php\?d\d+|\?d\d+)=)\w+.*?\s*-\s*invalid/g,
  2746. null,
  2747. null
  2748. )
  2749. }
  2750. if (hostSet("Check_mega_dot_co_dot_nz_links", false))
  2751. {
  2752. addHost(
  2753. "mega.co.nz",
  2754. "mega\\.co\\.nz\/#!\\w+",
  2755. 100000, //blocksize
  2756. null, //corrmatch
  2757. null, //corrreplwhat
  2758. null, //corrreplwith
  2759. null, //separator
  2760. null,
  2761. null,
  2762. null,
  2763. null,
  2764. null,
  2765. null,
  2766. megaBulkCheck //function delegate
  2767. )
  2768. }
  2769. if (hostSet("Check_4up_dot_me_links", false))
  2770. {
  2771. addHost(
  2772. "4up.me|4up.im|4upfiles.com",
  2773. "(?:4upfiles\\.com|4up\\.(?:me|im))\/\\w+",
  2774. null, //blocksize
  2775. null, //corrmatch
  2776. null, //corrreplwhat
  2777. null, //corrreplwith
  2778. null, //separator
  2779. "http://4upfiles.com/?op=checkfiles", //api url
  2780. "op=checkfiles&process=Check+URLs&list=", //postdata
  2781. /(4up(?:files)?\.(?:com|me|im)\/\w+)/, //linkregex
  2782. /4up(?:files)?\.(?:com|me|im)\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2783. /4up(?:files)?\.(?:com|me|im)\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2784. /4up(?:files)?\.(?:com|me|im)\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2785. null //function delegate
  2786. )
  2787. }
  2788. /* if (hostSet("Check_uploaded_dot_to_links", false))
  2789. {
  2790. addHost(
  2791. "uploaded.to|uploaded.net|ul.to",
  2792. '(?:uploaded\\.(?:to|net)|ul\\.to)\/(?:files?\/|\\?(?:lang=\\w{2}&)?id=|folder\/)?(?!img|coupon)\\w{8}',
  2793. 1000,
  2794. null,
  2795. null,
  2796. null,
  2797. null,
  2798. null,
  2799. null,
  2800. null,
  2801. null,
  2802. null,
  2803. null,
  2804. uploadedBulkCheck
  2805. )
  2806. }
  2807. /*if (hostSet("Check_tusfiles_dot_net_links", false))
  2808. {
  2809. addHost(
  2810. "tusfiles.com|tusfiles.net", //hostname
  2811. "tusfiles\\.(?:com|net)\/\\w+", //linkregex
  2812. null, //blocksize
  2813. /(http:\/\/(?:www\.|)tusfiles\.(?:com|net)\/\w+)/, //corrmatch
  2814. null, //corrreplwhat
  2815. null, //corrreplwith
  2816. null, //separator
  2817. 'http://www.tusfiles.net/?op=checkfiles',
  2818. 'op=checkfiles&process=Check+URLs&list=',
  2819. /(tusfiles\.(?:net|com)\/\w+)/,
  2820. /tusfiles\.(?:net|com)\/\w+.*?<\/td>\s*<td style="color:green;">/g, //liveregex
  2821. /tusfiles\.(?:net|com)\/\w+.*?<\/td>\s*<td style="color:red;">/g, //deadregex
  2822. /tusfiles\.(?:net|com)\/\w+.*?<\/td>\s*<td style="color:orange;">/g, //unavaregex
  2823. null //function delegate
  2824. )
  2825. }*/
  2826. if (hostSet("Check_junocloud_dot_me_links", false))
  2827. {
  2828. addHost(
  2829. "junocloud.me",
  2830. "junocloud\\.me\/\\w+",
  2831. null,
  2832. null,
  2833. null,
  2834. null,
  2835. null,
  2836. "http://junocloud.me/checkfiles.html",
  2837. "op=checkfiles&process=Check+URLs&list=",
  2838. /(junocloud\.me\/\w+)/,
  2839. /junocloud\.me\/\w+.*?<span style="color: green;/g,
  2840. /junocloud\.me\/\w+.*?<span style="color: red;/g,
  2841. /junocloud\.me\/\w+.*?<span style="color: orange;/g,
  2842. null //function delegate
  2843. )
  2844. }
  2845. if (hostSet("Check_flashdrive_dot_it_links", false))
  2846. {
  2847. addHost(
  2848. "flashdrive.it|flashdrive.uk.com",
  2849. "flashdrive\\.(?:it|uk\\.com)\/\\w+",
  2850. null,
  2851. null,
  2852. null,
  2853. null,
  2854. null,
  2855. "http://flashdrive.uk.com/?op=checkfiles",
  2856. "op=checkfiles&process=Check+URLs&list=",
  2857. /(flashdrive\.(?:it|uk\.com)\/\w+)/,
  2858. /flashdrive\.(?:it|uk\.com)\/\w+.*?<\/td><td style="color:green;">/g,
  2859. /flashdrive\.(?:it|uk\.com)\/\w+.*?<\/td><td style="color:red;">/g,
  2860. /flashdrive\.(?:it|uk\.com)\/\w+.*?<\/td><td style="color:orange;">/g,
  2861. null //function delegate
  2862. )
  2863. }
  2864. if (hostSet("Check_datei_dot_to_links", false))
  2865. {
  2866. addHost(
  2867. "datei.to",
  2868. "datei\\.to\/(?:datei\/|files\/|1,|\\?)\\w+",
  2869. 100000,
  2870. null,
  2871. null,
  2872. null,
  2873. null,
  2874. null,
  2875. null,
  2876. null,
  2877. null,
  2878. null,
  2879. null,
  2880. dateiToBulk
  2881. )
  2882. }
  2883. if (hostSet("Check_medafire_dot_net_links", false))
  2884. {
  2885. addHost(
  2886. "medafire.net",
  2887. "medafire\\.net\/(?:up\/)?\\w+",
  2888. null,
  2889. null,
  2890. null,
  2891. null,
  2892. null,
  2893. "http://medafire.net/?op=checkfiles",
  2894. "op=checkfiles&process=Check+URLs&list=",
  2895. /(medafire\.net\/(?:up\/)?\w+)/,
  2896. /medafire\.net\/(?:up\/)?\w+.*?<\/td><td style="color:green;">/g,
  2897. /medafire\.net\/(?:up\/)?\w+.*?<\/td><td style="color:red;">/g,
  2898. /medafire\.net\/(?:up\/)?\w+.*?<\/td><td style="color:orange;">/g,
  2899. null //function delegate
  2900. )
  2901. }
  2902. if (hostSet("Check_depfile_dot_com_links", false))
  2903. {
  2904. addHost(
  2905. "depfile.com", //hostname
  2906. "depfile\\.com\/(?:downloads\/i\/\\d+\/f\/|\\w+)", //linkregex
  2907. 22, //blocksize //unsure if right number
  2908. null, //corrmatch
  2909. null, //corrreplwhat
  2910. null, //corrreplwith
  2911. null, //separator
  2912. 'https://depfile.com/checkfiles', //api url
  2913. 'send=Check&files=', //postdata
  2914. /(depfile\.com\/(?:downloads\/i\/\d+|\w+))/, //linkregex
  2915. /depfile\.com\/(?:downloads\/i\/\d+|\w+)[^<]*?<\/td><td><span class='active/g, //liveregex
  2916. /depfile\.com\/(?:downloads\/i\/\d+|\w+)[^<]*?<\/td><td><span class='(?:notfound|badurl)/g, //deadregex
  2917. null, //unavaregex
  2918. null //function delegate
  2919. )
  2920. }
  2921. if (hostSet("Check_filedwon_dot_com_links", false))
  2922. {
  2923. addHost(
  2924. "filedwon.com|filedwon.net|filedwon.info", //hostname
  2925. "filedwon\\.(?:com|net|info)\/\\w+", //linkregex
  2926. null, //blocksize
  2927. /(http:\/\/(?:www\.|)filedwon\.(?:com|net|info)\/\w+)/, //corrmatch
  2928. null, //corrreplwhat
  2929. null, //corrreplwith
  2930. null, //separator
  2931. 'http://filedwon.info/?op=checkfiles',
  2932. 'op=checkfiles&process=Check+URLs&list=',
  2933. /(filedwon\.(?:com|net|info)\/\w+)/,
  2934. /filedwon\.(?:com|net|info)\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2935. /filedwon\.(?:com|net|info)\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2936. /filedwon\.(?:com|net|info)\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2937. null //function delegate
  2938. )
  2939. }
  2940. if (hostSet("Check_ge_dot_tt_links", false))
  2941. {
  2942. addHost(
  2943. "ge.tt", //hostname
  2944. "ge\\.tt\/(?:api\/1\/files\/)?\\w+", //linkregex
  2945. 1000000, //blocksize
  2946. /ge\.tt\/(?:api\/1\/files\/)?(\w+.*)/, //corrmatch
  2947. null, //corrreplwhat
  2948. null, //corrreplwith
  2949. null, //separator
  2950. 'https://open.ge.tt/1/files/', //api url
  2951. null, //postdata
  2952. null, //linkregex
  2953. null, //liveregex
  2954. null, //deadregex
  2955. null, //unavaregex
  2956. gettBulkCheck //function delegate
  2957. )
  2958. }
  2959. if (hostSet("Check_filesbomb_dot_com_links", false))
  2960. {
  2961. addHost(
  2962. "filesbomb.com|filesbomb.biz|filesbomb.in", //hostname
  2963. "filesbomb\\.(?:com|biz|in)\/\\w+", //linkregex
  2964. null, //blocksize
  2965. /(http:\/\/(?:www\.|)filesbomb\.(?:com|biz|in)\/\w+)/, //corrmatch
  2966. null, //corrreplwhat
  2967. null, //corrreplwith
  2968. null, //separator
  2969. 'http://filesbomb.in/?op=checkfiles',
  2970. 'op=checkfiles&process=Check+URLs&list=',
  2971. /(filesbomb\.(?:com|biz|in)\/\w+)/,
  2972. /filesbomb\.(?:com|biz|in)\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  2973. /filesbomb\.(?:com|biz|in)\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  2974. /filesbomb\.(?:com|biz|in)\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  2975. null //function delegate
  2976. )
  2977. }
  2978. if (hostSet("Check_restfiles_dot_net_links", false))
  2979. {
  2980. addHost(
  2981. "restfile.com|restfile.cc|restfile.org|restfile.net|restfile.co|restfile.bz|restfile.ws|restfiles.com|restfiles.net", //hostname
  2982. "restfiles?\\.\\w{2,3}\/\\w+", //linkregex
  2983. null, //blocksize
  2984. null, //corrmatch
  2985. null, //corrreplwhat
  2986. null, //corrreplwith
  2987. null, //separator
  2988. "http://www.restfiles.net/?op=checkfiles", //api url
  2989. "op=checkfiles&process=Check+URLs&list=", //postdata
  2990. /(restfiles?\.\w{2,3}\/\w+)/, //linkregex
  2991. /green'>http:\/\/(?:|www\.)restfiles?\.\w{2,3}\/\w+/g, //liveregex
  2992. /red'>http:\/\/(?:|www\.)restfiles?\.\w{2,3}\/\w+/g, //deadregex
  2993. /orange'>http:\/\/(?:|www\.)restfiles?\.\w{2,3}\/\w+/g, //unavaregex
  2994. null //function delegate
  2995. )
  2996. }
  2997. if (hostSet("Check_filekom_dot_com_links", false))
  2998. {
  2999. addHost(
  3000. "filekom.com|filemac.com", //hostname
  3001. "file(?:kom|mac)\\.com\/\\w+", //linkregex
  3002. null, //blocksize
  3003. /(http:\/\/(?:|www\.)file(?:kom|mac)\.com\/\w+)/, //corrmatch
  3004. null, //corrreplwhat
  3005. null, //corrreplwith
  3006. null, //separator
  3007. "http://filekom.com/checkfiles.html", //api url
  3008. "op=checkfiles&process=Check+URLs&list=", //postdata
  3009. /(file(?:kom|mac)\.com\/\w+)/, //linkregex
  3010. /green'>http:\/\/(?:|www\.)file(?:kom|mac)\.com\/\w+/g, //liveregex
  3011. /red'>http:\/\/(?:|www\.)file(?:kom|mac)\.com\/\w+/g, //deadregex
  3012. /orange'>http:\/\/(?:|www\.)file(?:kom|mac)\.com\/\w+/g, //unavaregex
  3013. null //function delegate
  3014. )
  3015. }
  3016. if (hostSet("Check_filepup_dot_net_links", false))
  3017. {
  3018. addHost(
  3019. "filepup.net", //hostname
  3020. "filepup\\.net\/(?:files|get)\/\\w+", //linkregex
  3021. null, //blocksize
  3022. null, //corrmatch
  3023. /\/get\/(\w+)\/.+/, //corrreplwhat
  3024. "/files/$1.html", //corrreplwith
  3025. null, //separator
  3026. 'http://www.filepup.net/link_checker.php', //api url
  3027. 'task=doCheck&submit=Check+Links&urls=', //postdata
  3028. /filepup\.net\/files(\/\w+)/, //linkregex
  3029. /green">http:\/\/(?:www\.)?filepup\.net\/files\/\w+/g, //liveregex
  3030. /red">http:\/\/(?:www\.)?filepup\.net\/files\/\w+/g, //deadregex
  3031. /orange">http:\/\/(?:www\.)?filepup\.net\/files\/\w+/g, //unavaregex
  3032. null //function delegate
  3033. )
  3034. }
  3035. if (hostSet("Check_media1fire_dot_com_links", false))
  3036. {
  3037. addHost(
  3038. "media1fire.com", //hostname
  3039. "up\\.media1fire\\.com\/\\w+", //linkregex
  3040. null, //blocksize
  3041. /(http:\/\/up\.media1fire\.com\/\w+)/, //corrmatch
  3042. null, //corrreplwhat
  3043. null, //corrreplwith
  3044. null, //separator
  3045. "http://up.media1fire.com/?op=checkfiles", //api url
  3046. "op=checkfiles&process=Check+URLs&list=", //postdata
  3047. /(up\.media1fire\.com\/\w+)/, //linkregex
  3048. /up\.media1fire\.com\/\w+.*?<\/td>\s*<td style=\"color:green;\">/g, //liveregex
  3049. /up\.media1fire\.com\/\w+.*?<\/td>\s*<td style=\"color:red;\">/g, //deadregex
  3050. /up\.media1fire\.com\/\w+.*?<\/td>\s*<td style=\"color:orange;\">/g, //unavaregex
  3051. null //function delegate
  3052. )
  3053. }
  3054. if (hostSet("Check_filecloud_dot_io_links", false))
  3055. {
  3056. addHost(
  3057. "filecloud.io", //hostname
  3058. "filecloud\\.io\/\\w{6,8}", //linkregex
  3059. 100000000, //blocksize
  3060. /filecloud\.io\/(\w{6,8})/, //corrmatch
  3061. null, //corrreplwhat
  3062. null, //corrreplwith
  3063. null, //separator
  3064. null, //api url
  3065. null, //postdata
  3066. null, //linkregex
  3067. null, //liveregex
  3068. null, //deadregex
  3069. null, //unavaregex
  3070. filecloudBulkCheck //function delegate
  3071. )
  3072. }
  3073. if (hostSet("Check_maskfile_dot_com_links", false))
  3074. {
  3075. addHost(
  3076. "maskfile.com", //hostname
  3077. "[mM]ask[Ff]ile\\.com\/\\w+", //linkregex
  3078. null, //blocksize
  3079. /(https?:\/\/(?:www\.)?maskfile\.com\/\w+)/i, //corrmatch
  3080. null, //corrreplwhat
  3081. null, //corrreplwith
  3082. null, //separator
  3083. 'https://www.maskfile.com/?op=checkfiles', //api url
  3084. 'op=checkfiles&process=Check+URLs&list=', //postdata
  3085. /maskfile\.com\/(\w+)/i, //linkregex
  3086. /maskfile\.com\/\w+.*?<\/td>\s*<td style="color:green;">/gi, //liveregex
  3087. /maskfile\.com\/\w+.*?<\/td>\s*<td style="color:red;">/gi, //deadregex
  3088. /maskfile\.com\/\w+.*?<\/td>\s*<td style="color:orange;">/gi, //unavaregex
  3089. null //function delegate
  3090. )
  3091. }
  3092. if (hostSet("Check_anysend_dot_com_links", false))
  3093. {
  3094. addHost(
  3095. "anysend.com", //hostname
  3096. "anysend\\.com\/\\w{32}", //linkregex
  3097. 100000, //blocksize
  3098. null, //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. anysendBulkCheck //function delegate
  3109. )
  3110. }
  3111. if (hostSet("Check_batshare_dot_com_links", false))
  3112. {
  3113. addHost(
  3114. "batshare.com", //hostname
  3115. "batshare\\.com\/\\w+", //linkregex
  3116. null, //blocksize
  3117. /(https?:\/\/(?:www\.)?batshare\.com\/\w+)/, //corrmatch
  3118. null, //corrreplwhat
  3119. null, //corrreplwith
  3120. null, //separator
  3121. 'http://batshare.com/?op=checkfiles', //api url
  3122. 'op=checkfiles&process=Check+URLs&list=', //postdata
  3123. /(batshare\.com\/\w+)/, //linkregex
  3124. /<font color='green'><a target='_new' href='http:\/\/(?:www\.)?batshare\.com\/\w+(?:\/.*)?'>/g, //liveregex
  3125. /<font color='red'>http:\/\/(?:www\.)?batshare\.com\/\w+(?:\/.*)?/g, //deadregex
  3126. /<font color='orange'><a target='_new' href='http:\/\/(?:www\.)?batshare\.com\/\w+(?:\/.*)?'>/g, //unavaregex
  3127. null //function delegate
  3128. )
  3129. }
  3130. if (hostSet("Check_webshare_dot_cz_links", false))
  3131. {
  3132. addHost(
  3133. "webshare.cz", //hostname
  3134. "webshare\\.cz\/(?:(?:#/)?file/\\w+|\\w+-.*)", //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. webshareBulkCheck //function delegate
  3147. )
  3148. }
  3149. if (hostSet("Check_uploadable_dot_ch_links", false))
  3150. {
  3151. addHost(
  3152. "uploadable.ch", //hostname
  3153. "uploadable\\.ch\/file\/\\w+", //linkregex
  3154. null, //blocksize
  3155. null, //corrmatch
  3156. null, //corrreplwhat
  3157. null, //corrreplwith
  3158. null, //separator
  3159. 'http://www.uploadable.ch/check.php', //api url
  3160. 'urls=', //postdata
  3161. /(uploadable\.ch\/file\/\w+)/, //linkregex
  3162. /<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
  3163. /<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
  3164. null, //unavaregex
  3165. null //function delegate
  3166. )
  3167. }
  3168. if (hostSet("Check_prefiles_dot_com_links", false))
  3169. {
  3170. addHost(
  3171. "prefiles.com", //hostname
  3172. "prefiles\\.com\/\\w+", //linkregex
  3173. null, //blocksize
  3174. /(https?:\/\/(?:www\.)?prefiles\.com\/\w+)/, //corrmatch
  3175. null, //corrreplwhat
  3176. null, //corrreplwith
  3177. null, //separator
  3178. "http://prefiles.com/checker", //api url
  3179. "op=checkfiles&list=", //postdata
  3180. /(prefiles\.com\/\w+)/, //linkregex
  3181. /prefiles\.com\/\w+.*<\/div>\s*<div class="copy" style="color:#6ab621;">/g, //liveregex
  3182. /prefiles\.com\/\w+.*<\/div>\s*<div class="copy" style="color:#f10000;">/g, //deadregex
  3183. null, //unavaregex
  3184. null //function delegate
  3185. )
  3186. }
  3187.  
  3188. if (hostSet("Check_rapidu_dot_net_links", false))
  3189. {
  3190. addHost(
  3191. "rapidu.net", //hostname
  3192. "rapidu\\.net\/\\d+", //linkregex
  3193. 1000000, //blocksize
  3194. /rapidu\.net\/(\d+)/, //corrmatch
  3195. null, //corrreplwhat
  3196. null, //corrreplwith
  3197. null, //separator
  3198. "http://rapidu.net/api/getFileDetails/", //api url
  3199. "id=", //postdata
  3200. null, //linkregex
  3201. null, //liveregex
  3202. null, //deadregex
  3203. null, //unavaregex
  3204. rapiduBulkCheck //function delegate
  3205. )
  3206. }
  3207.  
  3208. if (hostSet("Check_uplea_dot_com_links", false))
  3209. {
  3210. addHost(
  3211. "uplea.com", //hostname
  3212. "uplea\\.com\/dl\/\\w+", //linkregex
  3213. 1000000, //blocksize
  3214. /(https?:\/\/(?:www\.)?uplea\.com\/dl\/\w+)/, //corrmatch
  3215. null, //corrreplwhat
  3216. null, //corrreplwith
  3217. null, //separator
  3218. "http://api.uplea.com/api/check-my-links", //api url
  3219. null, //postdata
  3220. null, //linkregex
  3221. null, //liveregex
  3222. null, //deadregex
  3223. null, //unavaregex
  3224. upleaBC //function delegate
  3225. )
  3226. }
  3227.  
  3228. if (hostSet("Check_oboom_dot_com_links", false))
  3229. {
  3230. addHost(
  3231. "oboom.com", //hostname
  3232. "oboom\\.com\/#?\\w{8}", //linkregex
  3233. null, //blocksize
  3234. /oboom\.com\/#?(\w{8})/, //corrmatch
  3235. null, //corrreplwhat
  3236. null, //corrreplwith
  3237. null, //separator
  3238. null, //api url
  3239. null, //postdata
  3240. null, //linkregex
  3241. null, //liveregex
  3242. null, //deadregex
  3243. null, //unavaregex
  3244. oboomBulk //function delegate
  3245. )
  3246. }
  3247. function genBulkCheck()
  3248. {
  3249. var blockIdx = this.links.length;
  3250. while (blockIdx--)
  3251. {
  3252. postRequest(this.apiUrl, this.postData, this.links[blockIdx],
  3253. this.resLinkRegex, this.resLiveRegex, this.resDeadRegex, this.resUnavaRegex, this.separator);
  3254. }
  3255. function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex, sep)
  3256. {
  3257. GM_xmlhttpRequest(
  3258. {
  3259. method: 'POST',
  3260. url: api,
  3261. headers: {
  3262. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3263. 'Content-type': 'application/x-www-form-urlencoded',
  3264. 'Referer': api,
  3265. 'X-Requested-With': 'XMLHttpRequest'
  3266. },
  3267. data: postData + encodeURIComponent(links),
  3268. onload: function (result)
  3269. {
  3270. var res = result.responseText;
  3271. //console.log(res);
  3272. if ((res.contains(">DDoS protection by CloudFlare") && res.contains(">Checking your browser before accessing<")) || res.contains('<iframe src="/_Incapsula_Resource?')) {
  3273. DisplayTheCheckedLinks(links.split(sep), 'unknown_link', 'Captcha required to check links');
  3274. sendMessage('Some links require you to fill out a captcha! Please open them manually.')
  3275. }
  3276. var i;
  3277.  
  3278. var livelinks = res.match(liveRegex);
  3279. var deadlinks = res.match(deadRegex);
  3280. //console.log(livelinks);
  3281. //console.log(deadlinks);
  3282. if (livelinks != null)
  3283. {
  3284. i = livelinks.length - 1;
  3285. do
  3286. {
  3287. livelinks[i] = livelinks[i].match(linkRegex)[1];
  3288. }
  3289. while (i--);
  3290. DisplayTheCheckedLinks(livelinks, 'alive_link');
  3291. }
  3292.  
  3293. if (deadlinks != null)
  3294. {
  3295. i = deadlinks.length - 1;
  3296. do
  3297. {
  3298. deadlinks[i] = deadlinks[i].match(linkRegex)[1];
  3299. }
  3300. while (i--);
  3301. DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3302. }
  3303.  
  3304. if (unavaRegex != null)
  3305. {
  3306. var unavalinks = res.match(unavaRegex)
  3307. if (unavalinks)
  3308. {
  3309. i = unavalinks.length - 1;
  3310. do
  3311. {
  3312. unavalinks[i] = unavalinks[i].match(linkRegex)[1];
  3313. }
  3314. while (i--);
  3315. DisplayTheCheckedLinks(unavalinks, 'unava_link');
  3316. }
  3317. }
  3318. },
  3319. onerror: function (e) {
  3320. var linkArr = links.split(sep);
  3321. DisplayTheCheckedLinks(linkArr, "unknown_link");
  3322. }
  3323. });
  3324. }
  3325. }
  3326. //specialized bulkchecking handlers follow
  3327. function oboomBulk() {
  3328. var a = [], b = [], c = [];
  3329. var array = this.links;
  3330.  
  3331. GM_xmlhttpRequest({
  3332. method: 'GET',
  3333. url: 'https://www.oboom.com/1/guestsession',
  3334. headers: {
  3335. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3336. 'Content-type': 'application/x-www-form-urlencoded',
  3337. 'Referer': 'https://www.oboom.com',
  3338. 'X-Requested-With': 'XMLHttpRequest'
  3339. },
  3340. onload: function(result) {
  3341. var blockIdx = array.length;
  3342. var token = JSON.parse(result.responseText)[1];
  3343. while (blockIdx--) {
  3344. startCheck(array[blockIdx].split('\r\n'), token);
  3345. }
  3346. }
  3347. });
  3348.  
  3349. function startCheck(links, token) {
  3350. GM_xmlhttpRequest({
  3351. method: 'POST',
  3352. url: "https://api.oboom.com/1/info",
  3353. headers: {
  3354. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3355. 'Content-type': 'application/x-www-form-urlencoded',
  3356. 'Referer': 'https://www.oboom.com/',
  3357. 'X-Requested-With': 'XMLHttpRequest'
  3358. },
  3359. data: "token=" + token + "&items=" + links.join(","),
  3360. onload: function(result) {
  3361. var res = JSON.parse(result.responseText)[1];
  3362. var i = res.length, s;
  3363.  
  3364. while (i--) {
  3365. s = res[i].state;
  3366. if (s == 'online') a.push(res[i].id);
  3367. else if (s == 'blocked' || s == 'abused' || s == 'lost' || s == 'not_found') b.push(res[i].id);
  3368. else c.push(res[i].id);
  3369. }
  3370.  
  3371. if (a.length > 0) DisplayTheCheckedLinks(a, 'alive_link');
  3372. if (b.length > 0) DisplayTheCheckedLinks(b, 'adead_link');
  3373. if (c.length > 0) DisplayTheCheckedLinks(c, 'unknown_link');
  3374. }
  3375. });
  3376. }
  3377. }
  3378.  
  3379. function upleaBC() {
  3380. var json = {
  3381. links: this.links[0].split('\r\n')
  3382. };
  3383.  
  3384. GM_xmlhttpRequest({
  3385. method: 'POST',
  3386. url: this.apiUrl,
  3387. data: 'json=' + JSON.stringify(json),
  3388. headers: {
  3389. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3390. 'Content-type': 'application/x-www-form-urlencoded',
  3391. 'Referer': 'http://uplea.com/checker',
  3392. 'X-Requested-With': 'XMLHttpRequest'
  3393. },
  3394. onload: function(result) {
  3395. var res = JSON.parse(result.responseText);
  3396. if (res.error.length > 0) {
  3397. var mes = 'Error in checking Uplea.com! Error message(s):';
  3398. $.each(res.error, function(key, val) { mes += '\r\n' + val; });
  3399. console.warn(mes); return;
  3400. }
  3401.  
  3402. var deadlinks = [], alivelinks = [], unavalinks = [];
  3403. $.each(res.result, function(key, val) {
  3404. if (val.status == 'OK') alivelinks.push(val.link);
  3405. else if (val.status == 'DELETED') deadlinks.push(val.link);
  3406. else unknownlinks.push(val.link);
  3407. });
  3408.  
  3409. if (deadlinks.length > 0) DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3410. if (alivelinks.length > 0) DisplayTheCheckedLinks(alivelinks, 'alive_link');
  3411. if (unknownlinks.length > 0) DisplayTheCheckedLinks(unavalinks, 'unknown_link');
  3412. }
  3413. });
  3414. }
  3415.  
  3416. function rapiduBulkCheck() {
  3417. var arr = this.links[0].split('\r\n').join(',');
  3418. GM_xmlhttpRequest({
  3419. method: 'POST',
  3420. url: this.apiUrl,
  3421. data: this.postData + arr,
  3422. headers: {
  3423. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3424. 'Content-type': 'application/x-www-form-urlencoded',
  3425. 'Referer': 'http://rapidu.net',
  3426. 'X-Requested-With': 'XMLHttpRequest'
  3427. },
  3428. onload: function(result) {
  3429. var res = JSON.parse(result.responseText);
  3430. var deadlinks = [], alivelinks = [];
  3431. $.each(res, function(key, value) {
  3432. if (value.fileStatus && value.fileStatus == 1) {
  3433. alivelinks.push(value.fileId);
  3434. } else if (value.fileStatus && value.fileStatus == 0) {
  3435. deadlinks.push(value.fileId);
  3436. }
  3437. });
  3438.  
  3439. if (deadlinks.length > 0) DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3440. if (alivelinks.length > 0) DisplayTheCheckedLinks(alivelinks, 'alive_link');
  3441. }
  3442. });
  3443. }
  3444.  
  3445. function webshareBulkCheck()
  3446. {
  3447. var arr = this.links[0].split('\r\n');
  3448. var i = arr.length;
  3449.  
  3450. while(i--)
  3451. {
  3452. postRequest(arr[i]);
  3453. }
  3454.  
  3455. function postRequest(wsLink) {
  3456. var id = wsLink.match(/webshare\.cz\/(?:(?:#\/)?file\/)?(\w+)/)[1];
  3457. GM_xmlhttpRequest({
  3458. method: 'POST',
  3459. url: "http://webshare.cz/api/file_info/",
  3460. headers: {
  3461. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3462. 'Content-type': 'application/x-www-form-urlencoded',
  3463. 'Referer': "",
  3464. },
  3465. data: "wst=&ident=" + id,
  3466. onload: function (result) {
  3467. var res = result.responseText;
  3468. if (res.contains(/<name>.+?<\/name>/))
  3469. {
  3470. DisplayTheCheckedLinks([id], 'alive_link');
  3471. }
  3472. else
  3473. {
  3474. DisplayTheCheckedLinks([id], 'adead_link');
  3475. }
  3476. }
  3477. });
  3478. }
  3479. }
  3480. function anysendBulkCheck() {
  3481. var arr = this.links[0].split('\r\n');
  3482. var blockIdx = arr.length;
  3483. while (blockIdx--) {
  3484. stepOne(arr[blockIdx]);
  3485. }
  3486. function stepOne(link) {
  3487. GM_xmlhttpRequest({
  3488. method: 'GET',
  3489. url: link,
  3490. headers: {
  3491. 'Referer': 'http://anysend.com'
  3492. },
  3493. onload: function(result) {
  3494. if (result.responseText.contains('<title>Removed download \\| AnySend</title>')) {
  3495. displayTheCheckedLink($('a:contains("' + link.match(/anysend\.com\/\w+/)[0] + '")')[0], 'adead_link');
  3496. return;
  3497. }
  3498. stepTwo(result.responseText.match(/f\.src="(http:\/\/download\.anysend\.com\/download\/download\.php\?key=\w{32}(?:&aff=\w+)?&visid=)"/)[1], link);
  3499. }
  3500. });
  3501. }
  3502. function stepTwo(link, origLink) {
  3503. GM_xmlhttpRequest({
  3504. method: 'GET',
  3505. 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=',
  3506. headers: {
  3507. 'Referer': origLink
  3508. },
  3509. onload: function(result) {
  3510. var stuff = result.responseText.match(/setVisitor\('(\w+)'\)/);
  3511. var visid = stuff ? stuff[1] : "";
  3512. stepThree(link, visid, origLink);
  3513. }
  3514. });
  3515. }
  3516. function stepThree(link, visid, origLink) {
  3517. link += visid;
  3518. $('a:contains("' + origLink.match(/anysend\.com\/\w+/)[0] + '")').attr('name', link);
  3519. GM_xmlhttpRequest({
  3520. method: 'GET',
  3521. url: link,
  3522. headers: {
  3523. 'Referer': origLink,
  3524. 'Cookie': 'PAPVisitorId=' + visid
  3525. },
  3526. onload: function(result) {
  3527. decideStatus(result.responseText, origLink);
  3528. }
  3529. })
  3530. }
  3531. function decideStatus(res, origLink) {
  3532. if (res.contains('<div class="dl-file-des|<a href="javascript:void(0);" onclick="showDownloadPopupT12')) {
  3533. displayTheCheckedLink($('a:contains("' + origLink.match(/anysend\.com\/\w+/)[0] + '")')[0], 'alive_link');
  3534. } else if (res.contains('>Your download is no longer available')) {
  3535. displayTheCheckedLink($('a:contains("' + origLink.match(/anysend\.com\/\w+/)[0] + '")')[0], 'adead_link');
  3536. } else {
  3537. displayTheCheckedLink($('a:contains("' + origLink.match(/anysend\.com\/\w+/)[0] + '")')[0], 'unknown_link', 'Unable to detect links status from response HTML');
  3538. }
  3539. }
  3540. }
  3541. function filecloudBulkCheck() {
  3542. var arr = this.links[0].split(this.separator);
  3543. var blockIdx = arr.length;
  3544. while (blockIdx--) {
  3545. check(arr[blockIdx]);
  3546. }
  3547. function check(ukey) {
  3548. GM_xmlhttpRequest({
  3549. method: 'POST',
  3550. url: 'http://api.filecloud.io/api-check_file.api',
  3551. headers: {
  3552. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3553. 'Content-type': 'application/x-www-form-urlencoded',
  3554. 'Referer': 'http://filecloud.io',
  3555. 'X-Requested-With': 'XMLHttpRequest'
  3556. },
  3557. data: 'ukey=' + encodeURIComponent(ukey),
  3558. onload: function(result) {
  3559. var res = JSON.parse(result.responseText);
  3560. if (res.status == 'ok' && res.message == 'fetched') {
  3561. DisplayTheCheckedLinks([ukey], 'alive_link');
  3562. } else if (res.status == 'error' && res.message == 'no such file') {
  3563. DisplayTheCheckedLinks([ukey], 'adead_link');
  3564. } else DisplayTheCheckedLinks([ukey], 'unknown_link');
  3565. },
  3566. onerror: function() {
  3567. DisplayTheCheckedLinks([ukey], 'unknown_link');
  3568. }
  3569. });
  3570. }
  3571. }
  3572. function gettBulkCheck() {
  3573. var arr = this.links[0].split("\r\n");
  3574. var i = arr.length;
  3575. var params, sharename, fileid;
  3576. while (i--) {
  3577. params = arr[i].match(/(\w+)(?:\/v\/(\d+))?/);
  3578. sharename = params[1], fileid = params[2] ? params[2] : 0;
  3579. GM_xmlhttpRequest({
  3580. method:"GET",
  3581. url: this.apiUrl + sharename + "/" + fileid,
  3582. headers: {
  3583. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3584. 'Content-type': 'application/x-www-form-urlencoded',
  3585. 'Referer': this.apiUrl,
  3586. 'X-Requested-With': 'XMLHttpRequest'
  3587. },
  3588. onload: function(result) {
  3589. var res = JSON.parse(result.responseText);
  3590. if (res.readystate == "uploaded") {
  3591. DisplayTheCheckedLinks([res.sharename], 'alive_link');
  3592. } else if (res.readystate == "removed") {
  3593. DisplayTheCheckedLinks([res.sharename], 'adead_link');
  3594. } else {
  3595. DisplayTheCheckedLinks([res.sharename], 'unknown_link');
  3596. }
  3597. }
  3598. });
  3599. }
  3600. }
  3601. function uploadingBulkCheck()
  3602. {
  3603. var blockIdx = this.links.length;
  3604. while (blockIdx--)
  3605. {
  3606. postRequest(this.apiUrl, this.postData, this.links[blockIdx],
  3607. this.resLinkRegex, this.resLiveRegex, this.resDeadRegex, this.resUnavaRegex);
  3608. }
  3609. function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex)
  3610. {
  3611. GM_xmlhttpRequest(
  3612. {
  3613. method: 'POST',
  3614. url: api,
  3615. headers: {
  3616. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3617. 'Content-type': 'application/x-www-form-urlencoded',
  3618. 'Referer': api,
  3619. 'X-Requested-With': 'XMLHttpRequest'
  3620. },
  3621. data: postData + encodeURIComponent(links),
  3622. onload: function (result)
  3623. {
  3624. var res = result.responseText;
  3625.  
  3626. var i;
  3627.  
  3628. var livelinks = res.match(liveRegex);
  3629. var deadlinks = res.match(deadRegex);
  3630. var allLinks = links.split("\r\n");
  3631. for(i=0;i<allLinks.length;i++) {
  3632. allLinks[i] = allLinks[i].match(/uploading\.com\/(?:files\/|\w+\/\?get=)?(\w+)/)[1];
  3633. }
  3634. if (livelinks != null)
  3635. {
  3636. i = livelinks.length - 1;
  3637. do
  3638. {
  3639. livelinks[i] = livelinks[i].match(linkRegex)[1].toLowerCase();
  3640. livelinks.push(livelinks[i].toUpperCase());
  3641. allLinks.splice($.inArray(livelinks[i], allLinks), 1);
  3642. }
  3643. while (i--);
  3644. DisplayTheCheckedLinks(livelinks, 'alive_link');
  3645. }
  3646.  
  3647. if (deadlinks != null)
  3648. {
  3649. i = deadlinks.length - 1;
  3650. do
  3651. {
  3652. deadlinks[i] = deadlinks[i].match(linkRegex)[1].toLowerCase();
  3653. deadlinks.push(deadlinks[i].toUpperCase());
  3654. allLinks.splice($.inArray(deadlinks[i], allLinks), 1);
  3655. }
  3656. while (i--);
  3657. DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3658. }
  3659. if (allLinks.length > 0)
  3660. {
  3661. i = allLinks.length - 1;
  3662. do
  3663. {
  3664. websiteCheck(allLinks[i]);
  3665. }
  3666. while (i--);
  3667. }
  3668. }
  3669. });
  3670. }
  3671. function websiteCheck(link) {
  3672. var realLink = "http://uploading.com/files/" + link;
  3673. GM_xmlhttpRequest({
  3674. method: 'GET',
  3675. url: realLink,
  3676. headers: {
  3677. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3678. 'Content-type': 'application/x-www-form-urlencoded',
  3679. 'Referer': realLink,
  3680. 'X-Requested-With': 'XMLHttpRequest'
  3681. },
  3682. onload: function (result) {
  3683. if (result.status == 503) websiteCheck(link);
  3684. res = result.responseText;
  3685. if (res.contains('file_error">|error_404">')) {
  3686. DisplayTheCheckedLinks([link], 'adead_link');
  3687. }
  3688. else if (res.contains('free_method">')) {
  3689. DisplayTheCheckedLinks([link], 'alive_link');
  3690. }
  3691. }
  3692. });
  3693. }
  3694. }
  3695. function dateiToBulk()
  3696. {
  3697. var arr = this.links[0].split("\r\n");
  3698. var data = "key=YYMHGBR9SFQA0ZWA&info=STATUS&datei=";
  3699. var i = arr.length;
  3700. while(i--)
  3701. {
  3702. var token = arr[i].match(/\.to\/(?:datei\/|files\/|1,|\?)(\w+)/)[1];
  3703. postRequest(token);
  3704. }
  3705. function postRequest(token) {
  3706. data += token;
  3707. GM_xmlhttpRequest({
  3708. method:"POST",
  3709. url:"http://api.datei.to/",
  3710. data:data,
  3711. headers: {
  3712. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3713. 'Content-type': 'application/x-www-form-urlencoded',
  3714. 'Referer': ""
  3715. },
  3716. onload: function(result) {
  3717. var res = result.responseText;
  3718. if (res.contains('offline')) {
  3719. DisplayTheCheckedLinks([token],'adead_link');
  3720. }
  3721. else if (res.contains('online')) {
  3722. DisplayTheCheckedLinks([token], 'alive_link');
  3723. }
  3724. }
  3725. });
  3726. }
  3727. }
  3728. /* function uploadedBulkCheck()
  3729. {
  3730. var t = this.links.length;
  3731. while (t--) {
  3732. var arr = this.links[t].split("\r\n");
  3733. var data = "apikey=lhF2IeeprweDfu9ccWlxXVVypA5nA3EL";
  3734. for (var i=0;i<arr.length;i++)
  3735. {
  3736. try {
  3737. arr[i] = arr[i].match(/(?:uploaded|ul)\.(?:to|net)\/(?:files?|\?(?:lang=\w{2}&)?id=|f\/|folder)?\/*(?!img\/|coupon\/)(\w{8})/)[1];
  3738. } catch (e) {
  3739. console.warn("Error in checking Uploaded: " + arr[i]);
  3740. DisplayTheCheckedLinks([arr[i]], "unknown_link");
  3741. }
  3742. data += "&id_"+i+"="+arr[i];
  3743. }
  3744. GM_xmlhttpRequest(
  3745. {
  3746. method: "POST",
  3747. url: "https://uploaded.net/api/filemultiple",
  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. {
  3756. var res = result.responseText;
  3757.  
  3758. var i;
  3759. var livelinks = res.match(/online,\w+,/g);
  3760. var deadlinks = res.match(/offline,\w+,/g);
  3761. if (livelinks)
  3762. {
  3763. var i = livelinks.length - 1;
  3764. do
  3765. {
  3766. livelinks[i] = livelinks[i].match(/,(\w+),/)[1];
  3767. }
  3768. while (i--);
  3769. DisplayTheCheckedLinks(livelinks, 'alive_link');
  3770. }
  3771. if (deadlinks)
  3772. {
  3773. var i = deadlinks.length - 1;
  3774. do
  3775. {
  3776. deadlinks[i] = deadlinks[i].match(/,(\w+),/)[1];
  3777. }
  3778. while (i--);
  3779. DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3780. }
  3781. }
  3782. });
  3783. }
  3784. }
  3785. */
  3786. function megaBulkCheck()
  3787. {
  3788. var arr = this.links[0].split("\r\n");
  3789. var i = arr.length;
  3790. var seqno = Math.floor(Math.random()*1000000000);
  3791. while(i--)
  3792. {
  3793. postRequest(arr[i]);
  3794. }
  3795. function postRequest(megaLink)
  3796. {
  3797. var id = megaLink.match(/mega\.co\.nz\/#!(\w+)(?:!\w+)?/)[1];
  3798.  
  3799. GM_xmlhttpRequest(
  3800. {
  3801. method: "POST",
  3802. url: 'https://g.api.mega.co.nz/cs?id=' + seqno++,
  3803. data: '[{"a":"g","p":"' + id + '","ssl": "1"}]',
  3804. headers: {
  3805. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  3806. 'Content-Type': 'application/xml',
  3807. 'Referer': "https://mega.co.nz/"
  3808. },
  3809. onload: function (result)
  3810. {
  3811. var res = $.parseJSON(result.responseText.match(/\[(.+?)\]/)[1]);
  3812. if ((typeof res == "number" && (res == -9 || res == -16 || res == -6)) || res.d) {
  3813. DisplayTheCheckedLinks([id], 'adead_link');
  3814. } else if (res.e == "ETEMPUNAVAIL") {
  3815. DisplayTheCheckedLinks([id], 'unava_link');
  3816. } else if (res.at) {
  3817. DisplayTheCheckedLinks([id], 'alive_link');
  3818. } else {
  3819. console.warn("Error in checking Mega.co.nz! Please notify devs.\r\nError code: " + result.responseText);
  3820. }
  3821. }
  3822. });
  3823. }
  3824. }
  3825. function netloadBulkCheck()
  3826. {
  3827. var blockIdx = this.links.length;
  3828.  
  3829. while (blockIdx--)
  3830. {
  3831. postRequest(this.apiUrl, this.postData, this.links[blockIdx],
  3832. this.resLinkRegex, this.resLiveRegex, this.resDeadRegex, this.unavaRegex);
  3833. }
  3834. function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex)
  3835. {
  3836. GM_xmlhttpRequest(
  3837. {
  3838. method: 'POST',
  3839. url: api,
  3840. headers: {
  3841. 'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
  3842. 'Content-type': 'application/x-www-form-urlencoded',
  3843. 'Referer': ""
  3844. },
  3845. data: postData + encodeURIComponent(links),
  3846. onload: function (result)
  3847. {
  3848. var res = result.responseText;
  3849. //console.log(res);
  3850. if (res.contains('<title>403 - Forbidden</title>')){
  3851. postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex);
  3852. }
  3853. var i;
  3854.  
  3855. var livelinks = res.match(liveRegex);
  3856. var deadlinks = res.match(deadRegex);
  3857. //console.log(livelinks);
  3858. //console.log(deadlinks);
  3859. if (livelinks != null)
  3860. {
  3861. i = livelinks.length - 1;
  3862. do
  3863. {
  3864. recheckLink(livelinks[i].match(linkRegex)[1]);
  3865. //livelinks[i] = livelinks[i].match(linkRegex)[1];
  3866. }
  3867. while(i--);
  3868. //DisplayTheCheckedLinks(livelinks, "alive_link");
  3869. }
  3870.  
  3871. if (deadlinks != null)
  3872. {
  3873. i = deadlinks.length - 1;
  3874. do
  3875. {
  3876. deadlinks[i] = deadlinks[i].match(linkRegex)[1];
  3877. }
  3878. while (i--);
  3879. DisplayTheCheckedLinks(deadlinks, 'adead_link');
  3880. }
  3881. }
  3882. });
  3883. }
  3884. function recheckLink(link)
  3885. {
  3886. var link = link;
  3887. GM_xmlhttpRequest(
  3888. {
  3889. method: 'GET',
  3890. url: 'http://netload.in/datei' + link + '.htm',
  3891. headers: {
  3892. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  3893. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  3894. 'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
  3895. 'Referer': ""
  3896. },
  3897. onload: function (result)
  3898. {
  3899. var res = result.responseText;
  3900.  
  3901. if (res.contains('dl_first_file_download">|download_limit.gif'))
  3902. {
  3903. DisplayTheCheckedLinks([link], 'alive_link');
  3904. return;
  3905. }
  3906.  
  3907. if (res.contains('achtung.jpg"'))
  3908. {
  3909. DisplayTheCheckedLinks([link], 'adead_link');
  3910. }
  3911. },
  3912. onerror: function ()
  3913. {
  3914. displayTheCheckedLink(link, 'unava_link');
  3915. }
  3916. });
  3917. }
  3918. }
  3919.  
  3920. function depositfilesBulkCheck()
  3921. {
  3922. var arr = this.links[0].split("\r\n");
  3923. var i = arr.length;
  3924. while(i--)
  3925. {
  3926. postRequest(arr[i]);
  3927. }
  3928. function postRequest(dfLink)
  3929. {
  3930. var id = dfLink.match(/(?:depositfiles\.(?:com|lt|org)|dfiles\.(?:eu|ru))\/(?:en\/|ru\/|de\/|es\/|pt\/|)files\/(\w+)/)[1];
  3931.  
  3932. GM_xmlhttpRequest(
  3933. {
  3934. method: "POST",
  3935. url: 'http://depositfiles.com/api/get_download_info.php?id=' + id + "&format=json",
  3936. headers: {
  3937. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  3938. 'Content-Type': 'application/x-www-form-urlencoded',
  3939. 'Referer': ""
  3940. },
  3941. onload: function (result)
  3942. {
  3943. var res = result.responseText;
  3944. //console.log(res);
  3945. if (res == "") {
  3946. postRequest(dfLink);
  3947. }
  3948. if (res.contains('no_file'))
  3949. {
  3950. DisplayTheCheckedLinks(["files/" + id], 'adead_link');
  3951. return;
  3952. }
  3953. if (res.contains('file_ban')) {
  3954. DisplayTheCheckedLinks(["files/" + id], 'unknown_link');
  3955. return;
  3956. }
  3957.  
  3958. if (res.contains(/download_li(?:nk|mit)|password_check|file_storage/))
  3959. {
  3960. DisplayTheCheckedLinks(["files/" + id], 'alive_link');
  3961. }
  3962. }
  3963. });
  3964. }
  3965. }
  3966. }
  3967.  
  3968. function initFileHosts()
  3969. {
  3970. var aOHCount = "1";
  3971. function addObsoleteHost(hostName, linkRegex)
  3972. {
  3973. hostName = hostName.split("|");
  3974. var i = hostName.length;
  3975. var hostID = "OH" + aOHCount;
  3976. while(i--) {
  3977. var filehost = gimmeHostName(hostName[i]).replace(/\./g, "_dot_").replace(/\-/g, "_dash_");
  3978. if (!hostsIDs[filehost]) {
  3979. hostsIDs[filehost] = [];
  3980. }
  3981. hostsIDs[filehost].push({
  3982. hostID: hostID,
  3983. linkRegex: linkRegex,
  3984. });
  3985. }
  3986. var OHObj = {
  3987. links: []
  3988. }
  3989. hostsCheck[hostID] = OHObj;
  3990. aOHCount++;
  3991. }
  3992.  
  3993. //obsolete file hosts init start
  3994. if (hostSet("Obsolete_file_hosts", false))
  3995. {
  3996. addObsoleteHost("superfastfile.com", "superfastfile\\.com\/\\w+");
  3997. addObsoleteHost("uploadlab.com", "files\\.uploadlab\\.com\/\\w+");
  3998. addObsoleteHost("zupload.com", "z\\d+\\.zupload\\.com\/\\w+");
  3999. addObsoleteHost("enterupload.com|flyupload.com", "(?:flyupload\\.)?(?:enterupload|flyupload)\\.com\/");
  4000. addObsoleteHost("filesdump.com", "(?:s\\d+\\.|)filesdump\\.com\/file\/\\w+");
  4001. addObsoleteHost("speedie-host.com", "uploads\\.speedie\\-host\\.com\/\\w+");
  4002. addObsoleteHost("turboupload.com", "(?:d\\.|)turboupload\\.com\/\\w+");
  4003. addObsoleteHost("share2u.net", "dl\\.share2u\\.net\/\\w+");
  4004. addObsoleteHost("filestock.net|filestock.ru", "(?:download\\.)?filestock\\.(?:net|ru)\/\\w+");
  4005. addObsoleteHost("ex.ua", "(?:fs\\d{1,2}\\.)?(?:www\\.|)ex\\.ua\/\\w+");
  4006. addObsoleteHost("omxira.com", "(?:get\\.|)omxira\\.com\/\\w+");
  4007. addObsoleteHost("uploadtornado.com", "(?:\\w{2}\\.)uploadtornado\\.com\/\\w+");
  4008. addObsoleteHost("bgdox.com", "(?:turbo\\.)?bgdox\\.com\/\\w+");
  4009. addObsoleteHost("fshare.eu", "www\\d?\\.fshare\\.eu\/\\w+");
  4010. var i = allObsoleteNames.length;
  4011. while(i--)
  4012. {
  4013. addObsoleteHost(
  4014. allObsoleteNames[i],
  4015. "https?:\/\/(?:[a-zA-Z0-9-]+\\.)?(?:" + allObsoleteNames[i].replace(/\./g, "\\.").replace(/\-/g, "\\-") + ")\/"
  4016. );
  4017. }
  4018. }
  4019. //obsolete file hosts init end
  4020. var aFHCount = 1;
  4021. function addFileHost(hostName, linkRegex, isAliveRegex, isDeadRegex, isUnavaRegex, tryLoop)
  4022. {
  4023. hostName = hostName.split("|");
  4024. var i = hostName.length;
  4025. var hostID = "WC" + aFHCount;
  4026. while(i--) {
  4027. var filehost = hostName[i].replace(/\./g, "_dot_").replace(/\-/g, "_dash_");
  4028.  
  4029. if (!hostsIDs[filehost]) {
  4030. hostsIDs[filehost] = [];
  4031. }
  4032. hostsIDs[filehost].push({
  4033. hostID: hostID,
  4034. linkRegex: linkRegex,
  4035. });
  4036. }
  4037. var WCObj = {
  4038. liveRegex: isAliveRegex,
  4039. deadRegex: isDeadRegex,
  4040. unavaRegex: isUnavaRegex,
  4041. tryLoop: false,
  4042. links: []
  4043. }
  4044. if (tryLoop) WCObj.tryLoop = true;
  4045. hostsCheck[hostID] = WCObj;
  4046. aFHCount++;
  4047. }
  4048. var genericWC = [ "filesbowl.com", "freakbit.net", "upfile.vn", "upbooth.com", "fileshareup.com", "rabidfiles.com", "host4files.com",
  4049. "weshare.me", "thefilebay.com"];
  4050. var XFSPWC = [ "fileplanet.com.ua|fileplaneta.com", "xvidstage.com", "midupload.com", "share.az",
  4051. "interfile.net", "medofire.com", "downloadani.me", "uptobox.com", "uppit.com", "filenuke.com",
  4052. "filecore.co.nz", "1000shared.com", "tusfiles.net|tusfiles.com", "lafiles.com"];
  4053.  
  4054. var genThird = [ "jumbofiles.org|jumbofilebox.com", "10shared.com", "4bigbox.com", "skyfilebox.com"]
  4055. var gWC = genericWC.length;
  4056. while(gWC--) {
  4057. if (hostSet("Check_" + genericWC[gWC].replace(/\./g, "_dot_").replace(/\-/g, "_dash_") + "_links", false))
  4058. {
  4059. addFileHost(
  4060. genericWC[gWC],
  4061. genericWC[gWC].replace(/\./g, "\\.").replace(/\-/g, "\\-") + "\/\\w+",
  4062. /<div class="(?:download|captcha)PageTable"|<a class="link btn-free"|download-timer|<span id="loadingSpinner">/,
  4063. /<li>File (?:has been removed|not found)|<div id="uploaderContainer"/,
  4064. 'optional--'
  4065. );
  4066. }
  4067. }
  4068. var xWC = XFSPWC.length;
  4069. while (xWC--) {
  4070. if (hostSet("Check_" + XFSPWC[xWC].match(/[\w\.\-]+/)[0].replace(/\./g, "_dot_").replace(/\-/g, "_dash_") + "_links", false))
  4071. {
  4072. addFileHost(
  4073. XFSPWC[xWC],
  4074. "(?:" + XFSPWC[xWC].replace(/\./g, "\\.").replace(/\-/g, "\\-") + ")\/\\w+",
  4075. 'name="method_free"|id="btn_download"|value="Free Download"',
  4076. />(?: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,
  4077. '>This server is in maintenance mode|<img src="/images/under.gif"',
  4078. true);
  4079. }
  4080. }
  4081.  
  4082. var tWC = genThird.length;
  4083. while (tWC--) {
  4084. if (hostSet("Check_" + genThird[tWC].match(/[\w\.\-]+/)[0].replace(/\./g, "_dot_").replace(/\-/g, "_dash_") + "_links", false))
  4085. {
  4086. addFileHost(
  4087. genThird[tWC],
  4088. "(?:" + genThird[tWC].replace(/\./g, "\\.").replace(/\-/g, "\\-") + ")\/newfile\\?n=\\w+",
  4089. '<div class="downloadfree">',
  4090. 'div_file"',
  4091. 'optional--'
  4092. );
  4093. }
  4094. }
  4095.  
  4096. if (hostSet("Check_megafileupload_dot_com_links", false))
  4097. {
  4098. addFileHost(
  4099. "megafileupload.com",
  4100. "megafileupload\.com\/..\/file\/",
  4101. 'downloadbtn',
  4102. 'is not found',
  4103. 'optional--');
  4104. }
  4105.  
  4106. if (hostSet("Check_safelinking_dot_net_links", false))
  4107. {
  4108. addFileHost(
  4109. 'safelinking.net',
  4110. "safelinking\\.net\/p\/\\w{10}",
  4111. 'color:green;"',
  4112. 'color:red;"|<p>This link does not exist.',
  4113. 'optional--',
  4114. true);
  4115. }
  4116.  
  4117. if (hostSet("Check_ultramegabit_dot_com_links", false))
  4118. {
  4119. addFileHost(
  4120. "ultramegabit.com",
  4121. "ultramegabit\\.com\/file\/details\/[\\w+-]",
  4122. '>Your download is ready<|>Premium members only<',
  4123. />File (?:not found|restricted|has been deleted(?:\.| in compliance with the DMCA))<|\/folder\/add/,
  4124. 'btn-large btn-danger">|Account limitation notice|>File not available.<|>This download server is overloaded<|502 Bad Gateway',
  4125. true);
  4126. }
  4127. if (hostSet("Check_fastshare_dot_cz_links", false))
  4128. {
  4129. addFileHost(
  4130. "fastshare.cz",
  4131. "fastshare\\.cz\/\\d+\/\\w*",
  4132. 'dwntable">',
  4133. 'nebyla nalezena|nebola nájdená|nie została odnaleziona|color:red;font-weight:bold;border-style:dashed|<b>Requested page not found.',
  4134. 'optional--');
  4135. }
  4136. if (hostSet("Check_fastshare_dot_org_links", false))
  4137. {
  4138. addFileHost(
  4139. "fastshare.org|FastShare.org",
  4140. "[fF]ast[sS]hare\\.org\/download",
  4141. 'Download ">',
  4142. 'Diese Datei wurde wegen|wurde kein Dateiname',
  4143. 'optional--');
  4144. }
  4145.  
  4146. if (hostSet("Check_1fichier_dot_com_links", false))
  4147. {
  4148. addFileHost(
  4149. "1fichier.com|dl4free.com",
  4150. "(?:1fichier|dl4free)\\.com\/",
  4151. '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"',
  4152. 'errorDiv"|File not found|Fichier introuvable|margin:auto;padding-bottom:20px">|Select files to send',
  4153. 'optional--');
  4154. }
  4155.  
  4156. if (hostSet("Check_relink_dot_us_links", false))
  4157. {
  4158. addFileHost(
  4159. "relink.us",
  4160. "relink\\.us\/(?:f\/\\w+|go\\.php\\?id=\\d+|view\\.php\\?id=\\d+)",
  4161. 'online_detail.png" alt="Status',
  4162. /(?:offline|partially)_detail\.png" alt="Status|File deleted/,
  4163. 'unknown_detail.png" alt="Status'
  4164. );
  4165. }
  4166. if (hostSet("Check_flyfiles_dot_net_links", false))
  4167. {
  4168. addFileHost(
  4169. "flyfiles.net",
  4170. "flyfiles\\.net\/\\w+",
  4171. 'download_button"|"Download file"',
  4172. 'File not found!|Файл не найден',
  4173. 'optional--'
  4174. );
  4175. }
  4176. if (hostSet("Check_wikiupload_dot_com_links", false))
  4177. {
  4178. addFileHost(
  4179. "wikiupload.com",
  4180. "wikiupload\\.com\/\\w+",
  4181. 'download-button">',
  4182. 'Sorry, File not found|theme-container">',
  4183. 'optional--'
  4184. );
  4185. }
  4186. if (hostSet("Check_hostuje_dot_net_links", false))
  4187. {
  4188. addFileHost(
  4189. "hostuje.net",
  4190. "hostuje\\.net\/file\\.php\\?id=\\w+",
  4191. 'file.php">|Pobierz Plik',
  4192. 'Podany plik zosta. skasowany z powodu naruszania praw autorskich...|Podany plik nie zosta. odnaleziony...',
  4193. 'optional--'
  4194. );
  4195. }
  4196.  
  4197. if (hostSet("Check_tufiles_dot_ru_links", false))
  4198. {
  4199. addFileHost(
  4200. "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",
  4201. "(?:tufiles|turbob1t|failoobmenik|filesmail|firebit|dlbit|files\\.china\\-gsm|3aka4aem|file\\.piratski|mnogofiles|links-free|turbo-bit|turbosfiles)\\.\\w+\/\\w+",
  4202. 'download-file">',
  4203. /col-1">\s*<h1>/,
  4204. 'optional--'
  4205. );
  4206. }
  4207.  
  4208. if (hostSet("Check_data_dot_hu_links", false))
  4209. {
  4210. addFileHost(
  4211. "data.hu",
  4212. "data\\.hu\/get\/\\d+\/",
  4213. 'download_box_button',
  4214. 'missing.php',
  4215. 'optional--',
  4216. true
  4217. );
  4218. }
  4219. if (hostSet("Check_filesmelt_dot_com_links", false))
  4220. {
  4221. addFileHost(
  4222. "filesmelt.com",
  4223. "filesmelt\\.com\/dl\/\\w+",
  4224. 'ready">',
  4225. 'Sorry, but your',
  4226. 'optional--'
  4227. );
  4228. }
  4229. if (hostSet("Check_files_dot_indowebster_dot_com_links", false))
  4230. {
  4231. addFileHost(
  4232. "indowebster.com",
  4233. "files\\.indowebster\\.com\/download\/\\w+\/",
  4234. 'premiumBtn"',
  4235. 'errorMessage"',
  4236. 'optional--'
  4237. );
  4238. }
  4239. if (hostSet("Check_superload_dot_cz_links", false))
  4240. {
  4241. addFileHost(
  4242. "superload.cz",
  4243. "superload\\.cz\/dl\/\\w+",
  4244. 'icon-download">',
  4245. 'soubor nebyl nalezen',
  4246. 'optional--'
  4247. );
  4248. }
  4249. if (hostSet("Check_easybytez_dot_com_links", false))
  4250. {
  4251. addFileHost(
  4252. "easybytez.com",
  4253. "easybytez\\.com\/\\w+",
  4254. 'op" value="download',
  4255. '/stop_error.gif|#FF0000"><h3>Download not available',
  4256. 'optional--'
  4257. );
  4258. }
  4259. if (hostSet("Check_filestore_dot_com_dot_ua_links", false))
  4260. {
  4261. addFileHost(
  4262. "filestore.com",
  4263. "filestore\\.com\\.ua\/\\?d=\\w+",
  4264. 'tdrow1>',
  4265. 'class=warn',
  4266. 'optional--'
  4267. );
  4268. }
  4269. if (hostSet("Check_netkups_dot_com_links", false))
  4270. {
  4271. addFileHost(
  4272. "netkups.com",
  4273. "netkups\\.com\/\\?d=\\w+",
  4274. '<form method="post"',
  4275. '<div align="center">|>File not found',
  4276. 'optional--'
  4277. );
  4278. }
  4279.  
  4280. if (hostSet("Check_extmatrix_dot_com_links", false))
  4281. {
  4282. addFileHost(
  4283. "extmatrix.com",
  4284. "extmatrix\\.com\/files\/\\w+",
  4285. 'div class="success"',
  4286. 'div class="error"',
  4287. 'optional--'
  4288. );
  4289. }
  4290. if (hostSet("Check_sendfiles_dot_nl_links", false))
  4291. {
  4292. addFileHost(
  4293. "sendfiles.nl",
  4294. "sendfiles\\.nl\/download.aspx\\?ID=\\w+",
  4295. 'content_lnkDownload',
  4296. 'error.aspx?',
  4297. 'optional--'
  4298. );
  4299. }
  4300. if (hostSet("Check_sockshare_dot_com_links", false))
  4301. {
  4302. addFileHost(
  4303. "sockshare.com",
  4304. "sockshare\\.com\/file\/\\w+",
  4305. 'choose_speed">',
  4306. 'message t_0\'>|Welcome to SockShare</h1>',
  4307. 'optional--'
  4308. );
  4309. }
  4310. if (hostSet("Check_yourfilestore_dot_com_links", false))
  4311. {
  4312. addFileHost(
  4313. "yourfilestore.com",
  4314. "yourfilestore\\.com\/download\/\\d+\/",
  4315. 'download_data">',
  4316. 'may have been deleted|<h1>Sorry!</h1>',
  4317. 'optional--'
  4318. );
  4319. }
  4320. if (hostSet("Check_nekaka_dot_com_links", false))
  4321. {
  4322. addFileHost(
  4323. "nekaka.com",
  4324. "nekaka\\.com\/d\/[\\w-]+",
  4325. '<b>Please Wait <span id="waittime">',
  4326. /invalid file link|<p>\s*File has been blocked|>File does not exist</,
  4327. 'optional--'
  4328. );
  4329. }
  4330. if (hostSet("Check_filebig_dot_net_links", false))
  4331. {
  4332. addFileHost(
  4333. "filebig.net",
  4334. "filebig\\.net\/files\/\\w+",
  4335. 'downloadFile">',
  4336. '<p>File not found</p>',
  4337. 'optional--'
  4338. );
  4339. }
  4340.  
  4341. if (hostSet("Check_filefront_dot_com_links", false))
  4342. {
  4343. addFileHost(
  4344. "filefront.com|gamefront.com",
  4345. "(?:files\\.|\\w+\\.|)(?:file|game)front\\.com\/\\w+",
  4346. 'downloadLink">|class="downloadNow"|<strong>Download',
  4347. /File not found, you|(?:File|Page) Not Found/,
  4348. 'unavailable at the moment'
  4349. );
  4350. }
  4351. if (hostSet("Check_free_dash_uploading_dot_com_links", false))
  4352. {
  4353. addFileHost(
  4354. "free-uploading.com",
  4355. "free\\-uploading\\.com\/\\w+",
  4356. 'op" value="download',
  4357. 'class="err">|width:500px;text-align:left;">',
  4358. 'optional--'
  4359. );
  4360. }
  4361. if (hostSet("Check_filesin_dot_com_links", false))
  4362. {
  4363. addFileHost(
  4364. "filesin.com",
  4365. "filesin\\.com\/\\w+",
  4366. 'download_area">',
  4367. 'error_note">',
  4368. 'optional--',
  4369. true
  4370. );
  4371. }
  4372. if (hostSet("Check_nowdownload_dot_eu_links", false))
  4373. {
  4374. addFileHost(
  4375. "nowdownload.eu|nowdownload.ch|nowdownload.co",
  4376. "nowdownload\\.(?:eu|ch|co)\/dl\/\\w+",
  4377. 'alert-success"',
  4378. 'This file does not exist!',
  4379. 'The file is being transfered'
  4380. );
  4381. }
  4382. if (hostSet("Check_axifile_dot_com_links", false))
  4383. {
  4384. addFileHost(
  4385. "axfile.com",
  4386. "axifile\\.com(?:\/\w(2))?\/\\??\\w+",
  4387. 'Dbutton_big"',
  4388. 'download-error.php',
  4389. 'optional--'
  4390. );
  4391. }
  4392. /* if (hostSet("Check_asfile_dot_com_links", false))
  4393. {
  4394. addFileHost(
  4395. "asfile.com",
  4396. "asfile\\.com\/file\/\\w+",
  4397. 'link_line">|id="download_button"',
  4398. /Page not found|(?:deleted|is not exist|gelöscht)<\/strong>/,
  4399. 'optional--'
  4400. );
  4401. } */
  4402. //do not use checkfiles.html bulk check, not working properly for all links
  4403. if (hostSet("Check_hulkshare_dot_com_links", false))
  4404. {
  4405. addFileHost(
  4406. "hulkshare.com|hu.lk",
  4407. "(?:hulkshare\\.com|hu\\.lk)\/\\w+",
  4408. 'download.sam.png|bigDownloadBtn basicDownload|halfTop">',
  4409. 'File does not exist|fingerprint protected copyright|disabled for public access|File no longer available!|This is a private file',
  4410. 'optional--'
  4411. );
  4412. }
  4413. if (hostSet("Check_movshare_dot_net_links", false))
  4414. {
  4415. addFileHost(
  4416. "movshare.net",
  4417. "movshare\\.net\/\\w+",
  4418. 'videoPlayer"',
  4419. 'no longer exists',
  4420. 'optional--'
  4421. );
  4422. }
  4423. if (hostSet("Check_mafiastorage_dot_com_links", false))
  4424. {
  4425. addFileHost(
  4426. "mafiastorage.com",
  4427. "mafiastorage\\.com\/\\w+",
  4428. 'op" value="download',
  4429. 'class="err">|style="width:500px;text-align:left;"',
  4430. 'optional--'
  4431. );
  4432. }
  4433.  
  4434. if (hostSet("Check_uploadspace_dot_pl_links", false))
  4435. {
  4436. addFileHost(
  4437. "uploadspace.pl",
  4438. "uploadspace\.pl\/plik\\w+",
  4439. /Downloading .+? \|/,
  4440. 'Downloading a file',
  4441. 'optional--'
  4442. );
  4443. }
  4444. if (hostSet("Check_uploadingit_dot_com_links", false))
  4445. {
  4446. addFileHost(
  4447. "uploadingit.com",
  4448. "uploadingit\\.com\/(?:file|d)\/\\w+",
  4449. 'downloadTitle">',
  4450. 'deleteContent">',
  4451. 'optional--'
  4452. );
  4453. }
  4454. if (hostSet("Check_stiahni_dot_si_links", false))
  4455. {
  4456. addFileHost(
  4457. "stiahni.si",
  4458. "stiahni\\.si\/(?:download\\.php\\?id=|file\/)\\w+",
  4459. 'button-download-symbol">|#downloadModal" onclick="download();">',
  4460. 'exclamation.png|The file not found">|file you are trying to download has been deleted',
  4461. 'optional--'
  4462. );
  4463. }
  4464.  
  4465. if (hostSet("Check_rghost_dot_net_links", false))
  4466. {
  4467. addFileHost(
  4468. "rghost.net|rghost.ru",
  4469. "rghost\.(?:net|ru)\/(?:|private\/)\\d+",
  4470. 'download_link|btn large download"',
  4471. 'file is restricted|File is deleted|503 Service Unavailable',
  4472. 'File was deleted'
  4473. );
  4474. }
  4475.  
  4476. if (hostSet("Check_xdisk_dot_cz_links", false))
  4477. {
  4478. addFileHost(
  4479. "xdisk.cz",
  4480. "xdisk\\.cz\/(?:..\/)?download\\.php\\?id=\\w+",
  4481. /">Staženo:\\s*<\/span>/,
  4482. 'Soubor, který hledáte nenalezen',
  4483. 'optional--'
  4484. );
  4485. }
  4486.  
  4487. if (hostSet("Check_vidxden_dot_com_links", false))
  4488. {
  4489. addFileHost(
  4490. "vidxden.com|vidbux.com",
  4491. "(?:vidxden|vidbux)\.com\/\\w+",
  4492. 'Continue to Video"',
  4493. 'No such file',
  4494. 'optional--'
  4495. );
  4496. }
  4497.  
  4498. if (hostSet("Check_daten_dash_hoster_dot_de_links", false))
  4499. {
  4500. addFileHost(
  4501. "daten-hoster.de|filehosting.org|filehosting.at",
  4502. "(?:daten-hoster\\.de|filehosting\\.(?:org|at))\/file\/\\w+",
  4503. '<table class="table table-bordered',
  4504. '<div class="alert alert-error',
  4505. 'optional--'
  4506. );
  4507. }
  4508.  
  4509. if (hostSet("Check_fileflyer_dot_com_links", false))
  4510. {
  4511. addFileHost(
  4512. "fileflyer.com",
  4513. "fileflyer\.com\/view\/\\w+",
  4514. 'dwlbtn"',
  4515. 'error.gif"|link">Removed|removedlink">|lockedbtn">|unlockdiv">',
  4516. 'optional--'
  4517. );
  4518. }
  4519.  
  4520. if (hostSet("Check_filestore_dot_to_links", false))
  4521. {
  4522. addFileHost(
  4523. "filestore.to",
  4524. "filestore\.to\/\\?d=\\w+",
  4525. '"downloading"',
  4526. 'Datei wurde nicht gefunden',
  4527. 'optional--'
  4528. );
  4529. }
  4530.  
  4531. if (hostSet("Check_easy_dash_share_dot_com_links", false))
  4532. {
  4533. addFileHost(
  4534. "crocko.com|easy-share.com",
  4535. "(?:w\\d*\.|)(?:crocko|easy-share)\\.com\/\\w+",
  4536. 'fz24">Download|td class="first">',
  4537. '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',
  4538. 'optional--'
  4539. );
  4540. }
  4541.  
  4542. if (hostSet("Check_burnupload_dot_com_links", false))
  4543. {
  4544. addFileHost(
  4545. "burnupload.com|ihiphop.com",
  4546. "burnupload\\.(?:com\/\\?d=|ihiphop\\.com\/download\\.php\\?id=)\\w+",
  4547. 'File size:',
  4548. 'file is not found',
  4549. 'optional--'
  4550. );
  4551. }
  4552.  
  4553. if (hostSet("Check_yunfile_dot_com_links", false))
  4554. {
  4555. addFileHost(
  4556. "yunfile.com|filemarkets.com|yfdisk.com",
  4557. "(?:\\w+\\.)?(?:yunfile|filemarkets|yfdisk)\\.com\/f(?:ile|s)\/\\w+",
  4558. /<h2 class="title">.+?&nbsp;&nbsp;.+?<\/h2>/,
  4559. /<h2 class="title">.+?&nbsp;&nbsp;<\/h2>|Been deleted|> Access denied/,
  4560. 'optional--'
  4561. );
  4562. }
  4563. if (hostSet("Check_putlocker_dot_com_links", false))
  4564. {
  4565. addFileHost(
  4566. "putlocker.com|firedrive.com",
  4567. "(?:putlocker|firedrive)\\.com\/file\/\\w+",
  4568. '<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"',
  4569. '<title>File Does Not Exist|<div class="removed_file_image">|<div class="private_file_image">',
  4570. 'undergoing scheduled maintenance'
  4571. );
  4572. }
  4573. /* if (hostSet("Check_luckyshare_dot_net_links", false))
  4574. {
  4575. addFileHost(
  4576. "luckyshare.net",
  4577. "luckyshare\\.net\/\\d+",
  4578. 'class=\'file_name\'>',
  4579. 'no such file available',
  4580. 'optional--',
  4581. true);
  4582. } */
  4583. if (hostSet("Check_uploadhero_dot_com_links", false))
  4584. {
  4585. addFileHost(
  4586. "uploadhero.com|uploadhero.co",
  4587. "uploadhero\\.com?\/dl\/\\w+",
  4588. 'content-dl">',
  4589. 'men_file_lost.jpg"',
  4590. 'optional--'
  4591. );
  4592. }
  4593.  
  4594. if (hostSet("Check_load_dot_to_links", false))
  4595. {
  4596. addFileHost(
  4597. "load.to",
  4598. '(?:www\\.|\/)load\\.to\/(?:|\\?d\\=)\\w+',
  4599. '"download_table_left">Size|<input class="input-button" type="submit" value="Download"',
  4600. 'Can\'t find file',
  4601. 'optional--'
  4602. );
  4603. }
  4604.  
  4605. if (hostSet("Check_divshare_dot_com_links", false))
  4606. {
  4607. addFileHost(
  4608. "divshare.com",
  4609. "divshare\\.com\/download\/",
  4610. 'download_new.png',
  4611. 'have been removed',
  4612. 'optional--'
  4613. );
  4614. }
  4615. if (hostSet("Check_stahovadlo_dot_cz_links", false))
  4616. {
  4617. addFileHost(
  4618. "stahovadlo.cz",
  4619. "stahovadlo\\.cz\/soubor\/\\d+\/[\\.\\w]+",
  4620. 'download" type="submit',
  4621. 'Neplatný nebo neúplný odkaz|Soubor již není dostupný',
  4622. 'optional--',
  4623. true
  4624. );
  4625. }
  4626. if (hostSet("Check_euroshare_dot_eu_links", false))
  4627. {
  4628. addFileHost(
  4629. "euroshare.eu|euroshare.pl|euroshare.sk|euroshare.cz|euroshare.hu",
  4630. "euroshare\\.(?:eu|pl|sk|cz|hu)\/file\/\\d+",
  4631. 'nazev-souboru">',
  4632. /<div id="obsah">\\s*<h1>/,
  4633. 'optional--'
  4634. );
  4635. }
  4636. if (hostSet("Check_datafilehost_dot_com_links", false))
  4637. {
  4638. addFileHost(
  4639. "datafilehost.com",
  4640. "datafilehost\\.com\/(?:download-\\w+\\.html|d\/\\w+)",
  4641. 'dldtable">',
  4642. 'does not exist.',
  4643. 'optional--'
  4644. );
  4645. }
  4646.  
  4647. if (hostSet("Check_files_dot_mail_dot_ru_links", false))
  4648. {
  4649. addFileHost(
  4650. "mail.ru",
  4651. 'files\\.mail\\.ru/(?:\\w*)',
  4652. 'fileList',
  4653. 'errorMessage|error">',
  4654. 'optional--'
  4655. );
  4656. }
  4657.  
  4658. if (hostSet("Check_narod_dot_ru_links", false))
  4659. {
  4660. addFileHost(
  4661. "narod.ru|yandex.ru",
  4662. 'narod\\.(?:yandex\\.|)ru\/disk\/',
  4663. '<a id="b-submit"',
  4664. '<p class="b-download-virus-note"|headCode">404<',
  4665. 'Внутренняя ошибка сервиса'
  4666. );
  4667. }
  4668.  
  4669. if (hostSet("Check_rayfile_dot_com_links", false))
  4670. {
  4671. addFileHost(
  4672. "rayfile.com",
  4673. "rayfile\\.com\/",
  4674. 'FILEtitleTXT',
  4675. 'blueRow',
  4676. 'optional--'
  4677. );
  4678. }
  4679. if (hostSet("Check_filesmonster_dot_com_links", false))
  4680. {
  4681. addFileHost(
  4682. "filesmonster.com",
  4683. "filesmonster\\.com\/download\\.php\\?id=\\w+",
  4684. 'button_green_body"',
  4685. 'error">',
  4686. 'optional--'
  4687. );
  4688. }
  4689. if (hostSet("Check_sendspace_dot_com_links", false))
  4690. {
  4691. addFileHost(
  4692. "sendspace.com",
  4693. 'sendspace\\.com\/file\/\\w+',
  4694. 'file_description',
  4695. 'msg error"',
  4696. 'optional--'
  4697. );
  4698. }
  4699. if (hostSet("Check_sendspace_dot_pl_links", false))
  4700. {
  4701. addFileHost(
  4702. "sendspace.pl",
  4703. 'sendspace\\.pl\/file\/\\w+',
  4704. 'download_file"',
  4705. 'Podany plik nie',
  4706. 'optional--'
  4707. );
  4708. }
  4709.  
  4710. if (hostSet("Check_gigasize_dot_com_links", false))
  4711. {
  4712. addFileHost(
  4713. "gigasize.com",
  4714. 'gigasize\\.com\/get(?:\\.php(?:\/[\\d-]+|\\?d=\\w+)|\/\\w+)',
  4715. 'fileId"',
  4716. 'error">',
  4717. 'optional--'
  4718. );
  4719. }
  4720. if (hostSet("Check_2shared_dot_com_links", false))
  4721. {
  4722. addFileHost(
  4723. "2shared.com",
  4724. '2shared\\.com\/(?:file|video|document)\/\\w*',
  4725. 'File size',
  4726. />\\s*var msg = 'VGhlIGZpbGUgbGluayB0aGF0IHlvdSByZ/,
  4727. 'optional--'
  4728. );
  4729. }
  4730. if (hostSet("Check_gigapeta_dot_com_links", false))
  4731. {
  4732. addFileHost(
  4733. "gigapeta.com",
  4734. 'gigapeta\\.com\/dl\/',
  4735. 'Download file|Скачать файл| Herunterzuladen|Scarica il file|Cargar el fichero|Charger le fichier',
  4736. '404|page_error',
  4737. 'optional--'
  4738. );
  4739. }
  4740. if (hostSet("Check_veehd_dot_com_links", false))
  4741. {
  4742. addFileHost(
  4743. "veehd.com",
  4744. 'veehd\.com\/video\/.*?',
  4745. 'No sound|Download video',
  4746. 'Featured Videos',
  4747. 'optional--'
  4748. );
  4749. }
  4750.  
  4751. if (hostSet("Check_fileswap_dot_com_links", false))
  4752. {
  4753. addFileHost(
  4754. "fileswap.com",
  4755. 'fileswap\\.com\/dl\/\\w+',
  4756. 'dlslowbutton"',
  4757. 'rounded_block_error">',
  4758. 'is temporary unavailable|disponible en estos momentos|vorläufig unerreichbar|Файл временно недоступен'
  4759. );
  4760. }
  4761. if (hostSet("Check_solidfiles_dot_com_links", false))
  4762. {
  4763. addFileHost(
  4764. "solidfiles.com",
  4765. 'solidfiles\\.com\/d\/\\w+',
  4766. '<a id="download-button"',
  4767. />(?:Not found|\s*The file you are trying to download has been claimed)/,
  4768. 'optional--'
  4769. );
  4770. }
  4771. if (hostSet("Check_uloz_dot_to_links", false))
  4772. {
  4773. addFileHost(
  4774. "uloz.to|ulozto.cz|bagruj.cz|zachowajto.pl",
  4775. "(?:uloz|ulozto|bagruj|zachowajto)\\.(to|cz|sk|net|pl)\/\\w",
  4776. 'fileDownload">|fileSize">|passwordProtectedFile">',
  4777. 'grayButton deletedFile">|Stránka nenalezena|upload-button"|jako soukromý.',
  4778. 'frmaskAgeForm-disagree',
  4779. true
  4780. );
  4781. }
  4782. if (hostSet("Check_leteckaposta_dot_cz_links", false))
  4783. {
  4784. addFileHost(
  4785. "leteckaposta.cz|sharegadget.com",
  4786. "(?:leteckaposta\\.cz|sharegadget\\.com)\/\\d+",
  4787. '<body onload="">',
  4788. 'neexistuje|not exist',
  4789. 'optional--'
  4790. );
  4791. }
  4792.  
  4793. if (hostSet("Check_zippyshare_dot_com_links", false))
  4794. {
  4795. addFileHost(
  4796. "zippyshare.com",
  4797. "(?:www\\d+\.|)zippyshare\.com\/(?:v\/\\d+\/file\.html|view\\.jsp\\?)",
  4798. 'download.png|Download Now|images/download_small.png|dlbutton"',
  4799. 'not exist',
  4800. 'optional--'
  4801. );
  4802. }
  4803.  
  4804. if (hostSet("Check_speedshare_dot_org_links", false))
  4805. {
  4806. addFileHost(
  4807. "speedshare.org",
  4808. "speedshare\.org\/.+",
  4809. 'id="downloadbtn"',
  4810. 'Error',
  4811. 'optional--'
  4812. );
  4813. }
  4814.  
  4815. if (hostSet("Check_mediafire_dot_com_links", false))
  4816. {
  4817. addFileHost(
  4818. "mediafire.com",
  4819. "mediafire\.com\/",
  4820. 'download_file_title"|<a class="btn alt download|<div class="filepreview|<div class="fileName">|id="PLAY_downloadButton',
  4821. '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>',
  4822. 'optional--'
  4823. );
  4824. }
  4825.  
  4826. if (hostSet("Check_ulozisko_dot_sk_links", false))
  4827. {
  4828. addFileHost(
  4829. "ulozisko.sk",
  4830. "ulozisko\.sk\/",
  4831. 'Detaily',
  4832. 'neexistuje',
  4833. 'optional--'
  4834. );
  4835. }
  4836.  
  4837. if (hostSet("Check_speedfile_dot_cz_links", false))
  4838. {
  4839. addFileHost(
  4840. "speedfile.cz",
  4841. "speedfile\.cz\/(?:cs\/|en\/|sk\/|)\\d+\/",
  4842. 'Stáhnout|<span>Download',
  4843. 'error|soubor byl odst|This file was deleted',
  4844. 'optional--'
  4845. );
  4846. }
  4847.  
  4848. if (hostSet("Check_upnito_dot_sk_links", false))
  4849. {
  4850. addFileHost(
  4851. "upnito.sk",
  4852. "(?:dl.\\.|)upnito\\.sk\/(download|subor|file)",
  4853. 'download.php',
  4854. 'notfound|upload-suborov.php"',
  4855. 'optional--'
  4856. );
  4857. }
  4858.  
  4859. if (hostSet("Check_dataport_dot_cz_links", false))
  4860. {
  4861. addFileHost(
  4862. "dataport.cz",
  4863. "dataport\.cz\/file\/",
  4864. 'premium_download">',
  4865. '="error">',
  4866. 'optional--',
  4867. true
  4868. );
  4869. }
  4870.  
  4871. if (hostSet("Check_gigaup_dot_fr_links", false))
  4872. {
  4873. addFileHost(
  4874. "gigaup.fr",
  4875. "gigaup\\.fr\/\\?g=\\w+",
  4876. 'Taille de',
  4877. 'Vous ne pouvez|existe pas',
  4878. 'optional--'
  4879. );
  4880. }
  4881. if (hostSet("Check_myupload_dot_dk_links", false))
  4882. {
  4883. addFileHost(
  4884. "myupload.dk",
  4885. "myupload\\.dk\/showfile\/\\w+",
  4886. '<td class="downloadTblRight"><a class="downloadLink"',
  4887. '<div id="flash_upload_progress"|<td class="downloadTblRight">File has been removed',
  4888. 'optional--'
  4889. );
  4890. }
  4891. if (hostSet("Check_filebeam_dot_com_links", false))
  4892. {
  4893. addFileHost(
  4894. "filebeam.com|fbe.am",
  4895. "(?:filebeam\\.com|fbe\\.am)\/\\w+",
  4896. '<center>File Download Area</center>',
  4897. '<center>Error:</center>',
  4898. 'optional--'
  4899. );
  4900. }
  4901. if (hostSet("Check_upsto_dot_re_links", false))
  4902. {
  4903. addFileHost(
  4904. "upsto.re|upstore.net",
  4905. "(?:upsto\\.re|upstore.net)\/\\w+",
  4906. '<ul class="features minus">|Download files from folder',
  4907. '<span class="error">',
  4908. 'optional--'
  4909. );
  4910. }
  4911. if (hostSet("Check_adrive_dot_com_links", false))
  4912. {
  4913. addFileHost(
  4914. "adrive.com",
  4915. "adrive\\.com\/public\/\\w+",
  4916. 'download should start',
  4917. 'no longer available publicly',
  4918. 'optional--'
  4919. );
  4920. }
  4921. if (hostSet("Check_filebulk_dot_com_links", false))
  4922. {
  4923. addFileHost(
  4924. "filebulk.com",
  4925. "filebulk\\.com\/\\w+",
  4926. '<span id="countdown_str"',
  4927. 'File Not Available',
  4928. 'You can download files up to 100 Mb only.'
  4929. );
  4930. }
  4931. if (hostSet("Check_rnbload_dot_com_links", false))
  4932. {
  4933. addFileHost(
  4934. "rnbload.com",
  4935. "rnbload\\.com\/(file\/\\d+\/|download\\.php\\?id=)",
  4936. '<div id="cubeDiv"',
  4937. 'Your requested file is not found',
  4938. 'optional--'
  4939. );
  4940. }
  4941. if (hostSet("Check_ukfilehost_dot_com_links", false))
  4942. {
  4943. addFileHost(
  4944. "ukfilehost.com",
  4945. "ukfilehost\\.com\/files\/get\/\\w+",
  4946. 'optional--',
  4947. 'The file you have requested cannot be found',
  4948. 'optional--'
  4949. );
  4950. }
  4951. if (hostSet("Check_zalil_dot_ru_links", false))
  4952. {
  4953. addFileHost(
  4954. "zalil.ru",
  4955. "zalil\\.ru\/\\d+",
  4956. 'optional--',
  4957. 'Файл не найден',
  4958. 'optional--'
  4959. );
  4960. }
  4961. if (hostSet("Check_uploads_dot_bizhat_dot_com_links", false))
  4962. {
  4963. addFileHost(
  4964. "bizhat.com",
  4965. "uploads\\.bizhat\\.com\/file\/\\d+",
  4966. 'div id="dl">',
  4967. 'File not found',
  4968. 'optional--'
  4969. );
  4970. }
  4971. if (hostSet("Check_mega_dash_myfile_dot_com_links", false))
  4972. {
  4973. addFileHost(
  4974. "mega-myfile.com",
  4975. "mega\\-myfile\\.com\/file\/\\d+\/\\w+",
  4976. '<b>File name:</b>',
  4977. 'Your requested file is not found',
  4978. 'optional--'
  4979. );
  4980. }
  4981. if (hostSet("Check_speedy_dash_share_dot_com_links", false))
  4982. {
  4983. addFileHost(
  4984. "speedy-share.com",
  4985. "speedy\\-share\\.com\/\\w+",
  4986. 'File Download',
  4987. 'No such file',
  4988. 'optional--'
  4989. );
  4990. }
  4991. if (hostSet("Check_filebox_dot_ro_links", false))
  4992. {
  4993. addFileHost(
  4994. "filebox.ro|fbx.ro",
  4995. "(?:filebox|fbx)\\.ro\/(?:download\\.php\\?key\\=)?\\w+",
  4996. 'fisierul trebuie sa astepti',
  4997. 'downloadezi a expirat',
  4998. 'optional--'
  4999. );
  5000. }
  5001. if (hostSet("Check_100shared_dot_com_links", false)) //checkfiles.html giving false positives
  5002. {
  5003. addFileHost(
  5004. "100shared.com",
  5005. "100shared\\.com\/\\w+",
  5006. '<h2>Download File',
  5007. 'No such file',
  5008. 'optional--'
  5009. );
  5010. }
  5011. if (hostSet("Check_mixturecloud_dot_com_links", false))
  5012. {
  5013. addFileHost(
  5014. "mixturecloud.com|mixturefile.com|mixturevideo.com",
  5015. "mixture(?:cloud|file|video)\\.com\/(?:download\\=|media\/(?:download\/)?)\\w+",
  5016. /download_(?:free|unlimited)">|btn icon i_cloud_download gray|icon\-white"><\/i> Download/,
  5017. 'File not found|class="err"|msgerr alert alert-error text-center">',
  5018. 'optional--'
  5019. );
  5020. }
  5021. if (hostSet("Check_yourupload_dot_com_links", false))
  5022. {
  5023. addFileHost(
  5024. "yourupload.com",
  5025. "yourupload\\.com\/\\w+",
  5026. '<label>Download',
  5027. '404',
  5028. 'optional--'
  5029. );
  5030. }
  5031. if (hostSet("Check_fileneo_dot_com_links", false))
  5032. {
  5033. addFileHost(
  5034. "fileneo.com",
  5035. "fileneo\\.com\/\\w+",
  5036. 'Download File</h3>',
  5037. 'File not found',
  5038. 'optional--'
  5039. );
  5040. }
  5041. if (hostSet("Check_fliiby_dot_com_links", false))
  5042. {
  5043. addFileHost(
  5044. "fliiby.com",
  5045. "fliiby\\.com\/file\/\\d+\/\\w+",
  5046. 'file_panel">',
  5047. 'Not Found</span>|error_container">|<h1>Error 410 / Gone</h1>',
  5048. 'optional--'
  5049. );
  5050. }
  5051. if (hostSet("Check_filesmall_dot_com_links", false))
  5052. {
  5053. addFileHost(
  5054. 'filesmall.com',
  5055. "filesmall\\.com\/\\w+\/download\\.html",
  5056. 'value="Download"',
  5057. 'File Not Found',
  5058. 'optional--'
  5059. );
  5060. }
  5061. if (hostSet("Check_upload_dot_ee_links", false))
  5062. {
  5063. addFileHost(
  5064. 'upload.ee',
  5065. "upload\\.ee\/files\/\\d+\/\\w+",
  5066. 'id="d_l"',
  5067. 'There is no such file',
  5068. 'optional--'
  5069. );
  5070. }
  5071. if (hostSet("Check_share4web_dot_com_links", false))
  5072. {
  5073. addFileHost(
  5074. 'share4web.com',
  5075. "share4web\\.com\/get\/\\w+",
  5076. 'btn_red">',
  5077. 'Page Not Found|File not found',
  5078. 'optional--'
  5079. );
  5080. }
  5081. if (hostSet("Check_novamov_dot_com_links", false))
  5082. {
  5083. addFileHost(
  5084. 'novamov.com',
  5085. "novamov\\.com\/\\w+",
  5086. 'Download file|>Download this video<',
  5087. 'File not found|The video file was removed',
  5088. 'optional--'
  5089. );
  5090. }
  5091. if (hostSet("Check_skydrive_dot_live_dot_com_links", false))
  5092. {
  5093. addFileHost(
  5094. 'live.com|sdrv.ms',
  5095. "(?:skydrive\\.live\\.com|sdrv\\.ms)\/\\w+",
  5096. 'Download file',
  5097. 'no longer available</h1>',
  5098. 'optional--'
  5099. );
  5100. }
  5101. if (hostSet("Check_yourfiles_dot_to_links", false))
  5102. {
  5103. addFileHost(
  5104. 'yourfiles.to',
  5105. "yourfiles\\.to\/\\?d=\\w+",
  5106. 'Download-Link: </strong>',
  5107. 'Die angefragte Datei wurde nicht gefunden',
  5108. 'optional--'
  5109. );
  5110. }
  5111. if (hostSet("Check_filedropper_dot_com_links", false))
  5112. {
  5113. addFileHost(
  5114. 'filedropper.com|filesavr.com',
  5115. "(?:filedropper|filesavr)\\.com\/\\w+",
  5116. 'download"',
  5117. 'steps.png',
  5118. 'optional--',
  5119. true);
  5120. }
  5121. if (hostSet("Check_filehost_dot_ro_links", false))
  5122. {
  5123. addFileHost(
  5124. 'filehost.ro',
  5125. "filehost\\.ro\/\\d+",
  5126. 'Apasati aici pentru a porni download-ul"',
  5127. 'Acest fisier nu exista in baza de date',
  5128. 'optional--'
  5129. );
  5130. }
  5131. if (hostSet("Check_mijnbestand_dot_nl_links", false))
  5132. {
  5133. addFileHost(
  5134. 'mijnbestand.nl',
  5135. "mijnbestand\\.nl\/Bestand\\-\\w+",
  5136. 'downloadfrm"',
  5137. 'stappen">',
  5138. 'optional--'
  5139. );
  5140. }
  5141. if (hostSet("Check_ultrashare_dot_net_links", false))
  5142. {
  5143. addFileHost(
  5144. 'ultrashare.net',
  5145. "ultrashare\\.net\/hosting\/fl\/\\w+",
  5146. 'downloadbutton">',
  5147. 'error">',
  5148. 'optional--'
  5149. );
  5150. }
  5151. if (hostSet("Check_dosya_dot_tc_links", false))
  5152. {
  5153. addFileHost(
  5154. 'dosya.tc',
  5155. "dosya\\.tc\/server\\d*\/\\w+",
  5156. 'id="dl"',
  5157. 'Dosya bulunamad',
  5158. 'optional--'
  5159. );
  5160. }
  5161. if (hostSet("Check_exfile_dot_ru_links", false))
  5162. {
  5163. addFileHost(
  5164. 'exfile.ru',
  5165. "exfile\\.ru\/\\d+",
  5166. 'id="link"><a href="/download/',
  5167. 'class="align_left"><p class="red"',
  5168. 'optional--'
  5169. );
  5170. }
  5171. if (hostSet("Check_fileshare_dot_ro_links", false))
  5172. {
  5173. addFileHost(
  5174. 'fileshare.ro',
  5175. "fileshare\\.ro\/\\w+",
  5176. 'DOWNLOAD NOW',
  5177. 'Acest fisier nu exista.',
  5178. 'optional--'
  5179. );
  5180. }
  5181. if (hostSet("Check_fshare_dot_vn_links", false))
  5182. {
  5183. addFileHost(
  5184. 'fshare.vn',
  5185. "fshare\\.vn\/file\/\\w+",
  5186. 'optional--',
  5187. 'Liên kết bạn chọn không tồn tại trên hệ thống Fshare',
  5188. 'optional--'
  5189. );
  5190. }
  5191. if (hostSet("Check_wikifortio_dot_com_links", false))
  5192. {
  5193. addFileHost(
  5194. 'wikifortio.com',
  5195. "wikifortio\\.com\/\\w+",
  5196. 'screenbutton">',
  5197. "not found on node|doesn't exist or has expired and is no longer available",
  5198. 'optional--'
  5199. );
  5200. }
  5201. if (hostSet("Check_wyslijto_dot_pl_links", false))
  5202. {
  5203. addFileHost(
  5204. 'wyslijto.pl',
  5205. "wyslijto\\.pl\/(?:files\/download|plik)\/\\w+",
  5206. 'optional--',
  5207. /zosta. usuni.ty/,
  5208. 'optional--'
  5209. );
  5210. }
  5211. if (hostSet("Check_kiwi6_dot_com_links", false))
  5212. {
  5213. addFileHost(
  5214. 'kiwi6.com',
  5215. "kiwi6\\.com\/file\/\\w+",
  5216. 'download-link"',
  5217. 'Upload not found',
  5218. 'optional--'
  5219. );
  5220. }
  5221. if (hostSet("Check_localhostr_dot_com_links", false))
  5222. {
  5223. addFileHost(
  5224. 'localhostr.com|lh.rs|hostr.co',
  5225. "(?:localhostr\\.com\/file|lh\\.rs|hostr\\.co\/download)\/\\w+",
  5226. 'download-button',
  5227. 'fourohfour">',
  5228. 'optional--'
  5229. );
  5230. }
  5231. if (hostSet("Check_remixshare_dot_com_links", false))
  5232. {
  5233. addFileHost(
  5234. 'remixshare.com',
  5235. "remixshare\\.com\/(?:dl|download)\/\\w+",
  5236. 'linkContainerDiv"',
  5237. 'Sorry, die Datei konnte nicht gefunden werden.|Die angeforderte Datei steht nicht mehr zur Verfügung.',
  5238. 'optional--'
  5239. );
  5240. }
  5241. if (hostSet("Check_hidemyass_dot_com_links", false))
  5242. {
  5243. addFileHost(
  5244. 'hidemyass.com',
  5245. "hidemyass\\.com\/files\/\\w+",
  5246. 'dlbutton"',
  5247. 'genericerrorbox">',
  5248. 'optional--'
  5249. );
  5250. }
  5251. if (hostSet("Check_tinyupload_dot_com_links", false))
  5252. {
  5253. addFileHost(
  5254. 'tinyupload.com',
  5255. "s\\d+\\.tinyupload\\.com\/(?:index\\.php)?\\?file_id=\\d+",
  5256. 'Download file</h3>',
  5257. 'File was deleted from server.',
  5258. 'optional--'
  5259. );
  5260. }
  5261. if (hostSet("Check_gigabase_dot_com_links", false))
  5262. {
  5263. addFileHost(
  5264. 'gigabase.com',
  5265. "gigabase\\.com\/getfile\/\\w+",
  5266. '/img/but_dnld_regular.jpg|gigaBtn std">',
  5267. /<div class="all" id="Page404"|(?:File|Page) Not Found/,
  5268. 'optional--'
  5269. );
  5270. }
  5271. if (hostSet("Check_trainbit_dot_com_links", false))
  5272. {
  5273. addFileHost(
  5274. 'trainbit.com',
  5275. "trainbit\\.com\/files\/\\w+",
  5276. 'download"',
  5277. 'file not found',
  5278. 'optional--'
  5279. );
  5280. }
  5281. if (hostSet("Check_videobam_dot_com_links", false))
  5282. {
  5283. addFileHost(
  5284. 'videobam.com',
  5285. "videobam\\.com\/\\w+",
  5286. 'wrap-video"',
  5287. 'File not found',
  5288. 'optional--'
  5289. );
  5290. }
  5291. if (hostSet("Check_hyperfileshare_dot_com_links", false))
  5292. {
  5293. addFileHost(
  5294. 'hyperfileshare.com',
  5295. "hyperfileshare\\.com\/d\/\\w+",
  5296. '/img/download_btm_site.gif',
  5297. 'Download URL is incorrect or your file has already been deleted!',
  5298. 'optional--'
  5299. );
  5300. }
  5301. if (hostSet("Check_uploads_dot_ws_links", false))
  5302. {
  5303. addFileHost(
  5304. 'uploads.ws|upl.me',
  5305. "(?:uploads\\.ws|upl\\.me)\/\\w+",
  5306. 'downloadFile"',
  5307. 'download does not exist or has been removed',
  5308. 'optional--'
  5309. );
  5310. }
  5311. if (hostSet("Check_cloud_dash_up_dot_be_links", false))
  5312. {
  5313. addFileHost(
  5314. 'cloud-up.be',
  5315. "(?:download\\.)?cloud\\-up\\.be\/download\\.php\\?file=\\w+",
  5316. 'download file',
  5317. 'This file does not exist!',
  5318. 'optional--'
  5319. );
  5320. }
  5321. if (hostSet("Check_uploadc_dot_com_links", false)) //Do not use bulkcheck, false reports
  5322. {
  5323. addFileHost(
  5324. 'uploadc.com|zalaa.com',
  5325. "(?:uploadc|zalaa)\\.com\/\\w+",
  5326. 'Slow access"',
  5327. 'File Not Found|file has been removed',
  5328. 'optional--'
  5329. );
  5330. }
  5331. if (hostSet("Check_1_dash_clickshare_dot_com_links", false))
  5332. {
  5333. addFileHost(
  5334. '1-clickshare.com',
  5335. "1\\-clickshare\\.com\/(?:\\d+|download\\.php\\?file=\\w+)",
  5336. '<div id="dl"',
  5337. 'File not found|Invalid download link',
  5338. 'optional--'
  5339. );
  5340. }
  5341. if (hostSet("Check_fastupload_dot_ro_links", false))
  5342. {
  5343. addFileHost(
  5344. 'fastupload.ro|rol.ro',
  5345. "fastupload\\.(?:rol\\.)?ro\/\\w+",
  5346. 'isAliveRegex',
  5347. 'FiÅŸierele nu mai sunt active!',
  5348. 'optional--'
  5349. );
  5350. }
  5351. if (hostSet("Check_howfile_dot_com_links", false))
  5352. {
  5353. addFileHost(
  5354. 'howfile.com',
  5355. "howfile\\.com\/file\/\\w+",
  5356. 'btn1"',
  5357. 'File not found',
  5358. 'optional--'
  5359. );
  5360. }
  5361. if (hostSet("Check_file4go_dot_com_links", false))
  5362. {
  5363. addFileHost(
  5364. 'file4go.com',
  5365. "file4go\\.com\/d\/\\w+",
  5366. 'gerarlinkdownload"',
  5367. '<b>DMCA</b>|FILE REMOVED DMCA',
  5368. 'optional--'
  5369. );
  5370. }
  5371. if (hostSet("Check_hostinoo_dot_com_links", false)) //checkfiles.html not working
  5372. {
  5373. addFileHost(
  5374. 'hostinoo.com',
  5375. "hostinoo\\.com\/\\w+",
  5376. 'btn_download',
  5377. 'File Not Found',
  5378. 'optional--'
  5379. );
  5380. }
  5381. if (hostSet("Check_sendfile_dot_su_links", false))
  5382. {
  5383. addFileHost(
  5384. 'sendfile.su',
  5385. "sendfile\\.su\/\\w+",
  5386. 'download_click"',
  5387. 'Файл не найден',
  5388. 'optional--'
  5389. );
  5390. }
  5391. if (hostSet("Check_usaupload_dot_net_links", false))
  5392. {
  5393. addFileHost(
  5394. 'usaupload.net',
  5395. "usaupload\\.net\/d\/\\w+",
  5396. 'Download">',
  5397. 'is not available',
  5398. 'In this moment you can`t download this file, please try again in few minutes, we working on this server, SORRY!'
  5399. );
  5400. }
  5401. if (hostSet("Check_anonfiles_dot_com_links", false))
  5402. {
  5403. addFileHost(
  5404. 'anonfiles.com',
  5405. "anonfiles\\.com\/file\/\\w+",
  5406. 'download_button"',
  5407. 'File not found',
  5408. 'optional--'
  5409. );
  5410. }
  5411. if (hostSet("Check_divxstage_dot_eu_links", false))
  5412. {
  5413. addFileHost(
  5414. 'divxstage.eu|divxstage.net',
  5415. "divxstage\\.(?:eu|net)\/video\/\\w+",
  5416. '>Download the video<',
  5417. '>This file no longer exists on our servers.<',
  5418. 'optional--'
  5419. );
  5420. }
  5421. if (hostSet("Check_herosh_dot_com_links", false))
  5422. {
  5423. addFileHost(
  5424. 'herosh.com',
  5425. "herosh\\.com\/download\/\\d+\/\\w+",
  5426. 'green">Download',
  5427. 'file not found',
  5428. 'optional--'
  5429. );
  5430. }
  5431. if (hostSet("Check_m5zn_dot_com_links", false))
  5432. {
  5433. addFileHost(
  5434. 'm5zn.com',
  5435. "m5zn\\.com\/d\/\\?\\d+",
  5436. 'free_account">',
  5437. 'file not found',
  5438. 'optional--'
  5439. );
  5440. }
  5441. if (hostSet("Check_girlshare_dot_ro_links", false))
  5442. {
  5443. addFileHost(
  5444. 'girlshare.ro',
  5445. "girlshare\\.ro\/\\w+",
  5446. 'download-button.gif',
  5447. 'Acest fisier nu exista.',
  5448. 'optional--'
  5449. );
  5450. }
  5451. if (hostSet("Check_bin_dot_ge_links", false))
  5452. {
  5453. addFileHost(
  5454. 'bin.ge',
  5455. "bin\\.ge\/dl\/\\w+",
  5456. 'captchacode">',
  5457. 'No file found',
  5458. 'optional--'
  5459. );
  5460. }
  5461. if (hostSet("Check_nowvideo_dot_eu_links", false))
  5462. {
  5463. addFileHost(
  5464. 'nowvideo.eu|nowvideo.sx',
  5465. "nowvideo\\.(?:sx|eu)\/video\/\\w+",
  5466. '>Download this video!<',
  5467. '>This file no longer exists on our servers',
  5468. 'optional--'
  5469. );
  5470. }
  5471. if (hostSet("Check_shareplace_dot_com_links", false))
  5472. {
  5473. addFileHost(
  5474. 'shareplace.com',
  5475. "shareplace\\.com\/(?:index1\\.php\\?a=|\\?)",
  5476. 'wait">',
  5477. 'Your requested file is not found',
  5478. 'optional--'
  5479. );
  5480. }
  5481. if (hostSet("Check_terafiles_dot_net_links", false))
  5482. {
  5483. addFileHost(
  5484. 'terafiles.net',
  5485. "terafiles\\.net\/v\\-\\d+",
  5486. 'download file',
  5487. 'Le fichier que vous souhaitez télécharger n\'est plus disponible sur nos serveurs.',
  5488. 'optional--'
  5489. );
  5490. }
  5491. if (hostSet("Check_uploadmb_dot_com_links", false))
  5492. {
  5493. addFileHost(
  5494. 'uploadmb.com',
  5495. "uploadmb\\.com\/dw\\.php\\?id=\\w+",
  5496. 'wait">',
  5497. 'The file you are requesting to download is not available',
  5498. 'optional--'
  5499. );
  5500. }
  5501. if (hostSet("Check_upload_dash_il_dot_com_links", false))
  5502. {
  5503. addFileHost(
  5504. 'upload-il.com|upload-il.net|uploadilcloud.com|filez.bz|przeslij.net|pir.co.il|directil.com',
  5505. "(?:upload\\-il\\.(?:com|net)|uploadilcloud\\.com|filez\\.bz|przeslij\\.net|pir\\.co\\.il|directil\\.com)\/(?:en|he|ar|ru|view|)\/?\\w+",
  5506. 'captchaUl">',
  5507. /\\\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./,
  5508. 'optional--'
  5509. );
  5510. }
  5511. if (hostSet("Check_bayfiles_dot_net_links", false))
  5512. {
  5513. addFileHost(
  5514. 'bayfiles.net',
  5515. "bayfiles\\.net\/file\/\\w+\/\\w+",
  5516. 'download-header">',
  5517. 'class="not-found">',
  5518. 'optional--'
  5519. );
  5520. }
  5521. if (hostSet("Check_bitupload_dot_com_links", false))
  5522. {
  5523. addFileHost(
  5524. 'bitupload.com',
  5525. "bitupload\\.com\/\\w+",
  5526. 'limited">',
  5527. 'two-col">',
  5528. 'optional--'
  5529. );
  5530. }
  5531. if (hostSet("Check_ravishare_dot_com_links", false))
  5532. {
  5533. addFileHost(
  5534. 'ravishare.com',
  5535. "ravishare\\.com\/\\w+",
  5536. 'Free Download">',
  5537. '>File Not Found<',
  5538. 'optional--'
  5539. );
  5540. }
  5541. if (hostSet("Check_zixshare_dot_com_links", false))
  5542. {
  5543. addFileHost(
  5544. 'zixshare.com',
  5545. "zixshare\\.com\/files\/\\w+",
  5546. 'download_caption">',
  5547. 'File not found',
  5548. 'optional--'
  5549. );
  5550. }
  5551. if (hostSet("Check_promptfile_dot_com_links", false))
  5552. {
  5553. addFileHost(
  5554. 'promptfile.com',
  5555. "promptfile\\.com\/l\/[a-zA-Z0-9-]",
  5556. /<button type="submit" class="gray_btn">Continue to File<\/button>|<a href=".+" class="green_btn download_btn">Download File<\/a>/,
  5557. /\s+<div id="not_found_msg"/,
  5558. 'optional--'
  5559. );
  5560. }
  5561. if (hostSet("Check_filebar_dot_kz_links", false))
  5562. {
  5563. addFileHost(
  5564. 'filebar.kz',
  5565. "filebar\\.kz\/files\/\\d+",
  5566. 'I don\'t think this is a filehost tbh but meh...',
  5567. 'Ошибка 404. Страница не найдена!',
  5568. 'optional--'
  5569. );
  5570. }
  5571. if (hostSet("Check_yourfilelink_dot_com_links", false))
  5572. {
  5573. addFileHost(
  5574. 'yourfilelink.com',
  5575. "yourfilelink\\.com\/get\\.php\\?fid=\\d+",
  5576. 'optional--',
  5577. 'File not found.</div>',
  5578. 'optional--'
  5579. );
  5580. }
  5581. if (hostSet("Check_1file_dot_cc_links", false))
  5582. {
  5583. addFileHost(
  5584. '1f.cc|1file.cc',
  5585. "1f(?:ile)?\\.cc\/\\w+",
  5586. 'download-btn">',
  5587. '>File Not Found<',
  5588. 'optional--'
  5589. );
  5590. }
  5591. if (hostSet("Check_qshare_dot_com_links", false))
  5592. {
  5593. addFileHost(
  5594. 'quickshare.com|qshare.com',
  5595. "(?:quickshare|qshare)\\.com\/get\/\\d+",
  5596. '>Free<',
  5597. 'File not found',
  5598. 'optional--'
  5599. );
  5600. }
  5601. if (hostSet("Check_filewist_dot_com_links", false))
  5602. {
  5603. addFileHost(
  5604. 'filewist.com',
  5605. "filewist\\.com\/\\w+",
  5606. 'link btn-free"',
  5607. '>File not found<',
  5608. 'optional--'
  5609. );
  5610. }
  5611. if (hostSet("Check_airupload_dot_com_links", false))
  5612. {
  5613. addFileHost(
  5614. 'airupload.com',
  5615. "airupload\\.com\/file\/i\/\\w+",
  5616. 'download" value="Slow download',
  5617. '<span class="glyph attention"></span>File was removed',
  5618. 'optional--'
  5619. );
  5620. }
  5621. if (hostSet("Check_dropbox_dot_com_links", false)) //shared links
  5622. {
  5623. addFileHost(
  5624. 'dropbox.com',
  5625. "dropbox\\.com\/sh?\/\\w+",
  5626. 'default_content_download_button" class="freshbutton-blue">',
  5627. '>Nothing Here<|>Error (404)<',
  5628. '>Error \\(509\\)<|Error (509)'
  5629. );
  5630. }
  5631. if (hostSet("Check_wikisend_dot_com_links", false))
  5632. {
  5633. addFileHost(
  5634. 'wikisend.com',
  5635. "wikisend\\.com\/download\/\\d+",
  5636. 'button_download.gif" alt="Download file',
  5637. 'File not found',
  5638. 'optional--'
  5639. );
  5640. }
  5641. if (hostSet("Check_webfilehost_dot_com_links", false))
  5642. {
  5643. addFileHost(
  5644. 'webfilehost.com',
  5645. "webfilehost\\.com\/\\?mode=viewupload&id=\\d+",
  5646. 'linkDownload">',
  5647. 'File not found',
  5648. 'optional--'
  5649. );
  5650. }
  5651. if (hostSet("Check_wrzuc_dot_to_links", false))
  5652. {
  5653. addFileHost(
  5654. 'wrzuc.to',
  5655. "wrzuc.to\/\\w+",
  5656. 'Download file">',
  5657. 'został usunięty przez użytkownika.',
  5658. 'optional--'
  5659. );
  5660. }
  5661. if (hostSet("Check_safecloud_dot_so_links", false))
  5662. {
  5663. addFileHost(
  5664. 'safecloud.so',
  5665. "safecloud\\.so\/\\d+\/.+?",
  5666. 'download">',
  5667. '>File not found<',
  5668. 'optional--'
  5669. );
  5670. }
  5671. if (hostSet("Check_myuplbox_dot_com_links", false))
  5672. {
  5673. addFileHost(
  5674. 'myuplbox.com',
  5675. "myuplbox\\.com\/file\/download\/\\d+",
  5676. 'dwl_button corner-all">Click',
  5677. 'deleted_file">File Not Found',
  5678. 'optional--'
  5679. );
  5680. }
  5681. if (hostSet("Check_filesflash_dot_com_links", false))
  5682. {
  5683. addFileHost(
  5684. 'filesflash.com|filesflash.net',
  5685. "filesflash\\.(?:com|net)\/\\w+",
  5686. 'freedownload.php">',
  5687. />That file (?:was deleted|is not available)/,
  5688. 'optional--'
  5689. );
  5690. }
  5691. if (hostSet("Check_demo_dot_ovh_dot_eu_links", false))
  5692. {
  5693. addFileHost(
  5694. 'ovh.eu',
  5695. "demo\\.ovh\\.eu\/(?:en|de)\/\\w+",
  5696. 'download.gif"',
  5697. 'p_point">',
  5698. 'optional--'
  5699. );
  5700. }
  5701. if (hostSet("Check_dwn_dot_so_links", false))
  5702. {
  5703. addFileHost(
  5704. 'dwn.so|dwnshare.pl',
  5705. "(?:dwn\\.so|dwnshare.pl)\/show\\-file\/\\w+",
  5706. '$(\'.link_download\').click(function()',
  5707. '<div id="main_container',
  5708. 'optional--'
  5709. );
  5710. }
  5711. if (hostSet("Check_sharephile_dot_com_links", false))
  5712. {
  5713. addFileHost(
  5714. 'sharephile.com',
  5715. "sharephile\\.com\/\\w+",
  5716. '<h1 class="download-file">',
  5717. />\\\u0424\\\u0430\\\u0439\\\u043B \\\u043D\\\u0435 \\\u043D\\\u0430\\\u0439\\\u0434\\\u0435\\\u043D./,
  5718. 'optional--'
  5719. );
  5720. }
  5721. if (hostSet("Check_maherfile_dot_com_links", false))
  5722. {
  5723. addFileHost(
  5724. 'maherfire.com',
  5725. "maherfire\\.com\/\\?d=\\w+",
  5726. '<input type="button" onclick="startDownload();"',
  5727. '>Your requested file is not found',
  5728. 'optional--'
  5729. );
  5730. }
  5731. if (hostSet("Check_droidbin_dot_com_links", false))
  5732. {
  5733. addFileHost(
  5734. 'droidbin.com|apkhosting.com',
  5735. "(?:droidbin\\.com|apkhosting.com)\/\\w+",
  5736. 'optional--',
  5737. '>That\'s a 404<|<li>File has been removed by the site administrator.</li>',
  5738. 'optional--'
  5739. );
  5740. }
  5741. if (hostSet("Check_d_dash_h_dot_st_links", false))
  5742. {
  5743. addFileHost(
  5744. 'd-h.st',
  5745. "d\\-h\\.st\/\\w+",
  5746. '>File Information<\/h2>',
  5747. '>File Not Found<',
  5748. 'optional--'
  5749. );
  5750. }
  5751. if (hostSet("Check_jumbofiles_dot_com_links", false))
  5752. {
  5753. addFileHost(
  5754. 'jumbofiles.com',
  5755. "jumbofiles\\.com\/\\w+",
  5756. '<h3>Download File',
  5757. />File\n*\s*Not Found/,
  5758. 'optional--'
  5759. );
  5760. }
  5761. if (hostSet("Check_cloudstor_dot_es_links", false))
  5762. {
  5763. addFileHost(
  5764. 'cloudstor.es',
  5765. "cloudstor\\.es\/f\/\\w+",
  5766. '<div id="btn_download"',
  5767. '>File not found<',
  5768. 'optional--'
  5769. );
  5770. }
  5771. if (hostSet("Check_moevideo_dot_net_links", false))
  5772. {
  5773. addFileHost(
  5774. 'moevideo.net',
  5775. "moevideo\\.net\/video\/\\d+\\.\\w+",
  5776. />Download\s*video</,
  5777. '>Video not found<',
  5778. 'optional--'
  5779. );
  5780. }
  5781. if (hostSet("Check_dizzcloud_dot_com_links", false))
  5782. {
  5783. addFileHost(
  5784. 'dizzcloud.com',
  5785. "dizzcloud\\.com\/(?:file|dl)?\/?\\w+",
  5786. /<div\s+id="download-counter">/,
  5787. '<div class="font-404-1">',
  5788. '>File is temporary unavailable<'
  5789. );
  5790. }
  5791. if (hostSet("Check_shared_dot_com_links", false))
  5792. {
  5793. addFileHost(
  5794. 'shared.com',
  5795. "shared\\.com\/\\w+",
  5796. /<div class="attachment\-icon">\n\s*<a href="https:\/\/dl\.shared\.com\/\w+/,
  5797. 'optional--',
  5798. 'optional--'
  5799. );
  5800. }
  5801. if (hostSet("Check_filetrip_dot_net_links", false))
  5802. {
  5803. addFileHost(
  5804. 'filetrip.net',
  5805. "filetrip\\.net\/dl\\?\\w+",
  5806. '<input type="submit" name="download" value="Download"|<i>Your download will be ready in a second...</i>',
  5807. '>Sorry, the file you requested does not exist.',
  5808. 'optional--'
  5809. );
  5810. }
  5811. if (hostSet("Check_filepi_dot_com_links", false))
  5812. {
  5813. addFileHost(
  5814. 'filepi.com',
  5815. "filepi\\.com\/\\w+",
  5816. '<button class="submit" id="button_start"',
  5817. '<div id="big_title">File not found or deleted :(',
  5818. 'optional--'
  5819. );
  5820. }
  5821. if (hostSet("Check_2downloadz_dot_com_links", false))
  5822. {
  5823. addFileHost(
  5824. '2downloadz.com',
  5825. "2downloadz\\.com\/\\w+",
  5826. '<div title="Slow Download"',
  5827. '>File not found<',
  5828. 'optional--'
  5829. );
  5830. }
  5831. if (hostSet("Check_qfpost_dot_com_links", false))
  5832. {
  5833. addFileHost(
  5834. 'qfpost.com',
  5835. "qfpost\\.com\/file\/d\\?g=\\w+",
  5836. '<input src="/i/download2.png"',
  5837. '>File not found<',
  5838. 'optional--'
  5839. );
  5840. }
  5841. if (hostSet("Check_superupload_dot_com_links", false))
  5842. {
  5843. addFileHost(
  5844. 'superupload.com',
  5845. "superupload\\.com\/(?:\\?|files\/)\\w+",
  5846. '<span id="regularspeed" class="speedt">',
  5847. '>DUNNO<',
  5848. 'optional--'
  5849. );
  5850. }
  5851. if (hostSet("Check_tropicshare_dot_com_links", false))
  5852. {
  5853. addFileHost(
  5854. 'tropicshare.com',
  5855. "tropicshare\\.com\/files\/\\d+",
  5856. '"free-download">FREE<br/>',
  5857. '>FNF<',
  5858. 'optional--'
  5859. );
  5860. }
  5861. if (hostSet("Check_filemonkey_dot_in_links", false))
  5862. {
  5863. addFileHost(
  5864. 'filemonkey.in',
  5865. "filemonkey\\.in\/file\/\\w+",
  5866. '<span class="waitseconds">30</span>',
  5867. '>This file has not been found<',
  5868. 'optional--'
  5869. );
  5870. }
  5871. if (hostSet("Check_mystore_dot_to_links", false))
  5872. {
  5873. addFileHost(
  5874. 'mystore.to',
  5875. "mystore\\.to\/dl\/\\w+",
  5876. /<button wert="\w+">Download File</,
  5877. '>file not found<', //?
  5878. 'optional--'
  5879. );
  5880. }
  5881. if (hostSet("Check_putcker_dot_com_links", false))
  5882. {
  5883. addFileHost(
  5884. 'putcker.com',
  5885. "putcker\\.com\/.+",
  5886. '<div class="downloadfree">',
  5887. 'div_file"',
  5888. 'optional--'
  5889. );
  5890. }
  5891. if (hostSet("Check_turtleshare_dot_com_links", false))
  5892. {
  5893. addFileHost(
  5894. 'turtleshare.com',
  5895. "turtleshare\\.com\/download\/\\w+",
  5896. /<div style=".+" id="download_link">Preparing Download/,
  5897. 'We do not know this file.',
  5898. 'optional--'
  5899. );
  5900. }
  5901. if (hostSet("Check_flashx_dot_tv_links", false))
  5902. {
  5903. addFileHost(
  5904. 'flashx.tv',
  5905. "flashx\\.tv\/video\/\\w+",
  5906. /<iframe width="\d+" height="\d+" src="http:\/\/play\.flashx\.tv\/player\/embed\.php/,
  5907. '>File not found<', //?
  5908. 'optional--'
  5909. );
  5910. }
  5911. if (hostSet("Check_nosupload_dot_com_links", false))
  5912. {
  5913. addFileHost(
  5914. "nosupload.com",
  5915. "nosupload\\.com\/(?:\\?d=)?\\w+",
  5916. 'op" value="download',
  5917. />(?:File Not Found|The file was removed by administrator)</,
  5918. 'optional--',
  5919. true
  5920. );
  5921. }
  5922. if (hostSet("Check_fileim_dot_com_links", false))
  5923. {
  5924. addFileHost(
  5925. 'fileim.com',
  5926. "fileim\\.com\/file\/\\w+",
  5927. '<a id="freedown"',
  5928. '>Not Found<',
  5929. 'optional--'
  5930. );
  5931. }
  5932. if (hostSet("Check_socifiles_dot_com_links", false))
  5933. {
  5934. addFileHost(
  5935. 'socifiles.com',
  5936. "socifiles\\.com\/d\/\\w+",
  5937. '<h1 class="file-link"',
  5938. 'something something darkside', //?
  5939. 'optional--'
  5940. );
  5941. }
  5942.  
  5943. if (hostSet("Check_file4u_dot_pl_links", false))
  5944. {
  5945. addFileHost(
  5946. 'file4u.pl',
  5947. 'file4u\\.pl\/download\/\\d+',
  5948. />Zwyk.y U.ytkownik<\/button>/,
  5949. />\s*Plik kt.ry pr.bujesz pobra./,
  5950. 'optional--'
  5951. );
  5952. }
  5953.  
  5954. if (hostSet("Check_kie_dot_nu_links", false))
  5955. {
  5956. addFileHost(
  5957. 'kie.nu',
  5958. 'kie\\.nu\/\\w+',
  5959. '<input type="submit" value="download" id="submit-dl" />',
  5960. '404 NOT FOUND',
  5961. 'optional--'
  5962. );
  5963. }
  5964.  
  5965. if (hostSet("Check_dodane_dot_pl_links", false))
  5966. {
  5967. addFileHost(
  5968. 'dodane.pl',
  5969. 'dodane\\.pl\/file\/\\d+',
  5970. '>Pobierz plik<',
  5971. '<div class="error-page-title">Strona o podanym adresie nie istnieje <',
  5972. 'optional--'
  5973. );
  5974. }
  5975.  
  5976. if (hostSet("Check_file-space_dot_org_links", false))
  5977. {
  5978. addFileHost(
  5979. 'file-space.org',
  5980. 'file\\-space\\.org\/files\/get\/[a-z0-9-]+',
  5981. '<a href="#" onclick="javascript:gotofree();"',
  5982. 'nothingyet',
  5983. 'optional--'
  5984. );
  5985. }
  5986.  
  5987. if (hostSet("Check_sendfile_dot_pl_links", false))
  5988. {
  5989. addFileHost(
  5990. 'sendfile.pl',
  5991. 'sendfile\\.pl\/\\d+',
  5992. '<font color="#0000FF"><b><u>Pobierz</u>',
  5993. '<div class="error">Plik nie istnieje!</div>',
  5994. 'optional--'
  5995. );
  5996. }
  5997.  
  5998. if (hostSet("Check_uploadizer_dot_net_links", false))
  5999. {
  6000. addFileHost(
  6001. 'uploadizer.net',
  6002. 'uploadizer\\.net\/\\?d=\\d+',
  6003. '<input type="button" onclick="startDownload();"',
  6004. 'optional--',
  6005. 'optional--'
  6006. );
  6007. }
  6008.  
  6009. if (hostSet("Check_filesso_dot_com_links", false))
  6010. {
  6011. addFileHost(
  6012. 'filesso.com',
  6013. 'filesso\\.com\/file\/\\w+',
  6014. '<input type="submit" value="Pobierz plik" />',
  6015. 'Plik nie został odnaleziony w bazie danych.',
  6016. 'optional--'
  6017. );
  6018. }
  6019.  
  6020. if (hostSet("Check_twojepliki_dot_eu_links", false))
  6021. {
  6022. addFileHost(
  6023. 'twojepliki.eu',
  6024. 'twojepliki\\.eu\/\\w+',
  6025. '<td><a class="free-btn-4 free-btn" href="/download/free',
  6026. '<h1>File not found. Probably it was deleted.</h1>|<div class="code-404" style="display:none;">404</div>',
  6027. 'optional--'
  6028. );
  6029. }
  6030.  
  6031. if (hostSet("Check_video_dot_tt_links", false))
  6032. {
  6033. addFileHost(
  6034. 'video.tt',
  6035. 'video\\.tt\/video\/\\w+',
  6036. '<div class="video_player" id="videoPlayer">',
  6037. '<font size="5">This video is no longer available</font>',
  6038. 'optional--'
  6039. );
  6040. }
  6041.  
  6042. if (hostSet("Check_hightail_dot_com_links", false))
  6043. {
  6044. addFileHost(
  6045. 'hightail.com|yousendit.com',
  6046. '(?:hightail|yousendit)\\.com\/download\/\\w+',
  6047. '<a id="saveToDesktop" class="btn-save hightailWhite"',
  6048. 'deadregex',
  6049. 'optional--'
  6050. );
  6051. }
  6052.  
  6053. if (hostSet("Check_upgolden_dot_com_links", false))
  6054. {
  6055. addFileHost(
  6056. 'upgolden.com|shallfile.com',
  6057. '(?:upgolden\\.com|shallfile\\.com)\/download\\.php\\?file=\\d{3}',
  6058. '<input type="submit" value="Continue as a Guest"',
  6059. '>File not found<', //?
  6060. 'optional--'
  6061. );
  6062. }
  6063.  
  6064. if (hostSet("Check_poslisoubor_dot_cz_links", false))
  6065. {
  6066. addFileHost(
  6067. 'poslisoubor.cz',
  6068. 'poslisoubor\\.cz\/stahni\/\\w+',
  6069. '<i>kliknutím na název souburu začne stahování</i>',
  6070. />\s*Zadaná zásilka již na/,
  6071. 'optional--'
  6072. );
  6073. }
  6074. if (hostSet("Check_share_dash_byte_dot_net_links", false))
  6075. {
  6076. addFileHost(
  6077. 'share-byte.net',
  6078. 'share-byte\.net\/\\w+',
  6079. '<input type="button" name="downloadFile" ',
  6080. '>File not found<', //?
  6081. 'optional--'
  6082. );
  6083. }
  6084.  
  6085. if (hostSet("Check_datoid_dot_cz_links", false))
  6086. {
  6087. addFileHost(
  6088. 'datoid.cz',
  6089. 'datoid\.cz\/\\w+',
  6090. 'btn-download|class="icon-download-large"',
  6091. 'Stránka nenalezena|error-404|Soubor byl zablokován',
  6092. 'optional--'
  6093. );
  6094. }
  6095. if (hostSet("Check_streamfile_dot_com_links", false))
  6096. {
  6097. addFileHost(
  6098. 'streamfile.com',
  6099. 'streamfile\\.com\/\\w+',
  6100. 'class="btn',
  6101. 'class="green-btn',
  6102. 'optional--'
  6103. );
  6104. }
  6105. if (hostSet("Check_cloudstor_dot_es_links", false))
  6106. {
  6107. addFileHost(
  6108. 'cloudstor.es',
  6109. 'cloudstor\.es\/\\w+',
  6110. '"btn_download"',
  6111. '404: Page Not Found',
  6112. 'optional--'
  6113. );
  6114. }
  6115. if (hostSet("Check_swatupload_dot_com_links", false))
  6116. {
  6117. addFileHost(
  6118. 'swatupload.com',
  6119. "swatupload\.com\/\\w+",
  6120. 'btn_download|google-site-verification',
  6121. 'var rr =|invalid license_key',
  6122. 'optional--'
  6123. );
  6124. }
  6125. if (hostSet("Check_migupload_dot_com_links", false))
  6126. {
  6127. addFileHost(
  6128. 'migupload.com',
  6129. "migupload\.com\/\\w+",
  6130. 'content="1" name="|var download_url',
  6131. 'var rr =|AVOID_IE_BUG',
  6132. 'optional--'
  6133. );
  6134. }
  6135. if (hostSet("Check_partage_dash_facile_dot_com_links", false))
  6136. {
  6137. addFileHost(
  6138. 'partage-facile.com',
  6139. "partage-facile\.com\/\\w+",
  6140. 'class="title"><strong>|colspan="2"',
  6141. 'Page introuvable|class="alert-message',
  6142. 'optional--'
  6143. );
  6144. }
  6145. if (hostSet("Check_google_dot_com_links", false))
  6146. {
  6147. addFileHost(
  6148. 'google.com',
  6149. "google\\.com\/file\/\\w+",
  6150. 'content="!">|color:#2d2d2d',
  6151. '12pt; font-weight:|class="errorMessage"|F0F6FF',
  6152. 'optional--'
  6153. );
  6154. }
  6155. if (hostSet("Check_google_dot_com_links", false))
  6156. {
  6157. addFileHost(
  6158. 'google.com',
  6159. "docs.google.com\/\\w+",
  6160. 'content="!">|color:#2d2d2d',
  6161. '12pt; font-weight:|class="errorMessage"|F0F6FF|Error 404',
  6162. 'optional--'
  6163. );
  6164. }
  6165. if (hostSet("Check_redbunker_dot_net_links", false))
  6166. {
  6167. addFileHost(
  6168. 'redbunker.net',
  6169. "redbunker\.net\/\\w+",
  6170. 'dload.png|rowspan="3">|yep.gif',
  6171. 'CONTENT="RedBunker|#D3D3D3;|color:#d33|AVOID_IE_BUG',
  6172. 'optional--'
  6173. );
  6174. }
  6175. if (hostSet("Check_files_dot_fm_links", false))
  6176. {
  6177. addFileHost(
  6178. 'files.fm',
  6179. "files\.fm\/\\w+",
  6180. 'dl.png"|background-color: transparent',
  6181. 'margin: 40px 40px|background: none;',
  6182. 'optional--'
  6183. );
  6184. }
  6185. if (hostSet("Check_filefactory_dot_com_links", false))
  6186. {
  6187. addFileHost(
  6188. 'filefactory.com',
  6189. "filefactory\\.com\/\\w+",
  6190. '<div id="download-(?:free|Premium Account Required|div id="file_holder"|download.css',
  6191. 'File Removed|Invalid Download Link|File Unavailable|Server Failed|Datei entfernt|This file has been removed',
  6192. 'temporarily overloaded|Server Maintenance'
  6193. );
  6194. }
  6195. if (hostSet("Check_aisfile_dot_com_links", false))
  6196. {
  6197. addFileHost(
  6198. 'aisfile.com',
  6199. "aisfile\.com\/\\w+",
  6200. '<h3 style="text-align:left;">|align=right><b>Filename:',
  6201. '<div style="width:500px;text-align:left;">|File Not Found',
  6202. 'optional--'
  6203. );
  6204. }
  6205. if (hostSet("Check_pan_dot_baidu_dot_com_links", false))
  6206. {
  6207. addFileHost(
  6208. 'pan.baidu.com',
  6209. "pan.baidu\.com\/\\w+",
  6210. 'target="_blank" title=|share-personal-info',
  6211. 'share_notfound.png|background:#f9f9f9',
  6212. 'optional--'
  6213. );
  6214. }
  6215. if (hostSet("Check_yunpan_dot_cn_links", false))
  6216. {
  6217. addFileHost(
  6218. 'yunpan.cn',
  6219. "yunpan\.cn\/\\w+",
  6220. 'class="icon icon-download|è¯·è¾“å…¥è®¿é—®å¯†ç è®¿é—®æ–‡ä»¶ï¼š',
  6221. 'content="360|http://p5.qhimg.com/t01d1c98667df9dc6cc.jpg',
  6222. 'optional--'
  6223. );
  6224. }
  6225. if (hostSet("Check_file_dash_upload_dot_net_links", false))
  6226. {
  6227. addFileHost(
  6228. "file-upload.net",
  6229. "(?:en\\.|)file\\-upload\\.net\/download\\-\\d+\/\\w+",
  6230. 'downbutton.gif|getElementById("downbild")|style.display',
  6231. 'Datei existiert nicht!|File does not exist!|hochgeladene Datei nicht gefunden werden|has not been found',
  6232. 'optional--'
  6233. );
  6234. }
  6235. if (hostSet("Check_dotsemper_dot_com_links", false))
  6236. {
  6237. addFileHost(
  6238. "dotsemper.com",
  6239. "dotsemper\.com\/\\w+",
  6240. 'btn_download',
  6241. 'style="width:500px;text-align:left;">',
  6242. 'optional--'
  6243. );
  6244. }
  6245. if (hostSet("Check_gulfup_dot_com_links", false))
  6246. {
  6247. addFileHost(
  6248. "gulfup.com",
  6249. "gulfup\.com\/",
  6250. '<!-- Downlod template -->|download.gif',
  6251. '<!-- Errors template -->|class="error">|<!-- form upload -->|[ رفع الملفات ]',
  6252. 'optional--'
  6253. );
  6254. }
  6255. if (hostSet("Check_archive_dot_org_links", false))
  6256. {
  6257. addFileHost(
  6258. 'archive.org',
  6259. "archive\.org\/\\w+",
  6260. '/Content-Length: \d{6,}/',
  6261. 'Content-Type: text/html|<title>Internet Archive: Error</title>|does not exist'
  6262. );
  6263. }
  6264. if (hostSet("Check_box_dot_net_links", false))
  6265. {
  6266. addFileHost(
  6267. "box.net",
  6268. "box\.net\/\\w+",
  6269. 'download-file-btn|id="download_button',
  6270. 'BIyMin.png| <div class="error_message',
  6271. 'optional--'
  6272. );
  6273. }
  6274. if (hostSet("Check_box_dot_com_links", false))
  6275. {
  6276. addFileHost(
  6277. "box.com",
  6278. "box\.com\/\\w+",
  6279. 'download-file-btn|id="download_button',
  6280. 'BIyMin.png| <div class="error_message',
  6281. 'optional--'
  6282. );
  6283. }
  6284. if (hostSet("Check_sharerapid_dot_cz_links", false))
  6285. {
  6286. addFileHost(
  6287. "sharerapid.cz",
  6288. "sharerapid\.cz\/\\w+",
  6289. 'value="Stáhnout"|soubor" style|Stahování je povoleno pouze pro přihlášené uživatele',
  6290. 'error_div">|404 - Not Found|id="error">Soubor nenalezen',
  6291. 'optional--'
  6292. );
  6293. }
  6294. if (hostSet("Check_rusfolder_dot_net_links", false))
  6295. {
  6296. addFileHost(
  6297. "rusfolder.net",
  6298. "rusfolder\\.net",
  6299. '"download-step-one-form"|Название: <b>|Файлы|Файлы в папке',
  6300. '"ui-state-error ui-corner-all"|File is removed|File not found|удален|папка не существует',
  6301. 'optional--'
  6302. );
  6303. }
  6304. if (hostSet("Check_rusfolder_dot_com_links", false))
  6305. {
  6306. addFileHost(
  6307. "rusfolder.com",
  6308. "rusfolder\\.com",
  6309. '"download-step-one-form"|Название: <b>|Файлы|Файлы в папке',
  6310. '"ui-state-error ui-corner-all"|File is removed|File not found|удален|папка не существует',
  6311. 'optional--'
  6312. );
  6313. }
  6314. if (hostSet("Check_ifolder_dot_ru_links", false))
  6315. {
  6316. addFileHost(
  6317. "ifolder.ru",
  6318. "ifolder\\.ru",
  6319. '"download-step-one-form"|Название: <b>|Файлы|Файлы в папке',
  6320. '"ui-state-error ui-corner-all"|File is removed|File not found|удален|папка не существует',
  6321. 'optional--'
  6322. );
  6323. }
  6324. if (hostSet("Check_freefilehosting_dot_net_links", false))
  6325. {
  6326. addFileHost(
  6327. "freefilehosting.net",
  6328. "freefilehosting\.net\/\\w+",
  6329. 'Type: cbr|Type: rar|Type: jpg|Type: mkv|Type: avi|Type: mpg|Type: mpeg|Type: zip|Type: wmvType: bmpType: gifType: mp4Type: mp3',
  6330. '175px;" value="http://www.freefilehosting.net/"|Filename: <br>',
  6331. 'optional--'
  6332. );
  6333. }
  6334. if (hostSet("Check_fileshareup_dot_com_links", false))
  6335. {
  6336. addFileHost(
  6337. "fileshareup.com",
  6338. "fileshareup\.com\/\\w+",
  6339. 'downloadPageTable|btn-free|download-timer-seconds',
  6340. '404 Not Found|errorPageStrings|<title>Upload Files',
  6341. 'optional--'
  6342. );
  6343. }
  6344. if (hostSet("Check_datafile_dot_com_links", false))
  6345. {
  6346. addFileHost(
  6347. "datafile.com",
  6348. "datafile\.com\/\\w+",
  6349. 'captchaForm|class="file-size"|Download will start in',
  6350. 'ErrorCode|class="error-msg"',
  6351. 'optional--'
  6352. );
  6353. }
  6354. if (hostSet("Check_k2s_dot_cc_links", false))
  6355. {
  6356. addFileHost(
  6357. "k2s.cc",
  6358. "k2s\.cc\/\\w+",
  6359. 'View File|download-file-info|div class="name fontmyriadpro"|style="color: #9fb143;"',
  6360. 'div class="well2"|error 404|The system is unable to find the requested action|http://keep2share.cc/file/check.html|To avoid damaged files',
  6361. 'please try later'
  6362. );
  6363. }
  6364. if (hostSet("Check_keep2share_dot_cc_links", false))
  6365. {
  6366. addFileHost(
  6367. "keep2share.cc",
  6368. "keep2share\.cc\/\\w+",
  6369. 'View File|download-file-info|div class="name fontmyriadpro"|style="color: #9fb143;"',
  6370. 'div class="well2"|error 404|The system is unable to find the requested action|http://keep2share.cc/file/check.html|To avoid damaged files',
  6371. 'please try later'
  6372. );
  6373. }
  6374. if (hostSet("Check_keep2s_dot_cc_links", false))
  6375. {
  6376. addFileHost(
  6377. "keep2s.cc",
  6378. "keep2s\.cc\/\\w+",
  6379. 'View File|download-file-info|div class="name fontmyriadpro"|style="color: #9fb143;"',
  6380. 'div class="well2"|error 404|The system is unable to find the requested action|http://keep2share.cc/file/check.html|To avoid damaged files',
  6381. 'please try later'
  6382. );
  6383. }
  6384. if (hostSet("Check_keep2share_dot_com_links", false))
  6385. {
  6386. addFileHost(
  6387. "keep2share.com",
  6388. "keep2share\.com\/\\w+",
  6389. 'View File|download-file-info|div class="name fontmyriadpro"|style="color: #9fb143;"',
  6390. 'div class="well2"|error 404|The system is unable to find the requested action|http://keep2share.cc/file/check.html|avoid damaged files',
  6391. 'please try later'
  6392. );
  6393. }
  6394. if (hostSet("Check_goldbytez_dot_com_links", false))
  6395. {
  6396. addFileHost(
  6397. "goldbytez.com",
  6398. "goldbytez\.com\/\\w+",
  6399. '<h2>Download</h2>|<center><h2>File: <font color="red">',
  6400. '<div style="width:500px;text-align:left;">|<h2>Error</h2>',
  6401. 'optional--'
  6402. );
  6403. }
  6404. if (hostSet("Check_speedy_dot_sh_links", false))
  6405. {
  6406. addFileHost(
  6407. "speedy.sh",
  6408. "speedy\.sh\/\\w+",
  6409. 'bgcolor=#eeeeee|class="addthis',
  6410. 'File not found|downloadfilenamenotfound>',
  6411. 'optional--'
  6412. );
  6413. }
  6414. if (hostSet("Check_sdilej_dot_cz_links", false))
  6415. {
  6416. addFileHost(
  6417. "sdilej.cz",
  6418. "sdilej\.cz\/\\w+",
  6419. 'class="page-download"',
  6420. '<h2 class="red">|czshare.com|sponsored listings|This domain is for sale',
  6421. 'optional--'
  6422. );
  6423. }
  6424. if (hostSet("Check_acefile_dot_net_links", false))
  6425. {
  6426. addFileHost(
  6427. "acefile.net",
  6428. "acefile\.net\/\\w+",
  6429. 'align=right nowrap><b>',
  6430. 'File Not Found|<div style="width:322px;text-align:left;" class="no_file">',
  6431. 'optional--'
  6432. );
  6433. }
  6434. if (hostSet("Check_ziddu_dot_com_links", false))
  6435. {
  6436. addFileHost(
  6437. "ziddu.com",
  6438. "ziddu\.com\/\\w+",
  6439. 'downloads.ziddu.com|downloadfilelinkicon',
  6440. 'errortracking.php|images/oops.png|fontfamilyverdana error',
  6441. 'optional--'
  6442. );
  6443. }
  6444. if (hostSet("Check_fboom_dot_me_links", false))
  6445. {
  6446. addFileHost(
  6447. "fboom.me",
  6448. "fboom\.me\/\\w+",
  6449. 'class="download-file">',
  6450. 'class="error-v1-title">404<|File not found or deleted',
  6451. 'optional--'
  6452. );
  6453. }
  6454. /* if (hostSet("Check_filesaur_dot_com_links", false))
  6455. {
  6456. addFileHost(
  6457. "filesaur.com",
  6458. "filesaur\.com\/\\w+",
  6459. 'btn-normal|value="download1|method_free',
  6460. 'File Not Found|style="width:500px;text-align:left;',
  6461. 'optional--'
  6462. );
  6463. } */
  6464. if (hostSet("Check_letitbit_dot_net_links", false))
  6465. {
  6466. addFileHost(
  6467. "letitbit.net",
  6468. "(?:u\\d+\\.)?letitbit\\.net\/download\/\\w+",
  6469. '<div id="way_selection_tab" class="download-tab">',
  6470. 'color:#000">|Запрашиваемый файл не найден|страница не существует|File not found',
  6471. 'optional--'
  6472. );
  6473. }
  6474. if (hostSet("Check_uploaded_dot_to_links", false))
  6475. {
  6476. addFileHost(
  6477. "uploaded.net|ul.to|uploaded.to",
  6478. '(?:uploaded\\.(?:to|net)\/(?:.id|file|folder|f|410|404))|(?:ul\\.to\/)',
  6479. 'download" class="center|right:20px" class="file">',
  6480. 'box_red|Error: 404|Error: 410|fileList"><thead><tr><td colspan="2"><\/td><\/tr><\/thead><tbody>\\s*<tr>',
  6481. 'optional--'
  6482. );
  6483. }
  6484. if (hostSet("Check_megarapid_dot_cz_links", false))
  6485. {
  6486. addFileHost(
  6487. "megarapid.cz",
  6488. "megarapid\.cz\/\\w+",
  6489. 'value="Stáhnout"|soubor" style|Stahování je povoleno pouze pro přihlášené uživatele',
  6490. 'error_div">|404 - Not Found',
  6491. 'optional--'
  6492. );
  6493. }
  6494. if (hostSet("Check_yadi_dot_sk_links", false))
  6495. {
  6496. addFileHost(
  6497. "yadi.sk",
  6498. "yadi\.sk\/\\w+",
  6499. 'twitter:site|View and download',
  6500. 'error code|Nothing found',
  6501. 'optional--'
  6502. );
  6503. }
  6504. if (hostSet("Check_4shared_dot_com_links", false))
  6505. {
  6506. addFileHost(
  6507. "4shared.com",
  6508. "4shared\\.com\/.+\/",
  6509. '<input type="hidden" class="jsSocialTwDefaultText" value=',
  6510. 'class="warn\"|big red"|GetDataBack',
  6511. 'Service Unavailable'
  6512. );
  6513. }
  6514. if (hostSet("Check_inafile_dot_com_links", false))
  6515. {
  6516. addFileHost(
  6517. "inafile.com",
  6518. "inafile\\.com\/\\w+",
  6519. 'value="download1">|<h2>File: <font style="color:darkred">',
  6520. '<div style="width:500px;text-align:left;">|File Not Found',
  6521. 'optional--'
  6522. );
  6523. }
  6524. if (hostSet("Check_uploadc_dot_com_links", false))
  6525. {
  6526. addFileHost(
  6527. "uploadc.com",
  6528. "uploadc\\.com\/\\w+",
  6529. 'id="prebut"',
  6530. 'File Not Found|This file has been removed due',
  6531. 'optional--'
  6532. );
  6533. }
  6534. if (hostSet("Check_shareflare_dot_net_links", false))
  6535. {
  6536. addFileHost(
  6537. "shareflare.net",
  6538. 'shareflare\\.net\/download\/',
  6539. 'download-pnl',
  6540. 'File not found|Поиск зеркала на фа',
  6541. 'optional--'
  6542. );
  6543. }
  6544. /* if (hostSet("Check_terafile_dot_co_links", false))
  6545. {
  6546. addFileHost(
  6547. "terafile.co",
  6548. 'terafile\\.co\/\\w+',
  6549. '<div style="width:900px;">',
  6550. 'background:#eee;font:15px|var rr =|The link was deleted by administration|File Not Found|>404 Not Found<|<div style="width:500px;text-align:left;">|The file was removed by administrator',
  6551. 'Software error|server is in maintenance mode'
  6552. );
  6553. }
  6554. if (hostSet("Check_terafile_dot_com_links", false))
  6555. {
  6556. addFileHost(
  6557. "terafile.com|lumfile.com",
  6558. "(?:terafile|lumfile)\\.com\/\\w+",
  6559. '<div style="width:900px;">',
  6560. 'background:#eee;font:15px|var rr =|The link was deleted by administration|File Not Found|>404 Not Found<|<div style="width:500px;text-align:left;">|The file was removed by administrator',
  6561. 'Software error|server is in maintenance mode|'
  6562. );
  6563. } */
  6564. if (hostSet("Check_fileboom_dot_me_links", false))
  6565. {
  6566. addFileHost(
  6567. "fileboom.me",
  6568. "fileboom\.me\/\\w+",
  6569. 'class="download-file">',
  6570. 'class="error-v1-title">404<|File not found or deleted',
  6571. 'optional--'
  6572. );
  6573. }
  6574. if (hostSet("Check_megairon_dot_net_links", false))
  6575. {
  6576. addFileHost(
  6577. "megairon.net",
  6578. "megairon\.net\/\\w+",
  6579. 'border: 5px #ffeb90 solid;',
  6580. 'CONTENT="Download File ">|var rr =',
  6581. 'optional--'
  6582. );
  6583. }
  6584. if (hostSet("Check_imdb_dot_com_links", false))
  6585. {
  6586. addFileHost(
  6587. "imdb.com",
  6588. "imdb\.com\/\\w+",
  6589. 'imdb.com',
  6590. '404 Error',
  6591. 'optional--'
  6592. );
  6593. }
  6594. if (hostSet("Check_hitfile_dot_net_links", false))
  6595. {
  6596. addFileHost(
  6597. "hitfile.net",
  6598. "hitfile\.net\/\\w+",
  6599. 'class="download-file',
  6600. 'style="width:16px;height:16px;border:0;|File not found',
  6601. 'optional--');
  6602. }
  6603. /* if (hostSet("Check_xerver_dot_co_links", false))
  6604. {
  6605. addFileHost(
  6606. "xerver.co",
  6607. "xerver\.co\/\\w+",
  6608. 'style="text-transform:uppercase|value="download1',
  6609. '404 Error|FILE NOT FOUND',
  6610. '502 Bad Gateway'
  6611. );
  6612. } */
  6613. if (hostSet("Check_uploadto_dot_us_links", false))
  6614. {
  6615. addFileHost(
  6616. "uploadto.us",
  6617. "uploadto\\.us\/file\/details\/[\\w+-]",
  6618. '>Your download is ready<|>Premium members only<',
  6619. '/>File (?:not found|restricted|has been deleted(?:\.| in compliance with the DMCA))<|\/folder\/add/|<title>UPLOADTO.US</title>',
  6620. 'btn-large btn-danger">|Account limitation notice|>File not available.<|>This download server is overloaded<|502 Bad Gateway',
  6621. true);
  6622. }
  6623. /* if (hostSet("Check_filesfrog_dot_net_links", false))
  6624. {
  6625. addFileHost(
  6626. "filesfrog.net",
  6627. "filesfrog\.net\/\\w+",
  6628. 'download-now.png|File: <font style="color:darkred">',
  6629. '<div style="width:500px;text-align:left;">|File Not Found|Services for this domain have been discontinued',
  6630. 'optional--'
  6631. );
  6632. } */
  6633. if (hostSet("Check_filepom_dot_com_links", false))
  6634. {
  6635. addFileHost(
  6636. "filepom.com",
  6637. "filepom\.com\/\\w+",
  6638. 'happy downloading|download1',
  6639. 'File Not Found|523: Origin is unreachable',
  6640. 'optional--'
  6641. );
  6642. }
  6643. if (hostSet("Check_nitroflare_dot_com_links", false))
  6644. {
  6645. addFileHost(
  6646. "nitroflare.com",
  6647. "nitroflare\.com\/\\w+",
  6648. 'alert.png|LowSpeedMeter.png',
  6649. 'file has been removed|id="error" style="display',
  6650. 'optional--'
  6651. );
  6652. }
  6653. if (hostSet("Check_top4top_dot_net_links", false))
  6654. {
  6655. addFileHost(
  6656. "top4top.net",
  6657. "top4top\.net\/\\w+",
  6658. 'start Downlod template',
  6659. 'start err template',
  6660. 'optional--'
  6661. );
  6662. }
  6663. if (hostSet("Check_filejoker_dot_net_links", false))
  6664. {
  6665. addFileHost(
  6666. "filejoker.net",
  6667. "filejoker\.net\/\\w+",
  6668. 'button id="regular-download">Slow|method_free" value="1|<div id="download" class="download0">',
  6669. 'File Not Found|class="not_found|<div id="download" class="not_found">',
  6670. 'optional--'
  6671. );
  6672. }
  6673. if (hostSet("Check_rapidgator_dot_net_links", false))
  6674. {
  6675. addFileHost(
  6676. 'rapidgator.net|rg.to',
  6677. "(?:rapidgator\\.net|rg.to)\/file\/\\w+",
  6678. '/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',
  6679. 'Error 404|File not found|Error 500',
  6680. 'optional--'
  6681. );
  6682. }
  6683. /* if (hostSet("Check_privatefiles_dot_com_links", false))
  6684. {
  6685. addFileHost(
  6686. 'privatefiles.com',
  6687. "privatefiles\.com\/\\w+",
  6688. '<Title>Download|/img-h1Title.jpg">|icon icon-cloud-download',
  6689. '404 Not Found|No such file with this filename|file that is not available',
  6690. 'optional--');
  6691. } */
  6692. if (hostSet("Check_free_dot_fr_links", false))
  6693. {
  6694. addFileHost(
  6695. 'free.fr',
  6696. "(?:dl.\\.|)free\\.fr",
  6697. 'Valider et t&eacute;l&eacute',
  6698. 'Fichier inexistant',
  6699. 'optional--');
  6700. }
  6701. if (hostSet("Check_gboxes_dot_com_links", false))
  6702. {
  6703. addFileHost(
  6704. 'gboxes.com',
  6705. "gboxes\.com\/\\w+",
  6706. 'You have requested|color="red">http://www.gboxes.com',
  6707. 'File Not Found|<div style="width:500px;text-align:left;">',
  6708. 'optional--');
  6709. }
  6710. if (hostSet("Check_vip_dash_file_dot_com_links", false))
  6711. {
  6712. addFileHost(
  6713. 'vip-file.com',
  6714. '(?:u\\d+\\.)?vip-file\\.com\/download.*?\/(?:.*?)\/(?:.*?)\\.html',
  6715. 'download_link = ',
  6716. '<p style="text-align:center">',
  6717. 'optional--');
  6718. }
  6719. if (hostSet("Check_led_dot_wf_links", false))
  6720. {
  6721. addFileHost(
  6722. 'led.wf',
  6723. "led\.wf\/\\w+",
  6724. 'logo_0.png|downloads.gif"',
  6725. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6726. 'optional--');
  6727. }
  6728. if (hostSet("Check_lan_dot_wf_links", false))
  6729. {
  6730. addFileHost(
  6731. 'lan.wf',
  6732. "lan\.wf\/\\w+",
  6733. 'logo_0.png|downloads.gif"',
  6734. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6735. 'optional--');
  6736. }
  6737. if (hostSet("Check_adlink_dot_wf_links", false))
  6738. {
  6739. addFileHost(
  6740. 'adlink.wf',
  6741. "adlink\.wf\/\\w+",
  6742. 'logo_0.png|downloads.gif"',
  6743. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6744. 'optional--');
  6745. }
  6746. if (hostSet("Check_click_dot_tf_links", false))
  6747. {
  6748. addFileHost(
  6749. 'click.tf',
  6750. "click\.tf\/\\w+",
  6751. 'logo_0.png|downloads.gif"',
  6752. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6753. 'optional--');
  6754. }
  6755. if (hostSet("Check_ssh_dot_tf_links", false))
  6756. {
  6757. addFileHost(
  6758. 'ssh.tf',
  6759. "ssh\.tf\/\\w+",
  6760. 'logo_0.png|downloads.gif"',
  6761. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6762. 'optional--');
  6763. }
  6764. if (hostSet("Check_ssh_dot_yt_links", false))
  6765. {
  6766. addFileHost(
  6767. 'ssh.yt',
  6768. "ssh\.yt\/\\w+",
  6769. 'logo_0.png|downloads.gif"',
  6770. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6771. 'optional--');
  6772. }
  6773. if (hostSet("Check_yep_dot_pm_links", false))
  6774. {
  6775. addFileHost(
  6776. 'yep.pm',
  6777. "yep\.pm\/\\w+",
  6778. 'logo_0.png|downloads.gif"',
  6779. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6780. 'optional--');
  6781. }
  6782. if (hostSet("Check_kyc_dot_pm_links", false))
  6783. {
  6784. addFileHost(
  6785. 'kyc.pm',
  6786. "kyc\.pm\/\\w+",
  6787. 'logo_0.png|downloads.gif"',
  6788. 'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link',
  6789. 'optional--');
  6790. }
  6791. if (hostSet("Check_catshare_dot_net_links", false))
  6792. {
  6793. addFileHost(
  6794. 'catshare.net',
  6795. "catshare\\.net/\\w+",
  6796. '"icon-share',
  6797. 'alert alert-error',
  6798. 'optional--');
  6799. }
  6800. if (hostSet("Check_brupload_dot_net_links", false))
  6801. {
  6802. addFileHost(
  6803. 'brupload.net',
  6804. "brupload\\.net/\\w+",
  6805. 'Download Gratuito',
  6806. '<div style="width:500px;text-align:left;">',
  6807. 'optional--');
  6808. }
  6809. if (hostSet("Check_cloudzilla_dot_to_links", false))
  6810. {
  6811. addFileHost(
  6812. 'cloudzilla.to',
  6813. "cloudzilla\\.to/\\w+",
  6814. 'btn1" id="free_download|onclick="freeDownload|id="pwd_protected">',
  6815. 'File not found|/imgs/broken.png',
  6816. 'optional--');
  6817. }
  6818. if (hostSet("Check_clicknupload_dot_com_links", false))
  6819. {
  6820. addFileHost(
  6821. "clicknupload.com",
  6822. "clicknupload\.com\/\\w+",
  6823. 'name="method_free',
  6824. 'File Not Found',
  6825. 'optional--'
  6826. );
  6827. }
  6828. if (hostSet("Check_ex_dash_load_dot_com_links", false))
  6829. {
  6830. addFileHost(
  6831. "ex-load.com",
  6832. "ex-load\.com\/\\w+",
  6833. 'name="method_free|<p>Download File:</p>|Are you trying to download',
  6834. 'Folder Not Found|File Not Found|Error 404',
  6835. 'optional--'
  6836. );
  6837. }
  6838. if (hostSet("Check_wizupload_dot_com_links", false))
  6839. {
  6840. addFileHost(
  6841. "wizupload.com",
  6842. "wizupload\.com\/\\w+",
  6843. 'btn_download',
  6844. '>File Not Found<',
  6845. 'optional--'
  6846. );
  6847. }
  6848. if (hostSet("Check_freakshare_dot_net_links", false))
  6849. {
  6850. addFileHost(
  6851. "freakshare.net",
  6852. "freakshare\.net\/files\/",
  6853. 'box_heading',
  6854. '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|الملف المطلوب غير موجود',
  6855. 'Your Traffic is used up for today'
  6856. );
  6857. }
  6858. if (hostSet("Check_freakshare_dot_net_links", false))
  6859. {
  6860. addFileHost(
  6861. "freakshare.net",
  6862. "freakshare\.net\/folder\/",
  6863. 'Files: [1-9]',
  6864. 'Files: 0',
  6865. 'optional--'
  6866. );
  6867. }
  6868. if (hostSet("Check_freakshare_dot_com_links", false))
  6869. {
  6870. addFileHost(
  6871. "freakshare.com",
  6872. "freakshare\.com\/files\/",
  6873. 'box_heading',
  6874. '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|الملف المطلوب غير موجود',
  6875. 'Your Traffic is used up for today'
  6876. );
  6877. }
  6878. if (hostSet("Check_freakshare_dot_com_links", false))
  6879. {
  6880. addFileHost(
  6881. "freakshare.com",
  6882. "freakshare\.com\/folder\/",
  6883. 'Files: [1-9]',
  6884. 'Files: 0',
  6885. 'optional--'
  6886. );
  6887. }
  6888. }
  6889. //start here
  6890. //hosts with direct download, so they must be requested for headers only
  6891. function initFileHostsHeadersOnly()
  6892. {
  6893. var aFHHCOCount = 1;
  6894. function addFileHostHeadersOnly(hostName, linkRegex, isAliveRegex, isDeadRegex)
  6895. {
  6896. hostName = hostName.split("|");
  6897. var i = hostName.length;
  6898. var hostID = "HC" + aFHHCOCount;
  6899. while(i--) {
  6900. var filehost = hostName[i].replace(/\./g, "_dot_").replace(/\-/g, "_dash_");
  6901.  
  6902. if (!hostsIDs[filehost]) {
  6903. hostsIDs[filehost] = [];
  6904. }
  6905. hostsIDs[filehost].push({
  6906. hostID: hostID,
  6907. linkRegex: linkRegex,
  6908. });
  6909. }
  6910. var HCObj = {
  6911. liveRegex: isAliveRegex,
  6912. deadRegex: isDeadRegex,
  6913. links: []
  6914. }
  6915. hostsCheck[hostID] = HCObj;
  6916. aFHHCOCount++;
  6917. }
  6918. if (hostSet("Check_uloziste_dot_com_links", false))
  6919. {
  6920. addFileHostHeadersOnly(
  6921. 'uloziste.com',
  6922. "(?:|files\\.)uloziste\\.com\/\\w+\/\\w+",
  6923. 'Connection: Keep-Alive',
  6924. 'Content-Length: 3857'
  6925. )
  6926. }
  6927.  
  6928. if (hostSet("Check_filemonster_dot_net_links", false))
  6929. {
  6930. addFileHostHeadersOnly(
  6931. 'folemonster.net',
  6932. "filemonster\\.net\/(?:..\/|)file\/\\w+",
  6933. 'filename="',
  6934. 'Content-Type: text/html'
  6935. )
  6936. }
  6937.  
  6938. if (hostSet("Check_karelia_dot_pro_links", false))
  6939. {
  6940. addFileHostHeadersOnly(
  6941. 'karelia.pro',
  6942. "(?:disk|fast)\\.karelia\\.pro\/\\w+",
  6943. "Content-Disposition: attachment; filename=",
  6944. "Content-Type: text/html"
  6945. )
  6946. }
  6947. if (hostSet("Check_dropbox_dot_com_links", false))
  6948. {
  6949. addFileHostHeadersOnly(
  6950. 'dropbox.com|dropboxusercontent.com',
  6951. "dl\\.dropbox(?:usercontent)?\\.com\/u\/\\d+\/.+?",
  6952. /x-dropbox-request-id: \w+/,
  6953. "optional--"
  6954. )
  6955. }
  6956. if (hostSet("Check_demo_dot_ovh_dot_eu_links", false))
  6957. {
  6958. addFileHostHeadersOnly(
  6959. 'ovh.eu',
  6960. "demo\\.ovh\\.eu\/download\/\\w+",
  6961. "optional--",
  6962. "optional--"
  6963. )
  6964. }
  6965. /* if (hostSet("Check_archive_dot_org_links", false))
  6966. {
  6967. addFileHostHeadersOnly(
  6968. 'archive.org',
  6969. "archive\.org\/\\w+",
  6970. '/Content-Length: \d{6,}/|Internet Archive<',
  6971. 'Content-Type: text/html|Internet Archive: Error</title>|does not exist'
  6972. );
  6973. }
  6974. */
  6975. if (hostSet("Check_blueshare_dot_be_links", false))
  6976. {
  6977. addFileHostHeadersOnly(
  6978. 'blueshare.be',
  6979. 'blueshare\\.be\/file\/\\w+',
  6980. 'Content-Description: File Transfer',
  6981. 'optional--'
  6982. );
  6983. }
  6984. }
  6985. }