Guest User

Untitled

a guest
May 21st, 2018
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. # twitter-autofollow.rb
  2. # 2010-04-01 Antoine Girard <thetoine@gmail.com>
  3.  
  4. # This script will search all you follower and add them as a friend
  5. # Also post any privately received message to your public timeline.
  6.  
  7. require 'rubygems'
  8. require 'twitter'
  9.  
  10. class AutoFollow
  11.  
  12. USER = ''
  13. PASSWORD = ''
  14. INTERVAL = 60 # Delay between follows in seconds
  15.  
  16. attr_accessor :client
  17.  
  18. def initialize
  19. httpauth = Twitter::HTTPAuth.new(USER, PASSWORD)
  20. self.client = Twitter::Base.new(httpauth)
  21.  
  22. # init the infinite loop
  23. start
  24. end
  25.  
  26. def start
  27. puts "Friending everyone."
  28. friends
  29.  
  30. puts "Checking for private messages and post new ones."
  31. post_messages
  32.  
  33. # sleep for an interval and call "start" method again
  34. puts "Sleeping for #{INTERVAL} seconds..."
  35. sleep(INTERVAL)
  36. start
  37. end
  38.  
  39. def friends
  40. # get friends following
  41. friends = self.client.friend_ids
  42. followers = self.client.follower_ids
  43.  
  44. followers.each do |user|
  45. begin
  46. self.client.friendship_create(user) if !friends.include?(user)
  47. rescue Twitter => msg
  48. puts "Twitter says: #{msg}"
  49. rescue Exception => msg
  50. puts "Error: #{msg}"
  51. end
  52. end
  53. end
  54.  
  55. def post_messages
  56. self.client.direct_messages.each do |message|
  57.  
  58. if !is_logged?(message)
  59. # log message to text file
  60. log(message)
  61.  
  62. # send message to twitter
  63. begin
  64. self.client.update("#{message.text} #jeudiconfession")
  65. rescue Twitter => msg
  66. puts "Twitter says: #{msg}"
  67. rescue Exception => msg
  68. puts "Error: #{msg}"
  69. end
  70. else
  71. puts "Error: message already logged and posted"
  72. end
  73.  
  74. # and destroy twitter message, we keep nothing
  75. puts "Deleting message #{message.id}"
  76. self.client.direct_message_destroy(message.id)
  77. end
  78. end
  79.  
  80. def log(message)
  81. puts "Logging message: #{message.id}"
  82. File.open('messages.txt', 'a+') do |f|
  83. # use "\n" for two lines of text
  84. f.puts "#{message.id} #{message.text}"
  85. end
  86. end
  87.  
  88. def is_logged?(message)
  89. ids = []
  90. File.open('messages.txt', 'r').each_line do |l|
  91. ids << l.split(' ')[0].to_i
  92. end
  93. false ? true : ids.include?(message.id.to_i)
  94. end
  95.  
  96. end
  97.  
  98. # start instance
  99. AutoFollow.new()
Add Comment
Please, Sign In to add comment