Mercurial > hgrepos > hgweb.cgi > xsotter
view RCS/xsotter.rb,v @ 1:f2e687a21e3f
test
author | KAMURA Sota <c109047@e.koeki-u.ac.jp> |
---|---|
date | Mon, 06 Feb 2012 17:55:47 +0900 |
parents | b79b888eceac |
children |
line wrap: on
line source
head 1.5; access; symbols; locks c109047:1.5; strict; comment @# @; 1.5 date 2011.07.11.07.58.42; author c109047; state Exp; branches; next 1.4; 1.4 date 2011.07.11.03.10.17; author c109047; state Exp; branches; next 1.3; 1.3 date 2011.07.08.14.32.40; author c109047; state Exp; branches; next 1.2; 1.2 date 2011.07.08.05.02.19; author c109047; state Exp; branches; next 1.1; 1.1 date 2011.07.08.04.33.41; author c109047; state Exp; branches; next ; desc @@ 1.5 log @Xsotterクラス実装 @ text @#! /usr/bin/env ruby require"rubygems" #gem `twitter`, `1.1.1` require"oauth" require"twitter" require"nkf" include Twitter $KCODE = "-e" class Xsotter def initialize (com) @@path = File.expand_path("~") + "/.xsotter_token" @@login = false oauth if File.exist?(@@path) == false IO.foreach(@@path) do |line| a=line.chomp.split(" ") @@ACCESS_TOKEN = a[0] @@ACCESS_SECRET = a[1] @@login = true end Twitter.configure do |config| config.consumer_key = 'SuucnlrR6yAOXz3AQaJG4Q' config.consumer_secret = 'wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw' config.oauth_token = @@ACCESS_TOKEN config.oauth_token_secret = @@ACCESS_SECRET end comand(com) end def comand(com) case com[0] when "--logout" File.delete(path) when "-f" f=Twitter.favorites.each do |fav| str = NKF.nkf("-e", fav.user.screen_name + ":" + fav.text) puts str puts end when "-R" if com[1]==nil puts "使用法: xsotter -R ID" else Twitter.retweet(id=com[1]) end when "-F" if com[1]==nil puts "使用法: xsotter -F ID" else Twitter.favorite_create(id=com[1]) end when "-T" str = "" com.delete_at(0) com.each do |i| str += i + " " end str = NKF.nkf("-w", str) Twitter.update(str) when "-t" Twitter.home_timeline.each do |line| str = line.text str = NKF.nkf("-e", line.user.screen_name + ": " + str ) puts str puts "ID=#{line.id}" puts end when "-r" Twitter.mentions.each do |line| str = line.text str = NKF.nkf("-e", line.user.screen_name + ": " + str ) puts str puts end else puts" -t :タイムラインを出力します。\n -T str :strをツイッターに投稿します。\n -r :自分宛てのリプライを出力します。\n -f 自分のお気に入りのツイートを出力します。\n -F ID :IDをお気に入りに追加します。\n -R ID ID:をリツイートします\n--logout :もう一度認証するまで使えなくなります。" end end def oauth consumer = OAuth::Consumer.new("SuucnlrR6yAOXz3AQaJG4Q", "wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw", :site => "http://twitter.com") request_token = consumer.get_request_token puts puts request_token.authorize_url #ここでURLがでて認証画面に puts puts "にアクセスし、Twitterにログインしてxsotterを認証し、PINを入手してください。" puts begin puts"PINを入力してください。" print"PIN=" oauth_verifier = STDIN.gets.chomp token = request_token.get_access_token(:oauth_verifier => oauth_verifier ) open(@@path,"w") do |txt| token = token.token + " " + token.secret txt.printf"%s",NKF.nkf("-e",token) end File.chmod(0400,@@path) puts "xsotterでログインできるようになりました。もういちど実行してください。" exit(0) rescue puts"PINを間違えて入力しているかも、もう一度チャレンジしてみて " exit(1) end end end begin xsotter = Xsotter.new(ARGV) rescue =>err puts err case err when /POST/ puts"同じ内容のツイートを連続で投稿することはできません。140文字を超えたツイートもできません。" end end @ 1.4 log @-R リツイートする -f お気に入りにいれる を追加 @ text @d4 1 a4 1 path = File.expand_path("~") + "/.xsotter_token" d15 2 a16 6 begin IO.foreach(path) do |line| a=line.chomp.split(" ") ACCESS_TOKEN = a[0] ACCESS_SECRET = a[1] end d18 11 a28 15 Twitter.configure do |config| config.consumer_key = 'SuucnlrR6yAOXz3AQaJG4Q' config.consumer_secret = 'wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw' config.oauth_token = ACCESS_TOKEN config.oauth_token_secret = ACCESS_SECRET end case ARGV[0] when "--logout" File.delete(path) when "-f" f=Twitter.favorites.each do |fav| str = NKF.nkf("-e", fav.user.screen_name + ":" + fav.text) puts str puts d30 22 a51 2 when "-R" if ARGV[1]==nil d53 9 a61 9 else Twitter.retweet(id=ARGV[1]) end when "-F" if ARGV[1]==nil puts "使用法: xsotter -F ID" else Twitter.favorite_create(id=ARGV[1]) end d63 22 a84 9 str = "" ARGV.delete_at(0) ARGV.each do |i| str += i + " " end str = NKF.nkf("-w", str) Twitter.update(str) when "-t" Twitter.home_timeline.each do |line| d86 2 a87 5 str = line.text str = NKF.nkf("-e", line.user.screen_name + ": " + str ) puts str puts "ID=#{line.id}" puts d89 2 a90 9 when "-r" Twitter.mentions.each do |line| str = line.text str = NKF.nkf("-e", line.user.screen_name + ": " + str ) puts str puts end else puts" -t :タイムラインを出力します。\n -T str :strをツイッターに投稿します。\n -r :自分宛てのリプライを出力します。\n -f 自分のお気に入りのツイートを出力します。\n -F ID :IDをお気に入りに追加します。\n -R ID ID:をリツイートします\n--logout :もう一度認証するまで使えなくなります。" d92 2 a93 7 rescue => err puts err case err when /POST/ puts"同じ内容のツイートを連続で投稿することはできません。140文字を超えたツイートもできません。" else a94 1 d108 1 a108 1 open(path,"w") do |txt| d112 1 a112 1 File.chmod(0400,path) d114 1 a114 1 d116 14 a129 2 puts"PINを間違えて入力しているかも、もう一度チャレンジしてみて? " end d131 1 a132 1 @ 1.3 log @自分宛てのリプライ取得を -r に変更 @ text @d32 13 a44 1 when "-f" d46 1 a46 1 puts "使用法: xsotter -f ID" d75 1 a75 1 puts" -t :タイムラインを出力します。\n -T str :strをツイッターに投稿します。\n -a :自分当てのリプライを出力します。\n -f ID :IDをお気に入りに追加します。\n --logout :もう一度認証するまで使えなくなります。" @ 1.2 log @ツイートをお気に入りに追加できるように(-f オプション追加) @ text @d55 1 a55 1 when "-a" @ 1.1 log @Initial revision @ text @d32 7 a38 1 when "-T" d48 1 d52 1 d63 1 a63 1 puts" -t タイムラインを出力します。\n -T str strをツイッターに投稿します。\n -a 自分当てのリプライを出力します。\n --logout もう一度認証するまで使えなくなります。" @