Package barrysoft.web

Examples of barrysoft.web.ParserRule


   
    Extractor search = new Extractor();
   
    search.getParser().setName("ITSA Search");
   
    ParserRule inr = new ParserRule("(?i)(?s).*?<a href=\"([^<>]+)\">\\s[series]</a>.*?");
    inr.setQuickRule(" [series]<");
    inr.setGroupName("season link", 0);
    inr.addParam(new ParserRuleParam("series", "How I Met Your Mother"));
   
    search.getParser().addRule(inr);
    try {
      search.getDownloader().setUrl("http://www.italiansubs.net/index.php?option=com_remository");
    } catch (MalformedURLException e) {
      fail(e.getMessage());
    }
   
    Extractor season = new Extractor();
   
    season.getParser().setName("ITSA Season");
   
    ParserRule outr = new ParserRule("(?i)(?s).*?<a href=\"([^<>]+)\">\\s[season]</a>.*?");
    outr.setQuickRule(" [season]<");
    outr.setGroupName("episodes link", 0);
    //outr.addParam(new ParserRuleParam("season", "Stagione 2"));
   
    season.getParser().addRule(outr);
   
    Extractor episode = new Extractor();
   
    episode.getParser().setName("ITSA Episode");
   
    outr = new ParserRule("(?i)(?s).*?<a href=\"([^<>]+)\">[episode]</a>.*?");
    outr.setQuickRule("[episode]<");
    outr.setGroupName("subtitle link", 0);
    //outr.addParam(new ParserRuleParam("episode", "How I Met Your Mother 2x06"));
   
    episode.getParser().addRule(outr);
   
    ExtractionJob job = new ExtractionJob("Get ITSA subtitle link");
View Full Code Here


    Parser p = new Parser("Test Parser");
    /*p.addRule(parseRule);
    p.addRuleParam(parseRule, p.new ParserRuleParam("city", "Rome"));
    p.addRuleParam(parseRule, p.new ParserRuleParam("country", "Italy"));*/
   
    ParserRule pr = new ParserRule(parseRule);
    pr.addParam(new ParserRuleParam("city", "Rome"));
    pr.addParam(new ParserRuleParam("country", "Italy"));
   
    p.addRule(pr);
     
    p.parseData(plainData);
   
View Full Code Here

 
  @Test
  public void testParseURL() {
   
    Parser p = new Parser("Time Parser");
    p.addRule(new ParserRule(timeRule));
   
    try {
     
      p.parseData(new WebDownloader(timeURL));
     
View Full Code Here

    ParserRuleParam prp = new ParserRuleParam("series");
   
    for (String s : series)
      prp.addValue(s);
   
    ParserRule pr = new ParserRule(itsaRule, prp);
    pr.setQuickRule(" [series]<");
   
    p.addRule(pr);
   
    try {
     
View Full Code Here

  public void testParserMultipleRules() {
   
    Parser p = new Parser("ITSA Parser Multi");
   
    for (String rule : multipleRules)
      p.addRule(new ParserRule(rule));
   
    try {
     
      WebDownloader wd = new WebDownloader("http://www.italiansubs.net/index.php");
      wd.addFormElement("option", "com_remository");
View Full Code Here

  public void testParserMultipleParamsRules() {
   
    Parser p = new Parser("ITSA Parser Multi");
   
    for (String rule : multipleParamsRules)
      p.addRule(new ParserRule(rule));
   
    ParserRule pr = p.getRule(multipleParamsRules.length-1);
    pr.addParam(new ParserRuleParam("tag", "Inviato il "));
   
    try {
     
      pr.getParam("tag").addValue("Dimensioni del file: ");
     
      WebDownloader wd = new WebDownloader("http://www.italiansubs.net/index.php");
      wd.addFormElement("option", "com_remository");
      wd.addFormElement("func", "fileinfo");
      wd.addFormElement("id", "2126");
View Full Code Here

  public void testSave() {
   
    Parser p = new Parser("Save Parser");
   
    for (String rule : regexs) {
      ParserRule pr = new ParserRule(rule);
     
      for (int i=0; i < 3; i++) {
       
        ParserRuleParam prp = new ParserRuleParam("param"+(i+1));
       
        for (int j=0; j < 5; j++)
          prp.addValue("value"+(j+1));
       
        pr.addParam(prp);
       
      }
     
      pr.setGroupName("group1", 0);
      pr.setGroupName("group2", 1);
     
      p.addRule(pr);
    }
   
    String xmlSource = p.getXML(0);
   
    System.out.println(xmlSource);
   
    InputSource is = new InputSource(new StringReader(xmlSource));
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = null;
   
    try {
      db = dbf.newDocumentBuilder();
    } catch (ParserConfigurationException e1) {
      fail(e1.getMessage());
    }
   
    Document doc = null;
    try {
      doc = db.parse(is);
    } catch (SAXException e) {
      fail(e.getMessage());
    } catch (IOException e) {
      fail(e.getMessage());
    }
   
    Parser p2 = new Parser();
    p2.loadFromXML(doc.getFirstChild());
   
    assertEquals(p2.getRulesCount(), regexs.length);
   
    for (int i=0; i < p2.getRulesCount(); i++) {
     
      ParserRule pr = p2.getRule(i);
     
      assertEquals(pr.getRule(), regexs[i]);
      assertEquals(3, pr.getParamsCount());
     
      for (int j=0; j < pr.getParamsCount(); j++) {
        try {
          ParserRuleParam prp = pr.getParam("param"+(j+1));
         
          assertEquals(5, prp.getValues().length);
         
          for (int k=0; k < prp.getValues().length; k++)
            assertEquals("value"+(k+1), prp.getValues()[k]);
         
        } catch (IllegalArgumentException e) {
          fail(e.getMessage());
        }
      }
     
      try {
        assertEquals(0, pr.getGroupNumber("group1"));
        assertEquals(1, pr.getGroupNumber("group2"));
      } catch (NoSuchElementException e) {
        fail(e.getMessage());
      }
     
    }
View Full Code Here

  public static final String tvstRegex = "<span style=\"[^\"]*\"><b>(\\w+)\\s*subtitles</b></span></div>\\s*<a href=\"([^\"]*)\">";
 
  public void testMultipleResults() {
   
    Parser p = new Parser("TVSubtitles.net Parser");
    ParserRule rule = new ParserRule(tvstRegex);
    rule.setGroupName("Language", 0);
    rule.setGroupName("Link", 1);
   
    p.addRule(rule);
   
    WebDownloader dl = new WebDownloader();
    try {
      dl.setUrl("http://www.tvsubtitles.net/episode-3079.html");
    } catch (MalformedURLException e) {
      fail(e.getMessage());
    }
   
    try {
      p.parseData(dl);
    } catch (IllegalStateException e) {
      fail(e.getMessage());
    } catch (IOException e) {
      fail(e.getMessage());
    }

    try {
      String[] langs = rule.getResults("Language");
      String[] links = rule.getResults("Link");
     
      if (langs == null || langs.length == 0)
        fail("Can't get langs.");
     
      if (links == null || links.length == 0)
View Full Code Here

TOP

Related Classes of barrysoft.web.ParserRule

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.