changeset 12:42e9379d8c1d default tip

gem ver up to 1.8.20 twitter ver up 2.1.1
author KAMURA Sota <c109047@e.koeki-u.ac.jp>
date Thu, 22 Mar 2012 14:06:08 +0900
parents 4dcbbfa7f191
children
files xsotter.rb xsotter_class.rb xsotter_class_111.rb xsotter_mail.rb
diffstat 4 files changed, 148 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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
--- /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
--- 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"]

yatex.org