# HG changeset patch # User KAMURA Sota # Date 1332392768 -32400 # Node ID 42e9379d8c1d67e1fa106b8156ff8c5cab5d6612 # Parent 4dcbbfa7f191a75e57b5f95fa6868ea8e6dd0d68 gem ver up to 1.8.20 twitter ver up 2.1.1 diff -r 4dcbbfa7f191 -r 42e9379d8c1d xsotter.rb --- a/xsotter.rb Sat Feb 11 12:48:07 2012 +0900 +++ b/xsotter.rb Thu Mar 22 14:06:08 2012 +0900 @@ -1,6 +1,6 @@ #! /usr/bin/env ruby # -*- coding: euc-jp -*- -require'/home/irhome/c109/c109047/xsotter/xsotter_class' +require'/home/irhome/c109/c109047/xsotter/xsotter_class.rb' begin xsotter = Xsotter.new("~/.xsotter_token") xsotter.comand(ARGV) diff -r 4dcbbfa7f191 -r 42e9379d8c1d xsotter_class.rb --- a/xsotter_class.rb Sat Feb 11 12:48:07 2012 +0900 +++ b/xsotter_class.rb Thu Mar 22 14:06:08 2012 +0900 @@ -1,8 +1,9 @@ #! /usr/bin/env ruby # -*- coding: euc-jp -*- +#gem version 1.8.20 +#twitter version 2.1.1 require"rubygems" -#gem `twitter`, `1.1.1` -require"oauth" +gem "twitter", "2.1.1" require"twitter" require"nkf" include Twitter @@ -37,7 +38,7 @@ return Twitter.public_timeline() end - def comand(com)#com=array + def comand(com=[true])#com=array case com[0] when "--logout" File.delete(path) @@ -102,7 +103,7 @@ consumer = OAuth::Consumer.new("SuucnlrR6yAOXz3AQaJG4Q", "wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw", :site => "http://twitter.com") request_token = consumer.get_request_token puts - puts request_token.authorize_url #ここでURLがでて認証画面に + puts request_token.authorize_url #ここでPINコードへのURLがでる puts puts "にアクセスし、Twitterにログインしてxsotterを認証し、PINを入手してください。" puts @@ -129,28 +130,7 @@ end if $0 == __FILE__ - 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("./token","w") do |txt| - token = token.token + " " + token.secret + " -e" - txt.printf"%s",NKF.nkf("-w",token) - end - puts "xsotterでログインできるようになりました。もういちど実行してください。" - exit(0) - rescue - puts"PINを間違えて入力しているかも、もう一度チャレンジしてみて " - exit(1) - end + xsotter=Xsotter.new("~/.xsotter_token") + xsotter.comand(ARGV) + # xsotter.oauth end diff -r 4dcbbfa7f191 -r 42e9379d8c1d xsotter_class_111.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xsotter_class_111.rb Thu Mar 22 14:06:08 2012 +0900 @@ -0,0 +1,137 @@ +#! /usr/bin/env ruby +# -*- coding: euc-jp -*- +#gem version 1.8.20 +require"rubygems" +gem "twitter", "1.1.1" +require"twitter" +require"oauth" +require"nkf" + +include Twitter + +class Xsotter + + def initialize (token_path) + @path = File.expand_path(token_path) + # @path = File.expand_path("~") + "/.xsotter_token" + @login = false + @kcode = "-e" + oauth if File.exist?(@path) == false + + IO.foreach(@path) do |line| + a=line.chomp.split(" ") + @ACCESS_TOKEN = a[0] + @ACCESS_SECRET = a[1] + @kcode = a[2] + @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 public_tl + return Twitter.public_timeline() + end + + def comand(com=[true])#com=array + case com[0] + when "--logout" + File.delete(path) + when "-k" + File.chmod(0700,@path) + open(@path,"w") do |txt| + token = @ACCESS_TOKEN + " " + @ACCESS_SECRET + " " + com[1] + txt.printf"%s",NKF.nkf(@kcode,token) + end + File.chmod(0400,@path) + + when "-f" + f=Twitter.favorites.each do |fav| + str = NKF.nkf(@kcode, 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(@kcode, 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(@kcode, line.user.screen_name + ": " + str ) + puts str + puts + end + + else + puts NKF.nkf(@kcode, " -k KCODE :-e euc -j shift_jis\n -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 #ここでPINコードへの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 + " -e" + txt.printf"%s",NKF.nkf(@kcode,token) + end + File.chmod(0400,@path) + puts "xsotterでログインできるようになりました。もういちど実行してください。" + exit(0) + rescue + puts"PINを間違えて入力しているかも、もう一度チャレンジしてみて " + exit(1) + end + end + +end + +if $0 == __FILE__ + xsotter=Xsotter.new("~/.xsotter_token") + xsotter.comand() + # xsotter.oauth +end diff -r 4dcbbfa7f191 -r 42e9379d8c1d xsotter_mail.rb --- a/xsotter_mail.rb Sat Feb 11 12:48:07 2012 +0900 +++ b/xsotter_mail.rb Thu Mar 22 14:06:08 2012 +0900 @@ -22,12 +22,14 @@ end end + if body.split(/^-+$/e).size >= 2 body = body.split(/^-+$/e) post = body[1] + subject + body[0] else post = subject + body end + post = $& if /.{140}/me=~post com=["-T", NKF.nkf('-e',post)] #com=["-T", "test"]