Example #1
0
 public function crawl_chapter($v)
 {
     $ifx = Text::create($v['infix'])->pad(3)->to_s();
     $p = new Page($v['url']);
     // ada dua kemungkinan, 1 vol berisi n chap atau 1 chap saja
     $p->go_line_or(array('data[volumechapter]', 'data[pages]'));
     if ($p->curr_line()->contain('data[volumechapter]')) {
         $volchaps = array();
         do {
             $line = $p->curr_line();
             if ($line->contain('</option>')) {
                 $volchaps[$line->cut_between('value="', '"')->to_s()] = $line->cut_between('>', '</option')->to_s();
             }
         } while (!$p->next_line()->contain('</select><br'));
         // traverse per chapter
         foreach ($volchaps as $key2 => $val2) {
             $url2 = dirname($v['url']) . '/' . $key2;
             $this->crawl_page($url2, $ifx);
         }
     } else {
         if ($p->curr_line()->contain('data[pages]')) {
             $this->crawl_page($v['url'], $ifx);
         }
     }
 }