-
Notifications
You must be signed in to change notification settings - Fork 34
/
english.rb
57 lines (47 loc) · 1.79 KB
/
english.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
require 'erb'
module Termtter
Client.clear_hooks # FIXME: not to clear all but to clear just stdout.rb
configatron.set_default(
:timeline_format,
'<%= color(time, 90) %> <%= color(status, status_color) %> <%= color(id, 90) %>')
def color(str, num)
"\e[#{num}m#{str}\e[0m"
end
# FIXME: The code below is a copy from stdout.rb so it's not DRY. DRY it.
Client.add_hook do |statuses, event|
colors = %w(0 31 32 33 34 35 36 91 92 93 94 95 96)
case event
when :update_friends_timeline, :list_friends_timeline, :list_user_timeline, :show, :replies
unless statuses.empty?
statuses.reverse! if event == :update_friends_timeline
statuses.each do |s|
text = s.text.gsub("\n", '')
next unless Status.english?(text) # if you substitute "if" for "unless", this script will be "japanese.rb"
status_color = colors[s.user_screen_name.hash % colors.size]
status = "#{s.user_screen_name}: #{text}"
if s.in_reply_to_status_id
status += " (reply to #{s.in_reply_to_status_id})"
end
time_format = case event
when :update_friends_timeline, :list_friends_timeline
'%H:%M:%S'
else
'%m-%d %H:%M'
end
time = "(#{s.created_at.strftime(time_format)})"
id = s.id
puts ERB.new(configatron.timeline_format).result(binding)
end
end
when :search
statuses.each do |s|
text = s.text.gsub("\n", '')
status_color = colors[s.user_screen_name.hash % colors.size]
status = "#{s.user_screen_name}: #{text}"
time = "(#{s.created_at.strftime('%m-%d %H:%M')})"
id = s.id
puts ERB.new(configatron.timeline_format).result(binding)
end
end
end
end