Commit graph

621 commits

Author SHA1 Message Date
Ahmed Abuamra 9ce2ea53a5 integrations: Remove !avatar from game handler.
The issue linked to this commit suggest suggests to replace the avatar
with the username only, I just needed to remove !avatar as the code
already shows the username.

Fixes part of #632.
2021-02-18 18:35:01 -08:00
LoopThrough-i-j e995e52896 dropbox_share bot: Pin dropbox version to 10.10.0.
Tests for dropbox_share bot fails for version >= 11.0.0.
2021-01-26 12:57:44 -08:00
Eeshan Garg befbb953dd pypi: Release version 0.7.1. 2020-10-09 15:50:43 -02:30
Anders Kaseorg 5f81eb3a70 Update zulipchat.com links to zulip.com.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2020-06-11 21:06:58 -07:00
Lunatic Luna 3b1ef57694 bots: Support adding reactions to message for a bot.
It adds a react() function that allows a bot to react to a message in lib.py.
It adds an example of the use of react() function and its test.

The changes are in the following files:
  - lib.py
  - helloworld.py
  - tests/test_lib.py
  - test_lib.py
2020-05-08 10:46:56 -04:00
neiljp (Neil Pilgrim) 540d453237 setup.py: Add Source & Documentation project_urls.
The only existing url points to zulip.org -> zulipchat.com
2020-05-05 09:20:50 -04:00
pemontto a9268a1947 jira: Add JQL search command. 2020-04-28 12:46:40 -07:00
pemontto a46dae37f5 jira: Add search command. 2020-04-28 12:46:40 -07:00
pemontto b0c2b1b9c8 jira: Use display_url in output. 2020-04-28 12:45:36 -07:00
pemontto 3ca336246d jira: Allow overriding https. 2020-04-28 12:45:36 -07:00
pemontto ae8a3516fb jira: Fix deprecation warning. 2020-04-28 12:45:36 -07:00
Rohitt Vashishtha bdf0c7ff5c bots: Use ids for sending message. 2020-04-28 11:56:16 -04:00
Rohitt Vashishtha 5c32054415 bots: Do not reply in group PMs unless explicitly mentioned.
Previously, if a bot was accidentally added to a group PM, we would
have no option but to leave that conversation because the bot would
reply to all the messages sent in that conversation. This also has
potential to cause infinite loops in case two bots are added to a
group PM since they could keep on replying to each other's messages.

Fixes #551.
2020-04-28 11:56:16 -04:00
Rohitt Vashishtha fe78a363b0 bots: Do not remove self from list of recipients in group PMs.
The origin of this line seems like an arbitary decision when writing the
wikipedia bot in ad25f27853. Removing self
doesn't have any other significance, and not making any changes to the
recipient list helps with https://github.com/zulip/zulip/issues/14228.

Fixes #552.
2020-04-28 11:56:16 -04:00
Eeshan Garg 1dac75f979 pypi: Release version 0.7.0. 2020-04-20 23:23:58 -02:30
Anders Kaseorg 17cf26aa1f cleanup: Move line breaks before binary operators.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 6f40bcf745 cleanup: Fix whitespace around parameter equals.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 562fe610b7 cleanup: Fix whitespace around function annotation arrows.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg bd9bb0a4e8 cleanup: Fix indentation.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 07c64673f7 test_jira: Remove redefined test_edit method.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg a01e5e37f4 cleanup: Remove more unused variables.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 54b2578204 cleanup: Remove unused variables.
Generated by autoflake.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg f5d96dbcce cleanup: Remove duplicate imports.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg adde59e5c3 cleanup: Remove more unused imports.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 2f6623bbc4 cleanup: Remove unused imports.
Generated by autoflake.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 64d2f5ac32 test_connect_four: Expand star import.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 5428c5f296 typing: Convert function type annotations to Python 3 style.
Generated by com2ann (slightly patched to avoid also converting
assignment type annotations, which require Python 3.6), followed by
some manual whitespace adjustment, and two fixes for use-before-define
issues:

-    def set_zulip_client(self, zulipToJabberClient: ZulipToJabberBot) -> None:
+    def set_zulip_client(self, zulipToJabberClient: 'ZulipToJabberBot') -> None:

-def init_from_options(options: Any, client: Optional[str] = None) -> Client:
+def init_from_options(options: Any, client: Optional[str] = None) -> 'Client':

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 7c5f73dce9 salesforce: Add missing typing import. 2020-04-18 20:31:14 -07:00
Anders Kaseorg fe72f3b131 typing: Remove ‘if False’ guard for typing imports.
typing is in the Python 3.5 standard library.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:31:14 -07:00
Anders Kaseorg 1a417b1610 finder: Remove ModuleNotFoundError handler.
ModuleNotFoundError is a subclass of ImportError, which is handled on
the previous line; furthermore, it doesn’t exist in Python 3.5.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:20:53 -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 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
Steve Howell 2ec5bb7b70 minor: Warn about missing usage handlers. 2020-04-05 06:53:40 -04:00
rht 4600ce59a3 Remove all remaining from __future__ imports. 2020-04-03 08:18:08 -04:00
Steve Howell 754a9f7880 bots: Remove unmaintained bots. 2020-04-01 08:41:51 -04:00
fishfred 87b57f879c bots: Fixed incorrect computer play message 2020-03-30 12:02:32 -04:00
fishfred 0a0f9e9d21 bots: Fix tictactoe, connect_four emoji 2020-03-30 12:02:32 -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
neiljp (Neil Pilgrim) 357a5e06f3 mypy: Clarify type hints in zulip_bots/. 2020-03-24 21:25:45 -07:00
orientor 62555f97a0 Bots: Update Owlbot from v1 to v2. 2020-03-04 13:12:29 -08:00
Aman 264632230b lint: Remove trailing whitespace from json files. 2020-01-14 16:00:24 -08:00
Eeshan Garg 957b5e7ad8 pypi: Release version 0.6.3. 2019-12-16 11:48:56 -03:30
Eeshan Garg efcc89da9d pypi: Release version 0.6.2. 2019-12-14 16:38:48 -03:30
neiljp (Neil Pilgrim) 0427d962b0 setup.py: Add supported python versions for all packages. 2019-09-03 13:28:32 -07:00
Anders Kaseorg c6a52d798e zulip_bots, zulip_botserver: Add PEP 561 type annotation markers.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-09 17:29:04 -07:00
neiljp (Neil Pilgrim) 725c7574a5 bots: Use ImportError in Python<3.6 for failed import of bot by name.
This previously caused a traceback if the bot couldn't be found.
2019-07-27 16:38:23 -07:00
Eeshan Garg e5bcd095fd pypi: Release version 0.6.1. 2019-07-14 21:17:53 -02:30
Alexandra Ciobica ca1b415a1b docs: Change integration docs so that all the pages from portico/integrations look the same. 2019-07-13 11:08:22 -07:00
Sheehan Khan 0e8347d440 bot tests: Improve test coverage for TicTacToeModel.
This commit improves test coverage of from 41.66% to 50%.

This commit is related to #417
2019-04-21 20:09:44 -02:30
Eeshan Garg accfa8ddaf pypi: Release version 0.6.0. 2019-03-19 19:43:23 -02:30
Eeshan Garg d43b9328f0 pypi: Release version 0.5.9. 2019-02-17 02:49:27 -03:30
Rohitt Vashishtha be4f9a0c32 bots: Use bold formatting judiciously in trivia bot. 2019-01-30 08:38:10 -08:00
Rohitt Vashishtha 49d3f4cfbb bots: Make trivia bot responses mention currently interacting user. 2019-01-29 11:39:33 -08:00
Eeshan Garg 9931de2c6b pypi: Release version 0.5.8. 2019-01-22 22:35:37 -03:30
Eeshan Garg ed6c797d19 pypi: Release version 0.5.7. 2019-01-16 20:50:46 -03:30
Eeshan Garg d478c91965 pypi: Release version 0.5.6. 2018-12-17 17:07:32 -03:30
Marco Burstein d176fbe324 bots: Fix a Chessbot dependency error.
Specify a version for Chessbot so that it will continue to function
properly if the library is updated. Also, update `test-bots` to remove
a temporary fix for Chessbot.
2018-12-09 18:57:10 -08:00
Steve Howell 0fd093a698 bots: Allow users to supply ZULIP_API_KEY, etc.
This will make it easier to run standalone
bots in containers like Heroku that prefer
env-var-style configuration.

For now this is undocumented, but we should
update the server docs once a few folks have
tried it out.

(The history behind requiring the config file
is that I wanted to keep things simple and
be strongly opinionated about how you run
bots, so that the docs didn't overwhelm folks,
but this use case has come up more frequently.)
2018-12-09 11:16:30 -08:00
Steve Howell 3d68e394dc bots: Raise KeyError inside storage.get().
Our bots rely on get() raising `KeyError` if
a key does not exist.

This was a regression in this commit:

d7d2f6bbd6
2018-12-09 11:16:30 -08:00
Rohitt Vashishtha fbe99b812e lib: Add support for extended mention syntax.
We are checking for the extended syntax only on the basis of the
user id so that we can handle cases where a bot is renamed.
2018-11-06 17:14:13 -08:00
Steve Howell 4d03ab0558 Add incident bot.
This is a pretty alpha proof-of-concept.
2018-10-11 10:36:00 -04:00
Eeshan Garg 09deda9466 pypi: Release version 0.5.5. 2018-09-25 22:36:57 -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
Eeshan Garg 6151f2db40 pypi: Release version 0.5.3. 2018-08-17 22:21:01 -02:30
neiljp (Neil Pilgrim) 617e16cebb bridges: Bring inter-realm (zulip) bridge into zulip/ & rename others. 2018-08-08 17:26:15 -07:00
Eeshan Garg 1127f973aa pypi: Release version 0.5.2. 2018-07-26 21:19:12 -02:30
John Pellman 91b570aca8 jira: Fix JSON post requests for create and edit commands. 2018-07-23 08:06:00 -07:00
Jordan Troutman ab97b37ce1 merels tests: Adapt merels tests to game_handler.
The merels bot was ported to game_handler, but the tests
were not updated.  Most changes are minimal, but require
changing how to start a game.  It is unclear if the
merels start game was properly updated.

 Author:    Jordan Troutman <jttroutman99@gmail.com>
2018-07-09 11:03:15 -04:00
Eeshan Garg c2fdd547f7 PyPI: Release 0.5.1. 2018-07-01 12:05:59 -02:30
novokrest 3448d9c9c1 zulip-run-bot: Add the ability to run a bot by the module name. 2018-07-01 08:08:02 -04:00
novokrest f4bea72557 youtube: Add test for unknown error during initialize. 2018-07-01 08:03:56 -04:00
novokrest 5eef519b3b giphy: Add test for connection error during config validation. 2018-07-01 08:02:59 -04:00
Shubham Dhama 918e63a220 zulip_bots: Fix get_storage request arguments in StateHandler. 2018-07-01 08:01:18 -04:00
Shubham Dhama 88b649d689 test_lib: Fix repeated name of test_state_handler. 2018-07-01 08:01:18 -04:00
novokrest 7fc1ff5e0e bots: Add bot for uploading files to Zulip server.
Add file_uploader bot as an example of using
ExternalBotHandler's methods for uploading files
to Zulip server.
2018-07-01 07:57:45 -04:00
novokrest e5239c5c54 lib: Add ExternalBotHandler methods for file uploading.
Add methods ExternalBotHandler.upload_file() and
ExternalBotHandler.upload_file_from_path() for uploading
local files to Zulip server.

Fixes #351
2018-07-01 07:57:45 -04:00
novokrest 935701aea2 flock: Add test for connection error during message sending. 2018-07-01 07:55:36 -04:00
novokrest 0fec20239d flock: Fix error message for invalid user. 2018-07-01 07:55:36 -04:00
novokrest 7b3c083ab5 flock: Refactor test_no_recipient_found test to increase coverage. 2018-07-01 07:55:36 -04:00
novokrest 80adce3cee flock: Change name of var res to users in get_recipient_id method. 2018-07-01 07:55:36 -04:00
novokrest 7fe37dbfe8 flock: Move calling requests to flock's urls to separate method.
Introduce `make_flock_request()` method to make requests to flock's URLs.
2018-07-01 07:55:36 -04:00
novokrest efdc96929f flock: Change returned type of get_recipient_id to tuple (userId, error). 2018-07-01 07:55:36 -04:00
novokrest c2a3d4c517 flock: Rename method find_recipient to find_recipient_id. 2018-07-01 07:55:36 -04:00
novokrest 0a7a06f028 flock: Rename local var to to recipient_name in find_recipient method. 2018-07-01 07:55:36 -04:00
novokrest d24e4fc5c8 flock: Pass recipient's name as first argument in get_recipient_id method. 2018-07-01 07:55:36 -04:00
novokrest 5c46a4e68e flock: Rename local var to to recipient_id in get_flock_response(). 2018-07-01 07:55:36 -04:00
novokrest a17bd77b71 jira: Build request's data as dictionary to create/edit issues.
Build data in `make_create_json` and `make_edit_json` methods
as dictionary to send as JSON payload.
2018-07-01 07:54:28 -04:00
novokrest 24a157cd37 jira: Refactor old tests to use mock_http_conversation. 2018-07-01 07:54:28 -04:00
novokrest 6332ce47cb jira: Add tests for error cases and help command. 2018-07-01 07:54:28 -04:00
novokrest 914583e8f7 request_test_lib: Add mocking PUT requests. 2018-07-01 07:54:28 -04:00
Kishan Patel ea370031ee tictactoe: Add tests for TicTacToeModel functions.
Encountered several issues with test cases initially,
where test cases were failing due to the structure of the tests
within the file. This was circumvented by creating a separate
instance of the class TicTacToeModel for each test case
in order to focus on unit testing. There might be an issue with
the _get_game_handlers() function at the end of the file
which is used to obtain the model and message information,
it seems to be getting the entire class TicTacToeModel instead of
creating an instance of the class. Overall, this commit focuses
on creating a precedent for writing test cases involving TicTacToeModel,
and implements basic cases which can be extended to larger
edge cases in the future. Testing was done locally by running
./tools/test-bots until we were able to get the response 'ok' for
all the test cases written. We also used coverage in order to test the
coverage of the cases. While we were not able to increase
the coverage as much as we would have liked, we were able to
identify several issues and fix them, hopefully making it easier
for future contributors to add additional test cases to TicTacToeModel.
Overall, we would like special attention given to the way
that TicTacToeModel() was initailized in these tests and whether or not
this is a scalable precedent for future tests.

Fixes: #122
2018-06-28 14:43:29 -04:00
novokrest aa6afbd2fe front: Add helper func to test command's error. 2018-06-25 08:14:14 -04:00
novokrest 0d3189b3b0 front: Fix status and body of response in fixtures for successful requests. 2018-06-25 08:14:14 -04:00
novokrest 100d50411f front: Add tests when command's request was failed. 2018-06-25 08:14:14 -04:00
Sivagiri Visakan 3e20593da2 bots/finder: Make name a non-default parameter in import_module_from_source. 2018-06-22 07:59:56 -04:00
Sivagiri Visakan 09a7894a34 bots: Extract path resolution logic into a function. 2018-06-22 07:59:56 -04:00
Sivagiri Visakan d053528925 bots: Move import_module_from_source to finder.py. 2018-06-22 07:59:56 -04:00