twbot.rb Library Reference

[English]

Back to twbot.rb top

はじめに

botを動かしてみるには、以下の手順を取ります。

定義済み変数

@config (インスタンス変数)

設定ファイル(後述するTwBot#newの第2引数)の内容を示すハッシュです。@configの内容を書き換えた場合、プログラム終了時に設定ファイルの内容が@configの内容に置き換えられます(正常にプログラムが終了した場合に限る)。

@configには、以下の予約済みのキーが存在します。これらの値は、特に必要のない限り直接変更しないことをお勧めします。

この他、必要であれば@configに新たにキーを追加することで、それを一緒に設定ファイルに記録することが出来ます(例:rsspost-sample.rbの@config["already_gotten"])。ただしその際、キー名にスラッシュ(「/」)を含むものは使わないことをお勧めします(将来的に定義済みキーが追加される可能性があるため)。

@list (インスタンス変数)

"data/***"の形の文字列です(「***」は後述するTwBot#newの第4引数の値)。@config[@list]とすることで、現時点の発言内容のリストの内容を取得・変更することが出来ます。

@logmsg (インスタンス変数)

この変数に、ログファイルに書き込みたいメッセージを代入します。なお、実行中に例外が発生した場合は無視されます(その例外の内容がメッセージとなります)。

インスタンスメソッド

TwBot#load_data() (privateメソッド)

そのbotが発言する内容を構築するためのメソッドです。発言する内容を文字列(あるいは配列)の配列として返さなければなりません。新たに追加する発言がない場合は、空の配列を返して下さい。配列の要素を文字列の代わりに配列にすると(これを以下「内側の配列」と呼びます)、内側の配列の先頭の要素を投稿する本文、次の要素を「in_reply_to_status_id」の値(返信先の発言ID)とみなします。
load_dataを直接呼び出す必要はありません。TwBot#new(TwBot#initialize)の内部で呼び出されます。
なおTwBot#load_data自体は、呼び出すと例外「NotImplementedError」が発生します。継承先のクラスで再定義して下さい。

TwBot#new(mode, config_file, log_file = nil, list_name = '', keep_config = false, testmode = false)

botの発言取得・発言投稿の実際の処理を行うメソッドです。

TwBot#get_followers()

現在のbotのfollowersの情報を格納したハッシュを返します。TwBot.retrieve_followers(@config['login/'], @config['password/'])と同じです。

TwBot#get_friends()

現在のbotのfriendをの情報格納したハッシュを返します。TwBot.retrieve_friends(@config['login/'], @config['password/'])と同じです。

TwBot#follow(user)

現在のbotにuserをフォローさせます。TwBot.make_following(@config['login/'], @config['password/'], user)と同じです。

TwBot#unfollow(user)

現在のbotにuserへのフォローを外させます。TwBot.make_unfollowing(@config['login/'], @config['password/'], user)と同じです。

TwBot#following_status(target)

現在のbotがtargetをフォローしているか、およびtargetにフォローされているかを調べます。TwBot.check_following(@config['login/'], @config['password/'], target)と同じです。

クラスメソッド

TwBot.remove_reply(str){ |username| ... }

"str"に含まれるすべてのreply("@USERNAME"の形の文字列)を "@ USERNAME" の形(スペースを挟む)に変換します。これは過剰にreplyを行うことを避けるのに用います。
このメソッドにはブロックを与えることもでき、その場合はブロックに「@」を除いたユーザ名が与えられ、それが真を返した場合のみ変換を行います。
Ver0.15より、全角の「@」についても半角の「@」と同様に処理を行います。(Twitterの仕様変更への対応)

# 例
puts TwBot.remove_reply("@user1 @user2 Hello!")
# この場合は "@ user1 @ user2 Hello!" が出力されます。

puts TwBot.remove_reply("@user1 @user2 Hello!"){ |u| u =~ /1/ }
# この場合は "@ user1 @user2 Hello!" が出力されます。"user1"がブロック内の
# 条件を満たしているのに対し、"user2"は満たしてないからです。

TwBot.retrieve_followers(login, pass, retry_count = 3)

ユーザloginのfollowerをすべて返します。passには、ユーザloginのパスワードを指定します。また取得中に、API呼び出しにretry_count回失敗した場合は、その時点で終了します。

返り値は以下の形のハッシュです。

{:result => ["user1", "user2", ...],
 :error => [exception1, exception2, ...]}

ここで、:resultにはユーザ名の配列が、:errorには取得中に発生した例外の配列が格納されます。ただしAPI呼び出しにretry_count回失敗した場合は、:resultにはnilがセットされます。

TwBot.retrieve_friends(login, pass, retry_count = 3)

ユーザloginのfriendをすべて返します。引数および返り値の形式は上記TwBot.retrieve_followersと同じです。

TwBot.make_following(login, pass, user)

ユーザloginが、ユーザuserをフォローしている状態にします。passには、ユーザloginのパスワードを指定します。

フォローするのに失敗した場合(loginuserをすでにフォローしている場合を含む)は、例外を返します。例外の種類は以下の通りです。

TwBot.make_unfollowing(login, pass, user)

ユーザloginが、ユーザuserをフォローしていない状態にします。passには、ユーザloginのパスワードを指定します。

フォローを外すのに失敗した場合(loginuserをフォローしていない場合を含む)は、例外を返します。発生する例外はTwBot.make_followingの場合と同様です。

TwBot.check_following(login, pass, target)

ユーザloginが、ユーザtargetをフォローしているか、およびその逆を返します。passには、ユーザloginのパスワードを指定します。

返り値は{:following => boolean1, :followed => boolean2}の形のハッシュです(boolean1, boolean2はいずれもtrueまたはfalse)。boolean1logintargetをフォローしているか、boolean2targetloginをフォローしているかです。


Back to twbot.rb top

Maraigue's roomに戻る


(C)2008- H.Hiro (Maraigue / Sinryow)

Creative Commons Attribution-Noncommercial-NoDerivs (表示-非営利-改変禁止) 2.1 Japan HHiro.netのコンテンツは、別途記載があるものを除き、Creative Commons 表示-非営利-改変禁止 2.1 日本の条件のもとでご利用頂けます。