Mercurial > pumpbridge
comparison src/twitter.coffee @ 27:f27ddfa42e94
try/catch; From/To/-ESN changes; google probs
author | Mathias Gebbe <mgebbe@intevation.de> |
---|---|
date | Sat, 28 Jun 2014 13:08:40 +0200 |
parents | 08d9679da0f7 |
children | faeb3b96bdeb |
comparison
equal
deleted
inserted
replaced
26:cdbc77880565 | 27:f27ddfa42e94 |
---|---|
89 callback e, null | 89 callback e, null |
90 return | 90 return |
91 | 91 |
92 return | 92 return |
93 | 93 |
94 syncFromESN: (user) -> | 94 syncToESN: (user) -> |
95 me = user.user_pumpio | 95 me = user.user_pumpio |
96 id = user.user_ESN.substr(0,user.user_ESN.indexOf('@')) | 96 id = user.user_ESN.substr(0,user.user_ESN.indexOf('@')) |
97 token = user.oauth_token | 97 token = user.oauth_token |
98 secret = user.extra_token | 98 secret = user.extra_token |
99 twit = new twitter( | 99 twit = new twitter( |
157 ],(err, result) -> | 157 ],(err, result) -> |
158 console.log "done ToESN twitter user" + me | 158 console.log "done ToESN twitter user" + me |
159 return | 159 return |
160 return | 160 return |
161 | 161 |
162 syncToESN: (user) -> | 162 syncFromESN: (user) -> |
163 me = user.user_pumpio | 163 me = user.user_pumpio |
164 id = user.user_ESN.substr(0,user.user_ESN.indexOf('@')) | 164 id = user.user_ESN.substr(0,user.user_ESN.indexOf('@')) |
165 token = user.oauth_token | 165 token = user.oauth_token |
166 secret = user.extra_token | 166 secret = user.extra_token |
167 twit = new twitter( | 167 twit = new twitter( |
175 ###################################### | 175 ###################################### |
176 twit.verifyCredentials((data) -> | 176 twit.verifyCredentials((data) -> |
177 #console.log util.inspect(data) | 177 #console.log util.inspect(data) |
178 console.log "get twitter HomeTimeline " + me | 178 console.log "get twitter HomeTimeline " + me |
179 return | 179 return |
180 ).getHomeTimeline {include_rts: true, count: 20 }, (data) -> | 180 ).getHomeTimeline {include_rts: true, count: 10 }, (data) -> |
181 console.log "got twitter HomeTimeline " + me | |
182 return if not data? or data.length is 0 | |
183 console.log "data isnt empty for" + me | |
181 ti = (new Date().getTime() - interval) | 184 ti = (new Date().getTime() - interval) |
182 return if not data? or data.length is 0 | 185 async.eachLimit data, 5, ((tweet, cb) -> |
183 async.eachLimit data, 10, ((tweet, cb) -> | |
184 async.waterfall [ | 186 async.waterfall [ |
185 (callback) -> | 187 (callback) -> |
186 FromESN.search {uid: tweet.id + "@twitter_to_" + me}, callback | 188 FromESN.search {uid: tweet.id + "@twitter_to_" + me}, callback |
187 (result, callback) -> | 189 (result, callback) -> |
188 return if result.length isnt 0 or tweet.user.id_str is id | 190 return if result.length isnt 0 or tweet.user.id_str is id |
191 console.log "new tweet found" | |
189 twitterdate = new Date(Date.parse(tweet.created_at.replace(/( +)/, " UTC$1"))) | 192 twitterdate = new Date(Date.parse(tweet.created_at.replace(/( +)/, " UTC$1"))) |
190 ts = Date.parse(twitterdate) | 193 ts = Date.parse(twitterdate) |
191 if (ts >= ti) | 194 if (ts >= ti) |
192 Sync.postParser tweet, null, 'twitter', callback | 195 Sync.postParser tweet, null, 'twitter', callback |
193 else | 196 else |
194 return | 197 return |
195 (parsed, callback) -> | 198 (parsed, callback) -> |
199 console.log "try to post new tweet" | |
196 Pump.postUser bridgeid, me, parsed, callback | 200 Pump.postUser bridgeid, me, parsed, callback |
197 (pumppost, callback) -> | 201 (pumppost, callback) -> |
198 pumppost = JSON.parse(pumppost) | 202 try |
203 pumppost = JSON.parse(pumppost) | |
204 catch err | |
205 console.log "parse err " + err | |
206 return | |
199 FromESN.create | 207 FromESN.create |
200 postid: tweet.id + "@twitter" | 208 postid: tweet.id + "@twitter" |
201 sourceUser: tweet.user.id | 209 sourceUser: tweet.user.id |
202 sourcePost: 'https://twitter.com/'+tweet.user.name+"/status/" + tweet.id | 210 sourcePost: 'https://twitter.com/'+tweet.user.name+"/status/" + tweet.id |
203 pumpPost: pumppost.object.id | 211 pumpPost: pumppost.object.id |
204 recipientUser: me | 212 recipientUser: me |
205 created: Date.now() | 213 created: Date.now() |
206 , callback | 214 , callback |
207 ], (err, result) -> | 215 ], (err, result) -> |
216 console.log "post a tweet to user" + me | |
208 cb() | 217 cb() |
209 return | |
210 ), (err) -> | 218 ), (err) -> |
211 if (err) | 219 if (err) |
212 console.log "Error: " + err | 220 console.log "Error: " + err |
213 else | 221 else |
214 console.log "done ToESN twitter user" + me | 222 console.log "done FromESN twitter user" + me |
215 return | |
216 return | 223 return |
217 | 224 |
218 getOAuth: (site) -> | 225 getOAuth: (site) -> |
219 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 | 226 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 |
220 "User-Agent": site.userAgent() | 227 "User-Agent": site.userAgent() |