From 6ff2f2acc6e995440f6be414680e426031d71a79 Mon Sep 17 00:00:00 2001 From: mathieui Date: Sat, 5 May 2012 02:08:35 +0200 Subject: Add an "Admin" plug-in that add several shortcuts for room administration --- plugins/admin.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 plugins/admin.py (limited to 'plugins/admin.py') diff --git a/plugins/admin.py b/plugins/admin.py new file mode 100644 index 00000000..8f4e67a7 --- /dev/null +++ b/plugins/admin.py @@ -0,0 +1,51 @@ +from plugin import BasePlugin +from tabs import MucTab + +class Plugin(BasePlugin): + """ + Adds several convenient aliases to /affiliation and /role: + /visitor + /participant + /moderator == /op + /member == /voice + /owner + /admin + /noaffiliation + """ + def init(self): + for role in ['visitor', 'participant' , 'moderator']: + self.add_tab_command(MucTab, role, self.role(role), + '/%s \n%s: Set the role of a nick to %s.' % + (role, role.capitalize(), role), self.complete_nick) + + for aff in ['member', 'owner', 'admin']: + self.add_tab_command(MucTab, aff, self.affiliation(aff), + '/%s \n%s: set the affiliation of a nick to %s' % + (aff, aff.capitalize(), aff), self.complete_nick) + + self.add_tab_command(MucTab, 'noaffiliation', self.affiliation('none'), + '/noaffiliation \nNoAffiliation: set the affiliation of a nick to none.', + self.complete_nick) + self.add_tab_command(MucTab, 'voice', self.affiliation('member'), + '/voice \nVoice: set the affiliation of a nick to member.', + self.complete_nick) + self.add_tab_command(MucTab, 'op', self.role('moderator'), + '/op \nOp: set the role of a nick to moderator.', + self.complete_nick) + + def role(self, role): + return lambda args: self.core.current_tab().command_role(args+' '+role) + + def affiliation(self, affiliation): + return lambda args: self.core.current_tab().command_affiliation( + args+' '+affiliation) + + def complete_nick(self, the_input): + tab = self.core.current_tab() + compare_users = lambda x: x.last_talked + word_list = [user.nick for user in sorted(tab.users, key=compare_users, reverse=True)\ + if user.nick != tab.own_nick] + return the_input.auto_completion(word_list, '') + + + -- cgit v1.2.3