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

yatex.org