1 | var http = require('http')
|
2 | var url = require('url')
|
3 |
|
4 | var simple = {
|
5 | base: 'http://vimeo.com/api/v2',
|
6 | methods: {
|
7 | video: '',
|
8 | activity: '',
|
9 | group: '',
|
10 | channel: '',
|
11 | album: ''
|
12 | },
|
13 | create: function(method) {
|
14 | return function(end, cb) {
|
15 | var getUrl = simple.url(method, end)
|
16 | simple.get(getUrl, cb)
|
17 | }
|
18 | },
|
19 | url: function(method, end) {
|
20 | end = String(end)
|
21 | var parts = end.split('.')[0].split('/')
|
22 | parts.unshift(simple.base, method)
|
23 | return [ parts.join('/'), 'json'].join('.')
|
24 | },
|
25 | get: function(getUrl, cb) {
|
26 | var data = []
|
27 | http.get(url.parse(getUrl), function(res) {
|
28 | res.on('data', function(chunk) {
|
29 | data.push(chunk)
|
30 | }).on('end', function() {
|
31 | data = data.join('')
|
32 | simple.parse(data, cb)
|
33 | })
|
34 | })
|
35 | },
|
36 | parse: function(data, cb) {
|
37 | var json = null
|
38 | var err = null
|
39 | try { json = JSON.parse(data) }
|
40 | catch(e) { err = 'Not found' }
|
41 | cb(err, json, data)
|
42 | },
|
43 | exports: function() {
|
44 | var ex = {}
|
45 | for (var m in simple.methods) {
|
46 | ex[m] = simple.create(m)
|
47 | }
|
48 | return ex
|
49 | }
|
50 | }
|
51 |
|
52 | module.exports = simple.exports() |
\ | No newline at end of file |