Exemple #1
0
 public List<ItvProgramme> get(String uri) throws Exception {
   Reader in = new StringReader(httpClient.getContentsOf(uri));
   Unmarshaller u = context.createUnmarshaller();
   u.setSchema(null);
   ItvProgrammes itvProgrammes = (ItvProgrammes) u.unmarshal(in);
   for (ItvProgramme program : itvProgrammes.programmeList()) {
     log.info("fetching details for: " + program.url());
     fetchEpisodeDetails(program);
   }
   return itvProgrammes.programmeList();
 }
Exemple #2
0
  private void addEpisodesTo(
      ItvProgramme program, HtmlNavigator htmlNavigator, List<Element> content) {

    for (Element element : content) {

      Element link = htmlNavigator.firstElementOrNull("./h3/a", element);
      String episodePage = link.getAttributeValue("href");
      Element description = htmlNavigator.firstElementOrNull("./p[@class='progDesc']", element);
      Element date = htmlNavigator.firstElementOrNull("./p[@class='date']", element);

      program.addEpisode(new ItvEpisode(date.getText(), description.getText(), episodePage));
    }
  }
Exemple #3
0
  private void fetchEpisodeDetails(ItvProgramme program) {

    int programmeId = program.programmeId();

    try {
      String data =
          httpClient.getContentsOf(
              "http://www.itv.com/_app/Dynamic/CatchUpData.ashx?ViewType=1&Filter="
                  + programmeId
                  + "&moduleID=262033&columnWidth=2");
      HtmlNavigator htmlNavigator = new HtmlNavigator(data);
      List<Element> content = htmlNavigator.allElementsMatching("//div[@class='content']");

      addEpisodesTo(program, htmlNavigator, content);

    } catch (Exception e) {
      throw new FetchException("Error fetching ITV programme with id: " + programmeId, e);
    }
  }