特定のキーワードをリツイートする(Ruby bot)


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

もふもふbotで実装していたけれど、あれにはちょっとバグがあったので改良。しかしなぜか日本語を検索できなくなったので、もふもふbotには実装していない。まちかねこ調査隊アカウントには実装済み。あと、Rubyで関数を定義する方法をやっと学んだので、色々な関数を定義しました。詳細は後日書くかも。

  1. #! /usr/bin/ruby
  2. # encoding: utf-8
  3.  
  4. require "time"
  5. require "rubygems"
  6. require 'twitter'
  7. require "/home/oka/Dropbox/Ruby/lib/Twitter/login"
  8.  
  9. def retweet(screen_name,keyword)
  10. login(screen_name)
  11. path = "/home/oka/Dropbox/Ruby/Twitter/#{screen_name}/"
  12.  
  13. search = Twitter::Search.new
  14.  
  15. tweetid = []
  16.  
  17. puts keyword
  18.  
  19. j = 1
  20. #search.containing(keyword).no_retweets.result_type("recent").per_page(100).each do |r|
  21. search.containing(keyword).result_type("recent").per_page(100).each do |r|
  22. puts "#{r.id}:#{r.from_user}: #{r.text}"
  23. tweetid[j] = r.id
  24. j += 1
  25. end
  26.  
  27. f1 = File::open("#{path}retweeted_maximum_#{keyword}.txt", "r") # http://goo.gl/k0ZNZ
  28. maximum = f1.gets.to_i
  29. f1.close
  30. f2 = File::open("#{path}retweeted_maximum_#{keyword}.txt", "w") # http://goo.gl/k0ZNZ
  31. f2.puts tweetid[1]
  32. f2.close
  33.  
  34. k = j-1
  35. while k>0
  36. if tweetid[k] > maximum
  37. Twitter.retweet(tweetid[k])
  38. else
  39. puts "No new tweets."
  40. end # end of if
  41. k += -1
  42. end #end of while
  43.  
  44. end # end of def
  45.  

これをrequireして、
retweet("s_machikaneko","#machikaneko")
のように使う。

この中で使われてる自前の関数login()の説明は、あとで。



名前:
コメント:

すべてのコメントを見る