From 39979d31835d3a1c3a16b4ef40d59a9f7894a175 Mon Sep 17 00:00:00 2001 From: Cristina Cochior Date: Mon, 11 Nov 2019 00:24:00 +0100 Subject: [PATCH] small changes in the comments --- gather.py | 18 ++++----- greet.py | 2 +- spark.py | 2 +- usher.py | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++ whisper.py | 2 +- 5 files changed, 120 insertions(+), 12 deletions(-) create mode 100644 usher.py diff --git a/gather.py b/gather.py index bf473b3..7c93743 100644 --- a/gather.py +++ b/gather.py @@ -2,14 +2,14 @@ # -*- coding: utf-8 -*- """ -This bot will add words and expressions to a file. -You can use this code in the chat by calling three different options in the chat: -"@glossary-add word": adds the word "word" in the list -"@glossary-drift": returns a term from the list that was selected by chance -"@glossary-all": returns a list of all the saved expressions. - -To run this bot, type the following command in your terminal: -python3 gather.py -d -j administratorbot@conversejs.org -r botsofconduct@muc.vvvvvvaria.org -n gatherbot -p testing -o . + This bot will add words and expressions to a file. + You can use this code in the chat by calling three different options in the chat: + "@glossary-add word": adds the word "word" in the list + "@glossary-drift": returns a term from the list that was selected by chance + "@glossary-all": returns a list of all the saved expressions. + + To run this bot, type the following command in your terminal: + python3 gather.py -d -j administratorbot@conversejs.org -r botsofconduct@muc.vvvvvvaria.org -n gatherbot -p testing -o . """ import logging @@ -153,6 +153,6 @@ if __name__ == '__main__': See the file LICENSE for copying permission. https://lab.louiz.org/poezio/slixmpp/blob/master/LICENSE - The code has been modified for the Collective Conditions work session in Brussels, 2019, by Cristina Cochior and Joana Chicau. + The code has been modified for the Collective Conditions work session in Brussels, 2019, by Varia. http://constantvzw.org/site/-Collective-Conditions,220-.html """ diff --git a/greet.py b/greet.py index 675519d..116230f 100644 --- a/greet.py +++ b/greet.py @@ -93,6 +93,6 @@ if __name__ == '__main__': See the file LICENSE for copying permission. https://lab.louiz.org/poezio/slixmpp/blob/master/LICENSE - The code has been modified for the Collective Conditions work session in Brussels, 2019, by Cristina Cochior and Joana Chicau. + The code has been modified for the Collective Conditions work session in Brussels, 2019, by Varia. http://constantvzw.org/site/-Collective-Conditions,220-.html """ diff --git a/spark.py b/spark.py index 9f3258a..3bcbfc1 100644 --- a/spark.py +++ b/spark.py @@ -109,6 +109,6 @@ if __name__ == '__main__': See the file LICENSE for copying permission. https://lab.louiz.org/poezio/slixmpp/blob/master/LICENSE - The code has been modified for the Collective Conditions work session in Brussels, 2019, by Cristina Cochior and Joana Chicau. + The code has been modified for the Collective Conditions work session in Brussels, 2019, by Varia. http://constantvzw.org/site/-Collective-Conditions,220-.html """ diff --git a/usher.py b/usher.py new file mode 100644 index 0000000..dae8f31 --- /dev/null +++ b/usher.py @@ -0,0 +1,108 @@ +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 +""" diff --git a/whisper.py b/whisper.py index af8855b..8741fb3 100644 --- a/whisper.py +++ b/whisper.py @@ -97,6 +97,6 @@ if __name__ == '__main__': See the file LICENSE for copying permission. https://lab.louiz.org/poezio/slixmpp/blob/master/LICENSE - The code has been modified for the Collective Conditions work session in Brussels, 2019, by Cristina Cochior and Joana Chicau. + The code has been modified for the Collective Conditions work session in Brussels, 2019, by Varia. http://constantvzw.org/site/-Collective-Conditions,220-.html """