twat 0.4.8 → 0.4.9

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.
data/TODO CHANGED
@@ -9,9 +9,10 @@ Refactor tweet printing code, unify throughout
9
9
  TODO
10
10
  ====
11
11
 
12
- Configurable polling interval
13
12
  (which carries with it warnings if it's too short.. which means a warn
14
13
  method.. which means abstracting it's output..)
15
14
 
16
15
  On the upside, it'll make unit testing similar.
17
16
  (Add unit tests)
17
+
18
+ Split config and options out into submodules
@@ -45,7 +45,7 @@ end
45
45
  module Twat
46
46
  VERSION_MAJOR = 0
47
47
  VERSION_MINOR = 4
48
- VERSION_PATCH = 8
48
+ VERSION_PATCH = 9
49
49
 
50
50
  VERSION = "#{VERSION_MAJOR}.#{VERSION_MINOR}.#{VERSION_PATCH}"
51
51
  class Twat
@@ -81,6 +81,8 @@ module Twat
81
81
  puts "Your config file is out of date. Run with --update-config to rememdy"
82
82
  rescue InvalidBool
83
83
  puts "Invalid value, valid values are #{Options::BOOL_VALID.join("|")}"
84
+ rescue InvalidInt
85
+ puts "Invalid value, must be an integer"
84
86
  end
85
87
  end
86
88
  end
@@ -91,12 +91,7 @@ module Twat
91
91
  begin
92
92
  while true do
93
93
  last_id = process_followed(tweets) if tweets.any?
94
- # Sleep 15 seconds between requests
95
- # If left running at all times, that's 240 requests per hour, well
96
- # under the limit
97
- # sleep 15
98
- # Disregard that, once per 60 seconds is plenty
99
- sleep 60
94
+ sleep config.polling_interval
100
95
  tweets = Twitter.home_timeline(:since_id => last_id)
101
96
  end
102
97
  rescue Interrupt
@@ -58,6 +58,10 @@ module Twat
58
58
  Options.bool_true?(beep)
59
59
  end
60
60
 
61
+ def polling_interval
62
+ config[:polling_interval] || 60
63
+ end
64
+
61
65
  def default_account
62
66
  raise NoDefaultAccount unless config.include?(:default)
63
67
  return config[:default].to_sym
@@ -9,4 +9,5 @@ module Twat
9
9
  class ConfigVersionIncorrect < Exception; end
10
10
  class InvalidSetOpt < Exception; end
11
11
  class InvalidBool < Exception; end
12
+ class InvalidInt < Exception; end
12
13
  end
@@ -19,6 +19,10 @@ module Twat
19
19
  BOOL_VALS.include?(val.to_s.downcase)
20
20
  end
21
21
 
22
+ def self.int_valid?(val)
23
+ !!/^[0-9]+$/.match(val)
24
+ end
25
+
22
26
  # A set of wrappers around the global config object to set given attributes
23
27
  # Catching failures is convenient because of the method_missing? hook
24
28
  def method_missing(sym, *args, &block)
@@ -57,5 +61,17 @@ module Twat
57
61
  config.save!
58
62
  end
59
63
 
64
+ def polling_interval=(value)
65
+ raise InvalidInt unless Options.int_valid?(value)
66
+ val = value.to_i
67
+ if val < 15 then
68
+ puts "Polling intervals of < 15secs will exceed your daily API requests"
69
+ exit
70
+ else
71
+ config[:polling_interval] = val
72
+ config.save!
73
+ end
74
+ end
75
+
60
76
  end
61
77
  end
data/man/twat.1 CHANGED
@@ -24,7 +24,7 @@ Delete speficied account.
24
24
  Display a short summary of twat's options.
25
25
  .IP -f
26
26
  Watch your newsfeed in a similar manner to tail -f, updating as your feed does
27
- (polling interval 60 seconds)
27
+ (polling interval defaults to 60 seconds)
28
28
  .IP -u USER
29
29
  Retrieve a list of USER's recent tweets. Note this will retrieve all of their
30
30
  tweets as opposed to just what would have appeared in your feed.
@@ -37,6 +37,9 @@ Sets account as the default
37
37
  Turns colors on or off in the output from twat. [defaults on]
38
38
  .IP beep=<true|false>
39
39
  Beep when a new tweet mentioning you is recieved (Handy in tmux). [defaults off]
40
+ .IP polling_interval=[>14 seconds]
41
+ Specify the interval between polls to twitter's API. Values of <15 seconds are
42
+ not allowed as they would exceed a user's daily API requests to twitter.
40
43
  .IP --update-config
41
44
  Twat is a rolling release and as such, sometimes it is necessary to change the
42
45
  format of it's internal config file. Rather than making changes without user
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.4.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-10-08 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: twitter
16
- requirement: &14639040 !ruby/object:Gem::Requirement
16
+ requirement: &11785980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *14639040
24
+ version_requirements: *11785980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: oauth
27
- requirement: &14638480 !ruby/object:Gem::Requirement
27
+ requirement: &11785500 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *14638480
35
+ version_requirements: *11785500
36
36
  description: Command line tool for tweeting and whatnot
37
37
  email:
38
38
  - richo@psych0tik.net