W.A.R. Links Checker Customized

Automatically checks links from hundreds of file hosts.

当前为 2014-06-05 提交的版本,查看 最新版本

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

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址