Commit graph

502 commits

Author SHA1 Message Date
Anders Kaseorg 953709fdd5 log2zulip: Adjust for zulip setup_path_on_import → setup_path change.
687553a661

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Kartik Srivastava f9d6c085a1 api: Implement POST /default_streams api endpoint. 2020-04-18 15:05:53 -07:00
akashaviator ef730b2c1b api: Implement GET /messages/matches_narrow endpoint. 2020-04-18 15:05:36 -07:00
Anders Kaseorg d68437d5f5 Rewrite some strings using raw string syntax.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 15:04:36 -07:00
Anders Kaseorg e30b3b094b Modernize legacy Python 2 syntax with pyupgrade.
Generated by `pyupgrade --py3-plus --keep-percent-format` followed by
manual indentation fixes.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 15:04:36 -07:00
Eeshan Garg 543eb396b9 zulip/README: Specify the required Python version.
We recently dropped support for Python versions less than 3.5.
Since the README is also used as the project description on our
PyPI homepage, we need to be more explicit about what version of
Python our bindings require.
2020-04-16 19:35:54 -07:00
Eeshan Garg dd201926fa pypi_packages: Use README files for long descriptions. 2020-04-16 19:35:54 -07:00
Eeshan Garg c55bf78c6b pypi: Specify the correct license classifier for all packages. 2020-04-16 19:35:54 -07:00
Kartik Srivastava 04e43b95bc api: Implement /users/{user_id}/reactivate api endpoint. 2020-04-15 17:18:00 -07:00
akashaviator 59b025d2e4 api: Implement PATCH /users/{user_id} endpoint. 2020-04-09 17:17:59 -07:00
Kartik Srivastava ed706c24ce api: Implement GET /realm/presence endpoint. 2020-04-09 17:17:29 -07:00
Kartik Srivastava 8b0fa6bfee
api: Implement GET /attachments endpoint. 2020-04-07 16:44:49 -07:00
rht f47559e68d bridge_between_zulips: Replace "subject" with "topic" in doc. 2020-04-07 16:20:19 -07:00
rht ceda54b50c bridge_between_zulips: Add explanation of --stream to README.md. 2020-04-07 16:20:19 -07:00
Kartik Srivastava 6dd52439bf
api: Implement DELETE /users/{user_id} api endpoint. 2020-04-07 16:12:59 -07:00
Kartik Srivastava 8d7eb0fea3
api: Refactor get_user_by_id to take keyword arguments.
This refactors get_user_by_id to take arguments like
`include_custom_profile_fields = True` instead of
{include_custom_profile_fields: True}.
2020-04-07 16:12:11 -07:00
rht d7c52c9a74 zulip/zulip/__init__.py: Remove shebang and add version assertion. 2020-04-05 07:28:13 -04:00
rht aee73b32e0 zulip/setup.py: Remove Python 2 from supported versions. 2020-04-03 08:18:08 -04:00
rht 439c096eac Remove all remaining six imports. 2020-04-03 08:18:08 -04:00
rht 565106b880 test_default_arguments: Add explicit python3 shebang. 2020-04-03 08:18:08 -04:00
rht f34540d26d Add explicit python3 shebang to __init__.py. 2020-04-03 08:18:08 -04:00
rht 4600ce59a3 Remove all remaining from __future__ imports. 2020-04-03 08:18:08 -04:00
rht 204871b518 Finish the remaining migration of shebang to python3. 2020-04-03 08:18:08 -04:00
rht 9ee8461b9d bridges: Remove sender field from message data.
For the reason why, see
https://chat.zulip.org/#narrow/stream/127-integrations/topic/bridge.20between.20zulips
2020-04-03 06:19:22 -04:00
rht 46c78ce7b5 integrations: Remove usage of six. 2020-04-02 13:02:28 -04:00
rht 1412403037 integrations: Remove from __future__ imports. 2020-04-02 13:02:28 -04:00
rht a465467388 integrations: Switch to python3. 2020-04-02 13:02:28 -04:00
rht d174e589bf examples/upload-file: Use python3-specific import of StringIO. 2020-04-02 09:56:59 -04:00
rht 87198501dc examples: Remove from __future__ imports. 2020-04-02 09:56:59 -04:00
rht e5144b8503 examples: Switch to python3. 2020-04-02 09:56:59 -04:00
orientor d8157d6b80 bridge_with_irc: Initialize IRC bot after checking Zulip bot.
Confirm whether Zulip bot is subscribed to the required stream
first and then Initialize IRC bot object.
2020-03-30 17:41:14 -04:00
orientor de40005f5e bridge_with_irc: Improve user-friendliness.
Edit error and success messages of zulip-irc bridge to be more
user friendly.
2020-03-30 17:41:14 -04:00
rht b771bacac0 bridge_with_irc: Check if bot is subscribed to stream at startup. 2020-03-27 06:59:29 -04:00
Eeshan Garg ce73dab121 pypi: Release version 0.6.4. 2020-03-26 19:52:46 -02:30
Eeshan Garg 0b930cfe86 pypi: Add support for Python 3.8. 2020-03-26 13:38:08 -07:00
akashaviator 2cf49788fd api: Implement GET users/{id} endpoint. 2020-03-25 17:00:52 -07:00
neiljp (Neil Pilgrim) 60984ab2fa mypy: Add type ignores for mixing of str & bytes in zephyr mirror.
In principle these should be fixed properly, but the zephyr code is
difficult to test except in a production setting and is unlikely to be
heavily developed in future.
2020-03-24 21:25:45 -07:00
neiljp (Neil Pilgrim) 436b619021 integrations: Use universal_newlines in check_output to output as str.
Picked up by mypy; otherwise output is in bytes (at least on python 3).
2020-03-24 21:25:45 -07:00
neiljp (Neil Pilgrim) f81843f189 mypy: Clarify type hints in zulip/integrations/. 2020-03-24 21:25:45 -07:00
rht 8a74f576a3 python: Remove per-file copyright notices.
These notices are redundant and obscure what are often very short
example scripts.
2020-03-23 12:52:52 -07:00
Mateusz Mandera 8fc5b777db api: Fix undefined variable reference from previous commit. 2020-03-14 11:36:34 -07:00
orientor 056963bedd api: Add delay_cap as class variable of CountingBackoff class. 2020-03-05 13:33:50 -08:00
orientor 731eb23c9a bridge_with_irc: Print message on successful connection. 2020-03-02 05:51:54 -05:00
Steve Howell dd37e27b36 docstring: Use user_ids for typing endpoint. 2020-02-23 07:45:33 -05:00
Sutou Kouhei 843b21769a twitter: Add support for phrase.
Twitter supports phrase search by quoting terms such as "Zulip API".

If we use the feature, the current twitter-bot can't detect used
search phrase. We can detect used search phrase with this change.
2020-01-14 15:58:08 -08:00
Eeshan Garg 957b5e7ad8 pypi: Release version 0.6.3. 2019-12-16 11:48:56 -03:30
neiljp (Neil Pilgrim) 0a01ea0412 zulip: Move dependency on distro into zulip package. 2019-12-15 11:06:43 -08:00
Eeshan Garg efcc89da9d pypi: Release version 0.6.2. 2019-12-14 16:38:48 -03:30
Puneeth Chaganti 63bc9b8a4f zulip: Use distro.linux_distribution instead of platform
Python 3.8 removes `platform.linux_distribution` and `distro` is the
recommended replacement to use for this function.
2019-11-01 17:49:49 -07:00
Kreyren 3e155ecf93 rss-bot: Updated link pointing to .zuliprc
I believe that rss-bot is pointing to wrong page on documentation, this MR should fix it.

Signed-off-by: Jacob Hrbek <werifgx@gmail.com>
2019-09-08 16:51:54 -07:00
Anders Kaseorg bcffa76873 Restore dependency on typing package for Python < 3.5.
Apparently we still support Python 2.7 for some reason.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-03 13:29:52 -07:00
neiljp (Neil Pilgrim) 0427d962b0 setup.py: Add supported python versions for all packages. 2019-09-03 13:28:32 -07:00
Anders Kaseorg 804501610b Remove dependency on typing package.
It’s in the standard library in Python ≥ 3.5.  (We could have used
`'typing;python_version<"3.5"'` to continue supporting earlier
versions, but we don’t.)

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-09 17:29:04 -07:00
Anders Kaseorg 567d6ebc25 Client.get_user_presence: Fix blatantly incorrect type annotation.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-07 16:53:42 -07:00
Eeshan Garg e5bcd095fd pypi: Release version 0.6.1. 2019-07-14 21:17:53 -02:30
Puneeth Chaganti 1231da46bf log2zulip: Remove unnecessary loop and fix incorrect variable name. 2019-07-13 11:09:36 -07:00
neiljp (Neil Pilgrim) c2e5b14034 api: Add UnrecoverableNetworkError Exception & use in do_api_query.
This replaces one case where the base ZulipError was raised, and another
where the original exception was re-raised.

This method, and so all API calls, should now only fail via raising this
Exception or by a non-'success' result in the return value dict; this
should avoid leaking any implementation detail and clarify expectations
in user code.
2019-03-29 14:12:26 -07:00
Eeshan Garg accfa8ddaf pypi: Release version 0.6.0. 2019-03-19 19:43:23 -02:30
Eeshan Garg 3a2e85c2b1 zulip: Fix argument name in add/remove reaction example comment.
The actual argument is supposed to be named `reaction_type`, not
`emoji_type`.
2019-03-02 19:12:44 -03:30
Eeshan Garg d43b9328f0 pypi: Release version 0.5.9. 2019-02-17 02:49:27 -03:30
neiljp (Neil Pilgrim) 47f9b103ab api: Fix add_reaction method to pass reaction_data.
Also correct the example usage text.
2019-02-16 03:29:24 -08:00
rht 6368b63e6c interrealm: Fix the msg formatting with special prefixes.
Tweaked by tabbott to cover all code blocks, not just quote blocks.

See https://chat.zulip.org/#narrow/stream/127-integrations/topic/cross.20realm.20bridge/near/695907
2019-02-15 16:43:36 -08:00
Sivagiri Visakan 26c85bb9ed zulip/examples: Add a script to get complete history of a narrow.
Fixes #476.
2019-01-28 22:49:47 -03:30
rht 4773370cc1 bridge_with_irc: Tell people to subscribe their bots to the stream. 2019-01-23 12:40:47 -08:00
Eeshan Garg 9931de2c6b pypi: Release version 0.5.8. 2019-01-22 22:35:37 -03:30
Eeshan Garg f2eaf80b9e integrations/rss: Pass config_file to zulip.Client.
Fixes #499.
2019-01-22 22:16:20 -03:30
rht 5b7f0c24bb bridge_with_irc: Implement nickserv password. 2019-01-17 14:19:46 -08:00
rht 5b704b7c1c bridge_with_irc: Prefix zulip->irc message with sender full name. 2019-01-17 14:19:46 -08:00
rht 836a51a8bf bridge_with_irc: Only forward stream messages at the specified topic. 2019-01-17 14:19:46 -08:00
rht 8ef0aba74a bridge_with_irc: Add command line arg to specify topic. 2019-01-16 16:27:52 -08:00
rht 8e69598a46 bridge_with_irc: Add a brief documentation. 2019-01-16 16:27:52 -08:00
rht 9efa0feaaf bridge_with_irc: Bump irc requirements version. 2019-01-16 16:27:52 -08:00
rht e14bb510cb bridge_with_irc: Remove obsolete comment. 2019-01-16 16:27:52 -08:00
rht 116a1228ae bridge_with_irc: Disable echo on Zulip -> IRC. 2019-01-16 16:27:52 -08:00
rht edcf1fd8e9 bridge_with_irc: Fix sending from Zulip to IRC and enable it by default. 2019-01-16 16:27:52 -08:00
rht 910f83ee8e bridge_with_irc: Use async client to avoid timeout. 2019-01-16 16:27:52 -08:00
rht 9be5ec33b3 bridge_with_irc: Relay msg instead of forge msg on IRC -> Zulip. 2019-01-16 16:27:52 -08:00
rht a5bc4b716c bridge_with_irc: Add command line arg to specify stream. 2019-01-16 16:27:52 -08:00
Eeshan Garg ed6c797d19 pypi: Release version 0.5.7. 2019-01-16 20:50:46 -03:30
neiljp (Neil Pilgrim) eb0e150a71 api: Add Optional timeout parameter to deregister. 2019-01-14 19:24:08 -08:00
neiljp (Neil Pilgrim) f858e48468 api: Add timeout parameter to do_api_query and call_endpoint. 2019-01-14 19:24:08 -08:00
Roger Souza 3f2b11c345 api: Implement POST /realm/emoji<emoji_name>. 2018-12-20 17:49:31 -03:30
Eeshan Garg d478c91965 pypi: Release version 0.5.6. 2018-12-17 17:07:32 -03:30
Maxim Vov d68bc7eada twitter: Add --excluded-users and --excluded-terms options.
This makes it easy to filter out an users/terms that are effectively
spam for your use case.
2018-12-13 14:11:20 -08:00
Eeshan Garg 09deda9466 pypi: Release version 0.5.5. 2018-09-25 22:36:57 -02:30
Eeshan Garg 6e443b6d23 zulip_trello.py: Print error if requests isn't installed. 2018-09-25 22:28:25 -02:30
Eeshan Garg 71a15bd89e integrations/trello: Make the zulip_trello script self-contained.
A few users have complained about how hard it is to find the
Trello script on their systems after installing the `zulip`
package. Rishi and I decided that we should instead just ask
the users to download the script directly and run it without
having to install the `zulip` package.

This commit also ensures that the script can be run on both
py2 and py3.
2018-09-25 22:28:25 -02:30
Eeshan Garg 5210e79dbd integrations/trello: Stop logging to CSV file in Trello script.
The information logged to the CSV file is largely redundant, since
the ID of the webhook is already printed to the screen once a
webhook is setup correctly.

Since this is a script that the user is required to run
once, we should minimize its reliance on external files as much
as possible. This makes it easier to run the script when one
is SSH-ing into a server and doesn't really care about where
the script lives, for instance.
2018-09-25 22:28:25 -02:30
Eeshan Garg 1de6613825 integrations/trello: Stop using config files in the Trello script.
A few users have complained about how hard it is to find the
Trello script on their systems after installing the `zulip`
package. One way to solve this issue is to make the Trello
script a part of the exported console scripts in the zulip
package, which would mean that the user would not have to
navigate to a particular directory in order to find the script,
but could run it from a terminal directly.

However, to make this happen, we need to minimize the script's
reliance on external configuration files, because we don't want
the user to have to figure out where the config file lives.
2018-09-25 22:28:25 -02:30
Eeshan Garg 048fa79a7c pypi: Release version 0.5.4.
Starting now, we now also have a CHANGELOG to record major changes
to the zulip package.
2018-08-31 17:25:55 -02:30
Yago González 256a17fa94 api: Rename "get_presence" to "get_user_presence".
Given that this method fetches the presence status for a single user,
the "get_presence" name should be reserved for the endpoint that gets
the presence for all users.
2018-08-28 11:28:35 -07:00
Roman Godov d02dbbcf75 api: Implement GET /user_groups. 2018-08-27 18:39:27 -02:30
Yago González bf752a860c api: Implement DELETE /streams/<stream_id>. 2018-08-27 18:36:12 -02:30
Eeshan Garg 6151f2db40 pypi: Release version 0.5.3. 2018-08-17 22:21:01 -02:30
Yago González 7dfecf5577 api: Implement DELETE /realm/filters/<filter_id>. 2018-08-14 10:54:18 -02:30
Yago González b2de1e8e67 api: Implement POST /realm/filters. 2018-08-14 10:54:18 -02:30
Yago González ac697026b1 api: Implement GET /realm/filters. 2018-08-14 10:54:18 -02:30
Yago González 5747e76c08 api: Make all endpoint paths relative.
Most of the endpoints we call in the bindings are put relative to the
API's root. These two were absolute paths (i.e. they had a leading
slash), so it has been changed for consistency.
2018-08-14 10:54:18 -02:30
Yago González c480657952 api: Implement POST /user_groups/<user_group_id>/members. 2018-08-14 10:51:50 -02:30
Yago González 8dffb18216 api: Implement DELETE /user_groups/<user_group_id>. 2018-08-14 10:51:50 -02:30
Yago González 851eb1b3bb api: Implement PATCH /user_groups/<user_group_id>. 2018-08-14 10:51:50 -02:30
Yago González c6b123016e api: Implement PATCH /settings/notifications. 2018-08-13 11:27:32 -07:00
Yago González 330fc4783e api: Implement POST /mark_topic_as_read. 2018-08-13 11:27:16 -07:00
Yago González 4ab53c9073 api: Implement POST /mark_stream_as_read. 2018-08-13 11:27:16 -07:00
Yago González ac399d895d api: Implement POST /mark_all_as_read. 2018-08-13 11:27:16 -07:00
Yago González 92ceb991a3 api: Implement GET /server_settings. 2018-08-13 11:26:34 -07:00
Yago González a17e8954a8 api: Implement POST /typing. 2018-08-09 18:37:15 -02:30
neiljp (Neil Pilgrim) 39fb287fba matrix tests: tweak import and add __init__.py to ensure tests run. 2018-08-08 17:26:15 -07:00
neiljp (Neil Pilgrim) 28f05676f2 matrix: Use six.moves.configparser. 2018-08-08 17:26:15 -07:00
neiljp (Neil Pilgrim) f007fc9aaa matrix tests: Add test for case that zuliprc file does not exist. 2018-08-08 17:26:15 -07:00
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) fc416082aa zulip: Update setup.py to install matrix bridge & add dependencies.
Dependencies added:
* matrix_client: for matrix bridge itself;
* configparser: for python2 compatibility.
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
Yago González 6f74d5414a api: Implement POST /messages/<message_id>/reactions. 2018-08-08 17:23:21 -07:00
Yago González 49e919ac3a api: Implement DELETE /messages/<message_id>/reactions. 2018-08-08 17:23:21 -07:00
Yago González 0ca25af06e api: Implement POST /user_groups/create. 2018-08-08 17:22:35 -07:00
Yago González 2f463e2a88 api: Implement POST /users/me/presence. 2018-08-08 17:22:05 -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
Tim Abbott 6d8ac7c3c0 api: Check for BAD_EVENT_QUEUE_ID code.
This is the best way to do this check, since it isn't subject to i18n
modifying the strings.  The server feature was originally introduced
in zulip/zulip commit 709c3b50fcba333740bb337bac69a801dbbdc4ee.

Since it's only 1 year old and the outcome is quite bad if this check
weren't present, we preserve support for older servers.
2018-08-02 15:59:52 -07:00
Eeshan Garg 1127f973aa pypi: Release version 0.5.2. 2018-07-26 21:19:12 -02:30
Yago González 91135fca09 api: Implement POST /users/me/subscriptions/properties. 2018-07-13 01:10:58 +05:30
Yago González 04d6c58cc4 api: Add example for managing alert words.
This example makes use of get_alert_words, add_alert_words and
remove_alert_words, three methods that interact with the
/users/me/alert_words REST API endpoint.
2018-07-12 16:40:58 -02:30
Yago González 3070106365 api: Implement DELETE /users/me/alert_words. 2018-07-12 16:40:58 -02:30
Yago González c661d78b63 api: Implement POST /users/me/alert_words. 2018-07-12 16:40:58 -02:30
Yago González c057e0df14 api: Implement GET /users/me/alert_words. 2018-07-12 16:40:58 -02:30
Yago González f6646f9cba api: Implement PATCH /users/me/subscriptions/muted_topics. 2018-07-09 15:05:04 -02:30
Yago González 2da5fb3484 api: Rename update-flags to update-message-flags.
Followup for #449.
2018-07-04 18:14:48 +02:00
Yago González 4d9b3226fd api: Implement GET /realm/emoji. 2018-07-03 20:01:56 -02:30
Yago González a96c3f0db0 api: Implement POST /messages/flags. 2018-07-03 11:03:26 -07:00
Eeshan Garg c2fdd547f7 PyPI: Release 0.5.1. 2018-07-01 12:05:59 -02:30
Shubham Dhama 918e63a220 zulip_bots: Fix get_storage request arguments in StateHandler. 2018-07-01 08:01:18 -04:00
Yago González f8fd7b6fbf api: Implement GET /messages/<message_id>/history. 2018-06-28 20:26:06 -02:30
Yago González 2da831bbe1 api: Fix mypy annotations for delete_message. 2018-06-28 20:26:06 -02:30
Yago González e6972bcbb9 api: Add extra arguments to get-messages example. 2018-06-26 19:46:22 -02:30
Yago González 0e39ca5236 api: Remove recent-messages example.
The GET /messages action has been recently implemented into our
bindings. Therefore this example has been superseded by get-messages,
which is capable of fetch messages in a more fine-grained way.
2018-06-26 19:46:22 -02:30
Yago González 38f3e1a9f5 api: Implement GET /messages/<message_id>. 2018-06-26 19:42:49 -02:30
Yago González e2f379675b api: Implement DELETE /messages/<message_id>. 2018-06-26 19:40:27 -02:30
Yago González 005829192e api: Implement PATCH /streams/<stream_id>. 2018-06-26 19:38:44 -02:30
Yago González 36566c26c1 api: Implement GET /messages. 2018-06-21 15:51:53 -02:30
Eeshan Garg c636a5ac49 pypi: Release 0.5.0. 2018-06-07 12:05:18 -02:30
neiljp (Neil Pilgrim) 97b2a12d21 matrix bridge: Adjust to python2-compatible type annotations. 2018-06-04 15:55:14 -07:00