Commit graph

207 commits

Author SHA1 Message Date
neiljp (Neil Pilgrim) 1d01308caf matrix tests: Add test for writing sample config using zuliprc. 2018-08-08 17:26:15 -07:00
neiljp (Neil Pilgrim) 8999f0a352 matrix bridge: Separate print output from sys.exit calls.
This appears to be necessary for acquiring the text for testing.
2018-08-08 17:26:15 -07:00
neiljp (Neil Pilgrim) 71b405e95d zulip bridge: Use python instead of python3 in script.
This script moved from the bots package to the API package, and does not
explicitly require python3.
2018-08-08 17:26:15 -07:00
neiljp (Neil Pilgrim) 617e16cebb bridges: Bring inter-realm (zulip) bridge into zulip/ & rename others. 2018-08-08 17:26:15 -07:00
neiljp (Neil Pilgrim) ec9f72f516 matrix bridge: Add optional from-zuliprc to use with write-sample-config.
If specified, the new option uses the information to pre-populate the
sample configuration file.
2018-08-08 17:26:15 -07:00
neiljp (Neil Pilgrim) 8b4f23d6aa matrix tests: Add test for zulip-to-matrix messages. 2018-08-03 16:16:40 -07:00
neiljp (Neil Pilgrim) 4b50ea2569 matrix tests: Refactor zulip message validity tests. 2018-08-03 16:16:40 -07:00
neiljp (Neil Pilgrim) 02799315ea matrix tests: Add zulip message validity failure tests. 2018-08-03 16:16:40 -07:00
neiljp (Neil Pilgrim) 1e7b5ee5f2 matrix tests: Add zulip message validity success test. 2018-08-03 16:16:40 -07:00
neiljp (Neil Pilgrim) e693c25abc matrix tests: Add test for sample config generation. 2018-08-03 16:16:40 -07:00
neiljp (Neil Pilgrim) c692c4712a matrix tests: Refactor running script into helper function. 2018-08-03 16:16:40 -07:00
neiljp (Neil Pilgrim) fd66eb61c7 matrix tests: Add minimal help test for no-args and with -h. 2018-08-03 16:16:40 -07:00
neiljp (Neil Pilgrim) 97b2a12d21 matrix bridge: Adjust to python2-compatible type annotations. 2018-06-04 15:55:14 -07:00
neiljp (Neil Pilgrim) 2703d4c720 matrix bridge: Update & improve README.md. 2018-06-04 15:55:14 -07:00
neiljp (Neil Pilgrim) 43e80b42da matrix bridge: Add write-sample-config option & remove sample config. 2018-06-04 15:55:14 -07:00
neiljp (Neil Pilgrim) 78c64d069b matrix bridge: Add description of script & some useful tips. 2018-06-04 15:55:14 -07:00
neiljp (Neil Pilgrim) 70ba4c9035 matrix bridge: Improve error handling by exception translation.
Also:
* introduces two internal Bridge_*Exception classes.
* import matrix_client.errors instead of matrix_client.api.
2018-06-04 15:55:14 -07:00
neiljp (Neil Pilgrim) a6e39509d9 matrix bridge: Improve join/leave option.
Original '--no-noise' option had a parameter and did not disable;
new parameter is '--enable-join-leave', and sets same option for
compatibility.
2018-06-04 15:55:14 -07:00
neiljp (Neil Pilgrim) d45b43a9b1 matrix bridge: Configure using config(parser) file instead of python module. 2018-06-04 15:55:14 -07:00
neiljp (Neil Pilgrim) 363720e908 matrix bridge: Add main() function to enable installation. 2018-06-02 09:26:40 -07:00
Tim Abbott 9e6b4edee6 integrations: Remove slack import script.
This was migrated to the Zulip server project some time ago.
2018-05-30 16:10:22 -07:00
novokrest 7a95c31162 mercurial: Rename hook file to zulip_changegroup.py.
Rename hook file from 'zulip-changegroup.py'
to 'zulip_changegroup.py' for importing as module.
2018-05-29 11:45:56 -07:00
novokrest 9b9070808f mercurial: Update changegroup hook according to new mercurial API.
Fixes #322
2018-05-29 11:45:56 -07:00
Tim Abbott 6ca216024f matrix: Fix typo in requirements.txt. 2018-05-29 11:05:01 -07:00
Tim Abbott efcdc712bf matrix: Edit matrix.org README further.
The README is still pretty rough, but this cleans it up a bit.
2018-05-22 14:01:24 -07:00
Rhea Parekh 4c9134815c Matrix: Make minor changes to README.md and config. 2018-05-22 14:01:24 -07:00
Rhea Parekh afb964b65a Matrix: Add command line flag to ignore join/leave events.
Add command line flag 'no_noise' (which is true by default)
to ignore join/leave events. User can enable those events
by pass 'no_noise' as false.
2018-05-22 14:01:24 -07:00
Rhea Parekh 8e1274f555 Matrix: Change naming convention. 2018-05-22 14:01:24 -07:00
Rhea Parekh bb39ce981d Matrix: Refactor function 'matrix_to_zulip' 2018-05-16 11:12:00 -07:00
Rhea Parekh c467b5fd03 Matrix: Handle login and joining room errors. 2018-05-16 11:12:00 -07:00
Rhea Parekh 9362755039 Matrix: Add more messages events and handle errors. 2018-05-16 11:12:00 -07:00
Rhea Parekh 979c0e50d6 Matrix: Update documentation and add requirements.txt. 2018-05-16 11:12:00 -07:00
rht e56a94c853 Dig a tunnel to matrix. 2018-05-07 09:07:36 -07:00
Eeshan Garg 5f20512601 integrations/git: Allow users to specify a stream for notifications.
Previously, all notifications went to "commits", now users can
modify the constant at the top to change that.
2018-04-23 18:38:16 -02:30
Eeshan Garg fa759fc97c integrations/trello: Improve the Trello script.
This commit makes a bunch of improvements:

1. Use format() for string formatting instead of the old style.
2. Stop returning stuff where we don't have to.
3. URL generation should not be done by the script, especially
   since our eventual goal is for the Zulip server to automatically
   generate a webhook URL. So the user should be able to supply
   the URL in the config file. Plus, this makes it easier to test
   the script with non-Zulip URLs (such as RequestBin).
4. Removed unnecessary arguments.
2018-04-03 21:52:10 -02:30
JazZ 2f4b276799 Add Trello integration script
This is a small Python script to create Trello Webhooks for Zulip.

It builds and sends the Trello API requests required to create the
Trello webhook.
2018-03-29 15:24:14 -04:00
XavierCooney 68ec3a5ef0 zephyr_mirror_backend.py: Remove duplicate import. 2018-01-16 08:07:09 -05:00
neiljp (Neil Pilgrim) d3220eefe7 Jabber: Report where Zulip config not found, clarifying typing. 2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim) b5c3442b57 mypy: Remove explicit typing & add assertions in jabber backend.
Usage indicates set_jabber_client must be called before using
JabberToZulipBot, so assertions express intent & satisfy mypy.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim) aa718da3e1 Zephyr: For correctness & mypy, res.get('result') -> res['result'].
Also correct nearby error message (subscribing to -> receiving).
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim) 02d9ba8edd mypy: Add cast for zephyr_mirror_backend logger variable. 2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim) 466f5a7167 mypy: Amend zephyr mirror annotations for strict-optional. 2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim) 2b172e08c7 mypy: Correct SVN integration & satisfy strict-optional typing.
The commit_notice_destination return value was previously not
checked against None, which indicates no message should be sent.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim) 9502e0eb9a hg integration: Use explicit sys.exit. 2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim) 55df1886cc mypy: Amend hg integration to simplify error handling/typing. 2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim) fc460dc12b mypy: Rewrite trac integration for clarity & to pass strict-optional. 2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim) 33ccc04a32 mypy: Amend code & typing of integrations, to pass with strict-optional. 2018-01-02 14:05:33 -05:00
Rhea Parekh 27842b2d24 slack importer: Add README.md. 2017-12-27 07:54:42 -05:00
Rhea Parekh 0bb50fdc4e slack importer: Shift the slack data conversion files to zulip server repo. 2017-12-27 07:54:42 -05:00
neiljp (Neil Pilgrim) 28687f18ca mypy: Add --disallow-any=generics & extend typing accordingly.
Also reset typing of ExternalBotHandler to Any after discussion.
2017-12-11 20:14:00 -06:00
Rhea Parekh e5726fdc96 slack: fix type annonations. 2017-12-03 10:30:02 -08:00
Rhea Parekh 1f17c04115 slack: remove the messages and attachments mapping. 2017-12-03 10:30:02 -08:00
Rhea Parekh 455acb8e3b slack: Make minor fixes in zerver_userprofile and zerver_realm mappings. 2017-12-03 10:30:02 -08:00
Rhea Parekh 8def7564dd slack: Map recipients and subscriptions for private messages. 2017-12-03 10:30:02 -08:00
rht cb1cafe194 slack: Add attachment.json skeleton.
Map the attachments but disable attachments
them for now.
2017-12-03 10:30:02 -08:00
rht b7ab8b4257 slack: Add avatar and uploads records.json. 2017-12-03 10:30:02 -08:00
rht 9ce064b2c1 slack: Do minor fixes.
Minor fixes in zerver_userprofile mapping.
Remove TODO from REALM_ID task.
2017-12-03 10:30:02 -08:00
Rhea Parekh 7198aab1a9 slack: Fix zerver_message, zerver_defaultstream
and refactor zerver_usermessage implementation.
2017-12-03 10:30:02 -08:00
rht 6366448903 slack: Add minor changes.
Rename the function channelmessage2zerver_message to channelmessage2zerver_message_for_one_stream.

Compress the converted data with tar instead of zip.

Add changes in zerver_userprofile mapping and zerver_realm mappings.

Do the manage.py import from a directory instead.
2017-12-03 10:30:02 -08:00
Rhea Parekh 716570ceaa slack: Add zerver_usermessage object and map flags_mask 2017-12-03 10:30:02 -08:00
rht b3a7a4f937 Slack: Add zerver_defaultstream feature.
Thanks to @rheaparekh for pointing out the doc for sanity check ;)
2017-12-03 10:30:02 -08:00
rht 46fd234824 slack: Clarify var naming of sanitize text function. 2017-12-03 10:30:02 -08:00
Rhea Parekh ce51d99c6a slack: Sanitize the message text and fix Travis test. 2017-12-03 10:30:02 -08:00
rht 7db4e36752 slack: Add minor changes.
Set default value to be False for message's has_image

Update type signature to functions.

Set default to be false for msg's has_link.
2017-12-03 10:30:02 -08:00
Rhea Parekh a02f0f98c1 slack: Map recipient and fix subscription mapping. 2017-12-03 10:30:02 -08:00
rht 704b742f82 slack: Handle avatar from slack if it is stored in gravatar.
Thank you @**Rhea** for the research.
2017-12-03 10:30:02 -08:00
rht cd3db24bca Add slack data importer.
This importer is more comprehensive than the existing one.

slack import: Reduce TODO count.
2017-12-03 10:30:02 -08:00
neiljp (Neil Pilgrim) 9ed0fa9e6f mypy: Remove unnecessary 'type: ignore' in google calendar. 2017-11-15 13:43:08 -08:00
neiljp (Neil Pilgrim) 3e55124f4e mypy: Remove 'type: ignore's now that python/mypy#1248 is fixed. 2017-11-15 13:43:08 -08:00
derAnfaenger c6aed00aa1 integrations: Make twitter bot handle search terms more intelligently.
When invoked with search terms, twitter bot looks for these terms
in the content of a message to find out if they match. However,
Twitter can return messages that don't directly contain a search term.
This commit adds the tweeter user handle and expanded urls to the
places to look for a search term.
2017-11-07 11:13:29 -08:00
derAnfaenger 2553cf45a5 integrations: Use default client init from options for twitter bot.
This allows users to specify a config file with the
--config-file option.
2017-11-07 11:13:29 -08:00
derAnfaenger 7e7c7598b7 integrations: Add requirements for twitter bot. 2017-11-07 11:13:29 -08:00
Alena Volkova 671a078137 mypy: zulip: Fix errors in integrations/zephyr/process_ccache. 2017-10-27 00:56:06 -04:00
Alena Volkova 8becce7c98 mypy: zulip: Annotate integrations/svn/zulip_svn_config.py. 2017-10-27 00:56:06 -04:00
Alena Volkova ab192fe937 mypy: zulip: Annotate integrations/perforce/zulip_perforce_config.py. 2017-10-27 00:56:06 -04:00
Alena Volkova 7ad3324aaa mypy: zulip: Fix errors in integrations/log2zulip/log2zulip. 2017-10-27 00:55:54 -04:00
Alena Volkova 995dc33334 mypy: zulip: Fix errors in integrations/irc/irc_mirror_backend.py. 2017-10-26 17:02:14 -04:00
Alena Volkova af957c18fe mypy: zulip: Annotate integrations/git/zulip_git_config.py. 2017-10-26 17:02:14 -04:00
Tim Abbott 297b62efc6 log2zulip: Use simpler code for accessing production venv.
The only problem with this resulting code is that setup_path_on_import
only works if the Python versions are the same, so you need to run
this with Python 3 in that case.

We try to resolve that for use on Zulip servers with
zulip/zulip:47c5aae5b242fb6d2f5e860602e0fc0af68419bb; since that's the
main case where the code path runs, that should be good enough.
2017-10-06 16:37:56 -07:00
Tim Abbott dc2132e629 zephyr_mirror: Eliminate --root-path arguments.
These were quite messy code, and now that almost nobody is running
their own zephyr mirroring script (vs. using webathena), making the
zephyr mirroring script deployable outside the package isn't super
valuable.
2017-10-05 13:24:59 -07:00
Tim Abbott 963e6d0ad8 zephyr_mirror: Always run backend script from current directory.
While this technically removes functionality, it's rare that it would
be useful to do this.
2017-10-05 13:17:10 -07:00
Tim Abbott 96f2100974 zephyr: Remove root-path import nonsense from check-mirroring.
We no longer need this in order to access the script's dependencies,
since it now is part of a proper package.
2017-10-05 13:02:58 -07:00
Tim Abbott bc4e54a35d zephyr_mirror: Restart self using __file__, not root-path.
This should do the same thing, but with less complexity.
2017-10-05 12:46:01 -07:00
Tim Abbott 7e5a320343 zephyr_mirror: Move stamp_path to not be based on root_path. 2017-10-05 12:37:49 -07:00
Tim Abbott 6395dc1a45 zephyr_mirror: Update process_cache for repository move.
This also has the side effect of stopping using the --root-path
argument, which should no longer be required.
2017-10-05 12:21:11 -07:00
Tim Abbott 807afd2032 zephyr: Use add_default_arguments in sync_public_streams. 2017-09-29 16:21:18 -07:00
Tim Abbott baa09bc26c log2zulip: Clean up extra config path and add comments.
That extra complexity isn't particularly valuable.
2017-09-15 07:04:36 -07:00
derAnfaenger b53dc5de4c log2zulip: Make paths Windows compatible. 2017-09-15 07:04:36 -07:00
derAnfaenger 761d4f44c1 log2zulip: Use default argparser. 2017-09-15 07:04:36 -07:00
derAnfaenger 6630deda6a twitter bots: Merge twitter-bot and twitter-search-bot. 2017-09-15 00:55:01 -07:00
derAnfaenger 631c64ca6c zulip: Move from simplejson to json.
This removes the simplejson dependency.
2017-09-14 02:26:56 -07:00
derAnfaenger d05e932968 log2zulip: Replace ujson with json. 2017-09-12 02:14:51 -07:00
derAnfaenger cb770ffee9 irc-mirror.py: Allow optional provisioning.
To do so, we need to import all required internal modules after the
script had the option to provision. The provisioning itself is then
done by zulip.init_from_options().
2017-09-12 01:39:21 -07:00
derAnfaenger 61b609e6f2 irc integration: Make IRCBot a separate module.
This will allow us to import IRCBot at a later point
in the code, necessary for provsioning support.
2017-09-12 01:39:21 -07:00
derAnfaenger 9acd9d932c irc-mirror.py: Make zulip_client an argument of IRCBot.
This is the first step towards moving IRCBot to a
separate file.
2017-09-12 01:39:21 -07:00
derAnfaenger 50d8c5f7fe zulip package: Add requirements.txt for each integration. 2017-09-12 01:39:21 -07:00
Tim Abbott bbed4a625d log2zulip: Fix an extremely long line. 2017-08-30 10:01:48 -07:00
Greg Price 49fb205ae7 log2zulip: Fix to work on Python 3.
I'm not thrilled with the `replace` error handler losing information
if the logfile contains invalid UTF-8 for some reason; but that sure
beats a UnicodeDecodeError, and for this script I can't quite be
bothered to run the rather tricky riddle trail that Python 3 makes it
to pass arbitrary byte data through layers of ordinary text processing.
2017-08-30 09:57:57 -07:00
derAnfaenger 86729a862c api: Remove unnecessary API key details.
Fixes #1.
2017-08-29 14:24:19 -07:00
derAnfaenger 26a774503b twitter bots: Write internal config to separate file.
Tweaked by tabbott to remove duplicate write_config lines.

Fixes #88.
2017-08-27 19:27:13 -07:00
Tim Abbott 9c18c0b4ed twitter: Fix buggy handling of config_file in Python 3.
This fixes the most broken part of #88.
2017-08-22 17:20:54 -07:00
Eeshan Garg 09060afcab integrations/rss: Upgrade to argparse. 2017-08-03 12:34:26 -07:00
Eeshan Garg c4480311d7 integrations/nagios: Upgrade to argparse. 2017-08-02 00:58:55 -02:30
Eeshan Garg 18a73324a9 integrations/twitter: Upgrade to argparse. 2017-08-02 00:51:25 -02:30
Eeshan Garg 3b04b55ffd integrations/irc: Upgrade to argparse. 2017-08-01 19:09:08 -02:30
Eeshan Garg 780ccb392e integrations/google: Upgrade to argparse. 2017-08-01 19:08:58 -02:30
Eeshan Garg 3d0f7955b6 api: Move the API package to a dedicated subdirectory.
In order to keep all three packages (zulip, zulip_bots,
zulip_botserver) in the same repo, all package files must now
be nested one level deeper.

For instance, python-zulip-api/zulip_bots/zulip_bots/bots/, instead
of python-zulip-api/zulip_bots/bots/.
2017-07-18 02:20:32 -02:30