Rubyで遊んでいて、ふとこういうの欲しいなと思ったので作ってみました。
TwitterIrcGatewayのようなTwitterをIRCでやり取りすのではなく、最低限の簡単な機能で色々なユーザのツイートや気になる検索文字列を含むツイートを、チャンネルにjoinしているみんなで眺めてガヤガヤするといったような使い方を目的にしており、シンプルで簡単にみんなで楽しめる事を第一にしています。
これでIRCのチャンネルに自分しかいなくてもこれで寂しくないですよ!年末もクリスマスもこれできっと楽しく過ごせます。
指定したユーザーリストから最新ツイートをランダムでIRCに書き込む
githubに上げていますが、ソースは短いのでそのまま貼り付けます。
# encoding: utf-8
require 'carrier-pigeon'
require 'twitter'
require 'kconv'
Twitter.configure do ¦config¦
config.consumer_key = ''
config.consumer_secret = ''
config.oauth_token = ''
config.oauth_token_secret = ''
end
server = 'irc.media.kyoto-u.ac.jp:6667'
channel = '#channel'
interest_users = [
"twitter_user1",
"twitter_user2",
"twitter_user3",
]
user = interest_users[rand(interest_users.length)]
message = Twitter.user_timeline(user).first.text.tojis.force_encoding("US-ASCII").sub("¥n", "")
color = "¥x0312"
# color code of message
# ¥x03 + color number
#
# 0 white
# 1 black
# 2 blue (navy)
# 3 green
# 4 red
# 5 brown (maroon)
# 6 purple
# 7 orange (olive)
# 8 yellow
# 9 light green (lime)
# 10 teal (a green/blue cyan)
# 11 light cyan (cyan) (aqua)
# 12 light blue (royal)
# 13 pink (light purple) (fuchsia)
# 14 grey
# 15 light grey (silver)
CarrierPigeon.send(
:uri => "irc://" + user + "tter@" + server + '/' + channel,
:message => color + message,
:ssl => false,
:join => false
)
まずは例のごとく、TwitterのTOKENやKEYの取得・設定とIRCサーバのホストとチャンネル名を指定しましょう。
config.consumer_key = ''
config.consumer_secret = ''
config.oauth_token = ''
config.oauth_token_secret = ''
end
server = 'irc.media.kyoto-u.ac.jp:6667'
channel = '#channel'
次に、interest_usersにIRCに出力したいtwitterのユーザ名を複数アカウント渡しとくと、その中からランダムに最新ツイートをIRCの任意のチャンネルに書き込みます。
"twitter_user1",
"twitter_user2",
"twitter_user3",
]
個人的に興味のある人や、自分の会社関係のアカウントのツイートをIRCからシームレスに確認したい場合に使うと良いと思います。
また、colorにIRCのカラーコードを指定する事で任意の色にする事もできます。
IRCのチャンネルのオプションで-nをしておくと、チャンネルにいちいちjoinしなくてもツイートが出力されると思います。
IRCのユーザ名はツイートのユーザ名+tterで書き込まれます。
個人的にハマった所は、IRCの文字コードであるISO-2202-JPに変換するのに、単純にkconvの.tojisだったらだめで、.tojis.force_encoding(“US-ASCII”)としなければならなかったところです。
後は、.subで改行文字を適当に取り除いてあげましょう。
で、これをcronなどの定期ジョブに登録しておくと、以下のようにIRCチャンネルに気になる人のツイートが出力されます。
指定した文字列にマッチしたツイートをIRCに書き込む
ソースは以下です。上記のソースとほとんど同じですが、このツールは不特定多数のツイートの中から、検索文字列(クリスマス、大晦日、カップル等)にマッチした最新のツイートをランダムで表示します。
# encoding: utf-8
require 'carrier-pigeon'
require 'twitter'
require 'kconv'
Twitter.configure do ¦config¦
config.consumer_key = ''
config.consumer_secret = ''
config.oauth_token = ''
config.oauth_token_secret = ''
end
server = 'irc.media.kyoto-u.ac.jp:6667'
channel = '#channel'
search_words = [
"クリスマス",
"大晦日",
]
word = search_words[rand(search_words.length)]
r = Twitter.search(word).results.first
message = r.text.tojis.force_encoding("US-ASCII").sub("¥n", "")
user = r.user.screen_name + "tter"
color = "¥x0312"
# color code of message
# ¥x03 + color number
#
# 0 white
# 1 black
# 2 blue (navy)
# 3 green
# 4 red
# 5 brown (maroon)
# 6 purple
# 7 orange (olive)
# 8 yellow
# 9 light green (lime)
# 10 teal (a green/blue cyan)
# 11 light cyan (cyan) (aqua)
# 12 light blue (royal)
# 13 pink (light purple) (fuchsia)
# 14 grey
# 15 light grey (silver)
CarrierPigeon.send(
:uri => "irc://" + user + "@" + server + "/" + channel,
:message => color + message,
:ssl => false,
:join => false
)
search_wordsに適当に検索した文字列を追加すると、その中からランダムに選択された文字列にヒットした最新の日本語ツイートをIRCに書き込みます。
"クリスマス",
"大晦日",
]
自分が気になっていたり、注目している検索文字列をリストにしておくと良いと思います。
単純なツールですが、身内のツイートや気になる文字列の不特定多数のツイート等をみていると結構面白くて盛り上がるので是非試してみてください。carrier-pigeonとtwitterライブラリがとても簡単で使い易いです。
僕の場合は、「うんこなう」ってツイートがランダムのはずなのに沢山IRCに出力されていてシュールでした。
0 Comments.