Commit Graph

44 Commits

Author SHA1 Message Date
Zev Benjamin 2090d6ee27 jabber_mirror: Calculate the zulip domain from the client email address
We were previously calculating it from the zulip_email option, which might not
be set if it is being specified via the config file.

(imported from commit 76866c239ca63ef90a7967c9a6027aeec9be6390)
2014-03-06 21:59:55 -05:00
Zev Benjamin 30f9fed766 jabber_mirror: Report a useful error message when fetching initial Zulip streams/subscriptions
(imported from commit 1133cb0ddb349cda7e16586fba4ba72888e66887)
2014-03-04 23:02:27 -05:00
Zev Benjamin f495f79c90 jabber_mirror: Fix Zulip error handling
(imported from commit 8548576635e5be9b725e059c2d4d9ef9953ec97a)
2014-03-04 23:02:27 -05:00
Zev Benjamin 4721a9093c jabber_mirror: Add option to append a suffix to Zulip usernames
This is needed for the ist.mit.edu realm, where the same email address could be
used for all three of Zulip, Jabber, and Zephyr.  To disambiguate Jabber mirror
dummy users from Zephyr mirror dummy users with the same email address (but
which would be in a different realm), we force all email addresses in the
ist.mit.edu realm to have local parts that end in "+ist".

(imported from commit 5ebad2cc8f6c7286b4b9426d57ed75578703fb86)
2014-03-04 23:02:27 -05:00
Zev Benjamin 9f4bc9fb72 jabber_mirror: Remove dead code
(imported from commit b67faad6888713554929c7e6a8147d19c489956a)
2014-03-04 23:02:27 -05:00
Zev Benjamin 2a3a98228e jabber_mirror: Allow the mode to be specified in the config file
(imported from commit 8de5006f6935271997204d958c44c03ebf14c403)
2014-03-04 23:02:27 -05:00
Zev Benjamin d069ad0bc7 jabber_mirror: Remove --openfire option
It doesn't actually seem to be necessary to adjust the SSL version in current
versions of Openfire.

(imported from commit 6766d9fd5081cf16f2a5e3e2b008f20e7498caa4)
2014-03-04 23:02:27 -05:00
Zev Benjamin 137f5e5980 jabber_mirror: Allow the MUC nickname to be specified
This allows users to run the public mirror as a regular user.

(imported from commit 3512dacf329dadc784d7be492ad290b17082bad4)
2014-03-04 23:02:27 -05:00
Zev Benjamin 11fef6b627 jabber_mirror: Change the default resource to 'zulip'
(imported from commit 290dca7fce5230dc94425478ad48fb8b8a0952b6)
2014-03-04 23:02:26 -05:00
Zev Benjamin 6b4fe69227 jabber_mirror: Guess the conference domain when it isn't specified
(imported from commit 3fed4bdf5ca73b3b9d58ec42a2031e75e813bbd2)
2014-03-04 23:02:26 -05:00
Zev Benjamin 9b41b30487 jabber_mirror: Use sleekxmpp.JID when manipulating message recipients
(imported from commit 57b8384bf79a60abbaf535bd11f222d7f63db251)
2014-03-04 23:02:26 -05:00
Zev Benjamin 868b071eb2 jabber_mirror: Take a JID on the commandline instead of a separate Jabber username and domain
We also take the opportunity to use the sleekxmpp JID parsing more instead of
doing string manipulation.

(imported from commit 6e4ba0bd2c241666fcde42333ff68b879d8ab2b7)
2014-03-04 23:02:26 -05:00
Zev Benjamin 28a6644384 jabber_mirror: Allow Jabber options to be specified in the Zulip config file
(imported from commit 7911fdd4c8a2e8668c01627697a3cd8a153d4612)
2014-03-03 17:30:58 -05:00
Zev Benjamin 66734d46cf jabber_mirror: Clean up help text
(imported from commit bd9a4682c754423047a993b8914d965c2e12fdf4)
2014-03-03 17:30:58 -05:00
Zev Benjamin dfed7f0b7e jabber_mirror: Ignore attempts to join invalid MUCs
(imported from commit a82d53af1f581d059b6457a1bf7afe92af5d42d9)
2014-03-03 17:30:58 -05:00
Zev Benjamin 47f96dc2dd jabber_mirror: Configure rooms after joining
(imported from commit d4c6e895dca1c7002ce39db81b671ba1c975d517)
2014-03-03 17:30:58 -05:00
Zev Benjamin 38212f83fc jabber_mirror: Don't try to mirror messages from rooms themselves
These are usually administrative messages.

(imported from commit 58cbbc739fdd47acc586c235aedd2fccc83654fd)
2014-03-03 17:30:58 -05:00
Zev Benjamin b21dc34eed jabber_mirror: Change character used for loop detection
Previously, we were using U+1B80, which is 'SUNDANESE SIGN PANYECEK' (i.e., an
assigned character).  U+1FFFE is a non-character (i.e., free for internal use)
on Plane 1.

(imported from commit f93d2401733afb96b6d717a7f659c011299071df)
2014-03-03 17:30:58 -05:00
Zev Benjamin 9634fccda7 jabber_mirror: Dynamically join and leave MUCs
For personal mirrors, this means that the mirror should join all Jabber rooms
corresponding to their Zulip subscriptions.  For the public mirror, this means
that the mirror should join all Jabber rooms corresponding to Zulip streams that
end in "/xmpp".

(imported from commit 16ed9e3deee7e02b2ae0dd79925f0ed5c4acd044)
2014-03-03 17:30:58 -05:00
Zev Benjamin 9c52818b93 jabber_mirror: Pull rooms to join from Zulip based on mode
(imported from commit 115d4d4732d8ff4f12d336cfc42a056183251d87)
2014-03-03 17:29:53 -05:00
Zev Benjamin b23dc256e4 jabber_mirror: Document which mode handles which kinds of messages
(imported from commit 983224ac58bce724529806f6b8eaa3ea30cc730b)
2014-03-03 17:29:53 -05:00
Zev Benjamin 204e7e7e90 jabber_mirror: Only mirror messages from streams that end in '/xmpp'
(imported from commit 5213d40063361ffcf073772580ac0f699228cb3f)
2014-03-03 17:29:53 -05:00
Zev Benjamin 0e3af9b238 jabber_mirror: Mirror Jabber room 'foo' to stream 'foo/xmpp'
(imported from commit db771b5b5056cdca5780b90f66924c6f9ae3e84d)
2014-03-03 17:29:53 -05:00
Zev Benjamin 3fbdfeee88 jabber_mirror: Use new-style client name
(imported from commit a1bc5b076a9c0384c1abdc2377183b0eac19f450)
2014-03-03 17:29:53 -05:00
Zev Benjamin 8155b8ea04 jabber_mirror: Add --debug option
(imported from commit 8d6986ba97f464359a1fe214d5605fa744660a9b)
2014-03-03 17:29:53 -05:00
Zev Benjamin 2850800e48 jabber_mirror: Exit if we fail to connect to the Jabber server
(imported from commit f5cc600325a3547412cf0b05239c988410354c10)
2014-03-03 17:29:53 -05:00
Zev Benjamin 0dd209c813 jabber_mirror: Respond to XMPP pings
Other clients like Pidgin sends these.

(imported from commit 61c69a080accda939b82ce8701b10ffc6dda672e)
2014-03-03 17:29:53 -05:00
Zev Benjamin 802bd6448c jabber_mirror: Working PM mirroring
(imported from commit 34617f989e83029c6591461adc3ffa18ddea2037)
2014-03-03 17:29:53 -05:00
Zev Benjamin 577d8d33e1 jabber_mirror: Working room/stream mirroring
(imported from commit 5d0a33423e90edaee3a1094b1d48fae73cfb54ca)
2014-03-03 17:29:53 -05:00
Zev Benjamin 2ca49c3735 jabber_mirror: Require the --conference-domain option when running in 'public' mode
(imported from commit 1dd564a212538e292ffc8b7a52caf7eae66d4475)
2014-03-03 17:29:53 -05:00
Zev Benjamin 40dd0c677e jabber_mirror: Clarify the two modes the mirror can run in
(imported from commit 8084e0552b06c6763f2f13a63c90c9dc73d6bf90)
2014-03-03 17:29:53 -05:00
Zev Benjamin cd1e07fed3 jabber_mirror: Take the Jabber username as a separate option
(imported from commit 86131c7502df7b841c34b09c0e94b071c89b3fde)
2014-03-03 17:29:52 -05:00
Zev Benjamin e8843be3d0 jabber_mirror: Use zulip.init_from_options
(imported from commit 5839c5308a948d2c060d1eb5688b9cf0bd9ed3a2)
2014-03-03 17:29:52 -05:00
Zev Benjamin 8a16ea4cc6 jabber_mirror: Separate Jabber options into their own group
(imported from commit 223ecceee956ab30b1647eb0925d11982b2ef37d)
2014-03-03 17:29:52 -05:00
Zev Benjamin 4d47f487cb jabber_mirror: Use the Zulip API option group
(imported from commit 68243e4ebd44cd3b08bf0789c34bb85016d0d1b9)
2014-03-03 17:29:52 -05:00
Zev Benjamin fbe67f5d84 jabber_mirror: Use consistent casing for commandline arguments
(imported from commit e30aedc2f626d64b79a9b36b7f3a0fbee84a8ada)
2014-03-03 17:29:52 -05:00
Zev Benjamin 8bb359d194 jabber_mirror: Remove dead code
(imported from commit a8802340e1a624934a92d5bdd4ba8ad26faaadbf)
2014-03-03 17:29:52 -05:00
Zev Benjamin 52d6973191 jabber_mirror: Fix anti-looping
(imported from commit 5b0ee18b3ec4fd73912fde83b14083e77940ab6e)
2014-03-03 17:29:52 -05:00
Zev Benjamin f6cec22e6d jabber_mirror: Do domain replacement more safely
(imported from commit 1a6a3d23120f06d54bc954d4e89d5fccf666332e)
2014-03-03 17:29:52 -05:00
Zev Benjamin 2aeb5dde67 jabber_mirror: Use str.replace instead of re.sub
(imported from commit 55798a06951366f0c3d246a243dbb3d41ee5b4f7)
2014-03-03 17:29:52 -05:00
Zev Benjamin 151370277c jabber_mirror: Use consistent method name casing
(imported from commit 0f68b94bab992ba20aa7c185fa40eafeea22f92e)
2014-03-03 17:29:52 -05:00
Zev Benjamin adcec427b6 jabber_mirror: Factor out jid_to_zulip and use str.rpartition
(imported from commit 435f076d7125676b5b964c73ec1e3753496c32af)
2014-03-03 17:29:52 -05:00
Zev Benjamin f7518ea853 jabber_mirror: Make copyright date clearer
(imported from commit a97382d174994be0592fbd98cdef1ed39c1b0400)
2014-03-03 17:29:51 -05:00
Tim Abbott 2ac428ad7d Add Jabber mirroring bot.
(imported from commit a539e1e9322bfbef4d93efce951f058d09fc58fe)
2014-03-03 17:29:51 -05:00