-deleted plugins for dead services: fixes #5457 fixes #5458 fixes #5419 fixes #5529 fixes #5472 fixes #5481 fixes #5474 fixes #5488

-urlgalleries should work fine fixes #5456
-fixed electretv regex, bismarck the rest is for you refs #5469
-fixed fastshare errorhandling fixes #5471
-improved laraslevelbase errorhandling fixes #5473
-fixed hardwareclips fixes #5487
-improved imagevenue regex fixes #5489
-improved isharemybitchgallery regex fixes #5491
-applied letitbit.tv domainchange fixes #5492
-fixed a dailymotion bug which was related to the mysteretv problem fixes #5494
-fixed tutv fixes #5495
-fixed ecostream fixes #5502
-fixed partagefacileerrorhandling fixes #5503
-fixed freeporn errorhandling fixes #5504
-added support for decrypting tube8 videos via amateurgalore fixes #5506
-implemented some new embed ids for voayeurs fixes #5505
-fixes #5507
-fixed stileproject fixes #5525
-fixed keezmovies filename regex refs #5526 rest is for .bismarck
-fixed hardsextube fixes #5527
-improved xtube errorhandling fixes #5528

git-svn-id: svn://svn.jdownloader.org/jdownloader/trunk@17837 ebf7c1c2-ba36-0410-9fe8-c592906822b4
This commit is contained in:
psp 2012-07-10 23:33:30 +00:00
parent ed0914e847
commit 5755e1ad93
32 changed files with 197 additions and 1047 deletions

View File

@ -828,4 +828,12 @@ jd/plugins/hoster/TuDouCom.class
jd/plugins/hoster/TunaBoxNet.class
jd/plugins/hoster/TubeLoadTo.class
jd/plugins/hoster/Dataupde.class
jd/plugins/hoster/WiseVidCom.class
jd/plugins/hoster/WiseVidCom.class
jd/plugins/hoster/DynYooCom.class
jd/plugins/hoster/FourUsTo.class
jd/plugins/hoster/DigloCom.class
jd/plugins/hoster/YabaDabaRu.class
jd/plugins/hoster/Hundred63PanCom.class
jd/plugins/decrypter/XXXBlg.class
jd/plugins/hoster/MadShareCom.class
jd/plugins/hoster/ImageHostOrg.class

View File

@ -74,9 +74,9 @@ public class AmateurGaloreNet extends PluginForDecrypt {
decryptedLinks.add(createDownloadlink("http://www.xvideos.com/video" + tempID));
return decryptedLinks;
}
tempID = br.getRegex("(megaporn|cum)\\.com/e/([A-Z0-9]{8})").getMatch(1);
tempID = br.getRegex("\"(http://(www\\.)?tube8\\.com/embed/[^<>\"/]*?/[^<>\"/]*?/\\d+/?)\"").getMatch(0);
if (tempID != null) {
decryptedLinks.add(createDownloadlink("http://www.cum.com/video/?v=" + tempID));
decryptedLinks.add(createDownloadlink(tempID.replace("tube8.com/embed", "tube8.com/")));
return decryptedLinks;
}
if (tempID == null) {

View File

@ -48,7 +48,7 @@ public class IShareMyBitchComGallery extends PluginForDecrypt {
}
fpName = Encoding.htmlDecode(fpName.trim());
br.getPage("http://www.isharemybitch.com/gallery-widget/widget.php?id=" + galleryID);
final String[] links = br.getRegex("\"(http://media\\.isharemybitch\\.com:\\d+/galleries/[a-z0-9]+/\\d+\\.jpg)\"").getColumn(0);
final String[] links = br.getRegex("\"(http://media\\.isharemybitch\\.com:\\d+/galleries/[a-z0-9]+/[a-z0-9\\-_]+\\.jpg)\"").getColumn(0);
if (links == null || links.length == 0) {
logger.warning("Decrypter broken for link: " + parameter);
return null;

View File

@ -22,11 +22,9 @@ import jd.PluginWrapper;
import jd.controlling.ProgressController;
import jd.nutils.encoding.Encoding;
import jd.plugins.CryptedLink;
import jd.plugins.DecrypterException;
import jd.plugins.DecrypterPlugin;
import jd.plugins.DownloadLink;
import jd.plugins.PluginForDecrypt;
import jd.utils.locale.JDL;
@DecrypterPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "mystere-tv.com" }, urls = { "http://(www\\.)?mystere\\-tv\\.com/.*?\\-v\\d+\\.html" }, flags = { 0 })
public class MystereTvComDecrypter extends PluginForDecrypt {
@ -42,7 +40,10 @@ public class MystereTvComDecrypter extends PluginForDecrypt {
String parameter = param.toString();
br.setFollowRedirects(true);
br.getPage(parameter);
if (br.getURL().equals("http://www.mystere-tv.com/") || br.containsHTML("<title>Paranormal \\- Ovni \\- Mystere TV </title>")) throw new DecrypterException(JDL.L("plugins.decrypt.errormsg.unavailable", "Perhaps wrong URL or the download is not available anymore."));
if (br.getURL().equals("http://www.mystere-tv.com/") || br.containsHTML("<title>Paranormal \\- Ovni \\- Mystere TV </title>")) {
logger.info("Link offline: " + parameter);
return decryptedLinks;
}
// Same as in hosterplugin
String filename = br.getRegex("<h1 class=\"videoTitle\">(.*?)</h1>").getMatch(0);
if (filename == null) {

View File

@ -65,6 +65,7 @@ public class VoaYeursCom extends PluginForDecrypt {
return decryptedLinks;
}
externID = br.getRegex("xvideos\\.com/embedframe/(\\d+)\"").getMatch(0);
if (externID == null) externID = br.getRegex("xvideos\\.com/swf/flv_player_site_v\\d+\\.swf\" /><param name=\"allowFullScreen\" value=\"true\" /><param name=\"flashvars\" value=\"id_video=(\\d+)\"").getMatch(0);
if (externID != null) {
decryptedLinks.add(createDownloadlink("http://www.xvideos.com/video" + externID));
return decryptedLinks;
@ -74,9 +75,9 @@ public class VoaYeursCom extends PluginForDecrypt {
decryptedLinks.add(createDownloadlink(externID.replace("tube8.com/embed", "tube8.com/")));
return decryptedLinks;
}
externID = br.getRegex("drtuber\\.com/embed/(\\d+)\"").getMatch(0);
externID = br.getRegex("(http://(www\\.)?drtuber\\.com/player/config_embed3\\.php\\?vkey=[a-z0-9]+)").getMatch(0);
if (externID != null) {
decryptedLinks.add(createDownloadlink("http://www.drtuber.com/video/" + externID + "/" + System.currentTimeMillis()));
decryptedLinks.add(createDownloadlink(externID));
return decryptedLinks;
}
externID = br.getRegex("emb\\.slutload\\.com/([A-Za-z0-9]+)\"").getMatch(0);
@ -124,6 +125,13 @@ public class VoaYeursCom extends PluginForDecrypt {
decryptedLinks.add(createDownloadlink("http://www.tnaflix.com/cum-videos/" + System.currentTimeMillis() + "/video" + externID));
return decryptedLinks;
}
externID = br.getRegex("pornhub\\.com/embed/(\\d+)").getMatch(0);
if (externID == null) externID = br.getRegex("pornhub\\.com/view_video\\.php\\?viewkey=(\\d+)").getMatch(0);
if (externID != null) {
DownloadLink dl = createDownloadlink("http://www.pornhub.com/view_video.php?viewkey=" + externID);
decryptedLinks.add(dl);
return decryptedLinks;
}
// For all following ids, a filename is needed
if (filename == null) {
logger.warning("Decrypter broken for link: " + parameter);
@ -143,6 +151,13 @@ public class VoaYeursCom extends PluginForDecrypt {
decryptedLinks.add(dl);
return decryptedLinks;
}
externID = br.getRegex("shufuni\\.com/Flash/.*?flashvars=\"VideoCode=(.*?)\"").getMatch(0);
if (externID != null) {
DownloadLink dl = createDownloadlink("http://www.shufuni.com/handlers/FLVStreamingv2.ashx?videoCode=" + externID);
dl.setFinalFileName(Encoding.htmlDecode(filename.trim()));
decryptedLinks.add(dl);
return decryptedLinks;
}
if (externID == null) {
logger.warning("Couldn't decrypt link: " + parameter);
return null;

View File

@ -1,91 +0,0 @@
// jDownloader - Downloadmanager
// Copyright (C) 2008 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 <http://www.gnu.org/licenses/>.
package jd.plugins.decrypter;
import java.util.ArrayList;
import jd.PluginWrapper;
import jd.controlling.ProgressController;
import jd.parser.html.Form;
import jd.parser.html.HTMLParser;
import jd.plugins.CryptedLink;
import jd.plugins.DecrypterException;
import jd.plugins.DecrypterPlugin;
import jd.plugins.DownloadLink;
import jd.plugins.FilePackage;
import jd.plugins.LinkStatus;
import jd.plugins.PluginException;
import jd.plugins.PluginForDecrypt;
import jd.utils.locale.JDL;
@DecrypterPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "xxx-blog.org" }, urls = { "http://(www\\.)?xxx-blog\\.(org|to)/((share|sto|com-|u|filefactory/|relink/)[\\w\\./-]+|.*?\\.html|(blog|typ)/(dvd-rips|scenes|amateur-clips|hd-(scenes|movies)|site-rips|image-sets|games)/.+/)" }, flags = { 0 })
public class XXXBlg extends PluginForDecrypt {
private static ArrayList<String> pwList = new ArrayList<String>();
static {
pwList.add("xxx-blog.dl.am");
pwList.add("xxx-blog.org");
}
public XXXBlg(PluginWrapper wrapper) {
super(wrapper);
}
@Override
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception {
ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>();
String parameter = param.toString();
parameter = parameter.substring(parameter.lastIndexOf("http://"));
br.getPage(parameter);
if (br.containsHTML("Fehler 404 - Seite nicht gefunden")) throw new DecrypterException(JDL.L("plugins.decrypt.errormsg.unavailable", "Perhaps wrong URL or the download is not available anymore."));
if (parameter.contains("/blog/") || parameter.contains("/typ/")) {
String fpname = br.getRegex("<title>(.*?)\\| XXX-Blog").getMatch(0);
if (fpname == null) fpname = br.getRegex("rel=\"bookmark\" title=\"(.*?)\"").getMatch(0);
String pagepiece = br.getRegex("<strong>(.*?)</a></strong></p>").getMatch(0);
if (pagepiece == null) pagepiece = br.getRegex("table class=\"dltable\">.*?Download:</strong(.*?)</table").getMatch(0);
if (pagepiece == null) return null;
String[] links = HTMLParser.getHttpLinks(pagepiece, "");
if (links == null || links.length == 0) return null;
for (String link : links) {
DownloadLink dlink = createDownloadlink(link);
dlink.setSourcePluginPasswordList(pwList);
decryptedLinks.add(dlink);
}
if (fpname != null) {
FilePackage fp = FilePackage.getInstance();
fp.setName(fpname.trim());
fp.addLinks(decryptedLinks);
}
} else {
DownloadLink dLink;
if (br.getRedirectLocation() != null) {
dLink = createDownloadlink(br.getRedirectLocation());
} else {
Form form = br.getForm(0);
if (form == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
dLink = createDownloadlink(form.getAction(null));
if (!parameter.matches("http://(www\\.)?xxx-blog\\.(org|to)/((share|sto|com-|u|filefactory/|relink/)[\\w\\./-]+|.*?\\.html|(blog|typ)/(dvd-rips|scenes|amateur-clips|hd-(scenes|movies)|site-rips|image-sets|games)/.+/)")) decryptedLinks.add(createDownloadlink(parameter));
}
dLink.setSourcePluginPasswordList(pwList);
decryptedLinks.add(dLink);
}
return decryptedLinks;
}
}

View File

@ -58,7 +58,8 @@ public class DailyMotionCom extends PluginForHost {
setupRTMPConnection(stream, dl);
((RTMPDownload) dl).startDownload();
} else {
// They do allow resume and unlimited chunks but resuming or using more
// They do allow resume and unlimited chunks but resuming or using
// more
// than 1 chunk causes problems, the file will then b corrupted!
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, dllink, false, 1);
if (dl.getConnection().getContentType().contains("html")) {
@ -187,7 +188,12 @@ public class DailyMotionCom extends PluginForHost {
getQuality("hd720URL", allLinks);
if (dllink == null) {
getQuality("hqURL", allLinks);
if (dllink == null) getQuality("sdURL", allLinks);
if (dllink == null) {
getQuality("sdURL", allLinks);
if (dllink == null) {
getQuality("ldURL", allLinks);
}
}
}
}
}
@ -222,7 +228,7 @@ public class DailyMotionCom extends PluginForHost {
}
private void getQuality(String quality, String allLinks) {
dllink = new Regex(allLinks, "\"" + quality + "\":\"(http:[^<>\"\\']+)\"").getMatch(0);
dllink = new Regex(allLinks, "\"" + quality + "\":\"(http[^<>\"\\']+)\"").getMatch(0);
}
private boolean isRtmp() throws IOException {

View File

@ -1,110 +0,0 @@
//jDownloader - Downloadmanager
//Copyright (C) 2010 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 <http://www.gnu.org/licenses/>.
package jd.plugins.hoster;
import java.io.IOException;
import jd.PluginWrapper;
import jd.parser.Regex;
import jd.plugins.DownloadLink;
import jd.plugins.DownloadLink.AvailableStatus;
import jd.plugins.HostPlugin;
import jd.plugins.LinkStatus;
import jd.plugins.PluginException;
import jd.plugins.PluginForHost;
import org.appwork.utils.formatter.SizeFormatter;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "diglo.com" }, urls = { "http://(www\\.)?diglo\\.com/download/[a-z0-9]+" }, flags = { 0 })
public class DigloCom extends PluginForHost {
public DigloCom(PluginWrapper wrapper) {
super(wrapper);
}
@Override
public String getAGBLink() {
return "http://www.diglo.com/terms_of_use.html";
}
@Override
public int getMaxSimultanFreeDownloadNum() {
return 1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
requestFileInformation(downloadLink);
br.getPage(downloadLink.getDownloadURL().replace("download/", "download/free/"));
br.setFollowRedirects(false);
String dllink = br.getRegex("id=\"link_activator\" style=\"display:none\"><a href=\"(http://.*?)\"").getMatch(0);
if (dllink == null) dllink = br.getRegex("\"(http://x\\d+\\.diglo\\.com/download/[a-z0-9]+)\"").getMatch(0);
if (dllink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
int wait = 45;
String waittime = br.getRegex("var wait_time = (\\d+)").getMatch(0);
if (waittime != null) wait = Integer.parseInt(waittime);
sleep(wait * 1001l, downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, dllink, false, 1);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
if (br.containsHTML("(You are already downloading a file|Please wait until your download is complete or)")) throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, "Too many simultan downloads", 10 * 60 * 1000l);
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
this.setBrowserExclusive();
br.getPage(link.getDownloadURL());
if (br.containsHTML("(<title>diglo\\.com</title>|/images/404\\.gif\\'\\))")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
Regex fileInfo = br.getRegex("<h2><span>Download:</span>(.*?)\\&nbsp;\\&nbsp;\\&nbsp;(.*?)</h2>");
String filename = br.getRegex("var fullname = \"(.*?)\";").getMatch(0);
if (filename == null) {
filename = br.getRegex("<div class=\"dl_info\">[\t\n\r ]+<span title=\"(.*?)\"").getMatch(0);
if (filename == null) {
filename = br.getRegex("<title>(.*?) free download</title>").getMatch(0);
if (filename == null) {
filename = fileInfo.getMatch(0);
if (filename == null) {
filename = br.getRegex("class=\"row odd\"><span>Filename:</span>(.*?)</div>").getMatch(0);
}
}
}
}
String filesize = fileInfo.getMatch(1);
if (filesize == null) {
filesize = br.getRegex("<span class=\"fileSize\">(.*?)</span>").getMatch(0);
if (filesize == null) {
filesize = br.getRegex("class=\"row\"><span>Filesize:</span>(.*?)</div>").getMatch(0);
}
}
if (filename == null || filesize == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
link.setName(filename.trim());
link.setDownloadSize(SizeFormatter.getSize(filesize));
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}
@Override
public void resetDownloadlink(DownloadLink link) {
}
}

View File

@ -1,89 +0,0 @@
//jDownloader - Downloadmanager
//Copyright (C) 2010 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 <http://www.gnu.org/licenses/>.
package jd.plugins.hoster;
import java.io.IOException;
import jd.PluginWrapper;
import jd.parser.Regex;
import jd.plugins.DownloadLink;
import jd.plugins.DownloadLink.AvailableStatus;
import jd.plugins.HostPlugin;
import jd.plugins.LinkStatus;
import jd.plugins.PluginException;
import jd.plugins.PluginForHost;
import org.appwork.utils.formatter.SizeFormatter;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "dynyoo.com" }, urls = { "http://(www\\.)?dynyoo\\.com/\\?goto=dl\\&id=[a-z0-9]{32}" }, flags = { 0 })
public class DynYooCom extends PluginForHost {
private static final String FILEIDREGEX = "dynyoo\\.com/\\?goto=dl\\&id=(.+)";
public DynYooCom(PluginWrapper wrapper) {
super(wrapper);
}
@Override
public String getAGBLink() {
return "http://dynyoo.com/?goto=faq";
}
@Override
public int getMaxSimultanFreeDownloadNum() {
return -1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, "http://dynyoo.com/downloadnow.php?id=" + new Regex(downloadLink.getDownloadURL(), FILEIDREGEX).getMatch(0), true, 0);
if (dl.getConnection().getContentType().contains("html")) {
logger.warning("The finallink doesn't seem to be a file...");
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
this.setBrowserExclusive();
// We use an API
// Problems with the API ? Contact info@dynyoo.com
br.getPage("http://dynyoo.com/api/status.php?id=" + new Regex(link.getDownloadURL(), FILEIDREGEX).getMatch(0));
Regex info = br.getRegex("(.*?);(.*?);(.*?)");
if (br.containsHTML("invalid")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
if (info.getMatch(0) == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
if (!info.getMatch(0).equals("online")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = info.getMatch(1);
String filesize = info.getMatch(2);
if (filename == null || filesize == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
link.setName(filename.trim());
link.setDownloadSize(SizeFormatter.getSize(filesize));
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}
@Override
public void resetDownloadlink(DownloadLink link) {
}
}

View File

@ -53,22 +53,11 @@ public class EcoStreamTv extends PluginForHost {
return -1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, DLLINK, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
this.setBrowserExclusive();
br.setFollowRedirects(true);
br.postPage(downloadLink.getDownloadURL() + "?ss=1", "ss=1");
br.postPage(downloadLink.getDownloadURL() + "?ss=1", "ss=1&sss=1");
// No way to directly find out of it's online or not so let's just try
Regex importantVars = br.getRegex("\\(\"lc\\(\\'([^<>\"]*?)\\',\\'([^<>\"]*?)\\',\\'([^<>\"]*?)\\',\\'([^<>\"]*?)\\'\\)");
String var1 = importantVars.getMatch(0);
@ -77,7 +66,7 @@ public class EcoStreamTv extends PluginForHost {
String var4 = importantVars.getMatch(3);
if (var1 == null || var2 == null || var3 == null || var4 == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
br.getHeaders().put("X-Requested-With", "XMLHttpRequest");
br.postPage("http://www.ecostream.tv/objec.php?s=" + var1 + "&k=" + var2 + "&t=" + var3 + "&key=" + var4, "");
br.postPage("http://www.ecostream.tv/lc/m.php?s=" + var1 + "&k=" + var2 + "&t=" + var3 + "&key=" + var4, "");
DLLINK = br.getRegex("flashvars=\"file=(http://[^\"\\']+)\\&image=").getMatch(0);
if (DLLINK == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
DLLINK = Encoding.htmlDecode(DLLINK);
@ -102,6 +91,17 @@ public class EcoStreamTv extends PluginForHost {
}
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, DLLINK, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public void reset() {
}

View File

@ -26,7 +26,7 @@ import jd.plugins.PluginForHost;
import org.appwork.utils.Regex;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "eltrecetv.com.ar" }, urls = { "http://(www\\.)?eltrecetv\\.com\\.ar/[\\w-]+/nota/\\d+/.+" }, flags = { PluginWrapper.DEBUG_ONLY })
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "eltrecetv.com.ar" }, urls = { "http://(www\\.)?eltrecetv\\.com\\.ar/[^<>\"/]+/[^<>\"/]+/\\d+/.+" }, flags = { 0 })
public class EltrecetvComAr extends PluginForHost {
private String clipUrl = null;
@ -46,6 +46,24 @@ public class EltrecetvComAr extends PluginForHost {
return -1;
}
@Override
public AvailableStatus requestFileInformation(final DownloadLink downloadLink) throws Exception {
setBrowserExclusive();
br.getPage(downloadLink.getDownloadURL());
String filename = br.getRegex("<title>(.*?) \\|.*?</title>").getMatch(0);
if (filename == null) {
filename = br.getRegex("\\s+<h1>(.*?)</h1>").getMatch(0);
}
swfUrl = br.getRegex("<param name=\"movie\" value=\"(.*?)\"").getMatch(0);
final String id = new Regex(downloadLink.getDownloadURL(), ".*?/(\\d+)/.*?").getMatch(0);
br.getPage("http://www.eltrecetv.com.ar/feed/videowowza/" + id);
clipUrl = br.getRegex("<media:content url=\"(.*?)\"").getMatch(0);
if (filename == null || clipUrl == null || swfUrl == null) { throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND); }
swfUrl = "http://www.eltrecetv.com.ar" + swfUrl;
downloadLink.setFinalFileName(filename + ".flv");
return AvailableStatus.TRUE;
}
@Override
public void handleFree(final DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
@ -75,24 +93,6 @@ public class EltrecetvComAr extends PluginForHost {
}
}
@Override
public AvailableStatus requestFileInformation(final DownloadLink downloadLink) throws Exception {
setBrowserExclusive();
br.getPage(downloadLink.getDownloadURL());
String filename = br.getRegex("<title>(.*?) \\|.*?</title>").getMatch(0);
if (filename == null) {
filename = br.getRegex("\\s+<h1>(.*?)</h1>").getMatch(0);
}
swfUrl = br.getRegex("<param name=\"movie\" value=\"(.*?)\"").getMatch(0);
final String id = new Regex(downloadLink.getDownloadURL(), ".*?/(\\d+)/.*?").getMatch(0);
br.getPage("http://www.eltrecetv.com.ar/feed/videowowza/" + id);
clipUrl = br.getRegex("<media:content url=\"(.*?)\"").getMatch(0);
if (filename == null || clipUrl == null || swfUrl == null) { throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND); }
swfUrl = "http://www.eltrecetv.com.ar" + swfUrl;
downloadLink.setFinalFileName(filename + ".flv");
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}

View File

@ -74,7 +74,7 @@ public class FastShareorg extends PluginForHost {
br.setFollowRedirects(false);
String url = downloadLink.getDownloadURL();
br.getPage(url);
if (!br.containsHTML("No filename specified or the file has been deleted")) {
if (!br.containsHTML("(No filename specified or the file has been deleted|This file has been deleted because of complaints)")) {
downloadLink.setName(Encoding.htmlDecode(br.getRegex("Wenn sie die Datei \"<b>(.*?)<\\/b>\"").getMatch(0)));
String filesize = null;
if ((filesize = br.getRegex("<i>\\((.*)MB\\)</i>").getMatch(0)) != null) {

View File

@ -340,17 +340,15 @@ public class FileRioCom extends PluginForHost {
String tmpmin = new Regex(correctedBR, "\\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(correctedBR, "\\s+(\\d+)\\s+seconds?").getMatch(0);
String tmpdays = new Regex(correctedBR, "\\s+(\\d+)\\s+days?").getMatch(0);
if (tmphrs == null && tmpmin == null && tmpsec == null && tmpdays == null) {
if (tmphrs == null && tmpmin == null && tmpsec == 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;
int minutes = 0, seconds = 0, hours = 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;
int waittime = (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); }

View File

@ -1,176 +0,0 @@
// jDownloader - Downloadmanager
// Copyright (C) 2009 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 <http://www.gnu.org/licenses/>.
package jd.plugins.hoster;
import jd.PluginWrapper;
import jd.nutils.encoding.Encoding;
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.PluginException;
import jd.plugins.PluginForHost;
import org.appwork.utils.formatter.SizeFormatter;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "4us.to" }, urls = { "http://[\\w\\.]*?4us\\.to/download\\.php\\?id=[A-Z0-9]+" }, flags = { 0 })
public class FourUsTo extends PluginForHost {
private static final String COOKIE_HOST = "http://4us.to";
public FourUsTo(PluginWrapper wrapper) {
super(wrapper);
}
public void correctDownloadLink(DownloadLink link) {
link.setUrlDownload(link.getDownloadURL() + "&setlang=en");
}
public String findLink() throws Exception {
String finalLink = null;
String[] sitelinks = HTMLParser.getHttpLinks(br.toString(), null);
if (sitelinks == null || sitelinks.length == 0) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
for (String alink : sitelinks) {
alink = Encoding.htmlDecode(alink);
if (alink.contains("access_key=") || alink.contains("getfile.php?")) {
finalLink = alink;
break;
}
}
return finalLink;
}
// MhfScriptBasic 1.0
@Override
public String getAGBLink() {
return "http://4us.to/contact.php";
}
@Override
public int getMaxSimultanFreeDownloadNum() {
return -1;
}
@Override
public void handleFree(DownloadLink link) throws Exception {
this.setBrowserExclusive();
requestFileInformation(link);
if (br.containsHTML("value=\"Free Users\"")) br.postPage(link.getDownloadURL(), "Free=Free+Users");
String passCode = null;
Form captchaform = br.getFormbyProperty("name", "myform");
if (captchaform == null) {
captchaform = br.getFormbyProperty("name", "validateform");
if (captchaform == null) {
captchaform = br.getFormbyProperty("name", "valideform");
}
}
if (br.containsHTML("(captcha.php|class=textinput name=downloadpw)")) {
if (captchaform == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
for (int i = 0; i <= 3; i++) {
if (br.containsHTML("captcha.php")) {
String captchaurl = COOKIE_HOST + "/captcha.php";
String code = getCaptchaCode(captchaurl, link);
captchaform.put("captchacode", code);
}
if (br.containsHTML("class=textinput name=downloadpw")) {
if (link.getStringProperty("pass", null) == null) {
passCode = getUserInput(null, link);
} else {
/* gespeicherten PassCode holen */
passCode = link.getStringProperty("pass", null);
}
captchaform.put("downloadpw", passCode);
}
br.submitForm(captchaform);
if (br.containsHTML("Password Error")) {
logger.warning("Wrong password!");
link.setProperty("pass", null);
continue;
}
if (br.containsHTML("Captcha number error") || br.containsHTML("captcha.php") && !br.containsHTML("You have got max allowed bandwidth size per hour")) {
logger.warning("Wrong captcha or wrong password!");
link.setProperty("pass", null);
continue;
}
break;
}
}
if (br.containsHTML("Password Error")) {
logger.warning("Wrong password!");
link.setProperty("pass", null);
throw new PluginException(LinkStatus.ERROR_RETRY);
}
if (br.containsHTML("Captcha number error") || br.containsHTML("captcha.php") && !br.containsHTML("You have got max allowed bandwidth size per hour")) {
logger.warning("Wrong captcha or wrong password!");
link.setProperty("pass", null);
throw new PluginException(LinkStatus.ERROR_CAPTCHA);
}
if (passCode != null) {
link.setProperty("pass", passCode);
}
if (br.containsHTML("You have got max allowed bandwidth size per hour")) throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, null, 10 * 60 * 1001l);
String finalLink = findLink();
if (finalLink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
dl = jd.plugins.BrowserAdapter.openDownload(br, link, finalLink, true, 1);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
// do not add @Override here to keep 0.* compatibility
public boolean hasCaptcha() {
return true;
}
@Override
public AvailableStatus requestFileInformation(DownloadLink parameter) throws Exception {
this.setBrowserExclusive();
br.setFollowRedirects(true);
br.setCookie(COOKIE_HOST, "mfh_mylang", "en");
br.setCookie(COOKIE_HOST, "yab_mylang", "en");
br.getPage(parameter.getDownloadURL());
if (br.containsHTML("Your requested file is not found")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("<b>File name:</b></td>.*?<td align=.*?width=.*?>(.*?)</td>").getMatch(0);
if (filename == null) {
filename = br.getRegex("\"Click this to report for(.*?)\"").getMatch(0);
if (filename == null) {
filename = br.getRegex("content=\"(.*?), The best file hosting service").getMatch(0);
if (filename == null) {
filename = br.getRegex("<title>(.*?)</title>").getMatch(0);
}
}
}
String filesize = br.getRegex("<b>File size:</b></td>.*?<td align=.*?>(.*?)</td>").getMatch(0);
if (filename == null || filename.matches("")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
parameter.setFinalFileName(filename.trim());
if (filesize != null) parameter.setDownloadSize(SizeFormatter.getSize(filesize));
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}
@Override
public void resetDownloadlink(DownloadLink link) {
}
}

View File

@ -64,16 +64,12 @@ public class FreePornCom extends PluginForHost {
this.setBrowserExclusive();
br.setFollowRedirects(false);
br.getPage(downloadLink.getDownloadURL());
if (br.containsHTML("(<h1>Oooops\\.\\.\\. We can\\'t find this video or it doesn\\'t exist</h1>|\">Here is a list of recommended videos for you|<title>Free Porn, Porn Tube, Free Porn Videos, Sex Movie, Porn - FreePorn\\.com</title>)")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
if (br.containsHTML("(unavailablevideo\\.jpg\"|<h1>Oooops\\.\\.\\. We can\\'t find this video or it doesn\\'t exist</h1>|\">Here is a list of recommended videos for you|<title>Free Porn, Porn Tube, Free Porn Videos, Sex Movie, Porn - FreePorn\\.com</title>)")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("<span class=\"fleft\">(.*?)</span>").getMatch(0);
if (filename == null) filename = br.getRegex("<title>(.*?) \\- FreePorn\\.com</title>").getMatch(0);
String path = br.getRegex("value=\\'file=(.*?)\\&").getMatch(0);
if (path == null || filename == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
br.postPage("http://www.freeporn.com/getcdnurl/", "cacheBuster=" + String.valueOf(System.currentTimeMillis()) + "&jsonRequest={\"returnType\":\"json\",\"request\":\"getAllData\",\"path\":\"" + path + "\"}");
DLLINK = br.getRegex("file\":\"(.*?)\"").getMatch(0).replace("\\", "");
if (DLLINK == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
downloadLink.setFinalFileName(Encoding.htmlDecode(filename.trim()) + ".flv");

View File

@ -19,7 +19,6 @@ package jd.plugins.hoster;
import java.io.IOException;
import jd.PluginWrapper;
import jd.http.Browser;
import jd.http.URLConnectionAdapter;
import jd.parser.Regex;
import jd.plugins.DownloadLink;
@ -48,17 +47,6 @@ public class HardSexTubeCom extends PluginForHost {
return -1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, dllink, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
this.setBrowserExclusive();
@ -71,10 +59,7 @@ public class HardSexTubeCom extends PluginForHost {
filename = br.getRegex("<div id='tabdetails' style=\" \">.*?<h1>(.*?)</h1>").getMatch(0);
}
}
String videoID = new Regex(downloadLink.getDownloadURL(), "hardsextube\\.com/video/(\\d+)/").getMatch(0);
Browser br2 = br.cloneBrowser();
br2.getPage("http://vidii.hardsextube.com/video/" + videoID + "/configuj.xml");
dllink = br2.getRegex("\"(http://vs[0-9]+\\.hardsextube\\.com/content/.*?\\.(flv|mp4))\"").getMatch(0);
dllink = br.getRegex("flvpathValue: \"(http://[^<>\"]*?)\"").getMatch(0);
if (filename == null || dllink == null) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
filename = filename.trim();
String ext = new Regex(dllink, ".+(\\..*?)$").getMatch(0);
@ -96,6 +81,17 @@ public class HardSexTubeCom extends PluginForHost {
}
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, dllink, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public void reset() {
}

View File

@ -22,7 +22,6 @@ import jd.PluginWrapper;
import jd.http.Browser;
import jd.http.URLConnectionAdapter;
import jd.nutils.encoding.Encoding;
import jd.parser.Regex;
import jd.plugins.DownloadLink;
import jd.plugins.DownloadLink.AvailableStatus;
import jd.plugins.HostPlugin;
@ -64,15 +63,17 @@ public class HardwareClipsCom extends PluginForHost {
public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
this.setBrowserExclusive();
br.setFollowRedirects(true);
br.setCookie("http://www.hardwareclips.com/", "hideBrowserLanguage", "1");
br.getPage(downloadLink.getDownloadURL());
if (br.containsHTML("(Dieses Video existiert nicht\\.|Es wurde entweder gelöscht, als ungeeignet markiert oder einfach noch nicht freigeschaltet\\.)") || br.getURL().contains("type=video_missing")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("<title>(.*?) \\| HardwareClips - Dein Hardware Video-Portal</title>").getMatch(0);
String filename = br.getRegex("<title>(.*?) \\| HardwareClips \\- Dein Hardware Video\\-Portal</title>").getMatch(0);
if (filename == null) filename = br.getRegex("<meta name=\"title\" content=\"(.*?)\"").getMatch(0);
DLLINK = br.getRegex("http://(www\\.)?hardwareclips\\.com:8080/([a-z0-9]+)/\\d+").getMatch(1);
DLLINK = br.getRegex("\"(http://([a-z0-9]+\\.)?hardwareclips\\.com:8080/[a-z0-9]+/[a-z0-9\\-_]+\\.(flv|mp4))\"").getMatch(0);
if (filename == null || DLLINK == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
DLLINK = "http://www.hardwareclips.com:8080/" + DLLINK + "/" + new Regex(downloadLink.getDownloadURL(), "hardwareclips\\.com/video/(\\d+)").getMatch(0) + ".flv";
filename = filename.trim();
downloadLink.setFinalFileName(Encoding.htmlDecode(filename) + ".flv");
String ext = DLLINK.substring(DLLINK.lastIndexOf("."));
if (ext == null || ext.length() > 5) ext = ".flv";
downloadLink.setFinalFileName(Encoding.htmlDecode(filename) + ext);
Browser br2 = br.cloneBrowser();
// In case the link redirects to the finallink
br2.setFollowRedirects(true);

View File

@ -1,91 +0,0 @@
// jDownloader - Downloadmanager
// Copyright (C) 2009 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 <http://www.gnu.org/licenses/>.
package jd.plugins.hoster;
import java.io.IOException;
import jd.PluginWrapper;
import jd.plugins.DownloadLink;
import jd.plugins.DownloadLink.AvailableStatus;
import jd.plugins.HostPlugin;
import jd.plugins.LinkStatus;
import jd.plugins.PluginException;
import jd.plugins.PluginForHost;
import org.appwork.utils.formatter.SizeFormatter;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "163pan.com" }, urls = { "http://[\\w\\.]*?163pan\\.com/files/[a-z0-9]+\\.html" }, flags = { 0 })
public class Hundred63PanCom extends PluginForHost {
public Hundred63PanCom(PluginWrapper wrapper) {
super(wrapper);
}
@Override
public String getAGBLink() {
return "http://www.163pan.com/help/service.html";
}
@Override
public int getMaxSimultanFreeDownloadNum() {
return -1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
requestFileInformation(downloadLink);
br.getPage(downloadLink.getDownloadURL().replace("/files/", "/download/"));
String dllink = br.getRegex("class=\"btn_pt\" onclick=\"location\\.href='(http://.*?)'\"").getMatch(0);
if (dllink == null) dllink = br.getRegex("('|\")(http://www\\.163pan\\.com/download/index/[a-z0-9]+/.*?\\?hash=[a-z0-9]+\\&tt=\\d+)('|\")").getMatch(1);
if (dllink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, dllink, true, 1);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
this.setBrowserExclusive();
br.getPage(link.getDownloadURL());
if (br.containsHTML("您访问的地址不正确\\!")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("class=\"font_w\">(.*?)<img").getMatch(0);
if (filename == null) filename = br.getRegex("id=\"FileName\" value=\"(.*?)\"").getMatch(0);
String filesize = br.getRegex("span>文件大小:</span>(.*?)\\(").getMatch(0);
if (filesize == null) filesize = br.getRegex("\\(([0-9,]+ 字节)\\)").getMatch(0);
if (filename == null || filesize == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
link.setName(filename.trim());
filesize = filesize.replace("字节", "bytes").replace(",", "");
link.setDownloadSize(SizeFormatter.getSize(filesize));
String md5 = br.getRegex("<span>MD5值</span>(.*?)</li>").getMatch(0);
String sh1 = br.getRegex("<span>SHA1值</span>(.*?)</li>").getMatch(0);
if (md5 != null) link.setMD5Hash(md5);
if (sh1 != null) link.setMD5Hash(sh1);
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}
@Override
public void resetDownloadlink(DownloadLink link) {
}
}

View File

@ -1,115 +0,0 @@
// jDownloader - Downloadmanager
// Copyright (C) 2009 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 <http://www.gnu.org/licenses/>.
package jd.plugins.hoster;
import java.io.IOException;
import jd.PluginWrapper;
import jd.http.URLConnectionAdapter;
import jd.nutils.encoding.Encoding;
import jd.parser.Regex;
import jd.plugins.DownloadLink;
import jd.plugins.DownloadLink.AvailableStatus;
import jd.plugins.HostPlugin;
import jd.plugins.LinkStatus;
import jd.plugins.PluginException;
import jd.plugins.PluginForHost;
import org.appwork.utils.formatter.SizeFormatter;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "imagehost.org" }, urls = { "http://[\\w\\.]*?imagehost\\.org/(download/[0-9]+/.+|[0-9]+/.+)" }, flags = { 0 })
public class ImageHostOrg extends PluginForHost {
public ImageHostOrg(PluginWrapper wrapper) {
super(wrapper);
}
@Override
public String getAGBLink() {
return "http://www.imagehost.org/?p=tos";
}
@Override
public int getMaxSimultanFreeDownloadNum() {
return -1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
requestFileInformation(downloadLink);
String dllink = null;
if (downloadLink.getDownloadURL().contains("/download/")) {
// Handling for normal (file) links
String postlink = downloadLink.getDownloadURL().replace("/download/", "/ajax/");
String poststuff = "a=ajax&rand=" + new Regex(Math.random() * 100000, "(\\d+)").getMatch(0);
br.postPage(postlink, poststuff);
dllink = br.getRegex("<json>(.*?)</json>").getMatch(0);
if (dllink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
dllink = Encoding.htmlDecode(dllink.trim());
dllink = dllink.replaceAll("(\\\\|\")", "");
} else {
// Handling for direct (picture) links
dllink = downloadLink.getDownloadURL();
}
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, dllink, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
this.setBrowserExclusive();
if (link.getDownloadURL().contains("/download/")) {
// Handling for normal (file) links
br.getPage(link.getDownloadURL());
if (br.containsHTML("</i> not found")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("<title>(.*?)- ImageHost.org</title>").getMatch(0);
if (filename == null) {
filename = br.getRegex("ajax_request\\.open\\(\"POST\",\"http://b\\.imagehost\\.org/ajax/\\d+/(.*?)\",true\\)").getMatch(0);
if (filename == null) {
filename = br.getRegex("<tr><th colspan=\"2\">(.*?)</th></tr>").getMatch(0);
}
}
String filesize = br.getRegex("\"Download <a href=.*?</a> \\((.*?)\\)\"").getMatch(0);
if (filename == null || filesize == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
link.setDownloadSize(SizeFormatter.getSize(filesize));
link.setName(filename.trim());
} else {
// Handling for direct (picture) links
URLConnectionAdapter con = br.openGetConnection(link.getDownloadURL());
if (con.getContentType().contains("html")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
long filesize = con.getLongContentLength();
if (filesize == 0) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = getFileNameFromHeader(con);
link.setDownloadSize(filesize);
link.setName(Encoding.htmlDecode(filename).trim());
}
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}
@Override
public void resetDownloadlink(DownloadLink link) {
}
}

View File

@ -28,7 +28,7 @@ import jd.plugins.LinkStatus;
import jd.plugins.PluginException;
import jd.plugins.PluginForHost;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "imagevenue.com" }, urls = { "http://[\\w\\.]*?img[0-9]+\\.imagevenue\\.com/img\\.php.*?image=.+" }, flags = { 0 })
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "imagevenue.com" }, urls = { "http://[\\w\\.]*?img[0-9]+\\.imagevenue\\.com/img\\.php.*?image={1,300}" }, flags = { 0 })
public class ImageVenueCom extends PluginForHost {
public ImageVenueCom(PluginWrapper wrapper) {

View File

@ -140,7 +140,7 @@ public class KeezMoviesCom extends PluginForHost {
br.setCookie("http://www.keezmovies.com/", "age_verified", "1");
br.getPage(downloadLink.getDownloadURL());
if (br.getRedirectLocation() != null) { throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND); }
String filename = br.getRegex("<h1 class=\"title\">(.*?)</h1>").getMatch(0);
String filename = br.getRegex("<span class=\"fn\" style=\"display:none\">([^<>\"]*?)</span>").getMatch(0);
if (filename == null) {
filename = br.getRegex("<title>(.*?) - KeezMovies\\.com</title>").getMatch(0);
}

View File

@ -40,6 +40,28 @@ public class LarasLevelBaseOrg extends PluginForHost {
this.enablePremium("http://laraslevelbase.org/box_mem_eintrag.asp");
}
@Override
public AvailableStatus requestFileInformation(DownloadLink link) throws Exception {
this.setBrowserExclusive();
// We need to log in to get the file status
synchronized (LOCK) {
Account aa = AccountController.getInstance().getValidAccount(this);
if (aa == null) {
link.getLinkStatus().setStatusText("Links are only checkable if a registered account is entered!");
return AvailableStatus.UNCHECKABLE;
}
login(aa);
}
br.getPage(link.getDownloadURL());
if (br.containsHTML("<p>Level wurde auf Wunsch des Autos von der Levelbase entfernt")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("onMouseOver=\"status=\\'© Lara´s Levelbase Community\\';return true;\">(.*?)</a></b></font>").getMatch(0);
String filesize = br.getRegex("<dt><font face=\"Verdana\" size=\"1\">\\( (.*?) \\)</font>").getMatch(0);
if (filename == null || filesize == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
link.setName(filename.trim());
link.setDownloadSize(SizeFormatter.getSize(filesize.replace(",", ".")));
return AvailableStatus.TRUE;
}
@Override
public AccountInfo fetchAccountInfo(Account account) throws Exception {
AccountInfo ai = new AccountInfo();
@ -100,25 +122,6 @@ public class LarasLevelBaseOrg extends PluginForHost {
if (br.getCookie("http://laraslevelbase.org/", "SavedLogin") == null) throw new PluginException(LinkStatus.ERROR_PREMIUM, PluginException.VALUE_ID_PREMIUM_DISABLE);
}
@Override
public AvailableStatus requestFileInformation(DownloadLink link) throws Exception {
this.setBrowserExclusive();
// We need to log in to get the file status
synchronized (LOCK) {
Account aa = AccountController.getInstance().getValidAccount(this);
if (aa == null) throw new PluginException(LinkStatus.ERROR_FATAL, "Links are only checkable if a registered account is entered!");
login(aa);
}
br.getPage(link.getDownloadURL());
if (br.containsHTML("<p>Level wurde auf Wunsch des Autos von der Levelbase entfernt")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("onMouseOver=\"status=\\'© Lara´s Levelbase Community\\';return true;\">(.*?)</a></b></font>").getMatch(0);
String filesize = br.getRegex("<dt><font face=\"Verdana\" size=\"1\">\\( (.*?) \\)</font>").getMatch(0);
if (filename == null || filesize == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
link.setName(filename.trim());
link.setDownloadSize(SizeFormatter.getSize(filesize.replace(",", ".")));
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}

View File

@ -29,7 +29,7 @@ import jd.plugins.PluginForHost;
import org.appwork.utils.formatter.SizeFormatter;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "letitbit.tv" }, urls = { "http://[\\w\\.]*?letitbit\\.tv/files/\\d+/.+" }, flags = { 0 })
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "getzilla.net", "letitbit.tv" }, urls = { "http://(www\\.)?(letitbit\\.tv|getzilla\\.net)/files/\\d+/.+", "dgbt4746iDELETEMEenth4p93vthjqd34z77brm8ounusedREGEX" }, flags = { 0, 0 })
public class LetitbitTv extends PluginForHost {
public LetitbitTv(PluginWrapper wrapper) {
@ -46,6 +46,39 @@ public class LetitbitTv extends PluginForHost {
return 1;
}
public void correctDownloadLink(DownloadLink link) {
link.setUrlDownload(link.getDownloadURL().replace("letitbit.tv/", "getzilla.net/"));
}
@Override
public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
this.setBrowserExclusive();
br.getPage(link.getDownloadURL());
if (br.containsHTML(">Файл не найден<")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("<title>[\t\n\r ]+Getzilla\\.net ([^<>\"]*?) скачать бесплатно</title>").getMatch(0);
if (filename == null) {
filename = br.getRegex("<h1>Скачать файл\\&nbsp;<span>\\&laquo;([^<>\"]*?)\\&raquo;</span>").getMatch(0);
}
String filesize = br.getRegex("class=\"filesize archives\">([^<>\"]*?)<div").getMatch(0);
if (filename == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
filename = Encoding.htmlDecode(filename);
link.setFinalFileName(filename.trim());
if (filesize != null) {
filesize = filesize.replace("&nbsp;", "");
filesize = filesize.replace(",", ".");
filesize = filesize.replace("Г", "G");
filesize = filesize.replace("М", "M");
filesize = filesize.replace("к", "k");
filesize = filesize.replaceAll("(Б|б)", "");
filesize = filesize.replace("байт", "byte");
filesize = filesize + "b";
link.setDownloadSize(SizeFormatter.getSize(filesize));
} else {
logger.warning("Filesize regex could be broken!");
}
return AvailableStatus.TRUE;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
requestFileInformation(downloadLink);
@ -71,39 +104,6 @@ public class LetitbitTv extends PluginForHost {
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
this.setBrowserExclusive();
br.getPage(link.getDownloadURL());
if (br.containsHTML(">Файл не найден<")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("class=\"orange\">\\&laquo;(.*?)\\&raquo;</span>").getMatch(0);
if (filename == null) {
filename = br.getRegex("class=\"\">(.*?)</span>").getMatch(0);
if (filename == null) {
filename = br.getRegex("class=\"file-property\">Файл</td><td>(.*?)</td>").getMatch(0);
}
}
String filesize = br.getRegex("</sub></div></div><div class=\".*?\"><div class=\".*?\"><div class=\".*?\"></div><span>(.*?)</span></div><table").getMatch(0);
if (filesize == null) filesize = br.getRegex("\\&raquo;</span></div><div class=\"caption2 grey\"><span class=\"\">.*?</span>\\&nbsp;[\n\r\t ]+<sub>(.*?)</sub></div>").getMatch(0);
if (filename == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
filename = Encoding.htmlDecode(filename);
link.setFinalFileName(filename.trim());
if (filesize != null) {
filesize = filesize.replace("&nbsp;", "");
filesize = filesize.replace(",", ".");
filesize = filesize.replace("Г", "G");
filesize = filesize.replace("М", "M");
filesize = filesize.replace("к", "k");
filesize = filesize.replaceAll("(Б|б)", "");
filesize = filesize.replace("байт", "byte");
filesize = filesize + "b";
link.setDownloadSize(SizeFormatter.getSize(filesize));
} else {
logger.warning("Filesize regex could be broken!");
}
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}

View File

@ -1,105 +0,0 @@
// jDownloader - Downloadmanager
// Copyright (C) 2009 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 <http://www.gnu.org/licenses/>.
package jd.plugins.hoster;
import jd.PluginWrapper;
import jd.plugins.DownloadLink;
import jd.plugins.DownloadLink.AvailableStatus;
import jd.plugins.HostPlugin;
import jd.plugins.LinkStatus;
import jd.plugins.PluginException;
import jd.plugins.PluginForHost;
import jd.utils.locale.JDL;
import org.appwork.utils.formatter.SizeFormatter;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "madshare.com" }, urls = { "http://(www\\.)?madshare\\.com/(en/)?download/[a-zA-Z0-9]+/" }, flags = { 0 })
public class MadShareCom extends PluginForHost {
public MadShareCom(PluginWrapper wrapper) {
super(wrapper);
}
@Override
public String getAGBLink() {
return "http://www.madshare.com/en/tos.html";
}
@Override
public int getMaxSimultanFreeDownloadNum() {
return 1;
}
@Override
public void handleFree(DownloadLink link) throws Exception {
this.setBrowserExclusive();
requestFileInformation(link);
String freelink = br.getRegex("\"(free-download/.*?/.*?)\"").getMatch(0);
if (freelink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
br.getPage("http://www.madshare.com/" + freelink);
String id = br.getRegex("id:'(.*?)'").getMatch(0);
if (id == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
String ttt = br.getRegex("class=\"counter\" style='font-size:48px;color:#f15a22;'>(\\d+)</span><br />seconds left</b>").getMatch(0);
br.getPage("http://www.madshare.com/api/get-download-id?id=" + id);
// Usually happens when you try to start more than 1 dl at the same time
if (br.containsHTML("dailyLimitExceeded")) throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, 30 * 60 * 1000l);
String server = br.getRegex("server.*?'(.*?)'").getMatch(0);
String key = br.getRegex("key.*?'(.*?)'").getMatch(0);
if (server == null || key == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
String dllink = "http://" + server + "/download/" + key;
int tt = 60;
if (ttt != null) {
logger.info("Waittime detected, waiting " + ttt.trim() + " seconds from now on...");
tt = Integer.parseInt(ttt);
}
tt = tt + 1;
sleep(tt * 1001, link);
br.setDebug(true);
jd.plugins.BrowserAdapter.openDownload(br, link, dllink, false, 1);
if ((dl.getConnection().getContentType().contains("html"))) {
String check = br.getURL();
if (check.contains("freeWait") || check.contains("freeStarted")) throw new PluginException(LinkStatus.ERROR_IP_BLOCKED, 60 * 60 * 1000l);
if (check.contains("freeSlotsOver")) throw new PluginException(LinkStatus.ERROR_HOSTER_TEMPORARILY_UNAVAILABLE, JDL.L("plugins.hoster.MadShareCom.NoFreeSlotsAvailable", "No free slots available"), 10 * 60 * 1000l);
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink parameter) throws Exception {
this.setBrowserExclusive();
br.setFollowRedirects(false);
br.getPage(parameter.getDownloadURL());
if (br.getRedirectLocation() != null) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("<title>MadShare.com.*?Download(.*?)</title>").getMatch(0);
if (filename == null) filename = br.getRegex("<h2>(.*?)\\(<span").getMatch(0);
String filesize = br.getRegex("class=\"size\">(.*?)</span>").getMatch(0);
if (filename == null || filesize == null) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
parameter.setName(filename.trim());
parameter.setDownloadSize(SizeFormatter.getSize(filesize + "Bytes"));
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}
@Override
public void resetDownloadlink(DownloadLink link) {
}
}

View File

@ -71,8 +71,9 @@ public class PartageFacileCom extends PluginForHost {
@Override
public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, InterruptedException, PluginException {
this.setBrowserExclusive();
br.setFollowRedirects(true);
br.getPage(downloadLink.getDownloadURL());
if (br.containsHTML("(>Envoyez vos fichiers maintenant<|Partage\\-Facile : H\\&eacute;bergement de fichiers, Facile, Rapide et Securis\\&eacute;\\!)")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
if (br.containsHTML("http\\-equiv=\"refresh\" content=\"\\d+;url=http://(www\\.)?partage\\-facile\\.com\"")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filesize = br.getRegex("<th>Taille :</th>[\t\n\r ]+<td>([^<>\"\\']+)</td>").getMatch(0);
String filename = br.getRegex("<th class=\"span4\">Nom :</th>[\t\n\r ]+<td>([^<>\"\\']+)</td>").getMatch(0);
if (filename == null) {

View File

@ -72,7 +72,7 @@ public class PornHubCom extends PluginForHost {
br.setCookie("http://pornhub.com/", "age_verified", "1");
br.setFollowRedirects(true);
br.getPage(downloadLink.getDownloadURL());
if (br.getURL().equals("http://www.pornhub.com/") || br.containsHTML("(Video has been reported as copyrighted material|<title>Free Porn Videos \\&amp; Sex Movies \\- Porno, XXX, Porn Tube and Pussy Porn</title>)")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
if (br.getURL().equals("http://www.pornhub.com/") || !br.containsHTML("\\.swf\"")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
dlUrl = null;
String file_name = br.getRegex("class=\"section_bar\"><h1 class=\"section_title\">([^<>/]*?)</h1>").getMatch(0);
if (file_name == null) file_name = br.getRegex("<title([^<>/]*?) \\- Pornhub\\.com</title>").getMatch(0);

View File

@ -77,6 +77,7 @@ public class ShufuniCom extends PluginForHost {
String filename = null;
if (downloadLink.getDownloadURL().matches("http://(www\\.)?shufuni\\.com/handlers/FLVStreamingv2\\.ashx\\?videoCode=[A-Z0-9\\-]+")) {
filename = downloadLink.getFinalFileName();
if (filename == null) filename = downloadLink.getName();
dllink = br.getRegex("CDNUrl=(http://[^<>\"]*?)\\&SeekType=").getMatch(0);
if (dllink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
String ext = null;

View File

@ -94,7 +94,7 @@ public class StileProjectCom extends PluginForHost {
}
private void getdllink() throws PluginException, IOException {
final Regex videoMETA = br.getRegex("(VideoFile|VideoMeta)_(\\d+)\\&");
final Regex videoMETA = br.getRegex("(VideoFile|VideoMeta)_(\\d+)");
final String type = videoMETA.getMatch(0);
final String id = videoMETA.getMatch(1);
final String cb = br.getRegex("\\?cb=(\\d+)\\'").getMatch(0);

View File

@ -49,33 +49,25 @@ public class TuTv extends PluginForHost {
return -1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, DLLINK, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
this.setBrowserExclusive();
br.setFollowRedirects(true);
br.getPage(downloadLink.getDownloadURL());
if (br.containsHTML("(>El vídeo que intentas ver no existe o ha sido borrado de TU|>Afortunadamente, el sistema ha encontrado vídeos relacionados con tu petición)") || br.getURL().contains("/noExisteVideo/")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("<title>Tu\\.tv - .*? - Video: (.*?)</title>").getMatch(0);
String filename = br.getRegex("<title>([^<>\"]*?) \\- Tu\\.tv</title>").getMatch(0);
if (filename == null) {
//
filename = br.getRegex("class=\"title_comentario\">Comentarios de <strong>(.*?)</strong>").getMatch(0);
if (filename == null) {
filename = br.getRegex("<h2>(.*?)</h2>").getMatch(0);
}
}
DLLINK = br.getRegex("RunPlayer\\(\\'.*?\\',\\'(.*?)\\'").getMatch(0);
if (filename == null || DLLINK == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
String vid = br.getRegex(">var codVideo=(\\d+);").getMatch(0);
if (vid == null) vid = br.getRegex("\\&xtp=(\\d+)\"").getMatch(0);
if (filename == null || vid == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
br.getPage("http://tu.tv/flvurl.php?codVideo=" + vid + "&v=WIN%2010,3,181,34&fm=1");
DLLINK = br.getRegex("\\&kpt=([^<>\"]*?)\\&").getMatch(0);
if (DLLINK == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
DLLINK = Encoding.Base64Decode(DLLINK);
filename = filename.trim();
downloadLink.setFinalFileName(filename + ".flv");
@ -98,6 +90,17 @@ public class TuTv extends PluginForHost {
}
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, DLLINK, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public void reset() {
}

View File

@ -41,11 +41,9 @@ public class XHamsterCom extends PluginForHost {
}
public String getDllink() throws IOException, PluginException {
String server = br.getRegex("\\'srv\\': \\'(.*?)\\'").getMatch(0);
String file = br.getRegex("\\'file\\': \\'(.*?)\\'").getMatch(0);
if (server == null || file == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
String dllink = server + "/key=" + file;
return dllink;
final String dllink = br.getRegex("\\'file\\': \\'(.*?)\\'").getMatch(0);
if (dllink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
return Encoding.htmlDecode(dllink);
}
@Override
@ -74,14 +72,10 @@ public class XHamsterCom extends PluginForHost {
}
if (filename == null) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String dllink = getDllink();
String ending = br.getRegex("\\'type\\':\\'(.*?)\\'").getMatch(0);
if (ending == null) ending = dllink.substring(dllink.length() - 3, dllink.length());
filename = Encoding.htmlDecode(filename.trim());
if (ending != null) {
downloadLink.setFinalFileName(filename + "." + ending);
} else {
downloadLink.setName(filename);
}
String ext = dllink.substring(dllink.lastIndexOf("."));
if (ext == null || ext.length() > 5) ext = ".flv";
filename = Encoding.htmlDecode(filename.trim() + ext);
downloadLink.setFinalFileName(filename);
URLConnectionAdapter con = null;
try {
con = br.openGetConnection(dllink);

View File

@ -55,17 +55,6 @@ public class XTubeCom extends PluginForHost {
return -1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, DLLINK, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
this.setBrowserExclusive();
@ -73,7 +62,7 @@ public class XTubeCom extends PluginForHost {
br.setCookie(MAINPAGE, "cookie_warning", "S");
br.setFollowRedirects(true);
br.getPage(downloadLink.getDownloadURL());
if (br.getURL().contains("xtube.com/?msg=Invalid+Video+ID")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
if (br.getURL().contains("xtube.com/?msg=Invalid+Video+ID") || br.containsHTML(">This video has been removed from XTube")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filename = br.getRegex("<div class=\"p_5px font_b_12px f_left\">(.*?)</div>").getMatch(0);
if (filename == null) filename = br.getRegex("<div class=\"font_b_12px\">(.*?)</div><div").getMatch(0);
String fileID = new Regex(downloadLink.getDownloadURL(), "xtube\\.com/watch\\.php\\?v=(.+)").getMatch(0);
@ -105,6 +94,17 @@ public class XTubeCom extends PluginForHost {
}
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, DLLINK, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public void reset() {
}

View File

@ -1,96 +0,0 @@
// jDownloader - Downloadmanager
// Copyright (C) 2009 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 <http://www.gnu.org/licenses/>.
package jd.plugins.hoster;
import java.io.IOException;
import jd.PluginWrapper;
import jd.plugins.DownloadLink;
import jd.plugins.DownloadLink.AvailableStatus;
import jd.plugins.HostPlugin;
import jd.plugins.LinkStatus;
import jd.plugins.PluginException;
import jd.plugins.PluginForHost;
import org.appwork.utils.formatter.SizeFormatter;
@HostPlugin(revision = "$Revision$", interfaceVersion = 2, names = { "yabadaba.ru" }, urls = { "http://[\\w\\.]*?yabadaba\\.ru/files/[0-9]+" }, flags = { 0 })
public class YabaDabaRu extends PluginForHost {
public YabaDabaRu(PluginWrapper wrapper) {
super(wrapper);
}
@Override
public String getAGBLink() {
return "http://yabadaba.ru/pages/agreement";
}
@Override
public int getMaxSimultanFreeDownloadNum() {
return -1;
}
@Override
public void handleFree(DownloadLink downloadLink) throws Exception {
requestFileInformation(downloadLink);
String continuelink = br.getRegex("<h1><a href=\"(http.*?)\"").getMatch(0);
if (continuelink == null) {
continuelink = br.getRegex("\"(http://yaba[0-9]+\\.yabadaba\\.ru/download/.*?/[0-9]+)\"").getMatch(0);
}
if (continuelink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
br.getPage(continuelink);
if (br.containsHTML("All free download slots are busy")) { throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, "No free slots available at this moment!"); }
String dllink = br.getRegex("\"(\\?did=\\d+)\"").getMatch(0);
if (dllink == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
dllink = br.getURL() + dllink;
dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, dllink, true, 0);
if (dl.getConnection().getContentType().contains("html")) {
br.followConnection();
if (br.containsHTML("(<title>404 Not Found</title>|<h1>404 Not Found</h1>)")) throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, "Server error");
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
}
dl.startDownload();
}
@Override
public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
this.setBrowserExclusive();
br.setFollowRedirects(true);
br.getPage(downloadLink.getDownloadURL());
if (br.containsHTML("Этот файл не найден")) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
String filesize = br.getRegex("Размер файла:(.*?)<br").getMatch(0);
String filename = br.getRegex("<title>(.*?)&bul.*?Yabadaba").getMatch(0);
if (filename == null) filename = br.getRegex("Скачать файл</div>.*?<h1>(.*?)</h1>").getMatch(0);
if (filename == null || filesize == null) throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
downloadLink.setName(filename.trim());
downloadLink.setDownloadSize(SizeFormatter.getSize(filesize));
return AvailableStatus.TRUE;
}
@Override
public void reset() {
}
@Override
public void resetDownloadlink(DownloadLink link) {
}
@Override
public void resetPluginGlobals() {
}
}