lita-task-scheduler 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/lib/lita/handlers/task_scheduler.rb +21 -12
- data/lita-task-scheduler.gemspec +1 -1
- metadata +1 -2
- data/lib/lita/handlers/.task_scheduler.rb.swp +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1c534abd255cca4223c3d12ac9fed05cbb065a2
|
4
|
+
data.tar.gz: 4bc8e533d727d056ee1430a2c1354cfa9aeec931
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7701aaef31efb81503dc8eb0f6e4505d8429335757e0b3cbd118747bf6ac8d48aed92a195731b621cdfcc797f7f185b5b68c8741c9a836dffbd4e05d1dbc00db
|
7
|
+
data.tar.gz: a865d1c5ddc0cab514cdfbc2b219e43a3979619ab88b741736627c0d1265c796ce62bdfbd51ae088ed2ec9bff28c2485ff8ab9d5a2f54c05b47f61b823a582a2
|
data/.gitignore
CHANGED
@@ -1,37 +1,46 @@
|
|
1
1
|
module Lita
|
2
2
|
module Handlers
|
3
3
|
class TaskScheduler < Handler
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
|
5
|
+
route /^schedule\s+"(.+)"\s+in\s+(.+)$/i, :schedule
|
6
|
+
|
7
|
+
def schedule(payload)
|
8
|
+
payload.matches.each do |task, timing|
|
9
|
+
serialized = serialize_message(payload.message, new_body: task)
|
10
|
+
resend(serialized)
|
11
|
+
end
|
12
|
+
end
|
7
13
|
|
8
14
|
def rebroadcast(payload)
|
9
|
-
serialized = serialize_message(payload)
|
15
|
+
serialized = serialize_message(payload.message)
|
10
16
|
|
11
|
-
|
17
|
+
key = "delay_#{rand(100..10000)}"
|
18
|
+
redis.set(key, serialized.to_json)
|
19
|
+
reloaded = JSON.parse redis.get(key), symbolize_names: true
|
20
|
+
|
21
|
+
resend(reloaded)
|
12
22
|
end
|
13
23
|
|
14
24
|
def resend(serialized)
|
15
25
|
user = Lita::User.new(serialized.fetch(:user_name))
|
16
26
|
room = Lita::Room.new(serialized.fetch(:room_name))
|
17
27
|
source = Lita::Source.new(user: user, room: room)
|
28
|
+
body = "#{robot.name} #{serialized.fetch(:body)}"
|
18
29
|
|
19
30
|
newmsg = Lita::Message.new(
|
20
31
|
robot,
|
21
|
-
|
32
|
+
body,
|
22
33
|
source
|
23
34
|
)
|
24
35
|
|
25
36
|
robot.receive newmsg
|
26
37
|
end
|
27
38
|
|
28
|
-
def serialize_message(
|
29
|
-
msg = payload.fetch(:message)
|
30
|
-
|
39
|
+
def serialize_message(message, new_body: nil)
|
31
40
|
{
|
32
|
-
user_name:
|
33
|
-
room_name:
|
34
|
-
body:
|
41
|
+
user_name: message.user.name,
|
42
|
+
room_name: message.source.room,
|
43
|
+
body: new_body || message.body
|
35
44
|
}
|
36
45
|
end
|
37
46
|
|
data/lita-task-scheduler.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-task-scheduler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Pritchett
|
@@ -120,7 +120,6 @@ files:
|
|
120
120
|
- README.md
|
121
121
|
- Rakefile
|
122
122
|
- lib/lita-task-scheduler.rb
|
123
|
-
- lib/lita/handlers/.task_scheduler.rb.swp
|
124
123
|
- lib/lita/handlers/task_scheduler.rb
|
125
124
|
- lita-task-scheduler.gemspec
|
126
125
|
- locales/en.yml
|
Binary file
|