曜日をつぶやく
「今日って何曜日だっけ?」
とよくなるので、曜日をつぶやかせようと思った。
曜日をつぶやくソース
====================================================
接続は前回に同じ
====================================================
require "date"
wdays = ["日", "月", "火", "水", "木", "金", "土"]
day = Time.now
client.update(Kconv.toutf8("今日は#{wdays[day.wday]}曜日です"))
=====================================================
ここを参考にした
↓
http://www.namaraii.com/rubytips/?%C6%FC%C9%D5%A4%C8%BB%FE%B9%EF#l3
時刻中の曜日を日本語に変換する。
Time#wdayメソッドにより曜日を数値で取得。
wdayの値は0が日曜日で、6が土曜日に対応する。
自動フォロー返しと自動リムーブ
■自動フォロー返しと自動リムーブ
#========================================================
require 'rubygems'
require 'twitter_oauth'
require 'kconv'
#==========ここから接続の記述(*には自分の設定を入れる)===================
CONSUMER_KEY = '******'
CONSUMER_SECRET = '******'
ACCESS_TOKEN = '******'
ACCESS_TOKEN_SECRET = '******'
client = TwitterOAuth::Client.new(
:consumer_key => CONSUMER_KEY,
:consumer_secret => CONSUMER_SECRET,
:token => ACCESS_TOKEN,
:secret => ACCESS_TOKEN_SECRET
)
#==========ここまで接続の記述===================
#自動フォローする
#フォローされている人 - 自分がフォローしている人
(client.followers - client.friends).each do | t |
follower_id = t["id"]
name = t["screen_name"]
#puts "#{follower_id}:#{name}"
client.friend("#{follower_id}")
end
#リムーブする
#自分がフォローしている人- フォローされている人
(client.friends - client.followers ).each do | t |
follower_id = t["id"]
name = t["screen_name"]
#puts "#{follower_id}:#{name}"
client.unfriend("#{follower_id}")
end
#========================================================
改善点
・ツィート非公開の人はフォローできない。
・Twitterで1回のリクエストで取得できるのが100件。
100件以上フォロワーが増えている場合はすべてをフォローできない。
・タスクで約24時間周期で自動フォロー・リフォローする様に設定する必要がある。
#puts "#{follower_id}:#{name}"はテスト用の記載。
■RUBYでリストの比較ってどうやるの?
自動フォロー返しについて考えると・・・・
1.APIフォローしているユーザーのリストを読み込む。
2.API自分のフォローワーのリストを読み込む。
3.1と2を比較してフォローしていないIDのユーザーをフォローする
自動フォロー返しを文章にすると3行だけども・・・・・
配列を2つ作って、該当するidがあるかどうかを
forとかwhileで、配列[i]・[j]をぐるぐる回して比較するのかと思い、
Array#size、Array#lengthだのRubyの配列数をとるのを調べていたらなんと・・・・・
「・Rubyは配列同士の引き算ができるので、引き算で比較する。」
http://www.nikkei.com/tech/business/article/g=96958A9C93819499E0E5E2E3888DE0E5E2E7E0E2E3E2E2E2E2E2E2E2;df=3;p=9694E1E2E2E6E0E2E3E2E2E5E7E6
Rubyどうなってんのwwww
楽チンすぎだろww
■フォローをはずす「unfriend」
フォローする場合はの例が本に記載してあったが、
フォロー解除については記載がなかったので、下記を参照。
http://d.hatena.ne.jp/ten-you/20100818/1282148976
フォローする。>> [Twitterクライアントクラス].friend([ユーザID又はスクリーンネーム])
フォロー解除する。>> [Twitterクライアントクラス].unfriend([ユーザID又はスクリーンネーム])
friendの反対はunfriendって事らしい!
friendships/destroyを調べていても、
unfriendについて書いてある所が全然なくて結構ロスった。
TwitterBot作り、少しでも動くのを見ると楽しいな~と実感できて初心者にはいいな。
でもRuby基礎を勉強しないと色々と時間がかかってダメかも。
Ruby関連のサイトを見てるが、やっぱり本を買って勉強した方が頭に入りそうかな。
コマンドラインのウインドウ
タスクスケジューラーでバッチを実行する度に、
コマンドプロンプトが表示されるので表示しないようにしたい。
動かすバッチファイルのショートカットを作成。
ショートカットのファイル名を修正する。
「hello.bat へのショートカット」→「Shello.bat」とした。
(日本語が入っていると面倒らしい。)
右クリックでプロパティ>ショートカットタブで「実行時の大きさ:最小化」を選択。
コントロールパネルのタスクで、
実行するファイル名の参照で「Shello.bat」を選択する
(表示されるファイル名をコピーしておく)開くをクリック
実行するファイル名に、自動でリンク先のファイル名が選択されるので、
ファイル名をショートカット名に修正する。
"C:\Documents and Settings\web2\My Documents\bot\hello.bat"
↓
"C:\Documents and Settings\web2\My Documents\bot\Shello.bat.lnk"
ショートカットを実行させる指定にしたので最小化される。
この方法だとタスクバーにはコマンドプロンプトが表示されてしまう。
参考
↓
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=541&forum=6&3