diff --git a/usher.py b/usher.py deleted file mode 100644 index dae8f31..0000000 --- a/usher.py +++ /dev/null @@ -1,108 +0,0 @@ -import asyncio -import logging -import slixmpp -from getpass import getpass -from argparse import ArgumentParser -from slixmpp import ClientXMPP - -""" - This bot announces when someone enters or leaves the space. - On line 39, you can edit the message when someone enters by editing what goes after 'mbody="': - mbody="%s has just entered..." % (presence['muc']['nick']), - On line 45, you can edit the message when someone leaves by editing what goes after 'mbody="': - mbody="%s has just left..." % (presence['muc']['nick']), - - To run this bot, type the following command in your terminal: - python3 usher.py -d -j administratorbot@conversejs.org -r botsofconduct@muc.vvvvvvaria.org -n usherbot -p testing -""" - -class MUCBot(slixmpp.ClientXMPP): - - def __init__(self, jid, password, room, nick): - slixmpp.ClientXMPP.__init__(self, jid, password) - self.room = room - self.nick = nick - self.add_event_handler("session_start", self.start) - self.add_event_handler("muc::%s::got_online" % self.room, self.muc_online) - self.add_event_handler("muc::%s::got_offline" % self.room, self.muc_offline) - - def start(self, event): - self.get_roster() - self.send_presence() - self.plugin['xep_0045'].join_muc(self.room, - self.nick, - wait=True) - - def muc_online(self, presence): - if presence['muc']['nick'] != self.nick: - self.send_message(mto=presence['from'].bare, - mbody="%s has just entered..." % (presence['muc']['nick']), - mtype='groupchat') - - def muc_offline(self, presence): - if presence['muc']['nick'] != self.nick: - self.send_message(mto=presence['from'].bare, - mbody="%s has just left..." % (presence['muc']['nick']), - mtype='groupchat') - -if __name__ == '__main__': - # Setup the command line arguments. - parser = ArgumentParser() - - # Output verbosity options. - parser.add_argument("-q", "--quiet", help="set logging to ERROR", - action="store_const", dest="loglevel", - const=logging.ERROR, default=logging.INFO) - parser.add_argument("-d", "--debug", help="set logging to DEBUG", - action="store_const", dest="loglevel", - const=logging.DEBUG, default=logging.INFO) - - # JID and password options. - parser.add_argument("-j", "--jid", dest="jid", - help="JID to use") - parser.add_argument("-p", "--password", dest="password", - help="password to use") - parser.add_argument("-r", "--room", dest="room", - help="MUC room to join") - parser.add_argument("-n", "--nick", dest="nick", - help="MUC nickname") - - args = parser.parse_args() - - # Setup logging. - logging.basicConfig(level=args.loglevel, - format='%(levelname)-8s %(message)s') - - if args.jid is None: - args.jid = input("Username: ") - if args.password is None: - args.password = getpass("Password: ") - if args.room is None: - args.room = input("MUC room: ") - if args.nick is None: - args.nick = input("MUC nickname: ") - - # Setup the MUCBot and register plugins. Note that while plugins may - # have interdependencies, the order in which you register them does - # not matter. - xmpp = MUCBot(args.jid, args.password, args.room, args.nick) - xmpp.register_plugin('xep_0030') # Service Discovery - xmpp.register_plugin('xep_0045') # Multi-User Chat - xmpp.register_plugin('xep_0199') # XMPP Ping - - # Connect to the XMPP server and start processing XMPP stanzas. - xmpp.connect() - xmpp.process() - - -""" - Slixmpp: The Slick XMPP Library - Copyright (C) 2010 Nathanael C. Fritz - This file is part of Slixmpp. - - See the file LICENSE for copying permission. - https://lab.louiz.org/poezio/slixmpp/blob/master/LICENSE - - The code has been modified at various times, by various people. This version was edited for the Collective Conditions work session in Brussels, 2019, by Varia. - http://constantvzw.org/site/-Collective-Conditions,220-.html -"""