Mercurial > pumpbridge
comparison src/twitter.coffee @ 5:af9f5b94c019
receive tweets
author | Mathias Gebbe <mgebbe@intevation.de> |
---|---|
date | Fri, 06 Jun 2014 14:42:28 +0200 |
parents | f352c74a6a5b |
children | 2123f355ab68 |
comparison
equal
deleted
inserted
replaced
4:f352c74a6a5b | 5:af9f5b94c019 |
---|---|
23 PumpIOClientApp = require("pump.io-client-app") | 23 PumpIOClientApp = require("pump.io-client-app") |
24 DatabankObject = require("databank").DatabankObject | 24 DatabankObject = require("databank").DatabankObject |
25 RequestToken = PumpIOClientApp.RequestToken | 25 RequestToken = PumpIOClientApp.RequestToken |
26 Usermap = require("./usermap") | 26 Usermap = require("./usermap") |
27 Pump = require("./pumpio") | 27 Pump = require("./pumpio") |
28 FromESN = require("./fromESN") | |
28 ToESN = require("./toESN") | 29 ToESN = require("./toESN") |
29 | 30 Sync = require("./sync") |
30 | 31 |
31 module.exports = (config) -> | 32 module.exports = (config) -> |
33 bridgeid = config.bridgeid | |
32 client_id = config.twclient_id | 34 client_id = config.twclient_id |
33 client_secret = config.twclient_secret | 35 client_secret = config.twclient_secret |
34 request_token_endpoint = "https://api.twitter.com/oauth/request_token" | 36 request_token_endpoint = "https://api.twitter.com/oauth/request_token" |
35 access_token_endpoint = "https://api.twitter.com/oauth/access_token" | 37 access_token_endpoint = "https://api.twitter.com/oauth/access_token" |
36 authorization_endpoint = "https://api.twitter.com/oauth/authorize" | 38 authorization_endpoint = "https://api.twitter.com/oauth/authorize" |
84 | 86 |
85 return | 87 return |
86 | 88 |
87 sync: (user) -> | 89 sync: (user) -> |
88 me = user.user_pumpio | 90 me = user.user_pumpio |
91 id = user.user_ESN.substr(0,user.user_ESN.indexOf('@')) | |
89 token = user.oauth_token | 92 token = user.oauth_token |
90 secret = user.extra_token | 93 secret = user.extra_token |
91 util = require("util") | 94 util = require("util") |
92 twitter = require("twitter") | 95 twitter = require("twitter") |
93 twit = new twitter( | 96 twit = new twitter( |
137 callback null, 'done' | 140 callback null, 'done' |
138 ), (err) -> | 141 ), (err) -> |
139 callback null, 'done' | 142 callback null, 'done' |
140 ],(err, result) -> | 143 ],(err, result) -> |
141 | 144 |
145 ###################################### | |
146 # get tweets and post them to pump.io# | |
147 ###################################### | |
148 twit.verifyCredentials((data) -> | |
149 #console.log util.inspect(data) | |
150 return | |
151 ).getHomeTimeline {include_rts: false}, (data) -> | |
152 #console.log util.inspect(data) | |
153 _.each data, (tweet) -> | |
154 async.waterfall [ | |
155 (callback) -> | |
156 FromESN.search {uid: tweet.id + "@twitter_to_" + me, recipientUser: me}, callback | |
157 (result, callback) -> | |
158 return if result.length isnt 0 or tweet.user.id == id | |
159 Sync.postParser tweet, null, 'twitter', callback | |
160 (parsed, callback) -> | |
161 Pump.postUser bridgeid, me, parsed, callback | |
162 (pumppost, callback) -> | |
163 pumppost = JSON.parse(pumppost) | |
164 FromESN.create | |
165 postid: tweet.id + "@twitter" | |
166 sourceUser: tweet.user.id | |
167 sourcePost: 'https://twitter.com/'+tweet.user.name+"/status/" + tweet.id | |
168 pumpPost: pumppost.object.id | |
169 recipientUser: me | |
170 created: Date.now() | |
171 , callback | |
172 ], (err, result) -> | |
173 #console.log result | |
174 # end | |
175 return | |
142 return | 176 return |
143 | 177 |
178 return | |
179 | |
144 getOAuth: (site) -> | 180 getOAuth: (site) -> |
145 new OAuth(request_token_endpoint, access_token_endpoint, client_id, client_secret, "1.0", site.url("/authorized-for-twitter"), "HMAC-SHA1", null, # nonce size; use default | 181 new OAuth(request_token_endpoint, access_token_endpoint, client_id, client_secret, "1.0", site.url("/authorized-for-twitter"), "HMAC-SHA1", null, # nonce size; use default |
146 "User-Agent": site.userAgent() | 182 "User-Agent": site.userAgent() |
147 ) | 183 ) |
148 | 184 |