Beispiel #1
0
 @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;
 }
Beispiel #2
0
  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>(.*?)(?:&raquo;.*)</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;
  }
Beispiel #3
0
  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;
 }
Beispiel #5
0
 @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;
 }
Beispiel #6
0
 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;
 }
Beispiel #7
0
 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;
 }
Beispiel #11
0
  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;
  }
Beispiel #12
0
 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 (.*?) \\&mdash;").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;
 }
Beispiel #13
0
 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;
  }
Beispiel #15
0
  // @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;
  }
Beispiel #18
0
  // @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;
  }
Beispiel #19
0
  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;
    }
  }
Beispiel #20
0
  @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;
  }
Beispiel #21
0
 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;
 }
Beispiel #22
0
  // @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;
  }
Beispiel #23
0
  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;
  }
Beispiel #24
0
 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 \\&amp; 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;
  }
Beispiel #30
0
  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;
  }