示例#1
0
 public String getPrefix(int index) {
   String prefix = "";
   if (keepSortOrder() && Utils.getConfigBoolean("download.save_order", true)) {
     prefix = String.format("%03d_", index);
   }
   return prefix;
 }
示例#2
0
 private void ripVideos() throws IOException {
   String oid = getGID(this.url).replace("videos", "");
   String u = "http://vk.com/al_video.php";
   Map<String, String> postData = new HashMap<String, String>();
   postData.put("al", "1");
   postData.put("act", "load_videos_silent");
   postData.put("offset", "0");
   postData.put("oid", oid);
   Document doc = Http.url(u).referrer(this.url).ignoreContentType().data(postData).post();
   String[] jsonStrings = doc.toString().split("<!>");
   JSONObject json = new JSONObject(jsonStrings[jsonStrings.length - 1]);
   JSONArray videos = json.getJSONArray("all");
   logger.info("Found " + videos.length() + " videos");
   for (int i = 0; i < videos.length(); i++) {
     JSONArray jsonVideo = videos.getJSONArray(i);
     int vidid = jsonVideo.getInt(1);
     String videoURL =
         com.rarchives.ripme.ripper.rippers.video.VkRipper.getVideoURLAtPage(
             "http://vk.com/video" + oid + "_" + vidid);
     String prefix = "";
     if (Utils.getConfigBoolean("download.save_order", true)) {
       prefix = String.format("%03d_", i + 1);
     }
     addURLToDownload(new URL(videoURL), prefix);
     try {
       Thread.sleep(500);
     } catch (InterruptedException e) {
       logger.error("Interrupted while waiting to fetch next video URL", e);
       break;
     }
   }
   waitForThreads();
 }
示例#3
0
 @Override
 public void rip() throws IOException {
   logger.info("    Retrieving " + this.url);
   String jsonString =
       Jsoup.connect(this.url.toExternalForm())
           .ignoreContentType(true)
           .timeout(TIMEOUT)
           .execute()
           .body();
   JSONObject json = new JSONObject(jsonString);
   JSONArray posts = json.getJSONArray("posts");
   if (posts.length() == 0) {
     logger.error("No posts found at " + this.url);
     sendUpdate(STATUS.DOWNLOAD_ERRORED, "No posts found at " + this.url);
     throw new IOException("No posts found at this URL");
   }
   for (int i = 0; i < posts.length(); i++) {
     JSONObject post = (JSONObject) posts.get(i);
     String theUrl = post.getString("url");
     if (theUrl.contains("imgur.com/a/")) {
       ImgurAlbum album = null;
       try {
         album = ImgurRipper.getImgurAlbum(new URL(theUrl));
       } catch (IOException e) {
         logger.error("Error loading imgur album " + theUrl, e);
         sendUpdate(STATUS.DOWNLOAD_ERRORED, "Can't download " + theUrl + " : " + e.getMessage());
         continue;
       }
       int albumIndex = 0;
       for (ImgurImage image : album.images) {
         albumIndex++;
         String saveAs = String.format("%s-", post.getString("hexid"));
         if (Utils.getConfigBoolean("download.save_order", true)) {
           saveAs += String.format("%03d_", albumIndex);
         }
         addURLToDownload(image.url, saveAs);
       }
     } else {
       theUrl = post.getString("imageurl");
       String saveAs = String.format("%s-", post.getString("hexid"));
       addURLToDownload(new URL(theUrl), saveAs);
     }
   }
   waitForThreads();
 }