- アクション数:51(-19)
- カレンダー数:3(-1)
- プロジェクト数:19(-1)
- Someday/Maybe数:48(-1)
ちょっと倦怠期。リストを見ずに行動することが多い。まぁそれほど問題はないんだけど…。
ちょっと倦怠期。リストを見ずに行動することが多い。まぁそれほど問題はないんだけど…。
たろっとさんの人気が増すにつれて引けないという話が大きくなってきたので、副アカウントを作ってみました。名前はたろっとさんさんさんさん。引く箇所は変えてないんですが、規制対策のためいろいろやってます。
まず、たろっとさんをフォローしている人だけに応答を返すようにしました。最初は誰でも構わず応答を返すようにしてたんですが、すぐにspam扱いされてsuspendにorz。これでアカウントが2つ死にました(´・ω・`)。なのでフォローしている人だけ応答するようにしてます。フォローしてなくても送ってしまうbotは珍しくないと思うのですが、知らない人に送る頻度が多かったのと、URLをくっつけてしまっているのがまずいのかなと。なので知っている人に変えよーということで。
ソースコード1がfollowersを取得してファイルに保存している箇所、ソースコード2がtarot3333のロジックを組み込んだソースコード。
ソースコードその1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/usr/local/bin/ruby require 'net/http' require 'rss' require 'rexml/document' include REXML req = Net::HTTP::Get.new("/statuses/followers.xml?screen_name=tarot3333") req.basic_auth "tarot3333", "password" followers_from_xml = [] Net::HTTP.start("twitter.com", 80) {|http| res = http.request(req) doc = Document.new(res.body) doc.elements.each("*/user") {|user| followers_from_xml.push(user.elements["screen_name"].text) } } followers_from_db = open("tarot3333.db").readlines.each {|line| line.chop! } followers_towrite = followers_from_xml | followers_from_db followers_towrite.uniq! open("tarot3333.db", "w") {|f| f.puts followers_towrite.join("\n") } |
ソースコードその2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #!/usr/local/bin/ruby require 'net/http' require 'rss' require 'rexml/document' require 'time' include REXML def post(name, status) req = Net::HTTP::Post.new("/statuses/update.json") req.body = status Net::HTTP.start("twitter.com", 80) {|http| req.basic_auth "tarot3", "password" res = http.request(req) $log.puts(name + "," + res.inspect + "," + Time::now.to_i.to_s) if res.code == "200" then return end tarot3333 = open("tarot3333.db").readlines.each {|line| line.chop! } if tarot3333.include?(name) then req.basic_auth "tarot3333", "password" res = http.request(req) $log.puts(name + "," + res.inspect + "," + Time::now.to_i.to_s + ",tarot3333") end } end req = Net::HTTP::Get.new("/statuses/mentions.xml") req.basic_auth "tarot3", "password" names = [] Net::HTTP.start("twitter.com", 80) {|http| res = http.request(req) doc = Document.new(res.body) doc.elements.each("*/status") {|item| name = item.elements["user/screen_name"].text text = item.elements["text"].text time = Time::parse(item.elements["created_at"].text) now = Time::now start_time = Time::local(now.year, now.month, now.day, now.hour, now.min, 0, 0) - 120 end_time = start_time + 119 if time >= start_time && time <= end_time && !text.include?("RT") then names.push(name) end } } tarot = open("tarot.csv") $log = open("log.txt", "a") lines = tarot.readlines names.each {|name| index = rand(lines.size) status = 'status=@' + name + "%20%E3%81%AE%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AF" + URI.encode(lines[index]) post(name, status) } |
毎週日曜日はレビューの日に当ててる。
カレンダーに入れたアクションはあまり機能していない。OmniFocusを見る習慣がまだ付いていないのが原因。もうちょっと様子見る。
アニメ一本丸ごとnext action→someday/maybeに移したのでだいぶへった。とりあえずハガレン一期見てからだなと。