File extractMonth.js changed (mode: 100644) (index 0e61fd5..530f6b3) |
18 |
18 |
*/ |
*/ |
19 |
19 |
const Court = require("./lib/Court.class"); |
const Court = require("./lib/Court.class"); |
20 |
20 |
const sqDAO = require("./lib/sqlDAO"); |
const sqDAO = require("./lib/sqlDAO"); |
21 |
|
const moment = require("moment"); |
|
|
21 |
|
const moment = require("dayjs"); |
22 |
22 |
|
|
23 |
23 |
if (process.argv.length < 4) throw "Must pass in YYYY and MM."; |
if (process.argv.length < 4) throw "Must pass in YYYY and MM."; |
24 |
24 |
let year = process.argv[2]; |
let year = process.argv[2]; |
|
... |
... |
opts.connectCallback = sqDB => { |
38 |
38 |
precinct: pct, |
precinct: pct, |
39 |
39 |
place: plc |
place: plc |
40 |
40 |
}); |
}); |
41 |
|
for (var et of [Court.EXTRACT_FILED, Court.EXTRACT_HEARINGS, Court.EXTRACT_DISPOSED]) { |
|
|
41 |
|
for (var et of [Court.EXTRACT_FILED, Court.EXTRACT_DISPOSED]) { |
42 |
42 |
let exOpts = { |
let exOpts = { |
43 |
43 |
database: sqDB, |
database: sqDB, |
44 |
44 |
startDate: sDate.format("MM/DD/YYYY"), |
startDate: sDate.format("MM/DD/YYYY"), |
File lib/Court.class.js changed (mode: 100644) (index ffb8fd8..4d9e1d0) |
... |
... |
const DomHandler = require("domhandler").DomHandler; |
24 |
24 |
const du = require("domutils"); |
const du = require("domutils"); |
25 |
25 |
const Docket = require("./Docket.class"); |
const Docket = require("./Docket.class"); |
26 |
26 |
const Case = require("./Case.class"); |
const Case = require("./Case.class"); |
|
27 |
|
const moment = require("dayjs"); |
|
28 |
|
moment.extend(require("dayjs/plugin/customParseFormat")); |
27 |
29 |
|
|
28 |
30 |
// Create parser: |
// Create parser: |
29 |
31 |
let getExtractInfo = node => { |
let getExtractInfo = node => { |
|
... |
... |
let extractAddParty = (caseObj, row, pfx, role) => { |
77 |
79 |
|
|
78 |
80 |
}; |
}; |
79 |
81 |
|
|
80 |
|
let extractParserGenerator = (resFN, rejFN, database) => { |
|
|
82 |
|
let extractParserGenerator = (court, resFN, rejFN, database) => { |
81 |
83 |
let casePromises = []; |
let casePromises = []; |
82 |
84 |
return new hp.Parser( |
return new hp.Parser( |
83 |
85 |
new DomHandler((err, dom) => { |
new DomHandler((err, dom) => { |
|
... |
... |
let extractParserGenerator = (resFN, rejFN, database) => { |
145 |
147 |
|
|
146 |
148 |
let docket = null; |
let docket = null; |
147 |
149 |
if (info.eventDate && info.eventTime) { |
if (info.eventDate && info.eventTime) { |
148 |
|
let hours = info.eventTime.substr(0, 2); |
|
149 |
|
let mins = info.eventTime.substr(3, 2); |
|
150 |
|
let ap = info.eventTime.substr(6, 1); |
|
|
150 |
|
let md = moment(info.eventTime, "hh:mm A"); |
151 |
151 |
docket = new Docket({ |
docket = new Docket({ |
152 |
|
court: this, |
|
|
152 |
|
court: court, |
153 |
153 |
date: info.eventDate, |
date: info.eventDate, |
154 |
|
time: (hours + ("P" === ap) ? 12 : 0) + "" + mins + "00" |
|
|
154 |
|
time: md.format("HHmm00") |
155 |
155 |
}); |
}); |
156 |
156 |
} |
} |
157 |
157 |
|
|
|
... |
... |
module.exports = class Court { |
213 |
213 |
} |
} |
214 |
214 |
|
|
215 |
215 |
return new Promise((resFN, rejFN) => { |
return new Promise((resFN, rejFN) => { |
216 |
|
let parser = extractParserGenerator(resFN, rejFN, argv.database); |
|
|
216 |
|
let parser = extractParserGenerator(this, resFN, rejFN, argv.database); |
217 |
217 |
argv.extractStream |
argv.extractStream |
218 |
218 |
.on("end", () => { parser.done(); }) |
.on("end", () => { parser.done(); }) |
219 |
219 |
.on("data", d => { parser.parseChunk(d); }) |
.on("data", d => { parser.parseChunk(d); }) |
|
... |
... |
module.exports = class Court { |
252 |
252 |
rejFN({ msg: "court extractID: ", err: err }); |
rejFN({ msg: "court extractID: ", err: err }); |
253 |
253 |
} else { |
} else { |
254 |
254 |
extractCourtID = row.extractID; |
extractCourtID = row.extractID; |
255 |
|
let parser = extractParserGenerator(resFN, rejFN, argv.database); |
|
|
255 |
|
let parser = extractParserGenerator(this, resFN, rejFN, argv.database); |
256 |
256 |
|
|
257 |
257 |
// create the extractURL: |
// create the extractURL: |
258 |
258 |
let extractURL = "https://jpwebsite.harriscountytx.gov/PublicExtracts/GetExtractData?extractCaseType=CV&extract="+argv.extractType+"&court="+extractCourtID+"&casetype=EV&format=xml&fdate="+argv.startDate+"&tdate="+argv.endDate; |
let extractURL = "https://jpwebsite.harriscountytx.gov/PublicExtracts/GetExtractData?extractCaseType=CV&extract="+argv.extractType+"&court="+extractCourtID+"&casetype=EV&format=xml&fdate="+argv.startDate+"&tdate="+argv.endDate; |
File package-lock.json changed (mode: 100644) (index 7f7b560..4e6be3f) |
290 |
290 |
"resolved": "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz", |
"resolved": "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz", |
291 |
291 |
"integrity": "sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=" |
"integrity": "sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=" |
292 |
292 |
}, |
}, |
|
293 |
|
"dayjs": { |
|
294 |
|
"version": "1.8.36", |
|
295 |
|
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", |
|
296 |
|
"integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" |
|
297 |
|
}, |
293 |
298 |
"debug": { |
"debug": { |
294 |
299 |
"version": "4.1.1", |
"version": "4.1.1", |
295 |
300 |
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", |
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", |
|
324 |
329 |
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" |
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" |
325 |
330 |
}, |
}, |
326 |
331 |
"dom-serializer": { |
"dom-serializer": { |
327 |
|
"version": "1.0.1", |
|
328 |
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.0.1.tgz", |
|
329 |
|
"integrity": "sha512-1Aj1Qy3YLbdslkI75QEOfdp9TkQ3o8LRISAzxOibjBs/xWwr1WxZFOQphFkZuepHFGo+kB8e5FVJSS0faAJ4Rw==", |
|
|
332 |
|
"version": "1.1.0", |
|
333 |
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.1.0.tgz", |
|
334 |
|
"integrity": "sha512-ox7bvGXt2n+uLWtCRLybYx60IrOlWL/aCebWJk1T0d4m3y2tzf4U3ij9wBMUb6YJZpz06HCCYuyCDveE2xXmzQ==", |
330 |
335 |
"requires": { |
"requires": { |
331 |
336 |
"domelementtype": "^2.0.1", |
"domelementtype": "^2.0.1", |
332 |
337 |
"domhandler": "^3.0.0", |
"domhandler": "^3.0.0", |
|
347 |
352 |
} |
} |
348 |
353 |
}, |
}, |
349 |
354 |
"domutils": { |
"domutils": { |
350 |
|
"version": "2.2.0", |
|
351 |
|
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.2.0.tgz", |
|
352 |
|
"integrity": "sha512-0haAxVr1PR0SqYwCH7mxMpHZUwjih9oPPedqpR/KufsnxPyZ9dyVw1R5093qnJF3WXSbjBkdzRWLw/knJV/fAg==", |
|
|
355 |
|
"version": "2.3.0", |
|
356 |
|
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.3.0.tgz", |
|
357 |
|
"integrity": "sha512-xWC75PM3QF6MjE5e58OzwTX0B/rPQnlqH0YyXB/c056RtVJA+eu60da2I/bdnEHzEYC00g8QaZUlAbqOZVbOsw==", |
353 |
358 |
"requires": { |
"requires": { |
354 |
359 |
"dom-serializer": "^1.0.1", |
"dom-serializer": "^1.0.1", |
355 |
360 |
"domelementtype": "^2.0.1", |
"domelementtype": "^2.0.1", |
|
713 |
718 |
"minimist": "^1.2.5" |
"minimist": "^1.2.5" |
714 |
719 |
} |
} |
715 |
720 |
}, |
}, |
716 |
|
"moment": { |
|
717 |
|
"version": "2.28.0", |
|
718 |
|
"resolved": "https://registry.npmjs.org/moment/-/moment-2.28.0.tgz", |
|
719 |
|
"integrity": "sha512-Z5KOjYmnHyd/ukynmFd/WwyXHd7L4J9vTI/nn5Ap9AVUgaAE15VvQ9MOGmJJygEUklupqIrFnor/tjTwRU+tQw==" |
|
720 |
|
}, |
|
721 |
721 |
"ms": { |
"ms": { |
722 |
722 |
"version": "2.1.2", |
"version": "2.1.2", |
723 |
723 |
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", |
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", |