Advertisement
Olivki

dickss

Aug 22nd, 2014
593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.06 KB | None | 0 0
  1. @Override
  2.     public void onCommand(final String message, final String... args) {
  3.         final StringTools stringTools = getClient().getStringTools();
  4.         try {
  5.             if (stringTools.isBoolean(args[1])) {
  6.                 String url = args[0];
  7.                 boolean images = Boolean.parseBoolean(args[1]);
  8.                 Document doc = Jsoup.connect(url).get();
  9.                 Elements rawTitle = doc.select("#firstHeading");
  10.                 String[] title = rawTitle.text().split(":");
  11.                 getClient().getLogs().addLog("Images: " + images);
  12.                 getClient().getLogs().addLog("Title: " + title[0]);
  13.                 getClient().getLogs().addLog("Volume: " + title[1]);
  14.                 File directory = createMainDirectory();
  15.                 File bookDirectory = createBookDirectory(directory, title[0]
  16.                         + " - " + title[1]);
  17.                 File tempDirectory = createBookDirectory(bookDirectory, "Temp");
  18.                 File imageDirectory = createBookDirectory(tempDirectory,
  19.                         "Images");
  20.                 File htmlDirectory = createBookDirectory(tempDirectory, "Text");
  21.                 createBookDirectory(tempDirectory, "Style");
  22.                 createBookDirectory(tempDirectory, "Fonts");
  23.                 createBookDirectory(tempDirectory, "Audio");
  24.                 createBookDirectory(tempDirectory, "Video");
  25.                 createBookDirectory(tempDirectory, "Misc");
  26.  
  27.                 Elements rawChapters = doc.select(".mw-headline");
  28.                 Iterator<Element> chaptersIterator = rawChapters.iterator();
  29.                 while (chaptersIterator.hasNext()) {
  30.                     Element chapter = chaptersIterator.next();
  31.                     addChapter(new ChapterObject(chapter.html(),
  32.                             chapter.text(), getClient()), true);
  33.                 }
  34.  
  35.                 String rawHtml = replacer(doc.outerHtml());
  36.                 String[] html = rawHtml.split("\n");
  37.                 List<String> tempContentList = new LinkedList<String>();
  38.  
  39.                 for (int index = 0; index < html.length; index++) {
  40.                     String content = html[index];
  41.                     if (content.contains("<span class=\"mw-headline\"")
  42.                             && !content.contains("Translator")) {
  43.                         if (!tempContentList.contains(content)) tempContentList
  44.                                 .add(content);
  45.                         for (int chapterIndex = 0; chapterIndex < tempContentList
  46.                                 .size(); chapterIndex++) {
  47.                             ChapterObject chapter = getLoadedChapters().get(
  48.                                     chapterIndex);
  49.                             if (chapter.getIndex() == -1) chapter.setIndex(
  50.                                     index, true);
  51.                         }
  52.                     }
  53.                 }
  54.  
  55.                 for (int indexContent = 0; indexContent < getLoadedChapters()
  56.                         .size() - 1; indexContent++) {
  57.                     ChapterObject chapter = getLoadedChapters().get(
  58.                             indexContent);
  59.  
  60.                     if (indexContent != getLoadedChapters().size()) {
  61.                         ChapterObject secondChapter = getLoadedChapters().get(
  62.                                 indexContent + 1);
  63.                         int start = 0;
  64.                         int end = secondChapter.getIndex() - 1;
  65.                         for (start = chapter.getIndex() + 1; start < end; start++) {
  66.                             String chapterContent = html[start];
  67.                             addChapterContent(chapter,
  68.                                     chapterContent.replaceAll("^\\s+", ""),
  69.                                     false, images, imageDirectory, title[0]);
  70.                         }
  71.                     }
  72.                     if (indexContent + 2 == getLoadedChapters().size()) {
  73.                         ChapterObject chapterLast = getLoadedChapters().get(
  74.                                 indexContent + 1);
  75.                         int start = 0;
  76.                         int end = html.length;
  77.                         for (start = chapterLast.getIndex() + 1; start < end; start++) {
  78.                             String chapterContent = html[start];
  79.                             addChapterContent(chapterLast,
  80.                                     chapterContent.replaceAll("^\\s+", ""),
  81.                                     false, images, imageDirectory, title[0]);
  82.                         }
  83.                     }
  84.                 }
  85.  
  86.                 getClient()
  87.                         .getLogs()
  88.                         .addLog("Finished scraping content, starting to download images & generate HTML files.");
  89.  
  90.                 for (ChapterObject chapter : getLoadedChapters()) {
  91.                     try {
  92.                         for (int imageIndex = 0; imageIndex < chapter
  93.                                 .getImages().size(); imageIndex++) {
  94.                             String imageUrl = chapter.getImages().get(
  95.                                     imageIndex);
  96.                             download(imageUrl, imageDirectory,
  97.                                     title[0].replace(" ", "-") + "-"
  98.                                             + imageIndex + ".jpg", chapter);
  99.                         }
  100.                         File htmlFile = new File(htmlDirectory,
  101.                                 chapter.getName() + ".html");
  102.                         FileOutputStream mfos = new FileOutputStream(htmlFile);
  103.                         Writer out = new OutputStreamWriter(mfos, "UTF-8");
  104.                         out.write("<body>");
  105.                         // out.write("\r\n");
  106.                         out.write("<h1 id=\"Title\">");
  107.                         out.write(chapter.getName());
  108.                         out.write("</h1>");
  109.                         // out.write("\r\n");
  110.                         for (String content : chapter.getContent()) {
  111.                             byte[] outByte = UnicodeUtils.convert(
  112.                                     content.getBytes(), "UTF-8");
  113.                             String output = new String(outByte);
  114.                             output = output.substring(output.indexOf("<"));
  115.                             out.write(output);
  116.                         }
  117.                         out.write("</body>");
  118.                         // out.write("\r\n");
  119.                         out.flush();
  120.                         out.close();
  121.                     } catch (Exception exception) {
  122.                         exception.printStackTrace();
  123.                     }
  124.                     getClient().getLogs().addLog(
  125.                             "HTML File has been succesfully created for '"
  126.                                     + chapter.getName() + "'");
  127.                 }
  128.                 saveOrder("", tempDirectory);
  129.                 System.out.println(tempDirectory.getAbsolutePath());
  130.                 getClient().getLogs().addLog("All done!"); // fix this shit
  131.                                                             // oliver, please
  132.             }
  133.         } catch (Exception exception) {
  134.             exception.printStackTrace();
  135.         }
  136.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement