自動フォロー返し(Ruby bot)

「自動フォロー返し(Ruby bot)」の編集履歴(バックアップ)一覧はこちら

自動フォロー返し(Ruby bot)」(2011/06/26 (日) 09:36:46) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

ちゃんと憶えてるうちに記録しとかないと。 http://rubydoc.info/gems/twitter/1.3.0/Twitter/Client/FriendsAndFollowers:follower_ids や http://rubydoc.info/gems/twitter/1.3.0/Twitter/Client/User:followers があまり詳しくない(Returnされてくる値の扱い方を教えてくれない、[[follower_ids.idsなどという使い方もある>http://twitter.com/#!/ka_/status/65344679436230656]]のに何も書かれていない)ので http://d.hatena.ne.jp/tondol/20100412/1271016565 にほとんど頼り切った。上のリンク先のものにこれに一行だけ加えたものが以下。 #highlight(linenumber,ruby){ #! /usr/bin/ruby # encoding: utf-8 require "time" require "rubygems" require 'twitter' def fetch(instance, method, array_name, query) next_cursor = -1 begin query['cursor'] = next_cursor instance.__send__(method, query).each{|a| value = a.pop key = a.pop if key == array_name then value.each{|v| yield(v) } elsif key == "next_cursor" then next_cursor = value.to_i end } end while next_cursor > 0 end # ログイン Twitter.configure do |config| config.consumer_key = '????????????????????????????' config.consumer_secret = 'XXXXXXXXXXXXXXXXXXXxx' config.oauth_token = 'PPPPPPPPPPPPPPPPPPP' config.oauth_token_secret = 'TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' end # 自身のfollowersを全件取得して表示 puts "my followers" fetch(Twitter, :followers, "users", {}) {|v| puts "id: #{v.id}, screen_name: #{v.screen_name}" Twitter.friendship_create(v.id) #←この部分を追加した } } http://d.hatena.ne.jp/tondol/20100412/1271016565 のように、既にフォローしているフォロワーに対してフォローする動作を除いていないので、無駄が多い。&del(){でも、まあ問題はないと思う。} 問題発生。フォローしてる人に対してフォロー通知が何度も行ってしまう。これはTwitter自体のバグと言ってもいいくらいだけど,あまり早く対応されない気がするので,どうにか直したい。既にフォローした人のIDを記録しておいて,それをフォローする対象から除外するのがオーソドックスかな。だれかどうしたら良いか教えてください。 あと、上でReturnされる値の扱い方がわからないと書いたけど、これがわからないとこの先tweetを扱ったりするのに困るんだけどね・・・ さらに追記。フォロワーの取得にはログインは不要なので、 http://netzakki.seesaa.net/article/128216734.html とかでもできそうだった。 written by OK
改訂版をつくった。ー>[[自動フォロー返し(Ruby bot)2]] ---- ちゃんと憶えてるうちに記録しとかないと。 http://rubydoc.info/gems/twitter/1.3.0/Twitter/Client/FriendsAndFollowers:follower_ids や http://rubydoc.info/gems/twitter/1.3.0/Twitter/Client/User:followers があまり詳しくない(Returnされてくる値の扱い方を教えてくれない、[[follower_ids.idsなどという使い方もある>http://twitter.com/#!/ka_/status/65344679436230656]]のに何も書かれていない)ので http://d.hatena.ne.jp/tondol/20100412/1271016565 にほとんど頼り切った。上のリンク先のものにこれに一行だけ加えたものが以下。 #highlight(linenumber,ruby){ #! /usr/bin/ruby # encoding: utf-8 require "time" require "rubygems" require 'twitter' def fetch(instance, method, array_name, query) next_cursor = -1 begin query['cursor'] = next_cursor instance.__send__(method, query).each{|a| value = a.pop key = a.pop if key == array_name then value.each{|v| yield(v) } elsif key == "next_cursor" then next_cursor = value.to_i end } end while next_cursor > 0 end # ログイン Twitter.configure do |config| config.consumer_key = '????????????????????????????' config.consumer_secret = 'XXXXXXXXXXXXXXXXXXXxx' config.oauth_token = 'PPPPPPPPPPPPPPPPPPP' config.oauth_token_secret = 'TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' end # 自身のfollowersを全件取得して表示 puts "my followers" fetch(Twitter, :followers, "users", {}) {|v| puts "id: #{v.id}, screen_name: #{v.screen_name}" Twitter.friendship_create(v.id) #←この部分を追加した } } http://d.hatena.ne.jp/tondol/20100412/1271016565 のように、既にフォローしているフォロワーに対してフォローする動作を除いていないので、無駄が多い。&del(){でも、まあ問題はないと思う。} 問題発生。フォローしてる人に対してフォロー通知が何度も行ってしまう。これはTwitter自体のバグと言ってもいいくらいだけど,あまり早く対応されない気がするので,どうにか直したい。既にフォローした人のIDを記録しておいて,それをフォローする対象から除外するのがオーソドックスかな。だれかどうしたら良いか教えてください。 あと、上でReturnされる値の扱い方がわからないと書いたけど、これがわからないとこの先tweetを扱ったりするのに困るんだけどね・・・ さらに追記。フォロワーの取得にはログインは不要なので、 http://netzakki.seesaa.net/article/128216734.html とかでもできそうだった。 written by OK

表示オプション

横に並べて表示:
変化行の前後のみ表示: