#!/usr/bin/env coffee

assert = require 'assert'
fs = require 'fs'
http = require 'http'
url = require 'url'
path = require 'path'
util = require 'util'

Q = require 'q'

Crawler2 = require '../src/crawler2'

# create a static http server
server = http.createServer().listen 8801, 'localhost'
server.on 'request', (req, res) ->
  url_parts = url.parse req.url, true

  if url_parts.pathname.match /^\/[0-9]+\.json$/
    fs.readFile path.join('data/json', url_parts.pathname), (err, data) ->
      if err
        if err.code == 'ENOENT'
          res.statusCode = 404
        else
          throw err
      else
        res.setHeader 'Content-Type', 'application/json'
        res.setHeader 'Content-Length', data.length
        res.write data

      res.end()
  else
    res.statusCode = 404
    res.end()


# main

crawler2 = new Crawler2 50
crawler2.url_pattern = "http://localhost:8801/%d.json"

crawler2.event.on 'data', (iter_id, data) ->
  console.error "iter_id=#{iter_id}: `#{data}`"

crawler2.event.on 'herr', (err) ->
  console.error "ERROR: ii=#{err.iter_id}/id=#{err.id}: #{err.message}"

crawler2.event.on 'finish', ->
  console.error util.inspect crawler2.stat._history, { showHidden: false, depth: null }
  console.error "STAT: " + util.inspect crawler2.stat.succinct()
  process.exit 0

crawler2.event.emit 'items', 1, [1..44]
