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