lita-reminder 0.0.3 → 0.1.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.
- checksums.yaml +4 -4
- data/README.md +16 -5
- data/lib/lita/handlers/reminder.rb +9 -18
- data/lib/reminder/task.rb +1 -1
- data/lita-reminder.gemspec +4 -4
- data/spec/reminder/task_spec.rb +1 -1
- metadata +33 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02faf0da06932901fd7c5858fdfe4e19115aa2f7
|
4
|
+
data.tar.gz: 8a7851f9ff6589e212800bc106e2535f3d77ab1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 -
|
3
|
+
# Work in progress - partially usable yet buggy
|
4
4
|
|
5
|
-
This is an effort to add
|
6
|
-
It is currenly in early development
|
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
|
-
|
23
|
+
No configuration is currently present
|
19
24
|
|
20
25
|
## Usage
|
21
26
|
|
22
|
-
|
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
|
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
|
18
|
-
route(/^reminder\s+delete\s+(\d+)$/, :delete, help: {"reminder ID
|
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
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
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
|
data/lib/reminder/task.rb
CHANGED
data/lita-reminder.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-reminder"
|
3
|
-
spec.version = "0.0
|
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", "
|
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.
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
24
24
|
spec.add_development_dependency "rake"
|
25
|
-
spec.add_development_dependency "rspec", "
|
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
|
data/spec/reminder/task_spec.rb
CHANGED
@@ -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
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
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: '
|
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: '
|
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.
|
196
|
+
rubygems_version: 2.4.5
|
197
197
|
signing_key:
|
198
198
|
specification_version: 4
|
199
199
|
summary: Reminder for Lita chat bot
|