Merge "Allow everyone to issue track moderator commands"
This commit is contained in:
commit
942d41b82d
11
README.rst
11
README.rst
|
@ -16,7 +16,10 @@ with several sections of information:
|
|||
Track moderators commands
|
||||
=========================
|
||||
|
||||
You have to have voice in the channel (+v) to send commands to the ptgbot.
|
||||
By default the bot allows anyone in the channel to issue track moderation
|
||||
commands. However note that it is possible for admins to restrict access
|
||||
to people who have voice in the channel (+v).
|
||||
|
||||
Commands follow the following format::
|
||||
|
||||
#TRACKNAME COMMAND [PARAMETERS]
|
||||
|
@ -133,6 +136,12 @@ You have to be a channel operator (+o) to use admin commands.
|
|||
~reload
|
||||
Resets the database entirely (reloads from configuration)
|
||||
|
||||
~requirevoice
|
||||
Requires that users are voiced (+v) to issue track moderation commands
|
||||
|
||||
~alloweveryone
|
||||
Allows everyone in the channel to issue track moderation commands
|
||||
|
||||
|
||||
Local testing
|
||||
=============
|
||||
|
|
|
@ -110,8 +110,9 @@ class PTGBot(irc.bot.SingleServerIRCBot):
|
|||
chan = e.target
|
||||
|
||||
if msg.startswith('#'):
|
||||
if not (self.channels[chan].is_voiced(nick) or
|
||||
self.channels[chan].is_oper(nick)):
|
||||
if (self.data.is_voice_required() and not
|
||||
(self.channels[chan].is_voiced(nick) or
|
||||
self.channels[chan].is_oper(nick))):
|
||||
self.send(chan, "%s: Need voice to issue commands" % (nick,))
|
||||
return
|
||||
|
||||
|
@ -171,6 +172,10 @@ class PTGBot(irc.bot.SingleServerIRCBot):
|
|||
self.data.unbook(room, timeslot)
|
||||
elif command == 'newday':
|
||||
self.data.new_day_cleanup()
|
||||
elif command == 'requirevoice':
|
||||
self.data.require_voice()
|
||||
elif command == 'alloweveryone':
|
||||
self.data.allow_everyone()
|
||||
elif command == 'list':
|
||||
self.send_track_list(chan)
|
||||
elif command in ('clean', 'add', 'del'):
|
||||
|
|
13
ptgbot/db.py
13
ptgbot/db.py
|
@ -26,7 +26,7 @@ import random
|
|||
class PTGDataBase():
|
||||
|
||||
BASE = {'tracks': [], 'slots': {}, 'now': {}, 'next': {}, 'colors': {},
|
||||
'location': {}, 'scheduled': {}, 'additional': {}}
|
||||
'location': {}, 'scheduled': {}, 'additional': {}, 'voice': 0}
|
||||
|
||||
def __init__(self, config):
|
||||
self.filename = config['db_filename']
|
||||
|
@ -167,6 +167,17 @@ class PTGDataBase():
|
|||
self.data['additional'][room][timeslot] = ""
|
||||
self.save()
|
||||
|
||||
def is_voice_required(self):
|
||||
return self.data['voice'] == 1
|
||||
|
||||
def require_voice(self):
|
||||
self.data['voice'] = 1
|
||||
self.save()
|
||||
|
||||
def allow_everyone(self):
|
||||
self.data['voice'] = 0
|
||||
self.save()
|
||||
|
||||
def new_day_cleanup(self):
|
||||
self.data['now'] = {}
|
||||
self.data['next'] = {}
|
||||
|
|
Loading…
Reference in New Issue