lita-ops 1.0.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 +3 -0
- data/README.md +28 -0
- data/Rakefile +6 -0
- data/lib/lita-ops.rb +43 -0
- data/lib/monkeypatches.rb +12 -0
- data/lita-ops.gemspec +25 -0
- data/spec/ops_spec.rb +36 -0
- metadata +152 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 51444e0062f90170550ede1fba41fea2869b6acb
|
4
|
+
data.tar.gz: 6328e5446376681962cdcadaa71da1ed8fa26ef6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8eb96d2efecadee2bf6646f0164944f0116583ba4445d08208f31ff24da36b20d746106d6e78024723faa547bcae91f5c0e6da1a243f1f76d237e0c2136804a7
|
7
|
+
data.tar.gz: 0a87cb7edf47cf95c526c2094a046486fb406566c4eb0740d7a4e59e97a0647a3971f3514b405049e5a14ced376911f83381bf637e00a7ad50e271777062781e
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# lita-ops
|
2
|
+
|
3
|
+
Ops people in your IRC channels.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add lita-ops to your Lita instance's Gemfile:
|
8
|
+
|
9
|
+
``` ruby
|
10
|
+
gem "lita-ops"
|
11
|
+
```
|
12
|
+
|
13
|
+
## Configuration
|
14
|
+
|
15
|
+
### Required attributes
|
16
|
+
|
17
|
+
* `should_be_oped` (Hash) - A hash of channels with an array of user masks as the value. E.g:
|
18
|
+
```
|
19
|
+
config.handlers.ops.should_be_oped = {
|
20
|
+
"#marvintesting" => %w(
|
21
|
+
simmel!simmel@auxww.ps
|
22
|
+
)
|
23
|
+
}
|
24
|
+
```
|
25
|
+
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
Add the config and op your bot and it will op the people you want.
|
data/Rakefile
ADDED
data/lib/lita-ops.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require "lita"
|
2
|
+
require "monkeypatches"
|
3
|
+
|
4
|
+
module Lita
|
5
|
+
module Handlers
|
6
|
+
class Ops < Handler
|
7
|
+
|
8
|
+
config :should_be_oped, type: Hash, required: true
|
9
|
+
|
10
|
+
on(:connected) do |payload|
|
11
|
+
if robot.send(:adapter).class != Lita::Adapters::IRC
|
12
|
+
log.fatal "Only the IRC adapter is supported."
|
13
|
+
exit
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
on :user_joined_room, :op
|
18
|
+
|
19
|
+
def should_be_oped?(channel, nick)
|
20
|
+
if config.should_be_oped.include?(channel)
|
21
|
+
config.should_be_oped[channel].each do |u|
|
22
|
+
if Cinch::Mask.new(u) =~ nick.mask
|
23
|
+
log.debug "#{u} matched!"
|
24
|
+
return true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
return false
|
29
|
+
end
|
30
|
+
|
31
|
+
def op(payload)
|
32
|
+
cinch = robot.send(:adapter).cinch
|
33
|
+
nick = cinch.user_list.find_ensured(payload[:user].name)
|
34
|
+
channel = payload[:room].name
|
35
|
+
|
36
|
+
payload[:room].op(robot, nick) if should_be_oped?(channel, nick)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
Lita.register_handler(Ops)
|
42
|
+
end
|
43
|
+
end
|
data/lita-ops.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "lita-ops"
|
3
|
+
spec.version = "1.0.0"
|
4
|
+
spec.authors = ["Simon Lundström"]
|
5
|
+
spec.email = ["simmel@soy.se"]
|
6
|
+
spec.description = "Give people op on IRC channels automatically"
|
7
|
+
spec.summary = "Op people on IRC automatically"
|
8
|
+
spec.homepage = "https://github.com/simmel/lita-ops/"
|
9
|
+
spec.license = "ISC license"
|
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.4"
|
18
|
+
spec.add_runtime_dependency "lita-irc"
|
19
|
+
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
21
|
+
spec.add_development_dependency "pry-byebug"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "rack-test"
|
24
|
+
spec.add_development_dependency "rspec", ">= 3.0.0"
|
25
|
+
end
|
data/spec/ops_spec.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require "lita-ops"
|
2
|
+
require "lita-irc"
|
3
|
+
require "lita/rspec"
|
4
|
+
|
5
|
+
# A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
|
6
|
+
# was generated with Lita 4, the compatibility mode should be left disabled.
|
7
|
+
Lita.version_3_compatibility_mode = false
|
8
|
+
|
9
|
+
describe Lita::Handlers::Ops, lita_handler: true do
|
10
|
+
|
11
|
+
let(:allowed_nick) { double("Cinch::User", nick: "simmel", mask: Cinch::Mask.new("simmel!~simmel@localhost")) }
|
12
|
+
let(:denied_nick) { double("Cinch::User", nick: "evil", mask: Cinch::Mask.new("evil!~evil@localhost")) }
|
13
|
+
let(:channel) { "#marvintesting" }
|
14
|
+
|
15
|
+
before do
|
16
|
+
registry.configure do |config|
|
17
|
+
config.handlers.ops.should_be_oped = {
|
18
|
+
"#marvintesting" => %w(
|
19
|
+
Lita!~simmel@localhost
|
20
|
+
simmel!~simmel@localhost
|
21
|
+
)
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "#should_be_oped?" do
|
27
|
+
it "allowed user" do
|
28
|
+
expect(subject.should_be_oped?(channel, allowed_nick)).to be true
|
29
|
+
end
|
30
|
+
|
31
|
+
it "denied user" do
|
32
|
+
expect(subject.should_be_oped?(channel, denied_nick)).to be false
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
metadata
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-ops
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Simon Lundström
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-02-13 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.4'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: lita-irc
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry-byebug
|
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: rake
|
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: rack-test
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.0.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.0.0
|
111
|
+
description: Give people op on IRC channels automatically
|
112
|
+
email:
|
113
|
+
- simmel@soy.se
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- ".gitignore"
|
119
|
+
- Gemfile
|
120
|
+
- README.md
|
121
|
+
- Rakefile
|
122
|
+
- lib/lita-ops.rb
|
123
|
+
- lib/monkeypatches.rb
|
124
|
+
- lita-ops.gemspec
|
125
|
+
- spec/ops_spec.rb
|
126
|
+
homepage: https://github.com/simmel/lita-ops/
|
127
|
+
licenses:
|
128
|
+
- ISC license
|
129
|
+
metadata:
|
130
|
+
lita_plugin_type: handler
|
131
|
+
post_install_message:
|
132
|
+
rdoc_options: []
|
133
|
+
require_paths:
|
134
|
+
- lib
|
135
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
requirements: []
|
146
|
+
rubyforge_project:
|
147
|
+
rubygems_version: 2.5.1
|
148
|
+
signing_key:
|
149
|
+
specification_version: 4
|
150
|
+
summary: Op people on IRC automatically
|
151
|
+
test_files:
|
152
|
+
- spec/ops_spec.rb
|