@Override public ArrayList<DownloadLink> decryptIt(CryptedLink parameter, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); br.getPage(wwwURL + "guestsession?source=" + APPID); String guestSession = br.getRegex("200,.*?\"(.*?)\"").getMatch(0); if (guestSession == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); String UID = new Regex(parameter.toString(), "#(share|folder)/([A-Z0-9\\-]+)").getMatch(1); if (UID == null) throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT); String name = null; if (parameter.toString().contains("#share")) { br.getPage(wwwURL + guestSession + "/share?share=" + UID); String files = br.getRegex("\"files\":\\[(.*?)\\]").getMatch(0); name = br.getRegex("\"name\":\"(.*?)\"").getMatch(0); if (name != null && "undefined".equals(name)) name = null; if (files != null) { String fileIDs[] = new Regex(files, "\"(.*?)\"").getColumn(0); for (String fileID : fileIDs) { decryptedLinks.add(createDownloadlink("https://www.oboom.com/#" + fileID)); } } } else if (parameter.toString().contains("#folder")) { br.getPage(apiURL + "ls?item=" + UID + "&token=" + guestSession); name = br.getRegex("\"name\":\"(.*?)\"").getMatch(0); String[] files = br.getRegex("\\{\"size.*?\\}").getColumn(-1); if (files != null && files.length != 0) { for (final String f : files) { final String fname = getJson(f, "name"); final String fsize = getJson(f, "size"); final String fuid = getJson(f, "id"); final String type = getJson(f, "type"); final String state = getJson(f, "state"); if (fuid != null && "file".equalsIgnoreCase(type)) { DownloadLink dl = createDownloadlink("https://www.oboom.com/#" + fuid); if ("online".equalsIgnoreCase(state)) dl.setAvailable(true); else dl.setAvailable(false); if (fname != null) dl.setName(fname); if (fsize != null) dl.setDownloadSize(Long.parseLong(fsize)); try { dl.setLinkID(fuid); } catch (final Throwable e) { // not in JD2 } decryptedLinks.add(dl); } if (fuid != null && !"file".equalsIgnoreCase(type)) { // sub folders maybe possible also ?? return null; // should get users reporting issue! } } } } if (name != null) { FilePackage fp = FilePackage.getInstance(); fp.setName(name); fp.addLinks(decryptedLinks); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.setCustomCharset("windows-1251"); br.getPage(parameter); final String fpName = br.getRegex("<title>(.*?)(?:».*)</title>").getMatch(0); String xmlLinks = br.getRegex("<param [^>]*?value=\"[^\"]*?file=([a-zA-Z0-9:/\\.\\-]+)[^\"]*?\" */>") .getMatch(0); if (xmlLinks == null) xmlLinks = br.getRegex("<embed [^>]*?flashvars=\"[^\"]*?file=([a-zA-Z0-9:/\\.\\-]+)[^\"]*?\" *>") .getMatch(0); if (xmlLinks == null) return decryptedLinks; br.getPage(xmlLinks); final String xmlFile = br.toString(); if (xmlFile == null) return decryptedLinks; String[] links = HTMLParser.getHttpLinks(xmlFile, ""); if (links == null || links.length == 0) return null; DownloadLink dl; for (String elem : links) decryptedLinks.add(dl = createDownloadlink(elem)); if (fpName != null) { FilePackage fp = FilePackage.getInstance(); fp.setName(fpName.trim()); fp.addLinks(decryptedLinks); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.setCustomCharset("iso-8859-2"); // TODO: Seiten mit Passwort, Seite momentan buggy ... if (parameter.contains(".php")) return decryptedLinks; if (parameter.endsWith(".gif")) { logger.info("Invalid link: " + parameter); return decryptedLinks; } String link; while (true) { br.getPage(parameter); if (br.containsHTML(">BŁĄD 404 \\- brak strony")) { logger.info("Link offline: " + parameter); return decryptedLinks; } link = br.getRegex(Pattern.compile("<frame name=\"strona\" src=\"(.*?)\">")).getMatch(0); if (link == null) link = br.getRegex("window\\.location\\.href=\"(http[^<>\"]*?)\"").getMatch(0); if (link == null) { parameter = br.getRedirectLocation(); if (parameter == null) return null; else continue; } else { break; } } decryptedLinks.add(createDownloadlink(link)); return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); br.setFollowRedirects(true); String parameter = param.toString().replace("#", ""); String fid = new Regex(parameter, IDREGEX).getMatch(0); br.getPage("http://api.ge.tt/0/" + fid + "?jsonp=_tmp_jsonp.cb" + System.currentTimeMillis()); if (br.containsHTML("\"error\":\"share not found\"")) { DownloadLink dlink = createDownloadlink("http://api.ge.tt/0/" + fid + "/0/" + fid); dlink.setAvailable(false); decryptedLinks.add(dlink); return decryptedLinks; } String[] links = br.getRegex("downloadurl\":\"(http://api\\d+?\\.ge\\.tt/\\d/[A-Za-z0-9]+/.*?)\"") .getColumn(0); if (links == null || links.length == 0) return null; for (String dl : links) { if (!dl.contains("/download")) { /* important to get a download url */ dl = dl + "/download"; } decryptedLinks.add(createDownloadlink(dl)); } return decryptedLinks; }
@SuppressWarnings("deprecation") public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { /* we first have to load the plugin, before we can reference it */ JDUtilities.getPluginForHost("viva.tv"); default_ext = jd.plugins.hoster.VivaTv.default_ext; parameter = param.toString(); jd.plugins.hoster.VivaTv.prepBR(this.br); if (parameter.matches(type_viva) || parameter.matches(type_mtv_de)) { decryptMtvGermanyPlaylists(); } else if (parameter.matches(type_southpark_de_episode)) { decryptSouthparkDe(); } else if (parameter.matches(type_southpark_cc_episode)) { decryptSouthparkCc(); } else if (parameter.matches(type_nickmom_com)) { decryptNickmomCom(); } else if (parameter.matches(type_mtv_com)) { decryptMtvCom(); } else if (parameter.matches(type_logotv_com)) { decrypLogoTvCom(); } else { /* Universal viacom crawler */ this.br.getPage(parameter); vivaUniversalCrawler(); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString().replace("ultrastar-warez.com", "ultrastar-base.com"); br.getPage(parameter); if (br.containsHTML( "(>Uploaded: 31\\.12\\.69 \\(23:00\\)<|class=\"title\"> \\- </span></td>)")) { logger.info("Link offline: " + parameter); return decryptedLinks; } String fpName = br.getRegex("<span class=\"title\">(.*?)</span>").getMatch(0); final String mirrors[] = br.getRegex( "<b>Download (\\d+)?:</b></td>[\t\r\n ]+<td colspan=\"4\" align=\"left\">(.*?)</td>") .getColumn(1); if (mirrors == null || mirrors.length == 0) return null; for (String mirror : mirrors) { final String[] links = HTMLParser.getHttpLinks(mirror, ""); if (links == null || links.length == 0) continue; for (String dl : links) decryptedLinks.add(createDownloadlink(dl)); } if (decryptedLinks.size() == 0) { logger.warning("Decrypter broken for link: " + parameter); return null; } if (fpName != null) { FilePackage fp = FilePackage.getInstance(); fp.setName(fpName.trim()); fp.addLinks(decryptedLinks); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); final String parameter = param.toString(); br.setFollowRedirects(true); br.getPage(parameter); if (br.containsHTML(">Dieser Container \\(ID\\) existiert nicht")) { logger.info("Link offline: " + parameter); return decryptedLinks; } final String fpName = br.getRegex("<h5><span title=\"([^<>\"]*?)\"").getMatch(0); final String links[] = br.getRegex("\\'(/download/[A-Za-z0-9]+)\'").getColumn(0); if (links == null || links.length == 0) { logger.warning("Decrypter broken for link: " + parameter); return null; } for (String link : links) { decryptedLinks.add(createDownloadlink("http://remixshare.com" + link)); } if (fpName != null) { final FilePackage fp = FilePackage.getInstance(); fp.setName(Encoding.htmlDecode(fpName.trim())); fp.addLinks(decryptedLinks); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); br.setFollowRedirects(false); String parameter = param.toString(); br.getPage(parameter); if (br.containsHTML("No htmlCode read")) { final DownloadLink dl = createDownloadlink(parameter.replace("xxxaporn.com/", "xxxaporndecrypted.com/")); dl.setAvailable(false); decryptedLinks.add(dl); return decryptedLinks; } String tempID = br.getRedirectLocation(); if (tempID != null) { final DownloadLink dl = createDownloadlink(tempID); decryptedLinks.add(dl); return decryptedLinks; } tempID = br.getRegex( "value=\\'conf(ig)?=(http://media\\.amateurcumshots\\.org/flv_player/data/playerConfigEmbed/\\d+\\.xml)") .getMatch(1); if (tempID != null) { logger.info("Link offline: " + parameter); return decryptedLinks; } decryptedLinks.add( createDownloadlink(parameter.replace("xxxaporn.com/", "xxxaporndecrypted.com/"))); return decryptedLinks; }
// @Override public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.getPage(parameter); for (int retry = 0; retry < 5; retry++) { String loc = br.getRedirectLocation(); if (loc != null) { decryptedLinks.add(createDownloadlink(br.getRedirectLocation())); return decryptedLinks; } else { String whatis = br.getRegex("alt=\"What is (.*?) = \"").getMatch(0); if (whatis == null) return null; String calc[] = whatis.split(" "); if (calc.length != 3) return null; Form form = br.getForm(0); if (calc[1].equalsIgnoreCase("*")) { form.put("__ec_s", "" + (Integer.parseInt(calc[0]) * Integer.parseInt(calc[2]))); } else if (calc[1].equalsIgnoreCase("+")) { form.put("__ec_s", "" + (Integer.parseInt(calc[0]) + Integer.parseInt(calc[2]))); } else if (calc[1].equalsIgnoreCase("-")) { form.put("__ec_s", "" + (Integer.parseInt(calc[0]) - Integer.parseInt(calc[2]))); } else if (calc[1].equalsIgnoreCase("/")) { form.put("__ec_s", "" + (Double.parseDouble(calc[0]) / Double.parseDouble(calc[2]))); } br.submitForm(form); } } return null; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = "http://epicpaste.com/index.php/view/raw/" + new Regex(param.toString(), "([a-z0-9]+)$").getMatch(0); br.getPage(parameter); /** Link offline/invalid? */ if (br.containsHTML( "(>404 Page Not Found<|>The page you requested was not found|<title>Stikked</title>)")) return decryptedLinks; final String fpName = br.getRegex("<h1>(.*?)</h1>").getMatch(0); final String pagePiece = br.getRegex("<pre>(.*?)</pre>").getMatch(0); if (pagePiece == null) { logger.warning("Decrypter broken for link: " + parameter); return null; } String[] links = HTMLParser.getHttpLinks(pagePiece, ""); if (links == null || links.length == 0) { logger.warning("Decrypter broken for link: " + parameter); return null; } for (String singleLink : links) if (!new Regex( singleLink, "http://(www\\.)?epicpaste\\.com/index\\.php/view/(raw/)?[a-z0-9]+") .matches()) decryptedLinks.add(createDownloadlink(singleLink)); if (fpName != null) { FilePackage fp = FilePackage.getInstance(); fp.setName(Encoding.htmlDecode(fpName.trim())); fp.addLinks(decryptedLinks); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { final ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); final String parameter = param.toString(); br.setFollowRedirects(true); br.getPage(parameter); if (br.getHttpConnection() == null || br.getHttpConnection().getResponseCode() == 404 || br.containsHTML("404 Not Found<|Sorry, the page could not be found")) { decryptedLinks.add(createOfflinelink(parameter)); return decryptedLinks; } // ajax request to get links br.getHeaders().put("Accept", "*/*"); br.getHeaders().put("X-Requested-With", "XMLHttpRequest"); br.getHeaders().put("Content-Type", null); br.postPage("/link/get", ""); // links are within json final String[] links = getJsonResultsFromArray(getJsonArray("links")); if (links != null) { for (final String link : links) { decryptedLinks.add(createDownloadlink(link)); } } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); final String parameter = param.toString(); br.setFollowRedirects(true); br.getPage(parameter); if (br.containsHTML("File not found|>Links were deleted|>No links available yet")) { logger.info("Link offline: " + parameter); return decryptedLinks; } // Get file/packagename String fpName = br.getRegex("<title>Download file (.*?) \\—").getMatch(0); if (fpName == null) fpName = br.getRegex("<h2>(.*?)</h2>").getMatch(0); String[] links = br.getRegex("\" align=\"absmiddle\"> .*?:[\t\n\r ]+<a href=\"(.*?)\"").getColumn(0); if (links == null || links.length == 0) { logger.warning("Decrypter broken for link: " + parameter); return null; } for (String finallink : links) { DownloadLink dl = createDownloadlink(finallink); // Set filename (if available) so filename is the same for every // host if (fpName != null) dl.setFinalFileName(fpName.trim()); decryptedLinks.add(dl); } if (fpName != null) { FilePackage fp = FilePackage.getInstance(); fp.setName(fpName.trim()); fp.addLinks(decryptedLinks); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.setFollowRedirects(true); br.getPage(parameter); final String artist = br.getRegex("<title>Автор ([^<>\"/]*?) и его композиции</title>").getMatch(0); String[][] fileInfo = br.getRegex( "class=\"track artist_img_left\"><a href=\"(/pages/\\d+/\\d+\\.shtml)\">([^<>/\"]*?)</a></td><td class=\"date\">\\d{2}\\.\\d{2}\\.\\d{2}</td><td class=\"bitrate\">[0-9\t\n\r ]+</td><td class=\"size\">(\\d+(\\.\\d+)?)</td>") .getMatches(); if (fileInfo == null || fileInfo.length == 0) { if (br.containsHTML(">Нет информации<")) { logger.info("Link offline: " + parameter); return decryptedLinks; } logger.warning("Decrypter broken for link: " + parameter); return null; } for (String[] file : fileInfo) { final DownloadLink dl = createDownloadlink("http://zaycev.net" + file[0]); dl.setFinalFileName(Encoding.htmlDecode(file[1].trim()) + ".mp3"); dl.setDownloadSize(SizeFormatter.getSize(file[2] + " MB")); dl.setAvailable(true); decryptedLinks.add(dl); } if (artist != null) { FilePackage fp = FilePackage.getInstance(); fp.setName(Encoding.htmlDecode(artist.trim())); fp.addLinks(decryptedLinks); } return decryptedLinks; }
// @Override public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.getPage(parameter); Form form = br.getForm(1); for (int i = 0; i <= 5; i++) { String code = getCaptchaCode("http://alpha-link.eu/captcha/captcha.php", param); form.put("captcha", code); form.setAction(parameter); br.submitForm(form); if (!br.containsHTML("(Code ist falsch)|(kein Code eingegeben)")) break; } form = br.getForm(1); String[] ids = br.getRegex("class='btn' name='id' value='(\\d+)'").getColumn(0); if (ids.length == 0) return null; progress.setRange(ids.length); for (String id : ids) { form.put("id", id); br.submitForm(form); String codedLink = br.getRegex("src=.\"(.*?).\"").getMatch(0); if (codedLink == null) return null; String link = Encoding.htmlDecode(codedLink); decryptedLinks.add(createDownloadlink(link)); progress.increase(1); } return decryptedLinks; }
// @Override public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); // TODO: Seiten mit Passwort, Seite momentan buggy ... if (parameter.contains(".php")) return decryptedLinks; String link; while (true) { br.getPage(parameter); link = br.getRegex(Pattern.compile("<frame name=\"strona\" src=\"(.*?)\">")).getMatch(0); if (link == null) { parameter = br.getRedirectLocation(); if (parameter == null) return null; else continue; } else { break; } } decryptedLinks.add(createDownloadlink(link)); return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.setFollowRedirects(true); // Test if we already hav a direct link here URLConnectionAdapter con = br.openGetConnection(parameter); if (con.getContentType().contains("html")) { br.followConnection(); if (br.containsHTML( "(Error 404|The page you were looking for cannot be found|could not be found or is not available)")) throw new DecrypterException( JDL.L( "plugins.decrypt.errormsg.unavailable", "Perhaps wrong URL or the download is not available anymore.")); String link = null; if (parameter.contains("/files/extras/") || parameter.contains("prdownloads.sourceforge.net")) { link = br.getRegex("Please use this <a href=\"(.*?)\"").getMatch(0); if (link == null) link = br.getRegex( "\"(http://downloads\\.sourceforge\\.net/project/.*?/extras/.*?/.*?use_mirror=.*?)\"") .getMatch(0); } else { link = br.getRegex("Please use this <a href=\"(http://.*?)\"").getMatch(0); if (link == null) link = br.getRegex("\"(http://downloads\\.sourceforge.net/project/.*?\\?use_mirror=.*?)\"") .getMatch(0); } if (link == null) return null; br.setFollowRedirects(false); br.getPage(Encoding.htmlDecode(link)); String finallink = null; boolean failed = true; for (int i = 0; i <= 5; i++) { br.getPage(Encoding.htmlDecode(link)); finallink = br.getRedirectLocation(); if (finallink == null) return null; con = br.openGetConnection(finallink); if (con.getContentType().contains("html")) { logger.info("finallink is no file, continuing..."); continue; } failed = false; break; } if (failed) logger.warning("The finallink is no file!!"); decryptedLinks.add(createDownloadlink("directhttp://" + finallink)); con.disconnect(); } else { con.disconnect(); decryptedLinks.add(createDownloadlink("directhttp://" + parameter)); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); HashSet<String> set = new HashSet<String>(); String parameter = param.toString(); id = new Regex(parameter, "(https?://(?!www\\.)[a-z0-9]+\\.7958\\.com(/folder\\-\\d+)?)") .getMatch(0); profile = new Regex(parameter, "(https?://(?!www\\.)[a-z0-9]+\\.7958\\.com)/").getMatch(0); br.getPage(parameter); if (br.getRedirectLocation() != null && br.getRedirectLocation().contains("/404.html")) { logger.info("Incorrect URL or no longer exists : " + parameter); return decryptedLinks; } String fpName = null; // don't mess with this, unless you are feeling brave! String[] fpname = br.getRegex( "<div class=\"qjwm-foc\">[^\r\n]+<a href=\"" + profile + "\" target=\"_blank\">(.*?)</a>(-<a href=\"" + profile + "/folder-\\d+\">[^<]+</a>){0,2}-?(.*?)</div>") .getRow(0); if (fpname != null && fpname.length != 0) { if (fpname[2] != null && fpname[2].contains("com/folder-")) { logger.info("FREAK, this shouldn't be so! : " + br.getURL()); } if ((fpname[2] == null || fpname[2].equals("")) && (fpname[0] != null && fpname[0].length() != 0)) { fpName = fpname[0]; } else if ((fpname[2] != null || !fpname[2].equals("")) && (fpname[0] != null && fpname[0].length() != 0)) { fpName = fpname[0] + " - " + fpname[2]; } } if (fpName == null || fpName.length() == 0) { logger.info("FREAK, this shouldn't happen! : " + br.getURL()); } parsePage(set, decryptedLinks); // Buggy -> Disabled // parseNextPage(set, decryptedLinks); if (fpName != null) { FilePackage fp = FilePackage.getInstance(); fp.setName(fpName.trim()); fp.addLinks(decryptedLinks); } return decryptedLinks; }
// @Override public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.getPage(parameter); String link = br.getRegex("<frame src=(?!blank)(.*?)>").getMatch(0); if (link == null) return null; decryptedLinks.add(createDownloadlink(link)); return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { synchronized (LOCK) { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.getPage(parameter); String waittime = br.getRegex("<p>Du musst noch (\\d+) Sekunden warten bis du").getMatch(0); if (waittime != null) { int wait = Integer.parseInt(waittime); if (wait > 80) { logger.warning(wait + " Sekunden Wartezeit: Limit erreicht!"); logger.warning(br.toString()); return null; } sleep(wait * 1001l, param); } for (int i = 0; i <= 5; i++) { PluginForHost recplug = JDUtilities.getPluginForHost("DirectHTTP"); jd.plugins.hoster.DirectHTTP.Recaptcha rc = ((DirectHTTP) recplug).getReCaptcha(br); rc.parse(); rc.load(); File cf = rc.downloadCaptcha(getLocalCaptchaFile()); String c = getCaptchaCode(cf, param); rc.setCode(c); if (br.containsHTML("(api.recaptcha.net|Das war leider Falsch)")) continue; if (br.containsHTML("das Falsche Captcha eingegeben")) { sleep(60 * 1001l, param); br.getHeaders().put("User-Agent", RandomUserAgent.generate()); br.getPage(parameter); continue; } break; } if (br.containsHTML( "(api.recaptcha.net|Das war leider Falsch|das Falsche Captcha eingegeben)")) throw new DecrypterException(DecrypterException.CAPTCHA); String links[] = br.getRegex("<a href=\"(http.*?)\" target=\"_blank\" onclick=").getColumn(0); if (links == null || links.length == 0) { logger.warning("First LdTTemp regex failed, trying the second one..."); links = HTMLParser.getHttpLinks(br.toString(), ""); } if (links.length == 0) return null; for (String finallink : links) { if (!finallink.contains("iload.to") && !finallink.contains("lof.cc") && !finallink.endsWith(".gif") && !finallink.endsWith(".swf")) decryptedLinks.add(createDownloadlink(finallink)); } return decryptedLinks; } }
@SuppressWarnings({"unchecked", "deprecation"}) public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); final String parameter = param.toString(); jd.plugins.hoster.AmpyaCom.initializeSession(this.br); br.getPage(jd.plugins.hoster.AmpyaCom.getApiUrl(parameter)); if (br.getHttpConnection().getResponseCode() == 404) { decryptedLinks.add(this.createOfflinelink(parameter)); return decryptedLinks; } String fpName = null; LinkedHashMap<String, Object> entries = (LinkedHashMap<String, Object>) JavaScriptEngineFactory.jsonToJavaObject(br.toString()); final ArrayList<Object> ressourcelist = (ArrayList<Object>) entries.get("clips"); for (final Object clipo : ressourcelist) { entries = (LinkedHashMap<String, Object>) clipo; final String title = (String) entries.get("title"); final String artist = (String) entries.get("artist_name"); final String video_id = Long.toString(JavaScriptEngineFactory.toLong(entries.get("video_id"), 0)); if (fpName == null) { fpName = (String) entries.get("container_title"); } if (title == null || artist == null || "0".equals(video_id)) { continue; } final DownloadLink dl = this.createDownloadlink( "http://ampyadecrypted.com/" + System.currentTimeMillis() + new Random().nextInt(1000000000)); String filename = artist + " - " + title + ".mp4"; filename = encodeUnicode(filename); dl.setFinalFileName(filename); dl.setAvailable(true); dl.setContentUrl(parameter); dl.setProperty("mainlink", parameter); dl.setProperty("videoid", video_id); decryptedLinks.add(dl); } if (fpName != null) { final FilePackage fp = FilePackage.getInstance(); fp.setName(Encoding.htmlDecode(fpName.trim())); fp.addLinks(decryptedLinks); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.getPage(parameter); if (br.containsHTML("red>Bad Referrer!")) { String ref = br.getRegex("You could get this File only from t.*?<br><a.*?><b>(.*?)</b>").getMatch(0); if (ref == null) return null; br.getPage(ref); br.getPage(parameter); } boolean do_continue = false; for (int retrycounter = 1; retrycounter <= 5; retrycounter++) { if (br.containsHTML("<h1>PASSWORD PROTECTED LINK</h1>") || br.containsHTML("Incorrect Password")) { String passCode = getUserInput(null, param); Form pwForm = br.getForm(0); pwForm.put("u_password", passCode); br.submitForm(pwForm); System.out.print(br.toString()); } else { do_continue = true; break; } } String link = null; if (do_continue == true) { link = br.getRegex("onClick=\"window.location='(.*?)'\" style=").getMatch(0); if (link == null) { link = br.getRegex("<form action=\"(.*?)\"").getMatch(0); if (link == null) link = br.getRegex("window\\.location = \"(.*?)\"").getMatch(0); } if (link == null) link = br.getRegex("METHOD=\"LINK\" ACTION=\"(http[^<>\"]*?)\"").getMatch(0); if (link == null || link.length() < 10) { Form form = br.getForm(0); if (form != null) { form.setMethod(MethodType.GET); br.setFollowRedirects(false); br.submitForm(form); } link = br.getRegex("frame name=\"protected\" src=\"(.*?)\"").getMatch(0); } } if (link != null && link.length() > 10) { decryptedLinks.add(createDownloadlink(link)); } else { return null; } return decryptedLinks; }
// @Override public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); String redirectid = new Regex(parameter, ".*?protectlinks\\.com/([^/]*)").getMatch(0); br.setFollowRedirects(true); br.getPage("http://www.protectlinks.com/redirect.php?id=" + redirectid); String link = br.getRegex("<iframe name=\"pagetext\"[^>]* src=\"\\s*(.*?)\"").getMatch(0); if (link == null) return null; decryptedLinks.add(createDownloadlink(Encoding.htmlDecode(link))); return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { this.br.setFollowRedirects(true); br.setLoadLimit(this.br.getLoadLimit() * 3); parameter = param.toString(); if (parameter.matches(TYPE_DAY)) { decryptWholeDay(); } else { decryptSingleVideo(); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); if (parameter.indexOf("safe.php?") < 0) { parameter = "http://rapidshark.net/safe.php?id=" + parameter.substring(parameter.lastIndexOf("/") + 1); } br.getPage(parameter); String finallink = br.getRegex("src=\"(.*)\"></iframe>").getMatch(0); if (finallink == null) return null; decryptedLinks.add(createDownloadlink(finallink)); return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); final String parameter = param.toString().replace("/fplayer/", "/watch/"); if (parameter.matches(TYPE_YOUTUBEEMBED)) { final String ytid = new Regex(parameter, "metacafe\\.com/watch/yt\\-([A-Za-z0-9\\-_]+)/").getMatch(0); decryptedLinks.add(createDownloadlink("http://www.youtube.com/watch?v=" + ytid)); return decryptedLinks; } final DownloadLink main = createDownloadlink(parameter.replace("metacafe.com/", "metacafedecrypted.com/")); main.setName(new Regex(parameter, "(\\d+)/.{1}$").getMatch(0)); br.setFollowRedirects(true); try { br.getPage(parameter); } catch (final BrowserException e) { if (br.getRequest().getHttpConnection().getResponseCode() == 400) { main.setAvailable(false); decryptedLinks.add(main); return decryptedLinks; } decryptedLinks.add(main); return decryptedLinks; } if (br.getURL().contains("/?pageNotFound") || br.containsHTML("<title>Metacafe \\- Best Videos \\& Funny Movies</title>") || br.getURL().contains("metacafe.com/?m=removed")) { main.setAvailable(false); decryptedLinks.add(main); return decryptedLinks; } final String externID = br.getRegex("src=\"(//(www\\.)?youtube\\.com/embed/[A-Za-z0-9\\-_]+)\"").getMatch(0); if (externID != null) { decryptedLinks.add(createDownloadlink("http" + externID)); return decryptedLinks; } String fileName = br.getRegex("name=\"title\" content=\"(.*?) \\- Video\"").getMatch(0); if (fileName == null) fileName = br.getRegex("<h1 id=\"ItemTitle\" >(.*?)</h1>").getMatch(0); if (fileName != null) { main.setFinalFileName(fileName.trim() + ".mp4"); main.setAvailable(true); } decryptedLinks.add(main); return decryptedLinks; }
// @Override public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.getPage(parameter); if (!br.containsHTML("Esa url no se encuentra en nuestra base de datos")) { String linkurl = br.getRegex("<iframe.*?src=\"(.*?)\".*?>").getMatch(0); if (linkurl == null) return null; decryptedLinks.add(createDownloadlink(linkurl)); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); // ok we want to rename old links to new format. final String parameter = param.toString().replace("ifile.it/", "filecloud.io/"); final String protocol = new Regex(parameter, this.getSupportedLinks()).getMatch(0); final String uid = new Regex(parameter, this.getSupportedLinks()).getMatch(2); // filecloud links are still valid but might be available on ezfile also, so we will add the // other link to cover our bases. decryptedLinks.add(createDownloadlink(protocol + "ezfile.ch/" + uid)); // now add the original link! decryptedLinks.add( createDownloadlink(parameter.replace("filecloud.io/", "decryptedfilecloud.io/"))); // return links return decryptedLinks; }
@Override public ArrayList<DownloadLink> decryptIt( final CryptedLink param, final ProgressController progress) throws Exception { final ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); final String parameter = param.toString(); final String b64 = Encoding.htmlDecode(new Regex(parameter, this.getSupportedLinks()).getMatch(0)); if (b64 == null) { return null; } final HashSet<String> results = handleBase64Decode(b64); for (final String result : results) { decryptedLinks.add(createDownloadlink(result)); } return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); br.getPage(parameter); if (br.containsHTML("(Page not found|Sorry, unable to find that page)")) throw new DecrypterException( JDL.L( "plugins.decrypt.errormsg.unavailable", "Perhaps wrong URL or the download is not available anymore.")); String[] ids = br.getRegex("node(-|/)(\\d+)").getColumn(1); if (ids == null || ids.length == 0) return null; for (String id : ids) decryptedLinks.add(createDownloadlink("decryptedsndspnr=" + id)); return decryptedLinks; }
public ArrayList<DownloadLink> decryptIt(CryptedLink param, ProgressController progress) throws Exception { ArrayList<DownloadLink> decryptedLinks = new ArrayList<DownloadLink>(); String parameter = param.toString(); String uid = new Regex(parameter, "([a-z0-9]{7})$").getMatch(0); br.getPage(parameter); if (br.containsHTML("<div id=\"error\">пакет не найден<")) { logger.info("Wrong URL or the package no longer exists."); return decryptedLinks; } String title = br.getRegex("<title>(.*?)</title>").getMatch(0); if (title == null) title = ""; /* Password protected package */ if (br.containsHTML(">пакет защищен паролем<")) { for (int i = 0; i <= 3; i++) { final String passCode = Plugin.getUserInput("Enter password for: " + title, param); br.postPage(parameter, "put_pwd=" + Encoding.urlEncode(passCode)); if (br.containsHTML(">пакет защищен паролем<")) continue; break; } if (br.containsHTML(">пакет защищен паролем<")) throw new DecrypterException(DecrypterException.PASSWORD); if (br.getRedirectLocation() != null) br.getPage(br.getRedirectLocation()); } String domain = new Regex(br.getURL(), "(https?://[^/]+)").getMatch(0); String[] links = br.getRegex("href=\"(/download/" + uid + "/[^\"]+)").getColumn(0); if (links == null || links.length == 0) { logger.warning("Decrypter broken for link: " + parameter); return null; } for (String link : links) { decryptedLinks.add(createDownloadlink("directhttp://" + domain + link)); } if (title != null || !title.equals("")) { FilePackage fp = FilePackage.getInstance(); fp.setName(Encoding.htmlDecode(title.trim())); fp.addLinks(decryptedLinks); } return decryptedLinks; }