Comments (7)
This should probably depend on SASL support (#6) so we can restrict logins to specific users.
from ergonomadic.
Ugh, sasl is a pain. I'm going to implement this with special command THEATER
, which will work like OPER
.
from ergonomadic.
I recommend following the operator config section:
[theater "name"]
password = <bcrypt>
from ergonomadic.
You may want to have THEATER
use subcommands. e.g.
THEATER IDENTIFY <password>
THEATER PRIVMSG <as-nick> <channel> :<message>
THEATER NOTICE <as-nick> <channel> :<message>
/me
is implemented using CTCP ACTION, so that's the message
part of PRIVMSG
and NOTICE
.
We probably want to set a flag on the channel to indicate it's a theater (+T ) which references the nickname of the bot.
from ergonomadic.
I think it'd be better with <channel>
first (and on IDENTIFY
too):
THEATER IDENTIFY <channel> <password>
THEATER PRIVMSG <channel> <as-nick> :<message>
THEATER NOTICE <channel> <as-nick> :<message>
Here's how I'm thinking this will work:
- on
THEATER IDENTIFY
: if rightpassword
forchannel
and modeT
not set, createchannel
if necessary, set modeT
with this nick, else error. - on
THEATER {PRIVMSG,NOTICE}
: ifchannel
has modeT
with this nick, do it, else error.
On nick QUIT
or disconnect, unset mode T
.
from ergonomadic.
Revised:
- on
THEATER IDENTIFY
: ifchannel
exists, correctpassword
, and modeT
is not set, set modeT
with this user, else error. - on
THEATER {PRIVMSG,NOTICE}
: ifchannel
exists and has modeT
with this user, do it, else error. - on user
QUIT
or disconnect, unset modeT
.
Main differences:
channel
not created if it doesn't exist.user
instead ofnick
referenced in flag so that the user can change his nick without losing theater privs.
from ergonomadic.
Instead of THEATER NOTICE
, THEATER ACTION
.
from ergonomadic.
Related Issues (16)
- subcommands instead of flags
- split up irc/types.go HOT 1
- memory benchmarking HOT 4
- NewChannelName, etc, to distinguish special kinds of strings HOT 2
- supporting large numbers of connections HOT 2
- theater users can't speak over moderation HOT 1
- /mode <user> behavior not per RFC HOT 2
- implement CTCP HOT 4
- WHOIS broken HOT 1
- client goroutine never exits
- crash during whowas due to overflow HOT 1
- implement DCC HOT 1
- implement CAP protocol HOT 1
- implement SASL support HOT 3
- implement wildcards in masks HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ergonomadic.