changeset 0:b79b888eceac

init
author KAMURA Sota <c109047@e.koeki-u.ac.jp>
date Mon, 06 Feb 2012 17:25:58 +0900
parents
children f2e687a21e3f
files .hgignore RCS/xsotter.rb,v RCS/xsotter_class.rb,v c109047_token c109047bot.rb c109047jikandayobot.rb xsotter.rb xsotter_class.rb xsotter_mail.rb xsotter_token.txt
diffstat 10 files changed, 780 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,8 @@
+syntax: glob
+*.aux
+*.log
+*.toc
+*.o
+*~
+\#*
+tmp/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RCS/xsotter.rb,v	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,330 @@
+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 もう一度認証するまで使えなくなります。"
+@
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RCS/xsotter_class.rb,v	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,179 @@
+head	1.1;
+access;
+symbols;
+locks; strict;
+comment	@# @;
+
+
+1.1
+date	2011.11.28.03.10.57;	author c109047;	state Exp;
+branches;
+next	;
+
+
+desc
+@@
+
+
+1.1
+log
+@Initial revision
+@
+text
+@#! /usr/bin/env ruby
+# -*- coding: euc-jp -*-
+require"rubygems"
+#gem `twitter`, `1.1.1`
+require"oauth"
+require"twitter"
+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)#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 #ここで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__
+  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
+end
+@
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c109047_token	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,1 @@
+404639148-oiHQTrgZkgY7SMvp08A5ocOfUu8ORPTqLa7kV5UI lF3vRDuLypujzRQhIGkwBLm3L5ufNLQonvAWOS9T6Cw -e
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c109047bot.rb	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,28 @@
+#! /usr/bin/env ruby
+# -*- coding: euc-jp -*-
+
+require'/home/irhome/c109/c109047/xsotter/xsotter_class'
+def follow ()
+  followers = Twitter.follower_ids("c109047").ids
+  following = Twitter.friend_ids("c109047").ids
+  newbie = followers - following
+  newbie.each do |i|
+     Twitter.friendship_create(i)
+  end
+end
+
+begin 
+  xsotter = Xsotter.new("/xsotter/c109047_token")
+  
+  #ptl = xsotter.public_tl
+  while true
+    if /^0/=~Time.now.min.to_s
+      follow
+      xsotter.comand(["-T","#{Time.now.hour}時だよ"])
+   
+    end
+    sleep 59
+  end
+rescue
+  retry
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c109047jikandayobot.rb	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,39 @@
+#! /usr/bin/env ruby
+# -*- coding: euc-jp -*-
+
+require'/home/irhome/c109/c109047/xsotter/xsotter_class'
+
+begin 
+  xsotter = Xsotter.new("/xsotter/c109047_token")
+  id=""
+  data=[]
+  while true
+    puts"start"
+    if /^0/=~Time.now.min.to_s
+      hour =  Time.now.hour
+      data.each {|i|
+        if i[0] == hour
+          xsotter.comand(["-T"],"#{i[1]} #{hour}時に何かあるんじゃないの?")
+        end
+      }
+    end
+  
+    Twitter.mentions({:count => 1}).eacho do |r|
+      puts "1"
+      if !(id == r.id)
+      id = r.id
+        usr = r.user.screen_name
+        puts text = r.text
+        if /\S*(\d+)時\S*/ =~ text
+          if $1.to_i <= 24 && $1.to_i >= 0
+            data << [$1.to_i,usr]
+          end
+        end
+        sleep 3
+    end
+    end
+  end
+rescue
+  retry
+end
+  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xsotter.rb	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,16 @@
+#! /usr/bin/env ruby
+# -*- coding: euc-jp -*-
+
+require'/home/irhome/c109/c109047/xsotter/xsotter_class'
+
+begin 
+  xsotter = Xsotter.new("/.xsotter_token")
+  xsotter.comand(ARGV)
+rescue =>err
+  puts err
+  case err 
+  when /POST/
+    puts"同じ内容のツイートを連続で投稿することはできません。140文字を超えたツイートもできません。"
+  end
+  
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xsotter_class.rb	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,156 @@
+#! /usr/bin/env ruby
+# -*- coding: euc-jp -*-
+require"rubygems"
+#gem `twitter`, `1.1.1`
+require"oauth"
+require"twitter"
+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)#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 #ここで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__
+  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
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xsotter_mail.rb	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,22 @@
+#! /usr/bin/env ruby
+# -*- coding: euc-jp -*-
+
+require '/home/irhome/c109/c109047/xsotter/xsotter_class'
+
+sender = ENV['SENDER']
+rcpt = ENV['RECIPIENT']
+body = ""#Array.new
+if sender == nil || rcpt === nil 
+  exit 0
+elsif/.*@.*/ !~ sender 
+  exit 0
+end
+while line = gets
+  f=1 if /^$/=~line
+  if f ==1 
+    body += line
+  end
+end
+STDERR.puts NKF.nkf('-e', body)
+body=["-T", body]
+Xsotter.new(body)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xsotter_token.txt	Mon Feb 06 17:25:58 2012 +0900
@@ -0,0 +1,1 @@
+182750651-zaM1eoNj3gEeVoAXCL54V6MCz6bBXaicDAmOAp7L OLOy2ipAEHVyQnrrhSxCvvHFLl6sQhGLjlfla7E80
\ No newline at end of file

yatex.org