A question regarding my next plugin


  • 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. πŸ™‚

  • GNU/Linux Admin

    @a_5mith, results in that returned data set is an Array, 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.


  • @julian

    Edit: Wow, that was fast.

    Pushbullet for Firefox opens the tab automatically. πŸ˜†

    Will give it a go. πŸ™‚


  • 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 in callback(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? πŸ˜› 🍰


  • @psychobunny Yeah, turned 23 on the 25th. πŸ˜† πŸŽ‚

    Right, after a few hours, I'd accidently Ctrl K'd a line out that defines the results var... :shakes head:

    I'm now getting output back from discogs, however, it's definitely not right, I've thrown it into a pastebin.


  • Right, progress, I've got the pagination part

     {"pagination": {"per_page": 50, "items": 0, "page": 1, "urls": {}                                                                                                                     , "pages": 1}, "results": []}
    

    However results is just [], which is the bit I need. πŸ˜†

    Ok, back at undefined, so would appear @julian's snippet didn't work for me. 😞


  • So, I left this for a week or two, just come back to it to see if I could get it working, checked my console.log and what do you know, I have progress, I now have the output that I need (albeit all of it, not just what I specified)

    {"pagination": {"per_page": 1, "items": 1, "page": 1, "urls": {}, "pages": 1}, "results": [{"style": ["Breaks", "Electro", "Drum n Bass"], "thumb": "http://api.discogs.com/image/R-90-3071347-1314359516.jpeg", "format": ["CDr", "Album", "Promo"], "country": "UK", "barcode": [], "uri": "/Noisia-Split-The-Atom/release/3071347", "community": {"have": 12, "want": 10}, "label": ["Vision Recordings"], "catno": "VSNCD001P", "year": "2010", "genre": ["Electronic"], "title": "Noisia - Split The Atom", "resource_url": "http://api.discogs.com/releases/3071347", "type": "release", "id": 3071347}]}
    

    So my question now is what would I use to get this into the template file?

    I've done {results.catno} and used @julian's earlier method of looping through, but neither works. Any ideas?

    I only need bits of the info inside results. Not the pagination bit.

  • GNU/Linux Admin

    {  
       "pagination":{  
          "per_page":1,
          "items":1,
          "page":1,
          "urls":{  
    
          },
          "pages":1
       },
       "results":[  
          {  
             "style":[  
                "Breaks",
                "Electro",
                "Drum n Bass"
             ],
             "thumb":"http://api.discogs.com/image/R-90-3071347-1314359516.jpeg",
             "format":[  
                "CDr",
                "Album",
                "Promo"
             ],
             "country":"UK",
             "barcode":[  
    
             ],
             "uri":"/Noisia-Split-The-Atom/release/3071347",
             "community":{  
                "have":12,
                "want":10
             },
             "label":[  
                "Vision Recordings"
             ],
             "catno":"VSNCD001P",
             "year":"2010",
             "genre":[  
                "Electronic"
             ],
             "title":"Noisia - Split The Atom",
             "resource_url":"http://api.discogs.com/releases/3071347",
             "type":"release",
             "id":3071347
          }
       ]
    }
    

    Just making it look nice πŸ™‚

    You'll need to work with the values in the results hash then... how come you want the data in the template file, and aren't using a hook to modify the post text like the other plugins?


  • @julian It's a card like the Github Plugin that's used here.

    Users enters a category number, and it gets filled out like this:

    Test_Discogs_35hz_Drum_n_Bass_Community_-_2014-08-12_14.00.59.png

  • GNU/Linux Admin

    Oh! *facepalm* RIGHT. I forgot the GitHub embed plugin uses templates.js because I was do used to doing it the derp way (creating HTML in javascript, heh).

    Here is where I pass in the issue data. Notice I am calling appModule.render, which is defined in Embed.init.

    Got a repo I can check out? Would be easier than going through the list of how a template can be done wrong (no offense @psychobunny πŸ˜† )


  • @julian Repo can be found heyarrr

  • GNU/Linux Admin

    Is it up to date, and can I mess around with it? πŸ˜„

    Edit: I'm spending my morning uninstalling Apps from my phone because it's just unbearable now 😦 3 minutes to open the keyboard? *REALLY?


  • @julian Yes, and yes. πŸ‘

  • GNU/Linux Admin

    Selection_015.png

    ΰ² _ΰ² 


  • @julian πŸ˜† I was going a bit psycho changing things until something worked.

  • GNU/Linux Admin

    I think I know what went wrong... standby.

    Edit: K, go for it: https://github.com/a5mith/nodebb-plugin-discogs/pull/2

    Selection_016.png


  • @julian Sweet, thanks a lot Julian, only issue I've got left is the image(also in your screenshot), the api states that to get the image, you must authenticate yourelf.

    I have a consumer key & secret which I believe is all I need, just not sure where to put them. πŸ˜†

  • GNU/Linux Admin


Suggested Topics

| | | |