From 654d3ec7aee4e1989d29fb526edb508128a4f3c9 Mon Sep 17 00:00:00 2001 From: psp Date: Fri, 5 Oct 2012 19:57:10 +0000 Subject: [PATCH] -gptfile.com: RIP fixes #6609 -divxbase.com: RIP fixes #6607 git-svn-id: svn://svn.jdownloader.org/jdownloader/trunk@18639 ebf7c1c2-ba36-0410-9fe8-c592906822b4 --- ressourcen/outdated.dat | 4 +- .../decrypter/XFileShareProFolder.java | 2 +- src/jd/plugins/hoster/DivxBaseCom.java | 486 ---------------- src/jd/plugins/hoster/FlashxTv.java | 1 - src/jd/plugins/hoster/GptFileCom.java | 533 ------------------ src/jd/plugins/hoster/Offline.java | 27 +- 6 files changed, 18 insertions(+), 1035 deletions(-) delete mode 100644 src/jd/plugins/hoster/DivxBaseCom.java delete mode 100644 src/jd/plugins/hoster/GptFileCom.java diff --git a/ressourcen/outdated.dat b/ressourcen/outdated.dat index e6068e7174..50a86a8005 100644 --- a/ressourcen/outdated.dat +++ b/ressourcen/outdated.dat @@ -947,4 +947,6 @@ jd/plugins/hoster/AzSharingCom.class jd/plugins/hoster/FreeFilesSharingCom.class jd/plugins/hoster/FarShareTo.class jd/plugins/hoster/EyVxCom.class -jd/plugins/hoster/DudUploadCom.class \ No newline at end of file +jd/plugins/hoster/DudUploadCom.class +jd/plugins/hoster/GptFileCom.class +jd/plugins/hoster/DivxBaseCom.class \ No newline at end of file diff --git a/src/jd/plugins/decrypter/XFileShareProFolder.java b/src/jd/plugins/decrypter/XFileShareProFolder.java index ad57132994..fe529c1f28 100644 --- a/src/jd/plugins/decrypter/XFileShareProFolder.java +++ b/src/jd/plugins/decrypter/XFileShareProFolder.java @@ -28,7 +28,7 @@ import jd.plugins.DownloadLink; import jd.plugins.FilePackage; import jd.plugins.PluginForDecrypt; -@DecrypterPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "XFileShareProFolder" }, urls = { "http://(www\\.)?(rapidfileshare\\.net|rd\\-fs\\.com|hostinoo\\.com|fireget\\.com|filedefend\\.com|creafile\\.net|247upload\\.com|dippic\\.com|4savefile\\.com|4bytez\\.com|fileprohost\\.com|bitupload\\.com|galaxy\\-file\\.com|aa\\.vg|fileza\\.net|allbox4\\.com|netuploaded\\.com|ishareupload\\.com|project\\-free\\-upload\\.com|upfile\\.biz|syfiles\\.com|gorillavid\\.in|ezzfile\\.it|foxishare\\.com|your\\-filehosting\\.com|mp3the\\.net|mummyfile\\.com|kongsifile\\.com|filerose\\.com|shareupload\\.com|gbitfiles\\.com|animegoon\\.com|ddl\\.mn|spaceha\\.com|mooshare\\.biz|flashdrive\\.it|gptfile\\.com|zooupload\\.com|filedwon\\.com|filemade\\.com|xenubox\\.com|backupload\\.net|mixshared\\.com|longfiles\\.com|helluploads\\.com|novafile\\.com|vidpe\\.com|filetechnology\\.com|saryshare\\.com|orangefiles\\.com|filecosy\\.com|squillion\\.com|ufile\\.eu|fileor\\.com|filesega\\.com|qtyfiles\\.com|pizzaupload\\.com|filesbb\\.com|free\\-uploading\\.com|megaul\\.com|megaup1oad\\.net|fireuploads\\.net|filestay\\.com|(igetfile\\.com|pandamemo\\.com)|free\\-uploading\\.com|uload\\.to|cosmobox\\.org|filereactor\\.com|uploadjet\\.net|fileove\\.com|rapidapk\\.com|filehost\\.ws|hyshare\\.com|(squillion\\.com|uppit\\.com)|vidhuge\\.com|nosupload\\.com|idup\\.in|potload\\.com|uploadbaz\\.com|simpleshare\\.org|ryushare\\.com|lafiles\\.com|clicktoview\\.org|lumfiles\\.com|bloonga\\.com|gigfiles\\.net|shareonline\\.org|downloadani\\.me|allmyvideos\\.net|movdivx\\.com|filenuke\\.com|((flashstream\\.in|sharefiles4u\\.com)|xvidstage\\.com|vidstream\\.in)|ginbig\\.com|vidbux\\.com|divxbase\\.com|queenshare\\.com|filesabc\\.com|((fiberupload|bulletupload)\\.com)|edoc\\.com|easybytez\\.com|filesabc\\.com|fileduct\\.com|henchfile\\.com|boltsharing\\.com|xtilourbano\\.info)/(users/[a-z0-9_]+/.+|folder/\\d+/.+)" }, flags = { 0 }) +@DecrypterPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "XFileShareProFolder" }, urls = { "http://(www\\.)?(rapidfileshare\\.net|rd\\-fs\\.com|hostinoo\\.com|fireget\\.com|filedefend\\.com|creafile\\.net|247upload\\.com|dippic\\.com|4savefile\\.com|4bytez\\.com|fileprohost\\.com|bitupload\\.com|galaxy\\-file\\.com|aa\\.vg|fileza\\.net|allbox4\\.com|netuploaded\\.com|ishareupload\\.com|project\\-free\\-upload\\.com|upfile\\.biz|syfiles\\.com|gorillavid\\.in|ezzfile\\.it|foxishare\\.com|your\\-filehosting\\.com|mp3the\\.net|mummyfile\\.com|kongsifile\\.com|filerose\\.com|shareupload\\.com|gbitfiles\\.com|animegoon\\.com|ddl\\.mn|spaceha\\.com|mooshare\\.biz|flashdrive\\.it|zooupload\\.com|filedwon\\.com|filemade\\.com|xenubox\\.com|backupload\\.net|mixshared\\.com|longfiles\\.com|helluploads\\.com|novafile\\.com|vidpe\\.com|filetechnology\\.com|saryshare\\.com|orangefiles\\.com|filecosy\\.com|squillion\\.com|ufile\\.eu|fileor\\.com|filesega\\.com|qtyfiles\\.com|pizzaupload\\.com|filesbb\\.com|free\\-uploading\\.com|megaul\\.com|megaup1oad\\.net|fireuploads\\.net|filestay\\.com|(igetfile\\.com|pandamemo\\.com)|free\\-uploading\\.com|uload\\.to|cosmobox\\.org|filereactor\\.com|uploadjet\\.net|fileove\\.com|rapidapk\\.com|filehost\\.ws|hyshare\\.com|(squillion\\.com|uppit\\.com)|vidhuge\\.com|nosupload\\.com|idup\\.in|potload\\.com|uploadbaz\\.com|simpleshare\\.org|ryushare\\.com|lafiles\\.com|clicktoview\\.org|lumfiles\\.com|bloonga\\.com|gigfiles\\.net|shareonline\\.org|downloadani\\.me|allmyvideos\\.net|movdivx\\.com|filenuke\\.com|((flashstream\\.in|sharefiles4u\\.com)|xvidstage\\.com|vidstream\\.in)|ginbig\\.com|vidbux\\.com|queenshare\\.com|filesabc\\.com|((fiberupload|bulletupload)\\.com)|edoc\\.com|easybytez\\.com|filesabc\\.com|fileduct\\.com|henchfile\\.com|boltsharing\\.com|xtilourbano\\.info)/(users/[a-z0-9_]+/.+|folder/\\d+/.+)" }, flags = { 0 }) public class XFileShareProFolder extends PluginForDecrypt { // DEV NOTES diff --git a/src/jd/plugins/hoster/DivxBaseCom.java b/src/jd/plugins/hoster/DivxBaseCom.java deleted file mode 100644 index 5dbfd82257..0000000000 --- a/src/jd/plugins/hoster/DivxBaseCom.java +++ /dev/null @@ -1,486 +0,0 @@ -// jDownloader - Downloadmanager -// Copyright (C) 2012 JD-Team support@jdownloader.org -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package jd.plugins.hoster; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.SortedMap; -import java.util.TreeMap; -import java.util.regex.Pattern; - -import jd.PluginWrapper; -import jd.config.Property; -import jd.http.Browser; -import jd.http.URLConnectionAdapter; -import jd.nutils.encoding.Encoding; -import jd.parser.Regex; -import jd.parser.html.Form; -import jd.parser.html.HTMLParser; -import jd.plugins.DownloadLink; -import jd.plugins.DownloadLink.AvailableStatus; -import jd.plugins.HostPlugin; -import jd.plugins.LinkStatus; -import jd.plugins.Plugin; -import jd.plugins.PluginException; -import jd.plugins.PluginForHost; -import jd.utils.JDUtilities; -import jd.utils.locale.JDL; - -import org.appwork.utils.formatter.SizeFormatter; - -@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "divxbase.com" }, urls = { "https?://(www\\.)?divxbase\\.com/[a-z0-9]{12}" }, flags = { 0 }) -public class DivxBaseCom extends PluginForHost { - - private String correctedBR = ""; - private static final String PASSWORDTEXT = "
Passwor(d|t): File Not Found<|>The file was removed by|Reason (of|for) deletion:\n)", Pattern.CASE_INSENSITIVE)).matches()) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND); - if (correctedBR.contains(MAINTENANCE)) { - link.getLinkStatus().setStatusText(JDL.L("plugins.hoster.xfilesharingprobasic.undermaintenance", MAINTENANCEUSERTEXT)); - return AvailableStatus.TRUE; - } - String filename = new Regex(correctedBR, "You have requested.*?https?://(www\\.)?" + this.getHost() + "/[A-Za-z0-9]{12}/(.*?)").getMatch(1); - if (filename == null) { - filename = new Regex(correctedBR, "fname\"( type=\"hidden\")? value=\"(.*?)\"").getMatch(1); - if (filename == null) { - filename = new Regex(correctedBR, "

Download File(.*?)

").getMatch(0); - if (filename == null) { - // generic regex will pick up false positives (html) - // adjust to make work with COOKIE_HOST - filename = new Regex(correctedBR, "(?i)Filename:(<[^>]+> ?)+?([^<>\"\\']+)").getMatch(1); - } - } - } - String filesize = new Regex(correctedBR, "\\(([0-9]+ bytes)\\)").getMatch(0); - if (filesize == null) { - filesize = new Regex(correctedBR, "[ ]+\\(([^<>\"\\'/]+)\\)(.*?)").getMatch(0); - if (filesize == null) { - // generic regex picks up false positives (premium ads above - // filesize) - // adjust accordingly to make work with COOKIE_HOST - filesize = new Regex(correctedBR, "(?i)([\\d\\.]+ ?(KB|MB|GB))").getMatch(0); - } - } - if (filename == null || filename.equals("")) { - if (correctedBR.contains("You have reached the download\\-limit")) { - logger.warning("Waittime detected, please reconnect to make the linkchecker work!"); - return AvailableStatus.UNCHECKABLE; - } - logger.warning("The filename equals null, throwing \"plugin defect\" now..."); - throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - } - filename = filename.replaceAll("(||\\.html)", ""); - link.setProperty("plainfilename", filename); - link.setFinalFileName(filename.trim()); - if (filesize != null && !filesize.equals("")) link.setDownloadSize(SizeFormatter.getSize(filesize)); - return AvailableStatus.TRUE; - } - - @Override - public void handleFree(DownloadLink downloadLink) throws Exception, PluginException { - requestFileInformation(downloadLink); - doFree(downloadLink, true, 0, "freelink"); - } - - public void doFree(DownloadLink downloadLink, boolean resumable, int maxchunks, String directlinkproperty) throws Exception, PluginException { - String passCode = null; - String md5hash = new Regex(correctedBR, "MD5.*?.*?nowrap>(.*?)<").getMatch(0); - if (md5hash != null) { - md5hash = md5hash.trim(); - logger.info("Found md5hash: " + md5hash); - downloadLink.setMD5Hash(md5hash); - } - - String dllink = checkDirectLink(downloadLink, directlinkproperty); - /** - * Video links can already be found here, if a link is found here we can - * skip wait times and captchas - */ - if (dllink == null) { - checkErrors(downloadLink, false, passCode); - if (correctedBR.contains("\"download1\"")) { - postPage(br.getURL(), "op=download1&usr_login=&id=" + new Regex(downloadLink.getDownloadURL(), "/([A-Za-z0-9]{12})$").getMatch(0) + "&fname=" + Encoding.urlEncode(downloadLink.getStringProperty("plainfilename")) + "&referer=&method_free=Free+Download"); - checkErrors(downloadLink, false, passCode); - } - dllink = getDllink(); - } - if (dllink == null) { - Form dlForm = br.getFormbyProperty("name", "F1"); - if (dlForm == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - // this is for sites with multiple f1 forms deep. This does not hurt - // or interfere any other sections of this script - for (int i = 0; i <= 3; i++) { - dlForm.remove(null); - final long timeBefore = System.currentTimeMillis(); - boolean password = false; - boolean skipWaittime = false; - if (new Regex(correctedBR, PASSWORDTEXT).matches()) { - password = true; - logger.info("The downloadlink seems to be password protected."); - } - /* Captcha START */ - if (correctedBR.contains(";background:#ccc;text-align")) { - logger.info("Detected captcha method \"plaintext captchas\" for this host"); - /** Captcha method by ManiacMansion */ - String[][] letters = new Regex(Encoding.htmlDecode(br.toString()), "(\\d)").getMatches(); - if (letters == null || letters.length == 0) { - logger.warning("plaintext captchahandling broken!"); - throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - } - SortedMap capMap = new TreeMap(); - for (String[] letter : letters) { - capMap.put(Integer.parseInt(letter[0]), letter[1]); - } - StringBuilder code = new StringBuilder(); - for (String value : capMap.values()) { - code.append(value); - } - dlForm.put("code", code.toString()); - logger.info("Put captchacode " + code.toString() + " obtained by captcha metod \"plaintext captchas\" in the form."); - } else if (correctedBR.contains("/captchas/")) { - logger.info("Detected captcha method \"Standard captcha\" for this host"); - String[] sitelinks = HTMLParser.getHttpLinks(br.toString(), null); - String captchaurl = null; - if (sitelinks == null || sitelinks.length == 0) { - logger.warning("Standard captcha captchahandling broken!"); - throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - } - for (String link : sitelinks) { - if (link.contains("/captchas/")) { - captchaurl = link; - break; - } - } - if (captchaurl == null) { - logger.warning("Standard captcha captchahandling broken!"); - throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - } - String code = getCaptchaCode("xfilesharingprobasic", captchaurl, downloadLink); - dlForm.put("code", code); - logger.info("Put captchacode " + code + " obtained by captcha metod \"Standard captcha\" in the form."); - } else if (new Regex(correctedBR, "(api\\.recaptcha\\.net|google\\.com/recaptcha/api/)").matches()) { - logger.info("Detected captcha method \"Re Captcha\" for this host"); - PluginForHost recplug = JDUtilities.getPluginForHost("DirectHTTP"); - jd.plugins.hoster.DirectHTTP.Recaptcha rc = ((DirectHTTP) recplug).getReCaptcha(br); - rc.setForm(dlForm); - String id = new Regex(correctedBR, "\\?k=([A-Za-z0-9%_\\+\\- ]+)\"").getMatch(0); - rc.setId(id); - rc.load(); - File cf = rc.downloadCaptcha(getLocalCaptchaFile()); - String c = getCaptchaCode(cf, downloadLink); - Form rcform = rc.getForm(); - rcform.put("recaptcha_challenge_field", rc.getChallenge()); - rcform.put("recaptcha_response_field", Encoding.urlEncode(c)); - logger.info("Put captchacode " + c + " obtained by captcha metod \"Re Captcha\" in the form and submitted it."); - dlForm = rc.getForm(); - /** wait time is often skippable for reCaptcha handling */ - // skipWaittime = true; - } - /* Captcha END */ - if (password) passCode = handlePassword(passCode, dlForm, downloadLink); - if (!skipWaittime) waitTime(timeBefore, downloadLink); - sendForm(dlForm); - logger.info("Submitted DLForm"); - checkErrors(downloadLink, true, passCode); - dllink = getDllink(); - if (dllink == null && br.containsHTML("(?i)
someStuff = new ArrayList(); - ArrayList regexStuff = new ArrayList(); - regexStuff.add("<\\!(\\-\\-.*?\\-\\-)>"); - regexStuff.add("(display: none;\">.*?)"); - regexStuff.add("(visibility:hidden>.*?<)"); - for (String aRegex : regexStuff) { - String lolz[] = br.getRegex(aRegex).getColumn(0); - if (lolz != null) { - for (String dingdang : lolz) { - someStuff.add(dingdang); - } - } - } - for (String fun : someStuff) { - correctedBR = correctedBR.replace(fun, ""); - } - } - - public String getDllink() { - String dllink = br.getRedirectLocation(); - if (dllink == null) { - dllink = new Regex(correctedBR, "dotted #bbb;padding.*?]+>Click to Download").getMatch(0); - if (dllink == null) { - String cryptedScripts[] = new Regex(correctedBR, "p\\}\\((.*?)\\.split\\('\\|'\\)").getColumn(0); - if (cryptedScripts != null && cryptedScripts.length != 0) { - for (String crypted : cryptedScripts) { - dllink = decodeDownloadLink(crypted); - if (dllink != null) break; - } - } - } - } - } - } - } - return dllink; - } - - private void getPage(String page) throws Exception { - br.getPage(page); - correctBR(); - } - - private void postPage(String page, String postdata) throws Exception { - br.postPage(page, postdata); - correctBR(); - } - - private void sendForm(Form form) throws Exception { - br.submitForm(form); - correctBR(); - } - - public void checkErrors(DownloadLink theLink, boolean checkAll, String passCode) throws NumberFormatException, PluginException { - if (checkAll) { - if (new Regex(correctedBR, PASSWORDTEXT).matches() || correctedBR.contains("Wrong password")) { - logger.warning("Wrong password, the entered password \"" + passCode + "\" is wrong, retrying..."); - throw new PluginException(LinkStatus.ERROR_RETRY, "Wrong password entered"); - } - if (correctedBR.contains("Wrong captcha")) { - logger.warning("Wrong captcha or wrong password!"); - throw new PluginException(LinkStatus.ERROR_CAPTCHA); - } - if (correctedBR.contains("\">Skipped countdown<")) throw new PluginException(LinkStatus.ERROR_FATAL, "Fatal countdown error (countdown skipped)"); - } - /** Wait time reconnect handling */ - if (new Regex(correctedBR, "(You have reached the download\\-limit|You have to wait)").matches()) { - // adjust this regex to catch the wait time string for COOKIE_HOST - String WAIT = new Regex(correctedBR, "((You have reached the download\\-limit|You have to wait)[^<>]+)").getMatch(0); - String tmphrs = new Regex(WAIT, "\\s+(\\d+)\\s+hours?").getMatch(0); - if (tmphrs == null) tmphrs = new Regex(correctedBR, "You have to wait.*?\\s+(\\d+)\\s+hours?").getMatch(0); - String tmpmin = new Regex(WAIT, "\\s+(\\d+)\\s+minutes?").getMatch(0); - if (tmpmin == null) tmpmin = new Regex(correctedBR, "You have to wait.*?\\s+(\\d+)\\s+minutes?").getMatch(0); - String tmpsec = new Regex(WAIT, "\\s+(\\d+)\\s+seconds?").getMatch(0); - String tmpdays = new Regex(WAIT, "\\s+(\\d+)\\s+days?").getMatch(0); - if (tmphrs == null && tmpmin == null && tmpsec == null && tmpdays == null) { - logger.info("Waittime regexes seem to be broken"); - throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, null, 60 * 60 * 1000l); - } else { - int minutes = 0, seconds = 0, hours = 0, days = 0; - if (tmphrs != null) hours = Integer.parseInt(tmphrs); - if (tmpmin != null) minutes = Integer.parseInt(tmpmin); - if (tmpsec != null) seconds = Integer.parseInt(tmpsec); - if (tmpdays != null) days = Integer.parseInt(tmpdays); - int waittime = ((days * 24 * 3600) + (3600 * hours) + (60 * minutes) + seconds + 1) * 1000; - logger.info("Detected waittime #2, waiting " + waittime + "milliseconds"); - /** Not enough wait time to reconnect->Wait and try again */ - if (waittime < 180000) { throw new PluginException(LinkStatus.ERROR_HOSTER_TEMPORARILY_UNAVAILABLE, JDL.L("plugins.hoster.xfilesharingprobasic.allwait", ALLWAIT_SHORT), waittime); } - throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, null, waittime); - } - } - if (correctedBR.contains("You're using all download slots for IP")) { throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, null, 10 * 60 * 1001l); } - if (correctedBR.contains("Error happened when generating Download Link")) throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, "Server error!", 10 * 60 * 1000l); - /** Error handling for only-premium links */ - if (new Regex(correctedBR, "( can download files up to |Upgrade your account to download bigger files|>Upgrade your account to download larger files|>The file You requested reached max downloads limit for Free Users|Please Buy Premium To download this file<|This file reached max downloads limit)").matches()) { - String filesizelimit = new Regex(correctedBR, "You can download files up to(.*?)only").getMatch(0); - if (filesizelimit != null) { - filesizelimit = filesizelimit.trim(); - logger.warning("As free user you can download files up to " + filesizelimit + " only"); - throw new PluginException(LinkStatus.ERROR_FATAL, "Free users can only download files up to " + filesizelimit); - } else { - logger.warning("Only downloadable via premium"); - throw new PluginException(LinkStatus.ERROR_FATAL, "Only downloadable via premium or registered"); - } - } - if (correctedBR.contains(MAINTENANCE)) throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, JDL.L("plugins.hoster.xfilesharingprobasic.undermaintenance", MAINTENANCEUSERTEXT), 2 * 60 * 60 * 1000l); - } - - public void checkServerErrors() throws NumberFormatException, PluginException { - if (new Regex(correctedBR, Pattern.compile("No file", Pattern.CASE_INSENSITIVE)).matches()) throw new PluginException(LinkStatus.ERROR_FATAL, "Server error"); - if (new Regex(correctedBR, "(File Not Found|

404 Not Found

)").matches()) { - logger.warning("Server says link offline, please recheck that!"); - throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND); - } - } - - private String decodeDownloadLink(String s) { - String decoded = null; - - try { - Regex params = new Regex(s, "\\'(.*?[^\\\\])\\',(\\d+),(\\d+),\\'(.*?)\\'"); - - String p = params.getMatch(0).replaceAll("\\\\", ""); - int a = Integer.parseInt(params.getMatch(1)); - int c = Integer.parseInt(params.getMatch(2)); - String[] k = params.getMatch(3).split("\\|"); - - while (c != 0) { - c--; - if (k[c].length() != 0) p = p.replaceAll("\\b" + Integer.toString(c, a) + "\\b", k[c]); - } - - decoded = p; - } catch (Exception e) { - } - - String finallink = null; - if (decoded != null) { - finallink = new Regex(decoded, "name=\"src\"value=\"(.*?)\"").getMatch(0); - if (finallink == null) { - finallink = new Regex(decoded, "type=\"video/divx\"src=\"(.*?)\"").getMatch(0); - if (finallink == null) { - finallink = new Regex(decoded, "\\.addVariable\\(\\'file\\',\\'(http://.*?)\\'\\)").getMatch(0); - } - } - } - return finallink; - } - - private String handlePassword(String passCode, Form pwform, DownloadLink thelink) throws IOException, PluginException { - passCode = thelink.getStringProperty("pass", null); - if (passCode == null) passCode = Plugin.getUserInput("Password?", thelink); - pwform.put("password", passCode); - logger.info("Put password \"" + passCode + "\" entered by user in the DLForm."); - return Encoding.urlEncode(passCode); - } - - private String checkDirectLink(DownloadLink downloadLink, String property) { - String dllink = downloadLink.getStringProperty(property); - if (dllink != null) { - try { - Browser br2 = br.cloneBrowser(); - URLConnectionAdapter con = br2.openGetConnection(dllink); - if (con.getContentType().contains("html") || con.getLongContentLength() == -1) { - downloadLink.setProperty(property, Property.NULL); - dllink = null; - } - con.disconnect(); - } catch (Exception e) { - downloadLink.setProperty(property, Property.NULL); - dllink = null; - } - } - return dllink; - } - - @Override - public void reset() { - } - - @Override - public void resetDownloadlink(DownloadLink link) { - } - - private void waitTime(long timeBefore, DownloadLink downloadLink) throws PluginException { - int passedTime = (int) ((System.currentTimeMillis() - timeBefore) / 1000) - 1; - /** Ticket Time */ - final String ttt = new Regex(correctedBR, "id=\"countdown_str\">[^<>\"]+\"]+\"( class=\"[^<>\"]+\")?>([\n ]+)?(\\d+)([\n ]+)?").getMatch(2); - if (ttt != null) { - int tt = Integer.parseInt(ttt); - tt -= passedTime; - logger.info("Waittime detected, waiting " + ttt + " - " + passedTime + " seconds from now on..."); - if (tt > 0) sleep(tt * 1000l, downloadLink); - } - } - -} \ No newline at end of file diff --git a/src/jd/plugins/hoster/FlashxTv.java b/src/jd/plugins/hoster/FlashxTv.java index 95b92a3e21..028cc78cd9 100644 --- a/src/jd/plugins/hoster/FlashxTv.java +++ b/src/jd/plugins/hoster/FlashxTv.java @@ -28,7 +28,6 @@ import jd.plugins.LinkStatus; import jd.plugins.PluginException; import jd.plugins.PluginForHost; -// http://flashx.tv/video/612OUM8HK622 @HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "flashx.tv" }, urls = { "http://((www\\.)?flashx\\.tv/video/[A-Z0-9]+/|play\\.flashx\\.tv/player/embed\\.php\\?.+)" }, flags = { 0 }) public class FlashxTv extends PluginForHost { diff --git a/src/jd/plugins/hoster/GptFileCom.java b/src/jd/plugins/hoster/GptFileCom.java deleted file mode 100644 index 80d6aaada8..0000000000 --- a/src/jd/plugins/hoster/GptFileCom.java +++ /dev/null @@ -1,533 +0,0 @@ -// jDownloader - Downloadmanager -// Copyright (C) 2012 JD-Team support@jdownloader.org -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package jd.plugins.hoster; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.SortedMap; -import java.util.TreeMap; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.regex.Pattern; - -import jd.PluginWrapper; -import jd.config.Property; -import jd.http.Browser; -import jd.http.URLConnectionAdapter; -import jd.nutils.encoding.Encoding; -import jd.parser.Regex; -import jd.parser.html.Form; -import jd.parser.html.HTMLParser; -import jd.plugins.DownloadLink; -import jd.plugins.DownloadLink.AvailableStatus; -import jd.plugins.HostPlugin; -import jd.plugins.LinkStatus; -import jd.plugins.Plugin; -import jd.plugins.PluginException; -import jd.plugins.PluginForHost; -import jd.utils.JDUtilities; -import jd.utils.locale.JDL; - -import org.appwork.utils.formatter.SizeFormatter; - -@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "gptfile.com" }, urls = { "https?://(www\\.)?gptfile\\.com/[a-z0-9]{12}" }, flags = { 0 }) -public class GptFileCom extends PluginForHost { - - private String correctedBR = ""; - private static final String PASSWORDTEXT = "
Passwor(d|t): File Not Found<|>The file was removed by|Reason (of|for) deletion:\n)").matches()) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND); - if (correctedBR.contains(MAINTENANCE)) { - link.getLinkStatus().setStatusText(JDL.L("plugins.hoster.xfilesharingprobasic.undermaintenance", MAINTENANCEUSERTEXT)); - return AvailableStatus.TRUE; - } - String filename = new Regex(correctedBR, "You have requested.*?https?://(www\\.)?" + this.getHost() + "/[A-Za-z0-9]{12}/(.*?)").getMatch(1); - if (filename == null) { - filename = new Regex(correctedBR, "fname\"( type=\"hidden\")? value=\"(.*?)\"").getMatch(1); - if (filename == null) { - filename = new Regex(correctedBR, "

Download File(.*?)

").getMatch(0); - if (filename == null) { - filename = new Regex(correctedBR, "Download File:? ?(<[^>]+> ?)+?([^<>\"\\']+)").getMatch(1); - } - } - } - String filesize = new Regex(correctedBR, "\\(([0-9]+ bytes)\\)").getMatch(0); - if (filesize == null) { - filesize = new Regex(correctedBR, "[ ]+\\(([^<>\"\\'/]+)\\)(.*?)").getMatch(0); - if (filesize == null) { - filesize = new Regex(correctedBR, "([\\d\\.]+ ?(KB|MB|GB))").getMatch(0); - } - } - if (filename == null || filename.equals("")) { - if (correctedBR.contains("You have reached the download(\\-| )limit")) { - logger.warning("Waittime detected, please reconnect to make the linkchecker work!"); - return AvailableStatus.UNCHECKABLE; - } - logger.warning("The filename equals null, throwing \"plugin defect\" now..."); - throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - } - String md5hash = new Regex(correctedBR, "MD5.*?.*?nowrap>(.*?)<").getMatch(0); - if (md5hash != null) link.setMD5Hash(md5hash.trim()); - filename = filename.replaceAll("(
||\\.html)", ""); - link.setFinalFileName(filename.trim()); - if (filesize != null && !filesize.equals("")) link.setDownloadSize(SizeFormatter.getSize(filesize)); - return AvailableStatus.TRUE; - } - - @Override - public void handleFree(DownloadLink downloadLink) throws Exception, PluginException { - requestFileInformation(downloadLink); - doFree(downloadLink, false, 1, "freelink"); - } - - public void doFree(DownloadLink downloadLink, boolean resumable, int maxchunks, String directlinkproperty) throws Exception, PluginException { - String passCode = null; - // First, bring up saved final links - String dllink = checkDirectLink(downloadLink, directlinkproperty); - // Second, check for streaming links on the first page - if (dllink == null) dllink = getDllink(); - // Third, continue like normal. - if (dllink == null) { - checkErrors(downloadLink, false, passCode); - Form download1 = getFormByKey("op", "download1"); - if (download1 != null) { - download1.remove("method_premium"); - sendForm(download1); - checkErrors(downloadLink, false, passCode); - } - dllink = getDllink(); - } - if (dllink == null) { - Form dlForm = br.getFormbyProperty("name", "F1"); - if (dlForm == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - // how many forms deep do you want to try. - int repeat = 3; - for (int i = 1; i < repeat; i++) { - dlForm.remove(null); - final long timeBefore = System.currentTimeMillis(); - boolean password = false; - boolean skipWaittime = false; - if (new Regex(correctedBR, PASSWORDTEXT).matches()) { - password = true; - logger.info("The downloadlink seems to be password protected."); - } - // md5 can be on the subquent pages - if (downloadLink.getMD5Hash() == null) { - String md5hash = new Regex(correctedBR, "MD5.*?.*?nowrap>(.*?)<").getMatch(0); - if (md5hash != null) downloadLink.setMD5Hash(md5hash.trim()); - } - /* Captcha START */ - if (correctedBR.contains(";background:#ccc;text-align")) { - logger.info("Detected captcha method \"plaintext captchas\" for this host"); - /** Captcha method by ManiacMansion */ - String[][] letters = new Regex(br, "(&#\\d+;)").getMatches(); - if (letters == null || letters.length == 0) { - logger.warning("plaintext captchahandling broken!"); - throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - } - SortedMap capMap = new TreeMap(); - for (String[] letter : letters) { - capMap.put(Integer.parseInt(letter[0]), Encoding.htmlDecode(letter[1])); - } - StringBuilder code = new StringBuilder(); - for (String value : capMap.values()) { - code.append(value); - } - dlForm.put("code", code.toString()); - logger.info("Put captchacode " + code.toString() + " obtained by captcha metod \"plaintext captchas\" in the form."); - } else if (correctedBR.contains("/captchas/")) { - logger.info("Detected captcha method \"Standard captcha\" for this host"); - String[] sitelinks = HTMLParser.getHttpLinks(br.toString(), null); - String captchaurl = null; - if (sitelinks == null || sitelinks.length == 0) { - logger.warning("Standard captcha captchahandling broken!"); - throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - } - for (String link : sitelinks) { - if (link.contains("/captchas/")) { - captchaurl = link; - break; - } - } - if (captchaurl == null) { - logger.warning("Standard captcha captchahandling broken!"); - throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); - } - String code = getCaptchaCode("xfilesharingprobasic", captchaurl, downloadLink); - dlForm.put("code", code); - logger.info("Put captchacode " + code + " obtained by captcha metod \"Standard captcha\" in the form."); - } else if (new Regex(correctedBR, "(api\\.recaptcha\\.net|google\\.com/recaptcha/api/)").matches()) { - logger.info("Detected captcha method \"Re Captcha\" for this host"); - PluginForHost recplug = JDUtilities.getPluginForHost("DirectHTTP"); - jd.plugins.hoster.DirectHTTP.Recaptcha rc = ((DirectHTTP) recplug).getReCaptcha(br); - rc.setForm(dlForm); - String id = new Regex(correctedBR, "\\?k=([A-Za-z0-9%_\\+\\- ]+)\"").getMatch(0); - rc.setId(id); - rc.load(); - File cf = rc.downloadCaptcha(getLocalCaptchaFile()); - String c = getCaptchaCode(cf, downloadLink); - Form rcform = rc.getForm(); - rcform.put("recaptcha_challenge_field", rc.getChallenge()); - rcform.put("recaptcha_response_field", Encoding.urlEncode(c)); - logger.info("Put captchacode " + c + " obtained by captcha metod \"Re Captcha\" in the form and submitted it."); - dlForm = rc.getForm(); - /** wait time is often skippable for reCaptcha handling */ - skipWaittime = true; - } - /* Captcha END */ - if (password) passCode = handlePassword(passCode, dlForm, downloadLink); - if (!skipWaittime) waitTime(timeBefore, downloadLink); - sendForm(dlForm); - logger.info("Submitted DLForm"); - checkErrors(downloadLink, true, passCode); - dllink = getDllink(); - if (dllink == null && (!br.containsHTML(""); - regexStuff.add("(display: ?none;\">.*?)"); - regexStuff.add("(visibility:hidden>.*?<)"); - for (String aRegex : regexStuff) { - String lolz[] = br.getRegex(aRegex).getColumn(0); - if (lolz != null) { - for (String dingdang : lolz) { - someStuff.add(dingdang); - } - } - } - for (String fun : someStuff) { - correctedBR = correctedBR.replace(fun, ""); - } - } - - public String getDllink() { - String dllink = br.getRedirectLocation(); - if (dllink == null) { - dllink = new Regex(correctedBR, "dotted #bbb;padding.*?]+>(Click to Download|Download File)").getMatch(0); - if (dllink == null) { - String cryptedScripts[] = new Regex(correctedBR, "p\\}\\((.*?)\\.split\\('\\|'\\)").getColumn(0); - if (cryptedScripts != null && cryptedScripts.length != 0) { - for (String crypted : cryptedScripts) { - dllink = decodeDownloadLink(crypted); - if (dllink != null) break; - } - } - } - } - } - } - } - return dllink; - } - - private void getPage(String page) throws Exception { - br.getPage(page); - correctBR(); - } - - private void postPage(String page, String postdata) throws Exception { - br.postPage(page, postdata); - correctBR(); - } - - private void sendForm(Form form) throws Exception { - br.submitForm(form); - correctBR(); - } - - public void checkErrors(DownloadLink theLink, boolean checkAll, String passCode) throws NumberFormatException, PluginException { - if (checkAll) { - if (new Regex(correctedBR, PASSWORDTEXT).matches() || correctedBR.contains("Wrong password")) { - logger.warning("Wrong password, the entered password \"" + passCode + "\" is wrong, retrying..."); - throw new PluginException(LinkStatus.ERROR_RETRY, "Wrong password entered"); - } - if (correctedBR.contains("Wrong captcha")) { - logger.warning("Wrong captcha or wrong password!"); - throw new PluginException(LinkStatus.ERROR_CAPTCHA); - } - if (correctedBR.contains("\">Skipped countdown<")) throw new PluginException(LinkStatus.ERROR_FATAL, "Fatal countdown error (countdown skipped)"); - } - /** Wait time reconnect handling */ - if (new Regex(correctedBR, "(You have reached the download(\\-| )limit|You have to wait)").matches()) { - // adjust this regex to catch the wait time string for COOKIE_HOST - String WAIT = new Regex(correctedBR, "((You have reached the download(\\-| )limit|You have to wait)[^<>]+)").getMatch(0); - String tmphrs = new Regex(WAIT, "\\s+(\\d+)\\s+hours?").getMatch(0); - if (tmphrs == null) tmphrs = new Regex(correctedBR, "You have to wait.*?\\s+(\\d+)\\s+hours?").getMatch(0); - String tmpmin = new Regex(WAIT, "\\s+(\\d+)\\s+minutes?").getMatch(0); - if (tmpmin == null) tmpmin = new Regex(correctedBR, "You have to wait.*?\\s+(\\d+)\\s+minutes?").getMatch(0); - String tmpsec = new Regex(WAIT, "\\s+(\\d+)\\s+seconds?").getMatch(0); - String tmpdays = new Regex(WAIT, "\\s+(\\d+)\\s+days?").getMatch(0); - if (tmphrs == null && tmpmin == null && tmpsec == null && tmpdays == null) { - logger.info("Waittime regexes seem to be broken"); - throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, null, 60 * 60 * 1000l); - } else { - int minutes = 0, seconds = 0, hours = 0, days = 0; - if (tmphrs != null) hours = Integer.parseInt(tmphrs); - if (tmpmin != null) minutes = Integer.parseInt(tmpmin); - if (tmpsec != null) seconds = Integer.parseInt(tmpsec); - if (tmpdays != null) days = Integer.parseInt(tmpdays); - int waittime = ((days * 24 * 3600) + (3600 * hours) + (60 * minutes) + seconds + 1) * 1000; - logger.info("Detected waittime #2, waiting " + waittime + "milliseconds"); - /** Not enough wait time to reconnect->Wait and try again */ - if (waittime < 180000) { throw new PluginException(LinkStatus.ERROR_HOSTER_TEMPORARILY_UNAVAILABLE, JDL.L("plugins.hoster.xfilesharingprobasic.allwait", ALLWAIT_SHORT), waittime); } - throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, null, waittime); - } - } - if (correctedBR.contains("You're using all download slots for IP")) { throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, null, 10 * 60 * 1001l); } - if (correctedBR.contains("Error happened when generating Download Link")) throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, "Server error!", 10 * 60 * 1000l); - /** Error handling for only-premium links */ - if (new Regex(correctedBR, "( can download files up to |Upgrade your account to download bigger files|>Upgrade your account to download larger files|>The file you requested reached max downloads limit for Free Users|Please Buy Premium To download this file<|This file reached max downloads limit)").matches()) { - String filesizelimit = new Regex(correctedBR, "You can download files up to(.*?)only").getMatch(0); - if (filesizelimit != null) { - filesizelimit = filesizelimit.trim(); - logger.warning("As free user you can download files up to " + filesizelimit + " only"); - throw new PluginException(LinkStatus.ERROR_FATAL, PREMIUMONLY1 + " " + filesizelimit); - } else { - logger.warning("Only downloadable via premium"); - throw new PluginException(LinkStatus.ERROR_FATAL, PREMIUMONLY2); - } - } - if (correctedBR.contains(MAINTENANCE)) throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, MAINTENANCEUSERTEXT, 2 * 60 * 60 * 1000l); - } - - public void checkServerErrors() throws NumberFormatException, PluginException { - if (new Regex(correctedBR, Pattern.compile("No file", Pattern.CASE_INSENSITIVE)).matches()) throw new PluginException(LinkStatus.ERROR_FATAL, "Server error"); - if (new Regex(correctedBR, "(File Not Found|

404 Not Found

)").matches()) { - logger.warning("Server says link offline, please recheck that!"); - throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND); - } - } - - private String decodeDownloadLink(String s) { - String decoded = null; - - try { - Regex params = new Regex(s, "\\'(.*?[^\\\\])\\',(\\d+),(\\d+),\\'(.*?)\\'"); - - String p = params.getMatch(0).replaceAll("\\\\", ""); - int a = Integer.parseInt(params.getMatch(1)); - int c = Integer.parseInt(params.getMatch(2)); - String[] k = params.getMatch(3).split("\\|"); - - while (c != 0) { - c--; - if (k[c].length() != 0) p = p.replaceAll("\\b" + Integer.toString(c, a) + "\\b", k[c]); - } - - decoded = p; - } catch (Exception e) { - } - - String finallink = null; - if (decoded != null) { - finallink = new Regex(decoded, "name=\"src\"value=\"(.*?)\"").getMatch(0); - if (finallink == null) { - finallink = new Regex(decoded, "type=\"video/divx\"src=\"(.*?)\"").getMatch(0); - if (finallink == null) { - finallink = new Regex(decoded, "\\.addVariable\\(\\'file\\',\\'(http://.*?)\\'\\)").getMatch(0); - } - } - } - return finallink; - } - - private String handlePassword(String passCode, Form pwform, DownloadLink thelink) throws IOException, PluginException { - passCode = thelink.getStringProperty("pass", null); - if (passCode == null) passCode = Plugin.getUserInput("Password?", thelink); - pwform.put("password", passCode); - logger.info("Put password \"" + passCode + "\" entered by user in the DLForm."); - return Encoding.urlEncode(passCode); - } - - private String checkDirectLink(DownloadLink downloadLink, String property) { - String dllink = downloadLink.getStringProperty(property); - if (dllink != null) { - try { - Browser br2 = br.cloneBrowser(); - URLConnectionAdapter con = br2.openGetConnection(dllink); - if (con.getContentType().contains("html") || con.getLongContentLength() == -1) { - downloadLink.setProperty(property, Property.NULL); - dllink = null; - } - con.disconnect(); - } catch (Exception e) { - downloadLink.setProperty(property, Property.NULL); - dllink = null; - } - } - return dllink; - } - - @Override - public void reset() { - } - - @Override - public void resetDownloadlink(DownloadLink link) { - } - - private void waitTime(long timeBefore, DownloadLink downloadLink) throws PluginException { - int passedTime = (int) ((System.currentTimeMillis() - timeBefore) / 1000) - 1; - /** Ticket Time */ - final String ttt = new Regex(correctedBR, "id=\"countdown_str\">[^<>\"]+\"]+\"( class=\"[^<>\"]+\")?>([\n ]+)?(\\d+)([\n ]+)?").getMatch(2); - if (ttt != null) { - int tt = Integer.parseInt(ttt); - tt -= passedTime; - logger.info("Waittime detected, waiting " + ttt + " - " + passedTime + " seconds from now on..."); - if (tt > 0) sleep(tt * 1000l, downloadLink); - } - } - - // TODO: remove this when v2 becomes stable. use br.getFormbyKey(String key, String value) - /** - * Returns the first form that has a 'key' that equals 'value'. - * - * @param key - * @param value - * @return - */ - private Form getFormByKey(final String key, final String value) { - Form[] workaround = br.getForms(); - if (workaround != null) { - for (Form f : workaround) - if (f.hasInputFieldByName(key) == f.getVarsMap().containsValue(value)) { return f; } - } - return null; - } - -} \ No newline at end of file diff --git a/src/jd/plugins/hoster/Offline.java b/src/jd/plugins/hoster/Offline.java index fa41ce77a1..d00d7009f3 100644 --- a/src/jd/plugins/hoster/Offline.java +++ b/src/jd/plugins/hoster/Offline.java @@ -35,19 +35,20 @@ import jd.plugins.PluginForHost; /* Set interfaceVersion to 3 to avoid old Stable trying to load this Plugin */ -@HostPlugin(revision = "$Revision$", interfaceVersion = 3, names = { "dudupload.com", "eyvx.com", "farshare.to", "azsharing.com", "freefilessharing.com", "elitedisk.com", "freakmov.com", "cloudnator.com", "filesavr.com", "saveufile.in.th", "migahost.com", "fastfreefilehosting.com", "files2k.eu", "shafiles.me", "jalurcepat.com", "divload.org", "refile.net", "oron.com", "wupload.com", "filesonic.com", "xxlupload.com", "cumfox.com", "pyramidfiles.com", "nahraj.cz", "jsharer.com", "annonhost.net", "filekeeper.org", "dynyoo.com", "163pan.com", "imagehost.org", "4us.to", "yabadaba.ru", "madshare.com", "diglo.com", "tubeload.to", "tunabox.net", "yourfilehost.com", "uploadegg.com", "brsbox.com", "amateurboobtube.com", "good.net", "freeload.to", "netporn.nl", "przeklej.pl", "alldrives.ge", "allshares.ge", "holderfile.com", "megashare.vnn.vn", "link.ge", "up.jeje.ge", "up-4.com", - "cloudcache", "ddlanime.com", "mountfile.com", "platinshare.com", "ishare.iask.sina.com.cn", "megavideo.com", "megaupload.com", "cum.com", "zshare.net", "uploading4u.com", "megafree.kz", "batubia.com", "upload24.net", "files.namba.kz", "datumbit.com", "fik1.com", "fileape.com", "filezzz.com", "imagewaste.com", "fyels.com", "gotupload.com", "sharehub.com", "sharehut.com", "filesurf.ru", "openfile.ru", "letitfile.ru", "tab.net.ua", "uploadbox.com", "supashare.net", "usershare.net", "skipfile.com", "10upload.com", "x7.to", "multiupload.com", "uploadking.com", "uploadhere.com", "fileshaker.com", "vistaupload.com", "groovefile.com", "enterupload.com", "xshareware.com", "xun6.com", "yourupload.de", "youshare.eu", "mafiaupload.com", "addat.hu", "archiv.to", "bigupload.com", "biggerupload.com", "bitload.com", "bufiles.com", "cash-file.net", "combozip.com", "duckload.com", - "exoshare.com", "file2upload.net", "filebase.to", "filebling.com", "filecrown.com", "filefrog.to", "filefront.com", "filehook.com", "filestage.to", "filezup.com", "fullshare.net", "gaiafile.com", "keepfile.com", "kewlshare.com", "lizshare.net", "loaded.it", "loadfiles.in", "megarapid.eu", "megashare.vn", "metahyper.com", "missupload.com", "netstorer.com", "nextgenvidz.com", "piggyshare.com", "profitupload.com", "quickload.to", "quickyshare.com", "share.cx", "sharehoster.de", "shareua.com", "speedload.to", "upfile.in", "ugotfile.com", "upload.ge", "uploadmachine.com", "uploady.to", "uploadstore.net", "vspace.cc", "web-share.net", "yvh.cc", "x-files.kz" }, urls = { "https?://(www\\.)?dudupload\\.com/[a-z0-9]{12}", "http://(www\\.)?eyvx\\.com/[a-z0-9]{12}", "http://(www\\.)?farshare\\.to/[a-z0-9]{12}", "http://(www\\.)?azsharing\\.com/[a-z0-9]{12}/", - "http://(www\\.)?freefilessharing\\.com/[a-z0-9]{12}", "https?://(www\\.)?elitedisk\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?freakmov\\.com/(rc|video)/[0-9]+", "http://[\\w\\.]*?(shragle|cloudnator)\\.(com|de)/files/[\\w]+/.*", "http://[\\w\\.]*?filesavr\\.com/[A-Za-z0-9]+(_\\d+)?", "http://(www\\.)?saveufile\\.(in\\.th|com)/car\\.php\\?file=[a-z0-9]+", "https?://(www\\.)?migahost\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?fastfreefilehosting\\.com/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "https?://(www\\.)?files2k\\.eu/[a-z0-9]{12}", "https?://(www\\.)?shafiles\\.me/[a-z0-9]{12}", "http://(www\\.)?jalurcepat\\.com/[a-z0-9]{12}", "https?://(www\\.)?(divload|divupload)\\.org/(embed\\-)?[a-z0-9]{12}", "http://(www\\.)?refile\\.net/(d|f)/\\?[\\w]+", "http://[\\w\\.]*?oron\\.com/[a-z0-9]{12}", - "http://(www\\.)?wupload\\.[a-z]{1,5}/file/([0-9]+(/.+)?|[a-z0-9]+/[0-9]+(/.+)?)", "http://[\\w\\.]*?(sharingmatrix|filesonic)\\..*?/.*?file/([a-zA-Z0-9]+(/.+)?|[a-z0-9]+/[0-9]+(/.+)?|[0-9]+(/.+)?)", "https?://(www\\.)?xxlupload\\.com/[a-z0-9]{12}", "http://(www\\.)?cumfox\\.com/videos/.*?-\\d+\\.html", "http://(www\\.)?pyramidfiles\\.com/[a-z0-9]{12}", "http://(www\\.)?nahraj\\.cz/content/(view|download)/[a-z0-9]+\\-[a-z0-9]+\\-[a-z0-9]+\\-[a-z0-9]+\\-[a-z0-9]+", "http://(www\\.)?jsharer\\.com/download/[a-z0-9]+\\.htm", "https?://(www\\.)?annonhost\\.net/[a-z0-9]{12}", "http://(www\\.)?filekeeper\\.org/download/[0-9a-zA-Z]+/([\\(\\)0-9A-Za-z\\.\\-_% ]+|[/]+/[\\(\\)0-9A-Za-z\\.\\-_% ])", "http://(www\\.)?dynyoo\\.com/\\?goto=dl\\&id=[a-z0-9]{32}", "http://[\\w\\.]*?163pan\\.com/files/[a-z0-9]+\\.html", "http://[\\w\\.]*?imagehost\\.org/(download/[0-9]+/.+|[0-9]+/.+)", - "http://[\\w\\.]*?4us\\.to/download\\.php\\?id=[A-Z0-9]+", "http://[\\w\\.]*?yabadaba\\.ru/files/[0-9]+", "http://(www\\.)?madshare\\.com/(en/)?download/[a-zA-Z0-9]+/", "http://(www\\.)?diglo\\.com/download/[a-z0-9]+", "http://(www\\.)?tubeload\\.to/file(\\d+)?\\-.+", "http://(www\\.)?tunabox\\.net/files/[A-Za-z0-9]+\\.html", "http://[\\w\\.]*?yourfilehost\\.com/media\\.php\\?cat=.*?\\&file=.+", "https?://(www\\.)?uploadegg\\.com/[a-z0-9]{12}", "http://(www\\.)?brsbox\\.com/filebox/down/fc/[a-z0-9]{32}", "http://(www\\.)?amateurboobtube\\.com/videos/\\d+/.*?\\.html", "http://(www\\.)?good\\.net/.+", "http://(www\\.)*?(freeload|mcload)\\.to/(divx\\.php\\?file_id=|\\?Mod=Divx\\&Hash=)[a-z0-9]+", "http://(www\\.)?netporn\\.nl/watch/[a-z0-9]+/.{1}", "http://(www\\.)?przeklej\\.pl/(d/\\w+/|\\d+|plik/)[^\\s]+", "http://(www\\.)?alldrives\\.ge/main/linkform\\.php\\?f=[a-z0-9]+", - "http://(www\\.)?allshares\\.ge/(\\?d|download\\.php\\?id)=[A-Z0-9]+", "https?://(www\\.)?holderfile\\.com/[a-z0-9]{12}", "http://(www\\.)?megashare\\.vnn\\.vn/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?link\\.ge/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?up\\.jeje\\.ge//((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?up\\-4\\.com/(\\?d|download\\.php\\?id)=[A-Z0-9]+", "https?://(www\\.)?cloudcache\\.cc/[a-z0-9]{12}", "https?://(www\\.)?(ddlanime\\.com|ddlani\\.me)/[a-z0-9]{12}", "http://(www\\.)?mountfile\\.com/file/[a-z0-9]+/[a-z0-9]+", "http://(www\\.)?platinshare\\.com/files/[A-Za-z0-9]+", "http://(www\\.)?ishare\\.iask\\.sina\\.com\\.cn/f/\\d+\\.html", "http://(www\\.)?megavideo\\.com/(.*?(v|d)=|v/)[a-zA-Z0-9]+", - "http://(www\\.)?megaupload\\.com/.*?(\\?|&)d=[0-9A-Za-z]+", "http://(www\\.)?(cum|megaporn|megarotic|sexuploader)\\.com/(.*?v=|v/)[a-zA-Z0-9]+", "http://(www\\.)?zshare\\.net/(download|video|image|audio|flash)/.*", "http://(www\\.)?uploading4u\\.com/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?megafree\\.kz/file\\d+", "http://(www\\.)?batubia\\.com/[a-z0-9]{12}", "http://(www\\.)?upload24\\.net/[a-z0-9]+\\.[a-z0-9]+", "http://(www\\.)?download\\.files\\.namba\\.kz/files/\\d+", "http://(www\\.)?datumbit\\.com/file/.*?/", "http://(www\\.)?fik1\\.com/[a-z0-9]{12}", "http://(www\\.)?fileape\\.com/(index\\.php\\?act=download\\&id=|dl/)\\w+", "http://(www\\.)?filezzz\\.com/download/[0-9]+/", "http://(www\\.)?imagewaste\\.com/pictures/\\d+/.{1}", "http://(www\\.)?fyels\\.com/[A-Za-z0-9]+", "http://(www\\.)?gotupload\\.com/[a-z0-9]{12}", - "http://(go.sharehub.com|sharehub.me|follow.to|kgt.com|krt.com)/.*", "http://(www\\.)?sharehut\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?(filesurf|4ppl|files\\.youmama)\\.ru/[0-9]+", "http://[\\w\\.]*?openfile\\.ru/[0-9]+", "http://[\\w\\.]*?letitfile\\.(ru|com)/download/id\\d+", "http://[\\w\\.]*?tab\\.net\\.ua/sites/files/site_name\\..*?/id\\.\\d+/", "http://[\\w\\.]*?uploadbox\\.com/.*?files/[0-9a-zA-Z]+", "http://(www\\.)?supashare\\.net/[a-z0-9]{12}", "https?://(www\\.)?usershare\\.net/[a-z0-9]{12}", "http://(www\\.)?skipfile\\.com/[a-z0-9]{12}", "http://(www\\.)?10upload\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?x7\\.to/(?!list)[a-zA-Z0-9]+(/(?!inList)[^/\r\n]+)?", "http://(www\\.)?multiuploaddecrypted\\.com/([A-Z0-9]{2}_[A-Z0-9]+|[0-9A-Z]+)", "http://(www\\.)?uploadking\\.com/[A-Z0-9]+", "http://(www\\.)?uploadhere\\.com/[A-Z0-9]+", "http://[\\w\\.]*?fileshaker\\.com/.+", - "http://(www\\.)?vistaupload\\.com/[a-z0-9]{12}", "https?://(www\\.)?groovefile\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?enterupload\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?xshareware\\.com/[\\w]+/.*", "http://[\\w\\.]*?xun6\\.(com|net)/file/[a-z0-9]+", "http://(www\\.)?yourupload\\.de/[a-z0-9]{12}", "http://(www\\.)?youshare\\.eu/[a-z0-9]{12}", "http://(www\\.)?mafiaupload\\.com/do\\.php\\?id=\\d+", "http://[\\w\\.]*?addat.hu/.+/.+", "http://(www\\.)?archiv\\.to/((\\?Module\\=Details\\&HashID\\=|GET/)FILE[A-Z0-9]+|view/divx/[a-z0-9]+)", "http://[\\w\\.]*?bigupload\\.com/(d=|files/)[A-Z0-9]+", "http://(www\\.)?biggerupload\\.com/[a-z0-9]{12}", "http://(www\\.)?(bitload\\.com/(f|d)/\\d+/[a-z0-9]+|mystream\\.to/file-\\d+-[a-z0-9]+)", "https?://(www\\.)?bufiles\\.com/[a-z0-9]{12}", "http://(www\\.)?cash-file\\.(com|net)/[a-z0-9]{12}", "http://[\\w\\.]*?combozip\\.com/[a-z0-9]{12}", - "http://[\\w\\.]*?(duckload\\.com|youload\\.to)/(download/[a-z0-9]+|(divx|play)/[A-Z0-9\\.-]+|[a-zA-Z0-9\\.]+)", "http://(www\\.)?exoshare\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?file2upload\\.(net|com)/download/[0-9]+/", "http://[\\w\\.]*?filebase\\.to/(files|download)/\\d{1,}/.*", "http://[\\w\\.]*?filebling\\.com/[a-z0-9]{12}", "http://(www\\.)?filecrown\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?filefrog\\.to/download/\\d+/[a-zA-Z0-9]+", "http://[\\w\\.]*?filefront\\.com/[0-9]+", "http://(www\\.)?filehook\\.com/[a-z0-9]{12}", "http://(www\\.)?filestage\\.to/watch/[a-z0-9]+/", "http://(www\\.)?(filezup|divxupfile)\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?fullshare\\.net/show/[a-z0-9]+/.+", "http://(www\\.)?gaiafile\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?keepfile\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?kewlshare\\.com/dl/[\\w]+/", "http://[\\w\\.]*?lizshare\\.net/[a-z0-9]{12}", - "http://(www\\.)?loaded\\.it/(show/[a-z0-9]+/[A-Za-z0-9_\\-% \\.]+|(flash|divx)/[a-z0-9]+/)", "http://[\\w\\.]*?loadfiles\\.in/[a-z0-9]{12}", "(http://[\\w\\.]*?megarapid\\.eu/files/\\d+/.+)|(http://[\\w\\.]*?megarapid\\.eu/\\?e=403\\&m=captcha\\&file=\\d+/.+)", "http://[\\w\\.]*?(megashare\\.vn/(download\\.php\\?uid=[0-9]+\\&id=[0-9]+|dl\\.php/\\d+)|share\\.megaplus\\.vn/dl\\.php/\\d+)", "http://(www\\.)?metahyper\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?missupload\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?netstorer\\.com/[a-zA-Z0-9]+/.+", "http://[\\w\\.]*?nextgenvidz\\.com/view/\\d+", "http://(www\\.)?piggyshare\\.com/file/[a-z0-9]+", "http://(www\\.)?profitupload\\.com/files/[A-Za-z0-9]+\\.html", "http://[\\w\\.]*?quickload\\.to/\\?Go=Player\\&HashID=FILE[A-Z0-9]+", "http://[\\w\\.]*?quickyshare\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?share\\.cx/(files/)?\\d+", - "http://[\\w\\.]*?sharehoster\\.(de|com|net)/(dl|wait|vid)/[a-z0-9]+", "http://[\\w\\.]*?shareua.com/get_file/.*?/\\d+", "http://[\\w\\.]*?speedload\\.to/FILE[A-Z0-9]+", "http://(www\\.)?upfile\\.in/[a-z0-9]{12}", "http://[\\w\\.]*?ugotfile.com/file/\\d+/.+", "http://[\\w\\.]*?upload\\.ge/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://[\\w\\.]*?uploadmachine\\.com/(download\\.php\\?id=[0-9]+&type=[0-9]{1}|file/[0-9]+/)", "http://[\\w\\.]*?uploady\\.to/dl/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?uploadstore\\.net/[a-z0-9]{12}", "http://[\\w\\.]*?vspace\\.cc/file/[A-Z0-9]+\\.html", "http://[\\w\\.]*?web-share\\.net/download/file/item/.*?_[0-9]+", "http://(www\\.)?yvh\\.cc/video\\.php\\?file=[a-z0-9_]+", "http://[\\w\\.]*?x-files\\.kz/[a-z0-9]+" }, flags = { 0 }) +@HostPlugin(revision = "$Revision$", interfaceVersion = 3, names = { "divxbase.com", "gptfile.com", "dudupload.com", "eyvx.com", "farshare.to", "azsharing.com", "freefilessharing.com", "elitedisk.com", "freakmov.com", "cloudnator.com", "filesavr.com", "saveufile.in.th", "migahost.com", "fastfreefilehosting.com", "files2k.eu", "shafiles.me", "jalurcepat.com", "divload.org", "refile.net", "oron.com", "wupload.com", "filesonic.com", "xxlupload.com", "cumfox.com", "pyramidfiles.com", "nahraj.cz", "jsharer.com", "annonhost.net", "filekeeper.org", "dynyoo.com", "163pan.com", "imagehost.org", "4us.to", "yabadaba.ru", "madshare.com", "diglo.com", "tubeload.to", "tunabox.net", "yourfilehost.com", "uploadegg.com", "brsbox.com", "amateurboobtube.com", "good.net", "freeload.to", "netporn.nl", "przeklej.pl", "alldrives.ge", "allshares.ge", "holderfile.com", "megashare.vnn.vn", "link.ge", + "up.jeje.ge", "up-4.com", "cloudcache", "ddlanime.com", "mountfile.com", "platinshare.com", "ishare.iask.sina.com.cn", "megavideo.com", "megaupload.com", "cum.com", "zshare.net", "uploading4u.com", "megafree.kz", "batubia.com", "upload24.net", "files.namba.kz", "datumbit.com", "fik1.com", "fileape.com", "filezzz.com", "imagewaste.com", "fyels.com", "gotupload.com", "sharehub.com", "sharehut.com", "filesurf.ru", "openfile.ru", "letitfile.ru", "tab.net.ua", "uploadbox.com", "supashare.net", "usershare.net", "skipfile.com", "10upload.com", "x7.to", "multiupload.com", "uploadking.com", "uploadhere.com", "fileshaker.com", "vistaupload.com", "groovefile.com", "enterupload.com", "xshareware.com", "xun6.com", "yourupload.de", "youshare.eu", "mafiaupload.com", "addat.hu", "archiv.to", "bigupload.com", "biggerupload.com", "bitload.com", "bufiles.com", "cash-file.net", "combozip.com", + "duckload.com", "exoshare.com", "file2upload.net", "filebase.to", "filebling.com", "filecrown.com", "filefrog.to", "filefront.com", "filehook.com", "filestage.to", "filezup.com", "fullshare.net", "gaiafile.com", "keepfile.com", "kewlshare.com", "lizshare.net", "loaded.it", "loadfiles.in", "megarapid.eu", "megashare.vn", "metahyper.com", "missupload.com", "netstorer.com", "nextgenvidz.com", "piggyshare.com", "profitupload.com", "quickload.to", "quickyshare.com", "share.cx", "sharehoster.de", "shareua.com", "speedload.to", "upfile.in", "ugotfile.com", "upload.ge", "uploadmachine.com", "uploady.to", "uploadstore.net", "vspace.cc", "web-share.net", "yvh.cc", "x-files.kz" }, urls = { "https?://(www\\.)?divxbase\\.com/[a-z0-9]{12}", "https?://(www\\.)?gptfile\\.com/[a-z0-9]{12}", "https?://(www\\.)?dudupload\\.com/[a-z0-9]{12}", "http://(www\\.)?eyvx\\.com/[a-z0-9]{12}", + "http://(www\\.)?farshare\\.to/[a-z0-9]{12}", "http://(www\\.)?azsharing\\.com/[a-z0-9]{12}/", "http://(www\\.)?freefilessharing\\.com/[a-z0-9]{12}", "https?://(www\\.)?elitedisk\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?freakmov\\.com/(rc|video)/[0-9]+", "http://[\\w\\.]*?(shragle|cloudnator)\\.(com|de)/files/[\\w]+/.*", "http://[\\w\\.]*?filesavr\\.com/[A-Za-z0-9]+(_\\d+)?", "http://(www\\.)?saveufile\\.(in\\.th|com)/car\\.php\\?file=[a-z0-9]+", "https?://(www\\.)?migahost\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?fastfreefilehosting\\.com/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "https?://(www\\.)?files2k\\.eu/[a-z0-9]{12}", "https?://(www\\.)?shafiles\\.me/[a-z0-9]{12}", "http://(www\\.)?jalurcepat\\.com/[a-z0-9]{12}", "https?://(www\\.)?(divload|divupload)\\.org/(embed\\-)?[a-z0-9]{12}", "http://(www\\.)?refile\\.net/(d|f)/\\?[\\w]+", + "http://[\\w\\.]*?oron\\.com/[a-z0-9]{12}", "http://(www\\.)?wupload\\.[a-z]{1,5}/file/([0-9]+(/.+)?|[a-z0-9]+/[0-9]+(/.+)?)", "http://[\\w\\.]*?(sharingmatrix|filesonic)\\..*?/.*?file/([a-zA-Z0-9]+(/.+)?|[a-z0-9]+/[0-9]+(/.+)?|[0-9]+(/.+)?)", "https?://(www\\.)?xxlupload\\.com/[a-z0-9]{12}", "http://(www\\.)?cumfox\\.com/videos/.*?-\\d+\\.html", "http://(www\\.)?pyramidfiles\\.com/[a-z0-9]{12}", "http://(www\\.)?nahraj\\.cz/content/(view|download)/[a-z0-9]+\\-[a-z0-9]+\\-[a-z0-9]+\\-[a-z0-9]+\\-[a-z0-9]+", "http://(www\\.)?jsharer\\.com/download/[a-z0-9]+\\.htm", "https?://(www\\.)?annonhost\\.net/[a-z0-9]{12}", "http://(www\\.)?filekeeper\\.org/download/[0-9a-zA-Z]+/([\\(\\)0-9A-Za-z\\.\\-_% ]+|[/]+/[\\(\\)0-9A-Za-z\\.\\-_% ])", "http://(www\\.)?dynyoo\\.com/\\?goto=dl\\&id=[a-z0-9]{32}", "http://[\\w\\.]*?163pan\\.com/files/[a-z0-9]+\\.html", + "http://[\\w\\.]*?imagehost\\.org/(download/[0-9]+/.+|[0-9]+/.+)", "http://[\\w\\.]*?4us\\.to/download\\.php\\?id=[A-Z0-9]+", "http://[\\w\\.]*?yabadaba\\.ru/files/[0-9]+", "http://(www\\.)?madshare\\.com/(en/)?download/[a-zA-Z0-9]+/", "http://(www\\.)?diglo\\.com/download/[a-z0-9]+", "http://(www\\.)?tubeload\\.to/file(\\d+)?\\-.+", "http://(www\\.)?tunabox\\.net/files/[A-Za-z0-9]+\\.html", "http://[\\w\\.]*?yourfilehost\\.com/media\\.php\\?cat=.*?\\&file=.+", "https?://(www\\.)?uploadegg\\.com/[a-z0-9]{12}", "http://(www\\.)?brsbox\\.com/filebox/down/fc/[a-z0-9]{32}", "http://(www\\.)?amateurboobtube\\.com/videos/\\d+/.*?\\.html", "http://(www\\.)?good\\.net/.+", "http://(www\\.)*?(freeload|mcload)\\.to/(divx\\.php\\?file_id=|\\?Mod=Divx\\&Hash=)[a-z0-9]+", "http://(www\\.)?netporn\\.nl/watch/[a-z0-9]+/.{1}", "http://(www\\.)?przeklej\\.pl/(d/\\w+/|\\d+|plik/)[^\\s]+", + "http://(www\\.)?alldrives\\.ge/main/linkform\\.php\\?f=[a-z0-9]+", "http://(www\\.)?allshares\\.ge/(\\?d|download\\.php\\?id)=[A-Z0-9]+", "https?://(www\\.)?holderfile\\.com/[a-z0-9]{12}", "http://(www\\.)?megashare\\.vnn\\.vn/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?link\\.ge/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?up\\.jeje\\.ge//((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?up\\-4\\.com/(\\?d|download\\.php\\?id)=[A-Z0-9]+", "https?://(www\\.)?cloudcache\\.cc/[a-z0-9]{12}", "https?://(www\\.)?(ddlanime\\.com|ddlani\\.me)/[a-z0-9]{12}", "http://(www\\.)?mountfile\\.com/file/[a-z0-9]+/[a-z0-9]+", "http://(www\\.)?platinshare\\.com/files/[A-Za-z0-9]+", "http://(www\\.)?ishare\\.iask\\.sina\\.com\\.cn/f/\\d+\\.html", + "http://(www\\.)?megavideo\\.com/(.*?(v|d)=|v/)[a-zA-Z0-9]+", "http://(www\\.)?megaupload\\.com/.*?(\\?|&)d=[0-9A-Za-z]+", "http://(www\\.)?(cum|megaporn|megarotic|sexuploader)\\.com/(.*?v=|v/)[a-zA-Z0-9]+", "http://(www\\.)?zshare\\.net/(download|video|image|audio|flash)/.*", "http://(www\\.)?uploading4u\\.com/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?megafree\\.kz/file\\d+", "http://(www\\.)?batubia\\.com/[a-z0-9]{12}", "http://(www\\.)?upload24\\.net/[a-z0-9]+\\.[a-z0-9]+", "http://(www\\.)?download\\.files\\.namba\\.kz/files/\\d+", "http://(www\\.)?datumbit\\.com/file/.*?/", "http://(www\\.)?fik1\\.com/[a-z0-9]{12}", "http://(www\\.)?fileape\\.com/(index\\.php\\?act=download\\&id=|dl/)\\w+", "http://(www\\.)?filezzz\\.com/download/[0-9]+/", "http://(www\\.)?imagewaste\\.com/pictures/\\d+/.{1}", + "http://(www\\.)?fyels\\.com/[A-Za-z0-9]+", "http://(www\\.)?gotupload\\.com/[a-z0-9]{12}", "http://(go.sharehub.com|sharehub.me|follow.to|kgt.com|krt.com)/.*", "http://(www\\.)?sharehut\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?(filesurf|4ppl|files\\.youmama)\\.ru/[0-9]+", "http://[\\w\\.]*?openfile\\.ru/[0-9]+", "http://[\\w\\.]*?letitfile\\.(ru|com)/download/id\\d+", "http://[\\w\\.]*?tab\\.net\\.ua/sites/files/site_name\\..*?/id\\.\\d+/", "http://[\\w\\.]*?uploadbox\\.com/.*?files/[0-9a-zA-Z]+", "http://(www\\.)?supashare\\.net/[a-z0-9]{12}", "https?://(www\\.)?usershare\\.net/[a-z0-9]{12}", "http://(www\\.)?skipfile\\.com/[a-z0-9]{12}", "http://(www\\.)?10upload\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?x7\\.to/(?!list)[a-zA-Z0-9]+(/(?!inList)[^/\r\n]+)?", "http://(www\\.)?multiuploaddecrypted\\.com/([A-Z0-9]{2}_[A-Z0-9]+|[0-9A-Z]+)", "http://(www\\.)?uploadking\\.com/[A-Z0-9]+", + "http://(www\\.)?uploadhere\\.com/[A-Z0-9]+", "http://[\\w\\.]*?fileshaker\\.com/.+", "http://(www\\.)?vistaupload\\.com/[a-z0-9]{12}", "https?://(www\\.)?groovefile\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?enterupload\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?xshareware\\.com/[\\w]+/.*", "http://[\\w\\.]*?xun6\\.(com|net)/file/[a-z0-9]+", "http://(www\\.)?yourupload\\.de/[a-z0-9]{12}", "http://(www\\.)?youshare\\.eu/[a-z0-9]{12}", "http://(www\\.)?mafiaupload\\.com/do\\.php\\?id=\\d+", "http://[\\w\\.]*?addat.hu/.+/.+", "http://(www\\.)?archiv\\.to/((\\?Module\\=Details\\&HashID\\=|GET/)FILE[A-Z0-9]+|view/divx/[a-z0-9]+)", "http://[\\w\\.]*?bigupload\\.com/(d=|files/)[A-Z0-9]+", "http://(www\\.)?biggerupload\\.com/[a-z0-9]{12}", "http://(www\\.)?(bitload\\.com/(f|d)/\\d+/[a-z0-9]+|mystream\\.to/file-\\d+-[a-z0-9]+)", "https?://(www\\.)?bufiles\\.com/[a-z0-9]{12}", + "http://(www\\.)?cash-file\\.(com|net)/[a-z0-9]{12}", "http://[\\w\\.]*?combozip\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?(duckload\\.com|youload\\.to)/(download/[a-z0-9]+|(divx|play)/[A-Z0-9\\.-]+|[a-zA-Z0-9\\.]+)", "http://(www\\.)?exoshare\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?file2upload\\.(net|com)/download/[0-9]+/", "http://[\\w\\.]*?filebase\\.to/(files|download)/\\d{1,}/.*", "http://[\\w\\.]*?filebling\\.com/[a-z0-9]{12}", "http://(www\\.)?filecrown\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?filefrog\\.to/download/\\d+/[a-zA-Z0-9]+", "http://[\\w\\.]*?filefront\\.com/[0-9]+", "http://(www\\.)?filehook\\.com/[a-z0-9]{12}", "http://(www\\.)?filestage\\.to/watch/[a-z0-9]+/", "http://(www\\.)?(filezup|divxupfile)\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?fullshare\\.net/show/[a-z0-9]+/.+", "http://(www\\.)?gaiafile\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?keepfile\\.com/[a-z0-9]{12}", + "http://[\\w\\.]*?kewlshare\\.com/dl/[\\w]+/", "http://[\\w\\.]*?lizshare\\.net/[a-z0-9]{12}", "http://(www\\.)?loaded\\.it/(show/[a-z0-9]+/[A-Za-z0-9_\\-% \\.]+|(flash|divx)/[a-z0-9]+/)", "http://[\\w\\.]*?loadfiles\\.in/[a-z0-9]{12}", "(http://[\\w\\.]*?megarapid\\.eu/files/\\d+/.+)|(http://[\\w\\.]*?megarapid\\.eu/\\?e=403\\&m=captcha\\&file=\\d+/.+)", "http://[\\w\\.]*?(megashare\\.vn/(download\\.php\\?uid=[0-9]+\\&id=[0-9]+|dl\\.php/\\d+)|share\\.megaplus\\.vn/dl\\.php/\\d+)", "http://(www\\.)?metahyper\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?missupload\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?netstorer\\.com/[a-zA-Z0-9]+/.+", "http://[\\w\\.]*?nextgenvidz\\.com/view/\\d+", "http://(www\\.)?piggyshare\\.com/file/[a-z0-9]+", "http://(www\\.)?profitupload\\.com/files/[A-Za-z0-9]+\\.html", "http://[\\w\\.]*?quickload\\.to/\\?Go=Player\\&HashID=FILE[A-Z0-9]+", + "http://[\\w\\.]*?quickyshare\\.com/[a-z0-9]{12}", "http://[\\w\\.]*?share\\.cx/(files/)?\\d+", "http://[\\w\\.]*?sharehoster\\.(de|com|net)/(dl|wait|vid)/[a-z0-9]+", "http://[\\w\\.]*?shareua.com/get_file/.*?/\\d+", "http://[\\w\\.]*?speedload\\.to/FILE[A-Z0-9]+", "http://(www\\.)?upfile\\.in/[a-z0-9]{12}", "http://[\\w\\.]*?ugotfile.com/file/\\d+/.+", "http://[\\w\\.]*?upload\\.ge/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://[\\w\\.]*?uploadmachine\\.com/(download\\.php\\?id=[0-9]+&type=[0-9]{1}|file/[0-9]+/)", "http://[\\w\\.]*?uploady\\.to/dl/((\\?d|download\\.php\\?id)=[A-Z0-9]+|((en|ru|fr|es)/)?file/[0-9]+/)", "http://(www\\.)?uploadstore\\.net/[a-z0-9]{12}", "http://[\\w\\.]*?vspace\\.cc/file/[A-Z0-9]+\\.html", "http://[\\w\\.]*?web-share\\.net/download/file/item/.*?_[0-9]+", "http://(www\\.)?yvh\\.cc/video\\.php\\?file=[a-z0-9_]+", + "http://[\\w\\.]*?x-files\\.kz/[a-z0-9]+" }, flags = { 0 }) public class Offline extends PluginForHost { public Offline(PluginWrapper wrapper) {