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