inko 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/bin/inko +11 -11
  2. data/lib/inko.rb +40 -33
  3. data/lib/inko/config.rb +34 -32
  4. data/lib/inko/version.rb +1 -1
  5. metadata +2 -2
data/bin/inko CHANGED
@@ -2,7 +2,7 @@
2
2
  # encoding: utf-8
3
3
 
4
4
  def show_usage_and_exit
5
- puts <<-EOS
5
+ puts <<-EOS
6
6
  USAGE:
7
7
  inko [-d | --daemon | -h | --help]
8
8
 
@@ -12,29 +12,29 @@ DESCRIPTION:
12
12
  -d,--daemon Run in deamon-mode. If you want to quit this app, simply kill this app's process.
13
13
 
14
14
  --help show this usage.
15
- EOS
16
- exit
15
+ EOS
16
+ exit
17
17
  end
18
18
 
19
19
  case ARGV.first
20
20
  when '-h', '--help'
21
- ARGV.shift
22
- show_usage_and_exit
21
+ ARGV.shift
22
+ show_usage_and_exit
23
23
  when '-d', '--daemon'
24
- ARGV.shift
25
- puts <<-EOS.gsub /^\s+/,''
24
+ ARGV.shift
25
+ puts <<-EOS.gsub /^\s+/,''
26
26
  `inko` runs in background.
27
27
  If you want to quit this app, kill process simply.
28
- EOS
29
- Process.daemon true,true
28
+ EOS
29
+ Process.daemon true,true
30
30
  end
31
31
 
32
32
  show_usage_and_exit unless ARGV.empty?
33
33
 
34
34
  require 'inko'
35
35
  begin
36
- Inko::run
36
+ Inko::run
37
37
  rescue Interrupt
38
- puts "Inko is interrupted."
38
+ puts "Inko is interrupted."
39
39
  end
40
40
 
@@ -8,41 +8,48 @@ require 'shellwords'
8
8
 
9
9
  module Inko extend self
10
10
 
11
- def filter? status
12
- !status.user || !status.text
11
+ def filter? status
12
+ !status.user || !status.text
13
+ end
14
+
15
+ # modify screen_name and text to make them easy to pronounce
16
+ # _,!
17
+ # cf http://d.hatena.ne.jp/nacookan/20081220/1229745342
18
+ def pronunciationize status
19
+ status.user.screen_name = status.user.screen_name.gsub(/_/, ' ')
20
+ .gsub(/([a-zA-Z]+|[0-9]+)/){$1 + ' '}
21
+ .gsub(/@/,'@. ')
22
+
23
+ status.text = Shellwords::escape( status.text.split(/\n/).join(" ")
24
+ .gsub(/!/,'!')
25
+ .gsub(/w+/, ' 笑い ')
26
+ .gsub(/http:\/\/[^\s]+/, ' URL 略 ')
27
+ )
28
+ status
29
+ end
30
+
31
+ def run
32
+ begin
33
+ UserStream.configure do |config|
34
+ config.consumer_key = Config::ConsumerKey
35
+ config.consumer_secret = Config::ConsumerSecret
36
+ config.oauth_token = Config::OAuthToken
37
+ config.oauth_token_secret = Config::OAuthSecret
38
+ end
39
+ rescue UserStream::Unauthorized => e
40
+ STDERR.puts "contents of #{Config::ConfigFileName} is invalid!"
41
+ raise e
13
42
  end
14
43
 
15
- # modify screen_name and text to make them easy to pronounce
16
- # _,!
17
- # cf http://d.hatena.ne.jp/nacookan/20081220/1229745342
18
- def pronunciationize status
19
- status.user.screen_name = status.user.screen_name.gsub(/_/, ' ').gsub(/([a-zA-Z]+|[0-9]+)/){$1 + ' '}.gsub(/@/,'@. ')
20
- status.text = Shellwords::escape status.text.split(/\n/).join(" ")
21
- status
22
- end
23
-
24
- def run
25
- begin
26
- UserStream.configure do |config|
27
- config.consumer_key = Config::ConsumerKey
28
- config.consumer_secret = Config::ConsumerSecret
29
- config.oauth_token = Config::OAuthToken
30
- config.oauth_token_secret = Config::OAuthSecret
31
- end
32
- rescue UserStream::Unauthorized => e
33
- STDERR.puts "contents of #{Config::ConfigFileName} is invalid!"
34
- raise e
35
- end
36
-
37
- UserStream::client.user do |status|
38
- unless filter? status
39
- status = pronunciationize status
40
- # puts "#{status.user.screen_name}: "
41
- # puts status.text
42
- `say -v #{Config::VoiceActor} #{status.user.screen_name} さんのツイート}`
43
- `say -v #{Config::VoiceActor} #{status.text}`
44
- end
45
- end
44
+ UserStream::client.user do |status|
45
+ unless filter? status
46
+ status = pronunciationize status
47
+ # puts "#{status.user.screen_name}: "
48
+ # puts status.text
49
+ `say -v #{Config::VoiceActor} #{status.user.screen_name} さんのツイート}`
50
+ `say -v #{Config::VoiceActor} #{status.text}`
51
+ end
46
52
  end
53
+ end
47
54
 
48
55
  end
@@ -3,37 +3,39 @@
3
3
  require 'yaml'
4
4
 
5
5
  module Inko
6
- module Config
7
- # file name for credential information
8
- ConfigFileName = File.expand_path('~') + '/.inkorc.yml'
9
-
10
- # if file is not found
11
- unless File.exist? ConfigFileName
12
- File.open ConfigFileName,"w" do |file|
13
- file.print <<-EOS.gsub(/^\s+/, '')
14
- # Choose voice actor from System Setting.
15
- # To call off in Japanese, download voice data (Kyoko).
16
- voice_actor: Alex
17
-
18
- # Get app keys at https://dev.twitter.com/ and write them.
19
- consumer_key: YourConsumerKey
20
- consumer_secret: YourConsumerSecretKey
21
- oauth_token: YourOAuthToken
22
- oauth_token_secret: YourOAuthSecretToken
23
- EOS
24
-
25
- STDERR.puts "Configuration-keys are not found."
26
- STDERR.puts "Write your consumer keys and OAuth keys to #{ConfigFileName}"
27
- end
28
- system 'bash', '-c', (ENV['EDITOR'] || 'vi')+' "$@"', '--', ConfigFileName
29
- end
30
-
31
- # load configuration from file
32
- yaml = YAML.load(File.open(Config::ConfigFileName).read)
33
- VoiceActor = yaml['voice_actor']
34
- ConsumerKey = yaml['consumer_key']
35
- ConsumerSecret = yaml['consumer_secret']
36
- OAuthToken = yaml['oauth_token']
37
- OAuthSecret = yaml['oauth_token_secret']
6
+ module Config
7
+ # file name for credential information
8
+ ConfigFileName = File.expand_path('~') + '/.inkorc.yml'
9
+
10
+ # if file is not found
11
+ unless File.exist? ConfigFileName
12
+ File.open ConfigFileName,"w" do |file|
13
+ file.print <<-EOS.gsub(/^\s+/, '')
14
+ # Choose voice actor from System Setting.
15
+ # To call off in Japanese, download voice data (Kyoko).
16
+ voice_actor: Alex
17
+
18
+
19
+
20
+ # Get app keys at https://dev.twitter.com/ and write them.
21
+ consumer_key: YourConsumerKey
22
+ consumer_secret: YourConsumerSecretKey
23
+ oauth_token: YourOAuthToken
24
+ oauth_token_secret: YourOAuthSecretToken
25
+ EOS
26
+
27
+ STDERR.puts "Configuration-keys are not found."
28
+ STDERR.puts "Write your consumer keys and OAuth keys to #{ConfigFileName}"
29
+ end
30
+ system 'bash', '-c', (ENV['EDITOR'] || 'vi')+' "$@"', '--', ConfigFileName
38
31
  end
32
+
33
+ # load configuration from file
34
+ yaml = YAML.load(File.open(Config::ConfigFileName).read)
35
+ VoiceActor = yaml['voice_actor']
36
+ ConsumerKey = yaml['consumer_key']
37
+ ConsumerSecret = yaml['consumer_secret']
38
+ OAuthToken = yaml['oauth_token']
39
+ OAuthSecret = yaml['oauth_token_secret']
40
+ end
39
41
  end
@@ -1,3 +1,3 @@
1
1
  module Inko
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inko
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-13 00:00:00.000000000 Z
12
+ date: 2012-08-14 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Inko(インコ) is Twitter-call-off client for MacOS X.
15
15
  email: