A question regarding my next plugin
-
I installed your plugin, works perfectably (well it doesn't seem to do anything... but no crashes)
-
@baris said:
I can't sleep
Join the party, it's 5:44am and it's hotter than the surface of the sun in the UK.
@psychobunny The commit that @baris linked to got me up and running (I've not updated for a few days), now to work out why it doesn't actually do anything.
-
Your regex should look like this instead
/dc#\w+/gm
-
@psychobunny Turns out I'd also forgotten to rename one of julians vars from his comic plugin, changed the regex, doesn't notice it.
EDIT: Scratch that, my logs state "getting discog info VSN018" (the cat number I entered, so it's probably the request)
I assume this could be related to
Also the discogs api requires a User-Agent string that identifies itself – preferably something that follows RFC 1945.
Which I don't believe I'm using.
-
You can pass in a user-agent field into the request options
request.get({ url: 'http://api.discogs.com/database/search?catno=' + discogNum + '&type=release&per_page=1', headers: { 'User-Agent': 'request' } },
-
Found that through julians Github plugin, so I did that, and now I've got
error: TypeError: Cannot read property 'statusCode' of undefined at Request._callback (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/index.js:76:21) at self.callback (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/request.js:123:22) at Request.emit (events.js:95:17) at Request.self._buildRequest (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/request.js:355:39) at Request.init (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/request.js:533:10) at new Request (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/request.js:99:8) at request (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/index.js:54:11) at Function.request.get (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/index.js:127:27) at getDiscog (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/index.js:70:13) at async.map.appModule.render.discoginfo (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/index.js:38:13)
which is
}, function(err, response, body) { if (response.statusCode === 200) { callback(null, JSON.parse(body));
-
@baris That was exactly the case, earlier on I'd removed http to check something and not added it back. Ok, the page loads now, with the partial tpl file. But no data, so I'm assuming doing {results.title} and {results.year} etc (as depicted by the API), isn't how I pull the info?
-
How's it going?
-
@psychobunny About where my last post is, I couldn't work out why it doesn't seem to be connecting to the api, or if it does, I just don't know how to pull the data that I'm looking for. I know what I want, and I think I know how to get it, but the only way it doesn't crash the plugin, it gives me the undefined error above.
Basically this is the json output of what I wish to target.
{ "pagination": { "per_page": 1, "items": 14256, "page": 1, "urls": { "last": "http://api.discogs.com/database/search?per_page=1&type=release&catno=VSN018&page=14256&f=json", "next": "http://api.discogs.com/database/search?per_page=1&type=release&catno=VSN018&page=2&f=json" }, "pages": 14256 }, "results": [ { "style": [ "Drum n Bass" ], "thumb": "http://api.discogs.com/image/R-90-5844720-1404286626-1507.jpeg", "format": [ "Vinyl", "12\"", "45 RPM", "EP", "File", "MP3" ], "country": "Netherlands", "title": "Noisia - Purpose EP", "uri": "/Noisia-Purpose-EP/release/5844720", "community": { "have": 17, "want": 27 }, "label": [ "Vision Recordings" ], "catno": "VSN018", "year": "2014", "genre": [ "Electronic" ], "resource_url": "http://api.discogs.com/releases/5844720", "type": "release", "id": 5844720 } ] }
But
returnData = { results: { uri: results.uri, thumbnail: results.thumb, catno: results.catno, title: results.title, style: results.style, label: results.label, year: results.year } };
Returns undefined for everything, so I'd assume it doesn't connect.
-
@a_5mith,
results
in that returned data set is anArray
, so you'll have to iterate through it (or cheap out and just look at the first array index):returnData = { results: { uri: results[0].uri, thumbnail: results[0].thumb, catno: results[0].catno, title: results[0].title, style: results[0].style, label: results[0].label, year: results[0].year } };
... maybe?
Edit: Wow, that was fast.
-
Right, Birthdays over now (after 3 days) and I'm back on Plugin Development.
SyntaxError: Unexpected token at Object.parse (native) at Request._callback (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/index.js:84:33) at Request.self.callback (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/request.js:123:22) at Request.emit (events.js:98:17) at Request.<anonymous> (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/request.js:1047:14) at Request.emit (events.js:117:20) at IncomingMessage.<anonymous> (/home/a_5mith/35hz/node_modules/nodebb-plugin-discogs/node_modules/request/request.js:998:12) at IncomingMessage.emit (events.js:117:20) at _stream_readable.js:929:16 at process._tickDomainCallback (node.js:463:13)
84:33 corresponds to the
parse
incallback(null, JSON.parse(body)),
-
Means your JSON is malformed, perhaps do a
console.log(body)
and try and find if you're missing a comma somewhere (maybe http://jsonlint.com may help you in that respect)EDIT: birthday? yours?