|
1 | | -const {bookmancy} = require('@dillonchr/funhouse'); |
2 | | -const {trackError} = require('../../utils'); |
3 | | -const funhouseResponseTransformer = require('./funhouse-response-transformer'); |
4 | | -const confirmMessage = require('./confirmation-messages'); |
| 1 | +const { bookmancy } = require("@dillonchr/funhouse"); |
| 2 | +const { trackError } = require("../../utils"); |
| 3 | +const funhouseResponseTransformer = require("./funhouse-response-transformer"); |
| 4 | +const confirmMessage = require("./confirmation-messages"); |
5 | 5 | const is = { |
6 | | - abe: s => /^abe /i.test(s), |
7 | | - ebay: s => /^ebay /i.test(s), |
8 | | - sold: s => /^sold /i.test(s), |
9 | | - live: s => /^live /i.test(s) |
| 6 | + abe: s => /^abe /i.test(s), |
| 7 | + ebay: s => /^ebay /i.test(s), |
| 8 | + sold: s => /^sold /i.test(s), |
| 9 | + live: s => /^live /i.test(s) |
10 | 10 | }; |
11 | 11 |
|
12 | 12 | module.exports = bot => { |
13 | | - bot.hears(['ebay', 'abe'], ({reply, content}) => { |
14 | | - if (is.abe(content)) { |
15 | | - reply(confirmMessage()); |
16 | | - const messagePieces = content.substr(4).split(',').map(s => s.trim()); |
17 | | - const [author, title, publisher, year, format] = messagePieces; |
18 | | - const query = { |
19 | | - author, |
20 | | - title, |
21 | | - publisher, |
22 | | - year: format && !isNaN(format) ? format : !isNaN(year) && year, |
23 | | - format: isNaN(year) ? year : format, |
24 | | - source: 'abe', |
25 | | - includeUrl: true |
26 | | - }; |
27 | | - bookmancy(query, (err, response) => { |
28 | | - if (err) { |
29 | | - trackError(err); |
30 | | - return reply(`Search error: ${err.message}`); |
31 | | - } |
| 13 | + bot.hears(["ebay", "abe"], ({ reply, content }) => { |
| 14 | + if (is.abe(content)) { |
| 15 | + reply(confirmMessage()); |
| 16 | + const messagePieces = content |
| 17 | + .substr(4) |
| 18 | + .split(",") |
| 19 | + .map(s => s.trim()); |
| 20 | + const [author, title, publisher, year, format] = messagePieces; |
| 21 | + const query = { |
| 22 | + author, |
| 23 | + title, |
| 24 | + publisher, |
| 25 | + year: format && !isNaN(format) ? format : !isNaN(year) && year, |
| 26 | + format: isNaN(year) ? year : format, |
| 27 | + source: "abe", |
| 28 | + includeUrl: true |
| 29 | + }; |
| 30 | + bookmancy(query, (err, response) => { |
| 31 | + if (err) { |
| 32 | + trackError(err); |
| 33 | + return reply(`Search error: ${err.message}`); |
| 34 | + } |
32 | 35 |
|
33 | | - const searchTitle = messagePieces.join(' - '); |
34 | | - reply(funhouseResponseTransformer(searchTitle, response.url, response.results)); |
35 | | - }); |
36 | | - } else if (is.ebay(content)) { |
37 | | - reply(confirmMessage()); |
38 | | - const searchSansEbay = content.substr(5); |
39 | | - const isLive = is.live(searchSansEbay); |
40 | | - const isSold = is.sold(searchSansEbay); |
41 | | - const searchTitle = searchSansEbay.replace(/^live|sold/i, '').trim(); |
42 | | - const query = { |
43 | | - author: searchTitle, |
44 | | - source: 'ebay' |
45 | | - }; |
46 | | - if (isLive) { |
47 | | - query.live = true; |
48 | | - } |
49 | | - if (isSold) { |
50 | | - query.sold = true; |
51 | | - } |
52 | | - bookmancy(query, (err, response) => { |
53 | | - if (err) { |
54 | | - trackError(err); |
55 | | - return reply(`Search error: ${err.message}`); |
56 | | - } |
57 | | - reply(funhouseResponseTransformer(searchTitle, '', response.results, true)); |
58 | | - }); |
| 36 | + const searchTitle = messagePieces.join(" - "); |
| 37 | + reply( |
| 38 | + funhouseResponseTransformer( |
| 39 | + searchTitle, |
| 40 | + response.url, |
| 41 | + response.results |
| 42 | + ) |
| 43 | + ); |
| 44 | + }); |
| 45 | + } else if (is.ebay(content)) { |
| 46 | + reply(confirmMessage()); |
| 47 | + const searchSansEbay = content.substr(5); |
| 48 | + const isLive = is.live(searchSansEbay); |
| 49 | + const isSold = is.sold(searchSansEbay); |
| 50 | + const searchTitle = searchSansEbay.replace(/^live|sold/i, "").trim(); |
| 51 | + const query = { |
| 52 | + author: searchTitle, |
| 53 | + source: "ebay" |
| 54 | + }; |
| 55 | + if (isLive) { |
| 56 | + query.live = true; |
| 57 | + } |
| 58 | + if (isSold) { |
| 59 | + query.sold = true; |
| 60 | + } |
| 61 | + bookmancy(query, (err, response) => { |
| 62 | + if (err) { |
| 63 | + trackError(err); |
| 64 | + return reply(`Search error: ${err.message}`); |
59 | 65 | } |
60 | | - }); |
| 66 | + reply( |
| 67 | + funhouseResponseTransformer(searchTitle, "", response.results, true) |
| 68 | + ); |
| 69 | + }); |
| 70 | + } |
| 71 | + }); |
61 | 72 | }; |
0 commit comments