jabber_mirror: Clarify the two modes the mirror can run in

(imported from commit 8084e0552b06c6763f2f13a63c90c9dc73d6bf90)
This commit is contained in:
Zev Benjamin 2014-02-26 11:27:00 -05:00
parent e5dca4a1a2
commit e9684a01fd

View file

@ -66,7 +66,7 @@ class JabberToZulipBot(ClientXMPP):
def session_start(self, event): def session_start(self, event):
self.get_roster() self.get_roster()
self.send_presence() self.send_presence()
if options.stream_mirror and options.conference_domain is not None: if options.mode == "public" and options.conference_domain is not None:
for room in self.rooms: for room in self.rooms:
self.plugin['xep_0045'].joinMUC(room + "@" + options.conference_domain, self.plugin['xep_0045'].joinMUC(room + "@" + options.conference_domain,
self.nick) self.nick)
@ -178,9 +178,15 @@ if __name__ == '__main__':
format='%(levelname)-8s %(message)s') format='%(levelname)-8s %(message)s')
parser = optparse.OptionParser() parser = optparse.OptionParser()
parser.add_option('--stream-mirror', parser.add_option('--mode',
default=False, default="personal",
action='store_true') action='store',
help= \
'''Which mode to run in. Valid options are "personal" and "public". In
"personal" mode, the mirror uses an individual users' credentials and mirrors
all messages they send on Zulip to Jabber and all private Jabber messages to
Zulip. In "public" mode, the mirror uses the credentials for a dedicated mirror
user and mirrors messages sent to Jabber rooms to Zulip.'''.replace("\n", " "))
jabber_group = optparse.OptionGroup(parser, "Jabber configuration") jabber_group = optparse.OptionGroup(parser, "Jabber configuration")
jabber_group.add_option('--openfire', jabber_group.add_option('--openfire',
@ -205,12 +211,16 @@ if __name__ == '__main__':
jabber_group.add_option('--conference-domain', jabber_group.add_option('--conference-domain',
default=None, default=None,
action='store', action='store',
help="Your Jabber conference domain (E.g. conference.jabber.example.com)") help="Your Jabber conference domain (E.g. conference.jabber.example.com). "
+ "Only required when running in \"public\" mode.")
parser.add_option_group(jabber_group) parser.add_option_group(jabber_group)
parser.add_option_group(zulip.generate_option_group(parser, "zulip-")) parser.add_option_group(zulip.generate_option_group(parser, "zulip-"))
(options, args) = parser.parse_args() (options, args) = parser.parse_args()
if options.mode not in ('public', 'personal'):
sys.exit("Bad value for --mode: must be one of 'public' or 'personal'")
if options.jabber_password is None: if options.jabber_password is None:
options.jabber_password = getpass.getpass("Jabber password: ") options.jabber_password = getpass.getpass("Jabber password: ")
if options.jabber_domain is None: if options.jabber_domain is None: