Example #1
0
 public static ArrayList<EntryModel> getPopularContent() {
   final ArrayList<EntryModel> result = new ArrayList<>();
   Thread thread =
       new Thread(
           () -> {
             try {
               Document document = Jsoup.connect("http://jkanime.net/").get();
               Elements elements = document.getElementsByClass("home_portada_bg");
               for (Element element : elements) {
                 result.add(
                     new EntryModel(
                         Constants.TYPE_SHOW,
                         element.getElementsByTag("a").first().text(),
                         element.getElementsByTag("a").first().attr("abs:href"),
                         element.getElementsByTag("img").first().attr("src")));
               }
             } catch (IOException e) {
               e.printStackTrace();
             }
           });
   thread.start();
   try {
     thread.join();
     return result;
   } catch (InterruptedException | NullPointerException e) {
     e.printStackTrace();
     return null;
   }
 }
Example #2
0
 public static ArrayList<EntryModel> getSearchResults(final String query) {
   final ArrayList<EntryModel> result = new ArrayList<>();
   Thread thread =
       new Thread(
           () -> {
             try {
               Document document =
                   Jsoup.connect("http://jkanime.net/buscar/" + query.replace(" ", "_")).get();
               Elements elements = document.getElementsByClass("search");
               for (Element element : elements) {
                 String title = element.getElementsByClass("titl").first().text();
                 String url = element.getElementsByClass("titl").first().attr("abs:href");
                 String picUrl = element.getElementsByTag("img").first().attr("src");
                 result.add(new EntryModel(Constants.TYPE_SHOW, title, url, picUrl));
               }
             } catch (IOException e) {
               e.printStackTrace();
             }
           });
   thread.start();
   try {
     thread.join();
     return result;
   } catch (InterruptedException | NullPointerException e) {
     e.printStackTrace();
     return null;
   }
 }
Example #3
0
 public static ArrayList<EntryModel> getEpisodeLinks(final String url) {
   final ArrayList<EntryModel> result = new ArrayList<>();
   Thread thread =
       new Thread(
           () -> {
             try {
               Document document = Jsoup.connect(url).get();
               Elements titleElements =
                   document.getElementsByClass("video_option").size() != 0
                       ? document.getElementsByClass("video_option").first().getElementsByTag("a")
                       : document
                           .getElementsByClass("video_option_act")
                           .first()
                           .getElementsByTag("a");
               Elements videoElements = document.getElementsByClass("player_conte");
               for (int i = 0; i < videoElements.size(); i++) {
                 String title = titleElements.get(i).text();
                 String linkUrl = videoElements.get(i).attr("src");
                 if (!linkUrl.startsWith("http")) {
                   Elements flashElements = videoElements.get(i).select("param[name=flashvars]");
                   linkUrl = flashElements.attr("value").split("[&;]")[0].split("=")[1];
                   if (!linkUrl.startsWith("http")) {
                     flashElements = videoElements.get(i).select("[flashvars]");
                     linkUrl = flashElements.attr("flashvars").split("[&;]")[0].split("=")[1];
                   }
                 }
                 result.add(new EntryModel(Constants.TYPE_LINK, title, linkUrl));
               }
             } catch (IOException | IndexOutOfBoundsException e) {
               e.printStackTrace();
             }
           });
   thread.start();
   try {
     thread.join();
     return result;
   } catch (InterruptedException | NullPointerException e) {
     e.printStackTrace();
     return null;
   }
 }
Example #4
0
  public static ArrayList<EntryModel> getEpisodeList(final String url) {
    final ArrayList<EntryModel> result = new ArrayList<>();
    Thread thread =
        new Thread(
            () -> {
              try {
                Document document = Jsoup.connect(url).get();
                if (document.getElementsByClass("lista_title_uniq").size() == 0) {
                  String[] lastPage =
                      document
                          .getElementsByClass("listnavi")
                          .first()
                          .lastElementSibling()
                          .text()
                          .split(" ");
                  int episodes = Integer.parseInt(lastPage[lastPage.length - 1]);
                  for (int i = 1; i <= episodes; i++) {
                    result.add(
                        new EntryModel(Constants.TYPE_EPISODE, "Episode " + i, url + i + "/"));
                  }
                } else {
                  String title = document.getElementsByClass("lista_title_uniq").first().text();
                  result.add(
                      new EntryModel(
                          Constants.TYPE_EPISODE, title, url + title.toLowerCase() + "/"));
                }

              } catch (IOException e) {
                e.printStackTrace();
              }
            });
    thread.start();
    try {
      thread.join();
      return result;
    } catch (InterruptedException | NullPointerException e) {
      e.printStackTrace();
      return null;
    }
  }
Example #5
0
  private boolean[] getForks(final Seat seat) {
    Fork left = seat.getLeft();
    boolean hasRight = false;
    boolean hasBoth = false;
    boolean exception = false; // fuer Abbruchbedingung, falls anfordern der
    // Gabel scheitert
    boolean[] hasBoth_exception = new boolean[2];

    while (!hasBoth && !exception) {
      int tries = 0;
      try {
        left.getSemaphore().acquire();
      } catch (InterruptedException e1) {
        System.out.println("This shouldnt happen.");
        e1.printStackTrace();
      }

      while (!hasRight && tries <= Constant.TRIES_TO_GET_FORK) {
        if (seat.equals(seatList.getLast())) {
          // Unterscheidung ob rechte Gabel lokal oder remote liegt
          if (this.client.hasNeighborClient()) {
            hasRight = this.client.callNeighborToBlockFork();
          } else {
            try {
              hasRight =
                  seat.getRight()
                      .getSemaphore()
                      .tryAcquire(Constant.TIME_UNTIL_NEW_FORKTRY, TimeUnit.MILLISECONDS);
            } catch (InterruptedException | NullPointerException e) {
              System.out.println("Fehler beim Anfordern der rechten Gabel!");
              e.printStackTrace();
              exception = true;
            }
          }
        } else {
          try {
            hasRight =
                seat.getRight()
                    .getSemaphore()
                    .tryAcquire(Constant.TIME_UNTIL_NEW_FORKTRY, TimeUnit.MILLISECONDS);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
        }

        tries++;
      }
      hasBoth = hasRight;
      if (!hasBoth) {
        left.getSemaphore().release();
        try {
          Thread.sleep(Constant.TIME_UNTIL_NEW_FORKTRY);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
    }
    hasBoth_exception[0] = hasBoth;
    hasBoth_exception[1] = exception;
    return hasBoth_exception;
  }