lita-away 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 +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/README.md +24 -0
- data/Rakefile +6 -0
- data/lib/lita-away.rb +12 -0
- data/lib/lita/handlers/away.rb +45 -0
- data/lita-away.gemspec +24 -0
- data/locales/en.yml +4 -0
- data/spec/lita/handlers/away_spec.rb +4 -0
- data/spec/spec_helper.rb +6 -0
- data/templates/.gitkeep +0 -0
- metadata +144 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 351bdca4d4b85cde32afcf30580dd5893efa63a3
|
4
|
+
data.tar.gz: 489cb9093b751b2f2b1a76352a10be83380b7d3c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f242459ba4d9c09625bef6a5956566510f70c5b8f77d8740a35edd84840d36d28430713f0ae3ab434084891bace736178eecf7079852e6d242f0f20fd5502bb9
|
7
|
+
data.tar.gz: 75fd13625269adeaef23cc8909f116f02d3c81a5e527cf0afe05ee2245d24f2383e5427e87310e5801b77d9c8f3a93b3f532097eeebb7f8f25b76ba9271d40d0
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# lita-away
|
2
|
+
|
3
|
+
**lita-way** is a [lita.io](https://www.lita.io/) handler that saves 'away from keyboard' status messages and informs other users via DM if they @mention a user who is currently afk. Currently very beta. Only known to (sort of) work in Slack.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add lita-away to your Lita instance's Gemfile:
|
8
|
+
|
9
|
+
``` ruby
|
10
|
+
gem "lita-away"
|
11
|
+
```
|
12
|
+
|
13
|
+
## Usage
|
14
|
+
|
15
|
+
Tell your bot you are going to be afk:
|
16
|
+
`@mybot afk Going to grab a burrito`
|
17
|
+
|
18
|
+
Now when anyone mentions you directly, your bot will send a DM to unobtrusively let them know what you are up to. The mention will have to be preceded by an "@" or it will not register.
|
19
|
+
|
20
|
+
When you get back from your errand, delete your status message with `@mybot afk-undo` .
|
21
|
+
|
22
|
+
## License
|
23
|
+
|
24
|
+
[MIT](https://opensource.org/licenses/MIT)
|
data/Rakefile
ADDED
data/lib/lita-away.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require "lita"
|
2
|
+
|
3
|
+
Lita.load_locales Dir[File.expand_path(
|
4
|
+
File.join("..", "..", "locales", "*.yml"), __FILE__
|
5
|
+
)]
|
6
|
+
|
7
|
+
require "lita/handlers/away"
|
8
|
+
|
9
|
+
Lita::Handlers::Away.template_root File.expand_path(
|
10
|
+
File.join("..", "..", "templates"),
|
11
|
+
__FILE__
|
12
|
+
)
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Lita
|
2
|
+
module Handlers
|
3
|
+
class Away < Handler
|
4
|
+
route(/^afk\s+(.+)/, :afk, command: true, help: { "afk STATUS MESSAGE" => "Sets your away from keyboard status." })
|
5
|
+
route(/^afk-undo/, :afk_undo, command: true, help: { "afk-undo" => "Deletes your existing afk status message." })
|
6
|
+
route(/@(\S+)/, :inform_status, command: false, help: {"@USER_NAME" => "If you mention a user who has an afk status, Finley will inform you via DM."})
|
7
|
+
|
8
|
+
def afk(response)
|
9
|
+
new_status = response.matches.flatten.pop
|
10
|
+
previous_status = redis.get(response.user.id)
|
11
|
+
|
12
|
+
if redis.set(response.user.id, new_status)
|
13
|
+
if previous_status
|
14
|
+
response.reply_privately("Your away message is now: '#{new_status}'. Changed from '#{previous_status}'.")
|
15
|
+
else
|
16
|
+
response.reply_privately("Your away message is now: '#{new_status}'")
|
17
|
+
end
|
18
|
+
else
|
19
|
+
response.reply_privately("I couldn't update your status. Try it again?")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def afk_undo(response)
|
24
|
+
if redis.del(response.user.id) > 0
|
25
|
+
response.reply_privately("Your away message has been deleted.")
|
26
|
+
else
|
27
|
+
response.reply_privately("I couldn't find an away message for you.")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def inform_status(response)
|
32
|
+
name = response.matches.flatten.pop
|
33
|
+
user = Lita::User.fuzzy_find(name) || Lita::User.fuzzy_find(name.chop)
|
34
|
+
if user && redis.get(response.user.id)
|
35
|
+
message = redis.get(response.user.id)
|
36
|
+
response.reply_privately("#{user.name} is afk. Away Message: '#{message}'.")
|
37
|
+
else
|
38
|
+
true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
Lita.register_handler(self)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lita-away.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "lita-away"
|
3
|
+
spec.version = "0.1.0"
|
4
|
+
spec.authors = ["Ross Geesman"]
|
5
|
+
spec.email = ["rossgeesman@gmail.com"]
|
6
|
+
spec.description = "afk away message handler for lita.io"
|
7
|
+
spec.summary = "lita-way saves 'away from keyboard' status messages and informs users via DM if they @mention a user who is currently afk."
|
8
|
+
spec.homepage = "http://blog.prettymuchallofthetime.com/"
|
9
|
+
spec.license = "MIT"
|
10
|
+
spec.metadata = { "lita_plugin_type" => "handler" }
|
11
|
+
|
12
|
+
spec.files = `git ls-files`.split($/)
|
13
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
14
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
15
|
+
spec.require_paths = ["lib"]
|
16
|
+
|
17
|
+
spec.add_runtime_dependency "lita", ">= 4.7"
|
18
|
+
|
19
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
20
|
+
spec.add_development_dependency "pry-byebug"
|
21
|
+
spec.add_development_dependency "rake"
|
22
|
+
spec.add_development_dependency "rack-test"
|
23
|
+
spec.add_development_dependency "rspec", ">= 3.0.0"
|
24
|
+
end
|
data/locales/en.yml
ADDED
data/spec/spec_helper.rb
ADDED
data/templates/.gitkeep
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-away
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ross Geesman
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-06-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: lita
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry-byebug
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rack-test
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.0.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 3.0.0
|
97
|
+
description: afk away message handler for lita.io
|
98
|
+
email:
|
99
|
+
- rossgeesman@gmail.com
|
100
|
+
executables: []
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- ".gitignore"
|
105
|
+
- Gemfile
|
106
|
+
- README.md
|
107
|
+
- Rakefile
|
108
|
+
- lib/lita-away.rb
|
109
|
+
- lib/lita/handlers/away.rb
|
110
|
+
- lita-away.gemspec
|
111
|
+
- locales/en.yml
|
112
|
+
- spec/lita/handlers/away_spec.rb
|
113
|
+
- spec/spec_helper.rb
|
114
|
+
- templates/.gitkeep
|
115
|
+
homepage: http://blog.prettymuchallofthetime.com/
|
116
|
+
licenses:
|
117
|
+
- MIT
|
118
|
+
metadata:
|
119
|
+
lita_plugin_type: handler
|
120
|
+
post_install_message:
|
121
|
+
rdoc_options: []
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
requirements: []
|
135
|
+
rubyforge_project:
|
136
|
+
rubygems_version: 2.4.6
|
137
|
+
signing_key:
|
138
|
+
specification_version: 4
|
139
|
+
summary: lita-way saves 'away from keyboard' status messages and informs users via
|
140
|
+
DM if they @mention a user who is currently afk.
|
141
|
+
test_files:
|
142
|
+
- spec/lita/handlers/away_spec.rb
|
143
|
+
- spec/spec_helper.rb
|
144
|
+
has_rdoc:
|