annotate xsotter_class.rb @ 8:2ebeaae57e96

chop 140
author KAMURA Sota <c109047@e.koeki-u.ac.jp>
date Tue, 07 Feb 2012 23:26:41 +0900
parents 6c763cb4ea40
children 42e9379d8c1d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
1 #! /usr/bin/env ruby
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
2 # -*- coding: euc-jp -*-
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
3 require"rubygems"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
4 #gem `twitter`, `1.1.1`
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
5 require"oauth"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
6 require"twitter"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
7 require"nkf"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
8 include Twitter
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
9
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
10 class Xsotter
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
11
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
12 def initialize (token_path)
8
2ebeaae57e96 chop 140
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents: 6
diff changeset
13 @path = File.expand_path(token_path)
0
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
14 # @path = File.expand_path("~") + "/.xsotter_token"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
15 @login = false
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
16 @kcode = "-e"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
17 oauth if File.exist?(@path) == false
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
18
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
19 IO.foreach(@path) do |line|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
20 a=line.chomp.split(" ")
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
21 @ACCESS_TOKEN = a[0]
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
22 @ACCESS_SECRET = a[1]
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
23 @kcode = a[2]
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
24 @login = true
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
25 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
26
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
27 Twitter.configure do |config|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
28 config.consumer_key = 'SuucnlrR6yAOXz3AQaJG4Q'
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
29 config.consumer_secret = 'wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw'
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
30 config.oauth_token = @ACCESS_TOKEN
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
31 config.oauth_token_secret = @ACCESS_SECRET
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
32 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
33 # comand(com)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
34 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
35
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
36 def public_tl
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
37 return Twitter.public_timeline()
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
38 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
39
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
40 def comand(com)#com=array
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
41 case com[0]
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
42 when "--logout"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
43 File.delete(path)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
44 when "-k"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
45 File.chmod(0700,@path)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
46 open(@path,"w") do |txt|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
47 token = @ACCESS_TOKEN + " " + @ACCESS_SECRET + " " + com[1]
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
48 txt.printf"%s",NKF.nkf(@kcode,token)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
49 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
50 File.chmod(0400,@path)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
51
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
52 when "-f"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
53 f=Twitter.favorites.each do |fav|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
54 str = NKF.nkf(@kcode, fav.user.screen_name + ":" + fav.text)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
55 puts str
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
56 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
57 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
58 when "-R"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
59 if com[1]==nil
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
60 puts "使用法: xsotter -R ID"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
61 else
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
62 Twitter.retweet(id=com[1])
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
63 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
64 when "-F"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
65 if com[1]==nil
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
66 puts "使用法: xsotter -F ID"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
67 else
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
68 Twitter.favorite_create(id=com[1])
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
69 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
70 when "-T"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
71 str = ""
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
72 com.delete_at(0)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
73 com.each do |i|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
74 str += i + " "
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
75 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
76 str = NKF.nkf("-w", str)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
77 Twitter.update(str)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
78 when "-t"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
79 Twitter.home_timeline.each do |line|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
80 str = line.text
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
81 str = NKF.nkf(@kcode, line.user.screen_name + ": " + str )
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
82 puts str
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
83 puts "ID=#{line.id}"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
84 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
85 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
86 when "-r"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
87 Twitter.mentions.each do |line|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
88 str = line.text
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
89 str = NKF.nkf(@kcode, line.user.screen_name + ": " + str )
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
90 puts str
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
91 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
92 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
93
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
94 else
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
95 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 :もう一度認証するまで使えなくなります。")
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
96 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
97
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
98
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
99 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
100
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
101 def oauth
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
102 consumer = OAuth::Consumer.new("SuucnlrR6yAOXz3AQaJG4Q", "wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw", :site => "http://twitter.com")
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
103 request_token = consumer.get_request_token
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
104 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
105 puts request_token.authorize_url #ここでURLがでて認証画面に
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
106 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
107 puts "にアクセスし、Twitterにログインしてxsotterを認証し、PINを入手してください。"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
108 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
109 begin
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
110 puts"PINを入力してください。"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
111 print"PIN="
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
112 oauth_verifier = STDIN.gets.chomp
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
113
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
114 token = request_token.get_access_token(:oauth_verifier => oauth_verifier )
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
115
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
116 open(@path,"w") do |txt|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
117 token = token.token + " " + token.secret + " -e"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
118 txt.printf"%s",NKF.nkf(@kcode,token)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
119 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
120 File.chmod(0400,@path)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
121 puts "xsotterでログインできるようになりました。もういちど実行してください。"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
122 exit(0)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
123 rescue
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
124 puts"PINを間違えて入力しているかも、もう一度チャレンジしてみて "
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
125 exit(1)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
126 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
127 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
128
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
129 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
130
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
131 if $0 == __FILE__
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
132 consumer = OAuth::Consumer.new("SuucnlrR6yAOXz3AQaJG4Q", "wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw", :site => "http://twitter.com")
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
133 request_token = consumer.get_request_token
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
134 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
135 puts request_token.authorize_url #ここでURLがでて認証画面に
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
136 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
137 puts "にアクセスし、Twitterにログインしてxsotterを認証し、PINを入手してください。"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
138 puts
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
139 begin
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
140 puts"PINを入力してください。"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
141 print"PIN="
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
142 oauth_verifier = STDIN.gets.chomp
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
143
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
144 token = request_token.get_access_token(:oauth_verifier => oauth_verifier )
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
145
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
146 open("./token","w") do |txt|
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
147 token = token.token + " " + token.secret + " -e"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
148 txt.printf"%s",NKF.nkf("-w",token)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
149 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
150 puts "xsotterでログインできるようになりました。もういちど実行してください。"
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
151 exit(0)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
152 rescue
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
153 puts"PINを間違えて入力しているかも、もう一度チャレンジしてみて "
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
154 exit(1)
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
155 end
KAMURA Sota <c109047@e.koeki-u.ac.jp>
parents:
diff changeset
156 end

yatex.org