Browse Source

Merge "Allow everyone to issue track moderator commands"

changes/46/544346/1
Zuul 4 years ago
committed by Gerrit Code Review
parent
commit
942d41b82d
  1. 11
      README.rst
  2. 9
      ptgbot/bot.py
  3. 13
      ptgbot/db.py

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
=============

9
ptgbot/bot.py

@ -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

@ -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…
Cancel
Save