lita-reminder 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1416912c50f4884287365f915763b3953fc738c6
4
- data.tar.gz: 64008f920b6e526a2d9951610fc2538e95086a95
3
+ metadata.gz: 02faf0da06932901fd7c5858fdfe4e19115aa2f7
4
+ data.tar.gz: 8a7851f9ff6589e212800bc106e2535f3d77ab1a
5
5
  SHA512:
6
- metadata.gz: 78a1b5109cbd2532b5cbd17692269660154d5309a6a0788532278ce38704d3ec427efefb5a4bc752d883a821c1d8b9c9d48965022bcfc4178df376c9c53554d5
7
- data.tar.gz: 01642925d74ba84d329237c4aeb05a0ee9c50741c109f2068e27055d5da2abdaca786b038c34e9f3c350bcc9267749d5136ac0acf5a1b45e8aab6eae19cb2209
6
+ metadata.gz: 77d80caa5513e7924e464a176a5e96b21bc2bbe0982ff98c5f5475e1cc505a859150f22e04ae2beba429ae793f5e9f58984531e76b60d06ec21a07b4343c1f11
7
+ data.tar.gz: de67fbfa0be9cf407964d0fbe5e566d424a4c1be3bbaf5baf9f32660ae0599386db2e16e3a1a873f8300ffbafffa6e1517c02eca2a6848a62d7d79aa5f1379fa
data/README.md CHANGED
@@ -1,9 +1,14 @@
1
1
  # lita-reminder
2
2
 
3
- # Work in progress - not yet usable
3
+ # Work in progress - partially usable yet buggy
4
4
 
5
- This is an effort to add simple task scheduler to lita bot.
6
- It is currenly in early development and not yet usable \ working
5
+ This is an effort to add an advanced task scheduler to lita bot.
6
+ It is currenly in early development but partially usable as-is, but it might be
7
+ pretty buggy as of now.
8
+
9
+ Supports in, at, every and cron-like tasks. Uses Rufus-scheduler and Chronic.
10
+
11
+ Planned: domain expiration notification
7
12
 
8
13
  ## Installation
9
14
 
@@ -15,11 +20,17 @@ gem "lita-reminder"
15
20
 
16
21
  ## Configuration
17
22
 
18
- TODO: Describe any configuration attributes the plugin exposes.
23
+ No configuration is currently present
19
24
 
20
25
  ## Usage
21
26
 
22
- TODO: Describe the plugin's features and how to use them.
27
+ Schedule a task like this:
28
+
29
+ remind here in 10m to do some stuff
30
+ remind username in 10m to do some stuff repeat 10 times 5s
31
+ remind me every 10m first at 2013-10-10 10:00 to do some stuff repeat 10 times 5s
32
+ remind me at 10:00 to work
33
+ remind me cron * * * * * to say "one minute passed"
23
34
 
24
35
  ## License
25
36
 
@@ -8,14 +8,14 @@ require 'thread'
8
8
 
9
9
  module Lita
10
10
  module Handlers
11
- class Reminder < Handler
11
+ class Reminder < Handler
12
12
  @@mutex = Mutex.new
13
13
  @@runner = ReminderRunner.new
14
14
 
15
- route(/^remind\s+(?<who>.*?)\s+(?<type>at|in|every|cron)\s+(?<time>.*)(\s+first\s+at\s+(?<first>.*))?\s+to\s+(?<task>.*?)(\s+repeat\s+(?<repeat>.*)\s+times\s+(?<repeat_interval>.*))?$/, :add,
15
+ route(/^remind\s+(?<who>.*?)\s+(?<type>at|in|every|cron)\s+(?<time>.*?)(\s+first\s+at\s+(?<first>.*))?\s+to\s+(?<task>.*?)(\s+repeat\s+(?<repeat>.*)\s+times\s+(?<repeat_interval>.*))?$/, :add,
16
16
  help: {"remind (me|here|username|room) (at|in|every|cron) TIME [first at TIME] to TASK [repeat 3|many times 10m]" => "Add a reminder"})
17
- route(/^reminder\s+done\s+(\d+)$/, :done, help: {"reminder ID done" => "Stop nagging"})
18
- route(/^reminder\s+delete\s+(\d+)$/, :delete, help: {"reminder ID delete" => "Delete reminder"})
17
+ route(/^reminder\s+done\s+(\d+)$/, :done, help: {"reminder done ID" => "Stop nagging"})
18
+ route(/^reminder\s+delete\s+(\d+)$/, :delete, help: {"reminder delete ID" => "Delete reminder"})
19
19
  route(/^reminder\s+list$/, :list, help: {"reminder list" => "List reminders"})
20
20
  route(/^reminder\s+clear\s+all$/, :clear)
21
21
 
@@ -91,21 +91,12 @@ module Lita
91
91
  end
92
92
  end
93
93
 
94
+ extend Lita::Handler::EventRouter
94
95
  Lita.register_handler(Reminder)
95
- end
96
- end
97
-
98
- # ugly hack
99
- # TODO fix this better
100
- module Lita
101
- class << self
102
- def run(config_path = nil)
103
- Config.load_user_config(config_path)
104
- robot = Robot.new
105
- redis_base = Redis.new(config.redis)
106
- redis_ns = Redis::Namespace.new(REDIS_NAMESPACE + ":handlers:reminder", redis: redis_base)
107
- Lita::Handlers::Reminder.runner.start(robot, redis_ns)
108
- robot.run
96
+ on :loaded do
97
+ redis_ns = redis.clone
98
+ redis_ns.namespace += ":handlers:reminder"
99
+ Reminder.runner.start robot, redis_ns
109
100
  end
110
101
  end
111
102
  end
@@ -45,7 +45,7 @@ class ReminderTask
45
45
  else
46
46
  user = Lita::User.create(user_id, name: user_name)
47
47
  end
48
- Lita::Source.new(user, room)
48
+ Lita::Source.new(user: user, room: room)
49
49
  end
50
50
 
51
51
  def run
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-reminder"
3
- spec.version = "0.0.3"
3
+ spec.version = "0.1.0"
4
4
  spec.authors = ["glebtv"]
5
5
  spec.email = ["glebtv@gmail.com"]
6
6
  spec.description = %q{Reminder for Lita chat bot }
@@ -13,16 +13,16 @@ Gem::Specification.new do |spec|
13
13
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
14
14
  spec.require_paths = ["lib"]
15
15
 
16
- spec.add_runtime_dependency "lita", "~> 2.4"
16
+ spec.add_runtime_dependency "lita", ">= 4"
17
17
  spec.add_runtime_dependency "rufus-scheduler", "~> 2.0.24"
18
18
  spec.add_runtime_dependency "chronic", "~> 0.10.2"
19
19
  spec.add_runtime_dependency "whois", "~> 3.2.1"
20
20
  spec.add_runtime_dependency "addressable", "~> 2.3.5"
21
21
 
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
23
+ spec.add_development_dependency "bundler", "~> 1.10"
24
24
  spec.add_development_dependency "rake"
25
- spec.add_development_dependency "rspec", ">= 2.14"
25
+ spec.add_development_dependency "rspec", "~> 3.0"
26
26
  spec.add_development_dependency "simplecov"
27
27
  spec.add_development_dependency "coveralls"
28
28
  end
@@ -8,7 +8,7 @@ describe ReminderTask do
8
8
  'type' => 'in',
9
9
  'time' => '10m',
10
10
  'repeat' => ''
11
- }, Lita::Source.new(carl, 'room'))
11
+ }, Lita::Source.new(user: carl, room: 'room'))
12
12
  task.user_name.should eq carl.name
13
13
  task.user_id.should eq carl.id
14
14
  task.time.should eq (Time.now + 600).to_s
metadata CHANGED
@@ -1,153 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-reminder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - glebtv
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-25 00:00:00.000000000 Z
11
+ date: 2015-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.4'
19
+ version: '4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '2.4'
26
+ version: '4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rufus-scheduler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.0.24
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.0.24
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: chronic
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.10.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.10.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: whois
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.2.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.2.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: addressable
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 2.3.5
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 2.3.5
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.3'
89
+ version: '1.10'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.3'
96
+ version: '1.10'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '2.14'
117
+ version: '3.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '2.14'
124
+ version: '3.0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: simplecov
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: coveralls
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  description: 'Reminder for Lita chat bot '
@@ -157,8 +157,8 @@ executables: []
157
157
  extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
- - .gitignore
161
- - .travis.yml
160
+ - ".gitignore"
161
+ - ".travis.yml"
162
162
  - Gemfile
163
163
  - LICENSE
164
164
  - README.md
@@ -183,17 +183,17 @@ require_paths:
183
183
  - lib
184
184
  required_ruby_version: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - '>='
186
+ - - ">="
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  requirements:
191
- - - '>='
191
+ - - ">="
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
195
  rubyforge_project:
196
- rubygems_version: 2.0.6
196
+ rubygems_version: 2.4.5
197
197
  signing_key:
198
198
  specification_version: 4
199
199
  summary: Reminder for Lita chat bot