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()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)