-
Notifications
You must be signed in to change notification settings - Fork 0
/
parser.coffee
73 lines (52 loc) · 1.7 KB
/
parser.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
mongoose = require 'mongoose'
cheerio = require 'cheerio'
request = require 'request'
async = require 'async'
unzip = require 'unzip'
libpath = require 'path'
fs = require 'fs.extra'
cp = require 'child_process'
_ = require 'underscore'
unoconv = require 'unoconv'
config = (try JSON.parse(fs.readFileSync('config.json'))) || {}
db = mongoose.createConnection 'localhost', 'cancer'
db.on 'error', (err) -> console.log 'database error', err
db.on 'open', (err) -> console.log 'opened database'
Question = db.model 'Question', new mongoose.Schema {
type: String, # for future support for different types of Question, e.g. certamen, jeopardy
category: String,
num: Number,
tournament: String,
question: String,
answer: String,
difficulty: String,
value: String,
date: String,
year: Number,
round: String,
seen: Number,
next: mongoose.Schema.ObjectId,
fixed: Number,
inc_random: Number,
tags: [String]
}
Packet = db.model 'Packet', new mongoose.Schema {
href: String,
name: String,
html: String,
engine: String,
error: String,
tournament: mongoose.Schema.ObjectId
}
Tournament = db.model 'Tournament', new mongoose.Schema {
difficulty: String,
year: Number,
source: String,
owner: String,
season: String,
links: [String],
name: String
}
Packet.find({ html: {$ne: null}, error: null }).limit(1).exec (err, packet) ->
$ = cheerio.load(packet.html)
# console.log $('body')