Module: RedditBot::Twitter
- Defined in:
- lib/reddit_bot.rb
Class Method Summary collapse
Class Method Details
.init_twitter(twitter) ⇒ Object
267 268 269 270 271 272 273 274 |
# File 'lib/reddit_bot.rb', line 267 def self.init_twitter twitter const_set :TWITTER_ACCOUNT, twitter const_set :TWITTER_ACCESS_TOKEN, JSON.load( NetHTTPUtils.request_data "https://api.twitter.com/oauth2/token", :post, auth: File.read("twitter.token").split, form: {grant_type: :client_credentials} )["access_token"] end |
.tweet2titleNtext(tweet) ⇒ Object
277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 |
# File 'lib/reddit_bot.rb', line 277 def self.tweet2titleNtext tweet pp tweet if ENV["TEST"] text = "" contains_media = false up = ->s{ s.split.map{ |w| "^#{w}" }.join " " } if tweet["extended_entities"] && !tweet["extended_entities"]["media"].empty? contains_media = true tweet["extended_entities"]["media"].each_with_index do |media, i| text.concat "* [Image #{i + 1}](#{media["media_url_https"]})\n\n" end end if !tweet["entities"]["urls"].empty? contains_media = true tweet["entities"]["urls"].each_with_index do |url, i| text.concat "* [Link #{i + 1}](#{url["expanded_url"]})\n\n" end end text.concat "^- #{ up[tweet["user"]["name"]] } [^\\(@#{TWITTER_ACCOUNT}\\)](https://twitter.com/#{TWITTER_ACCOUNT}) ^| [#{ up[Date.parse(tweet["created_at"]).strftime "%B %-d, %Y"] }](https://twitter.com/#{TWITTER_ACCOUNT}/status/#{tweet["id"]})" [CGI::unescapeHTML(tweet["full_text"]).sub(/( https:\/\/t\.co\/[0-9a-zA-Z]{10})*\z/, ""), text, contains_media] end |
.user_timeline ⇒ Object
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 |
# File 'lib/reddit_bot.rb', line 302 def self.user_timeline timeout = 1 JSON.load begin NetHTTPUtils.request_data( "https://api.twitter.com/1.1/statuses/user_timeline.json", form: { screen_name: TWITTER_ACCOUNT, count: 200, tweet_mode: "extended" }, header: { Authorization: "Bearer #{TWITTER_ACCESS_TOKEN}" } ) rescue NetHTTPUtils::Error => e fail unless [500, 503].include? e.code sleep timeout timeout *= 2 retry end end |