jugyo-termtter 1.1.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. data/ChangeLog +115 -0
  2. data/README.rdoc +25 -10
  3. data/Rakefile +53 -34
  4. data/lib/plugins/cool.rb +2 -5
  5. data/lib/plugins/curry.rb +43 -0
  6. data/lib/plugins/db.rb +91 -0
  7. data/lib/plugins/{auto_reload.rb → defaults/auto_reload.rb} +5 -1
  8. data/lib/plugins/defaults/command_line.rb +111 -0
  9. data/lib/plugins/{exec.rb → defaults/exec.rb} +2 -7
  10. data/lib/plugins/{fib.rb → defaults/fib.rb} +1 -4
  11. data/lib/plugins/defaults/retweet.rb +34 -0
  12. data/lib/plugins/{standard_commands.rb → defaults/standard_commands.rb} +88 -162
  13. data/lib/plugins/defaults/standard_completion.rb +67 -0
  14. data/lib/plugins/defaults/stdout.rb +148 -0
  15. data/lib/plugins/defaults.rb +14 -0
  16. data/lib/plugins/en2ja.rb +11 -5
  17. data/lib/plugins/english.rb +2 -2
  18. data/lib/plugins/expand-tinyurl.rb +27 -6
  19. data/lib/plugins/github-issues.rb +192 -0
  20. data/lib/plugins/group.rb +30 -4
  21. data/lib/plugins/growl.rb +10 -1
  22. data/lib/plugins/http_server/favicon.ico +0 -0
  23. data/lib/plugins/http_server/index.html +117 -0
  24. data/lib/plugins/http_server.rb +82 -0
  25. data/lib/plugins/irb.rb +6 -0
  26. data/lib/plugins/l2.rb +1 -1
  27. data/lib/plugins/list_with_opts.rb +0 -3
  28. data/lib/plugins/log.rb +6 -9
  29. data/lib/plugins/modify_arg_hook_sample.rb +3 -5
  30. data/lib/plugins/multi_reply.rb +0 -5
  31. data/lib/plugins/notify-send.rb +1 -1
  32. data/lib/plugins/notify-send2.rb +1 -1
  33. data/lib/plugins/notify-send3.rb +11 -3
  34. data/lib/plugins/open_url.rb +5 -17
  35. data/lib/plugins/otsune.rb +3 -9
  36. data/lib/plugins/outputz.rb +1 -1
  37. data/lib/plugins/pool.rb +30 -0
  38. data/lib/plugins/protected_filter.rb +9 -0
  39. data/lib/plugins/quicklook.rb +1 -1
  40. data/lib/plugins/saykanji.rb +81 -0
  41. data/lib/plugins/shell.rb +1 -6
  42. data/lib/plugins/sl.rb +8 -8
  43. data/lib/plugins/tinyurl.rb +26 -7
  44. data/lib/plugins/trends.rb +84 -0
  45. data/lib/plugins/twitpic.rb +46 -0
  46. data/lib/plugins/uri-open.rb +33 -28
  47. data/lib/plugins/wassr.rb +0 -3
  48. data/lib/plugins/whois.rb +45 -0
  49. data/lib/plugins/yhara.rb +2 -6
  50. data/lib/termtter/client.rb +91 -103
  51. data/lib/termtter/command.rb +24 -9
  52. data/lib/termtter/config.rb +8 -6
  53. data/lib/termtter/config_setup.rb +1 -1
  54. data/lib/termtter/config_template.erb +1 -4
  55. data/lib/termtter/hook.rb +2 -2
  56. data/lib/termtter/optparse.rb +14 -1
  57. data/lib/termtter/system_extensions.rb +3 -2
  58. data/lib/termtter/task_manager.rb +1 -5
  59. data/lib/termtter/version.rb +1 -1
  60. data/spec/plugins/cool_spec.rb +1 -1
  61. data/spec/plugins/curry_spec.rb +13 -0
  62. data/spec/plugins/db_spec.rb +62 -0
  63. data/spec/plugins/english_spec.rb +2 -2
  64. data/spec/plugins/fib_spec.rb +2 -2
  65. data/spec/plugins/filter_spec.rb +2 -2
  66. data/spec/plugins/pause_spec.rb +1 -1
  67. data/spec/plugins/primes_spec.rb +2 -2
  68. data/spec/plugins/shell_spec.rb +1 -1
  69. data/spec/plugins/sl_spec.rb +1 -1
  70. data/spec/plugins/{standard_plugins_spec.rb → standard_commands_spec.rb} +2 -2
  71. data/spec/plugins/whois_spec.rb +20 -0
  72. data/spec/termtter/client_spec.rb +151 -33
  73. data/spec/termtter/command_spec.rb +68 -35
  74. data/spec/termtter/config_spec.rb +10 -0
  75. data/spec/termtter/optparse_spec.rb +16 -0
  76. data/spec/termtter_spec.rb +7 -8
  77. metadata +48 -19
  78. data/History.txt +0 -4
  79. data/lib/plugins/direct_messages.rb +0 -36
  80. data/lib/plugins/retweet.rb +0 -46
  81. data/lib/plugins/stdout.rb +0 -77
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jugyo-termtter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jugyo
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-04-08 00:00:00 -07:00
13
+ date: 2009-07-27 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.6.4
55
55
  version:
56
- description: Termtter is a terminal based Twitter client
56
+ description: Termtter is a terminal based Twitter client.
57
57
  email: jugyo.org@gmail.com
58
58
  executables:
59
59
  - kill_termtter
@@ -62,28 +62,41 @@ extensions: []
62
62
 
63
63
  extra_rdoc_files:
64
64
  - README.rdoc
65
- - History.txt
65
+ - ChangeLog
66
66
  files:
67
+ - Rakefile
68
+ - README.rdoc
69
+ - ChangeLog
70
+ - lib/plugins
67
71
  - lib/plugins/addspace.rb
68
72
  - lib/plugins/april_fool.rb
69
- - lib/plugins/auto_reload.rb
70
73
  - lib/plugins/bomb.rb
71
74
  - lib/plugins/clear.rb
72
75
  - lib/plugins/command_plus.rb
73
76
  - lib/plugins/confirm.rb
74
77
  - lib/plugins/cool.rb
75
78
  - lib/plugins/countter.rb
79
+ - lib/plugins/curry.rb
80
+ - lib/plugins/db.rb
81
+ - lib/plugins/defaults
82
+ - lib/plugins/defaults/auto_reload.rb
83
+ - lib/plugins/defaults/command_line.rb
84
+ - lib/plugins/defaults/exec.rb
85
+ - lib/plugins/defaults/fib.rb
86
+ - lib/plugins/defaults/retweet.rb
87
+ - lib/plugins/defaults/standard_commands.rb
88
+ - lib/plugins/defaults/standard_completion.rb
89
+ - lib/plugins/defaults/stdout.rb
90
+ - lib/plugins/defaults.rb
76
91
  - lib/plugins/devel.rb
77
- - lib/plugins/direct_messages.rb
78
92
  - lib/plugins/en2ja.rb
79
93
  - lib/plugins/english.rb
80
94
  - lib/plugins/erb.rb
81
- - lib/plugins/exec.rb
82
95
  - lib/plugins/exec_and_update.rb
83
96
  - lib/plugins/expand-tinyurl.rb
84
- - lib/plugins/fib.rb
85
97
  - lib/plugins/fib_filter.rb
86
98
  - lib/plugins/filter.rb
99
+ - lib/plugins/github-issues.rb
87
100
  - lib/plugins/graduatter.rb
88
101
  - lib/plugins/grass.rb
89
102
  - lib/plugins/group.rb
@@ -92,7 +105,12 @@ files:
92
105
  - lib/plugins/hatebu.rb
93
106
  - lib/plugins/hatebu_and_update.rb
94
107
  - lib/plugins/history.rb
108
+ - lib/plugins/http_server
109
+ - lib/plugins/http_server/favicon.ico
110
+ - lib/plugins/http_server/index.html
111
+ - lib/plugins/http_server.rb
95
112
  - lib/plugins/ignore.rb
113
+ - lib/plugins/irb.rb
96
114
  - lib/plugins/irc_gw.rb
97
115
  - lib/plugins/keyword.rb
98
116
  - lib/plugins/l2.rb
@@ -111,17 +129,19 @@ files:
111
129
  - lib/plugins/otsune.rb
112
130
  - lib/plugins/outputz.rb
113
131
  - lib/plugins/pause.rb
132
+ - lib/plugins/pool.rb
114
133
  - lib/plugins/post_exec_hook_sample.rb
115
134
  - lib/plugins/pre_exec_hook_sample.rb
116
135
  - lib/plugins/primes.rb
136
+ - lib/plugins/protected_filter.rb
117
137
  - lib/plugins/quicklook.rb
118
138
  - lib/plugins/random.rb
119
139
  - lib/plugins/reblog.rb
120
140
  - lib/plugins/reload.rb
121
141
  - lib/plugins/reply.rb
122
- - lib/plugins/retweet.rb
123
142
  - lib/plugins/reverse.rb
124
143
  - lib/plugins/say.rb
144
+ - lib/plugins/saykanji.rb
125
145
  - lib/plugins/scrape.rb
126
146
  - lib/plugins/screen-notify.rb
127
147
  - lib/plugins/screen.rb
@@ -129,8 +149,7 @@ files:
129
149
  - lib/plugins/shell.rb
130
150
  - lib/plugins/sl.rb
131
151
  - lib/plugins/spam.rb
132
- - lib/plugins/standard_commands.rb
133
- - lib/plugins/stdout.rb
152
+ - lib/plugins/storage
134
153
  - lib/plugins/storage/DB.rb
135
154
  - lib/plugins/storage/status.rb
136
155
  - lib/plugins/storage/status_mook.rb
@@ -140,19 +159,24 @@ files:
140
159
  - lib/plugins/timer.rb
141
160
  - lib/plugins/tinyurl.rb
142
161
  - lib/plugins/translation.rb
162
+ - lib/plugins/trends.rb
163
+ - lib/plugins/twitpic.rb
143
164
  - lib/plugins/typable_id.rb
144
165
  - lib/plugins/update_editor.rb
145
166
  - lib/plugins/uri-open.rb
146
167
  - lib/plugins/wassr.rb
147
168
  - lib/plugins/wassr_post.rb
169
+ - lib/plugins/whois.rb
148
170
  - lib/plugins/yhara.rb
149
171
  - lib/plugins/yhara_filter.rb
150
172
  - lib/plugins/yonda.rb
173
+ - lib/termtter
151
174
  - lib/termtter/api.rb
152
175
  - lib/termtter/client.rb
153
176
  - lib/termtter/command.rb
154
177
  - lib/termtter/config.rb
155
178
  - lib/termtter/config_setup.rb
179
+ - lib/termtter/config_template.erb
156
180
  - lib/termtter/connection.rb
157
181
  - lib/termtter/hook.rb
158
182
  - lib/termtter/optparse.rb
@@ -161,8 +185,10 @@ files:
161
185
  - lib/termtter/task_manager.rb
162
186
  - lib/termtter/version.rb
163
187
  - lib/termtter.rb
164
- - lib/termtter/config_template.erb
188
+ - spec/plugins
165
189
  - spec/plugins/cool_spec.rb
190
+ - spec/plugins/curry_spec.rb
191
+ - spec/plugins/db_spec.rb
166
192
  - spec/plugins/english_spec.rb
167
193
  - spec/plugins/fib_spec.rb
168
194
  - spec/plugins/filter_spec.rb
@@ -171,23 +197,26 @@ files:
171
197
  - spec/plugins/shell_spec.rb
172
198
  - spec/plugins/sl_spec.rb
173
199
  - spec/plugins/spam_spec.rb
174
- - spec/plugins/standard_plugins_spec.rb
200
+ - spec/plugins/standard_commands_spec.rb
201
+ - spec/plugins/storage
175
202
  - spec/plugins/storage/DB_spec.rb
176
203
  - spec/plugins/storage/status_spec.rb
204
+ - spec/plugins/whois_spec.rb
177
205
  - spec/spec_helper.rb
206
+ - spec/termtter
178
207
  - spec/termtter/client_spec.rb
179
208
  - spec/termtter/command_spec.rb
180
209
  - spec/termtter/config_spec.rb
181
210
  - spec/termtter/hook_spec.rb
211
+ - spec/termtter/optparse_spec.rb
182
212
  - spec/termtter/task_manager_spec.rb
183
213
  - spec/termtter/task_spec.rb
184
214
  - spec/termtter_spec.rb
185
215
  - test/friends_timeline.json
186
216
  - test/search.json
187
- - README.rdoc
188
- - History.txt
189
- - Rakefile
190
- has_rdoc: true
217
+ - bin/kill_termtter
218
+ - bin/termtter
219
+ has_rdoc: false
191
220
  homepage: http://wiki.github.com/jugyo/termtter
192
221
  post_install_message:
193
222
  rdoc_options:
@@ -214,7 +243,7 @@ requirements: []
214
243
  rubyforge_project: termtter
215
244
  rubygems_version: 1.2.0
216
245
  signing_key:
217
- specification_version: 2
218
- summary: Terminal based Twitter client
246
+ specification_version: 3
247
+ summary: Terminal based Twitter client.
219
248
  test_files: []
220
249
 
data/History.txt DELETED
@@ -1,4 +0,0 @@
1
- == 0.0.1 2008-12-26
2
-
3
- * 1 major enhancement:
4
- * Initial release
@@ -1,36 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- module Termtter::Client
3
- register_command(
4
- :name => :direct_messages,
5
- :aliases => [:ds],
6
- :exec_proc => lambda {|arg|
7
- event = :list_user_timeline
8
- ds = Termtter::API.twitter.direct_messages
9
- DM = Struct.new :id, :text, :user, :created_at, :in_reply_to_status_id
10
- statuses = ds.map do |d|
11
- DM.new(d.id, d.text, d.sender, d.created_at)
12
- end
13
- output(statuses, event)
14
- },
15
- :completion_proc => lambda {|cmd, arg|
16
- },
17
- :help => ['direct_messages,ds', 'List direct messages for you']
18
- )
19
-
20
- register_command(
21
- :name => :sent_direct_messages,
22
- :aliases => [:sds],
23
- :exec_proc => lambda {|arg|
24
- event = :list_user_timeline
25
- ds = Termtter::API.twitter.sent_direct_messages
26
- DM = Struct.new :id, :text, :user, :created_at, :in_reply_to_status_id
27
- statuses = ds.map do |d|
28
- DM.new(d.id, "@#{d.recipient.screen_name} #{d.text}", d.sender, d.created_at)
29
- end
30
- output(statuses, event)
31
- },
32
- :completion_proc => lambda {|cmd, arg|
33
- },
34
- :help => ['sent_direct_messages, sds', 'List direct messages from you']
35
- )
36
- end
@@ -1,46 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- config.plugins.retweet.set_default(:format, 'RT @<%=s.user.screen_name%>: <%=s.text%>')
4
-
5
- module Termtter::Client
6
- def self.post_retweet(s)
7
- text = ERB.new(config.plugins.retweet.format).result(binding)
8
- Termtter::API.twitter.update(text)
9
- puts "=> #{text}"
10
- end
11
-
12
- register_command(
13
- :name => :retweet,
14
- :aliases => [:rt],
15
- :help => ['retweet,rt (TYPABLE|ID|@USER)', 'Post a retweet message'],
16
- :exec_proc => lambda {|arg|
17
- if public_storage[:typable_id] && s = typable_id_status(arg)
18
- post_retweet(s)
19
- else
20
- case arg
21
- when /(\d+)/
22
- post_retweet(Termtter::API.twitter.show(arg))
23
- #s = Twitter::API.twitter.show(arg)
24
- #post_retweet(s)
25
- when /@([A-Za-z0-9_]+)/
26
- user = $1
27
- statuses = Termtter::API.twitter.user_timeline(user)
28
- return if statuses.empty?
29
- post_retweet(statuses[0])
30
- end
31
- end
32
- },
33
- :completion_proc => lambda {|cmd, arg|
34
- if public_storage[:typable_id] && s = typable_id_status(arg)
35
- "u #{ERB.new(config.plugins.retweet.format).result(binding)}"
36
- else
37
- case arg
38
- when /@(.*)/
39
- find_user_candidates $1, "#{cmd} @%s"
40
- when /(\d+)/
41
- find_status_ids(arg).map{|id| "#{cmd} #{$1}"}
42
- end
43
- end
44
- }
45
- )
46
- end
@@ -1,77 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- require 'termcolor'
4
- require 'erb'
5
- require 'tempfile'
6
-
7
- config.plugins.stdout.set_default(:colors, (31..36).to_a + (91..96).to_a)
8
- config.plugins.stdout.set_default(
9
- :timeline_format,
10
- '<90><%=time%></90> <<%=color%>><%=s.user.screen_name%>: <%=text%></<%=color%>> ' +
11
- '<90><%=reply_to ? reply_to + " " : ""%><%=s.id%> <%=source%></90>'
12
- )
13
- config.plugins.stdout.set_default(:enable_pager, true)
14
- config.plugins.stdout.set_default(:pager, 'less -R -f +G')
15
- config.plugins.stdout.set_default(:window_height, 50)
16
-
17
- module Termtter
18
- class StdOut < Hook
19
- def initialize
20
- super(:name => :stdout, :points => [:output])
21
- end
22
-
23
- def call(statuses, event)
24
- print_statuses(statuses)
25
- end
26
-
27
- def print_statuses(statuses, sort = true, time_format = nil)
28
- return unless statuses and statuses.first
29
- unless time_format
30
- t0 = Time.now
31
- t1 = Time.parse(statuses.first[:created_at])
32
- t2 = Time.parse(statuses.last[:created_at])
33
- time_format =
34
- if [t0.year, t0.month, t0.day] == [t1.year, t1.month, t1.day] \
35
- and [t1.year, t1.month, t1.day] == [t2.year, t2.month, t2.day]
36
- '%H:%M:%S'
37
- else
38
- '%y/%m/%d %H:%M'
39
- end
40
- end
41
-
42
- output_text = ''
43
- statuses.each do |s|
44
- text = TermColor.escape(s.text)
45
- color = config.plugins.stdout.colors[s.user.id.to_i % config.plugins.stdout.colors.size]
46
- reply_to = s.in_reply_to_status_id ? "(reply to #{s.in_reply_to_status_id})" : nil
47
- time = "(#{Time.parse(s.created_at).strftime(time_format)})"
48
- source =
49
- case s.source
50
- when />(.*?)</ then $1
51
- when 'web' then 'web'
52
- end
53
-
54
- erbed_text = ERB.new(config.plugins.stdout.timeline_format).result(binding)
55
- output_text << TermColor.parse(erbed_text) + "\n"
56
- end
57
-
58
- if config.plugins.stdout.enable_pager && ENV['LINES'] && statuses.size > ENV['LINES'].to_i
59
- file = Tempfile.new('termtter')
60
- file.print output_text
61
- file.close
62
- system "#{config.plugins.stdout.pager} #{file.path}"
63
- file.close(true)
64
- else
65
- print output_text
66
- end
67
- end
68
- end
69
-
70
- Client.register_hook(StdOut.new)
71
- end
72
-
73
- # stdout.rb
74
- # output statuses to stdout
75
- # example config
76
- # config.plugins.stdout.colors = [:none, :red, :green, :yellow, :blue, :magenta, :cyan]
77
- # config.plugins.stdout.timeline_format = '<90><%=time%></90> <<%=status_color%>><%=status%></<%=status_color%>> <90><%=id%></90>'