Commit graph

288 commits

Author SHA1 Message Date
Marco Burstein f719964487 bots: Create Jira Bot.
Users can get an issue from Jira Bot using it's key, and get a response
like the following:

    Issue BOTS-13: Create Jira Bot
     - Type: Task
     - Creator: skunkmb
     - Project: Bots
     - Priority: Medium
     - Status: To Do

Users can create or edit an issue with Jira Bot with its
 - summary,
 - project,
 - type,
 - description,
 - assignee,
 - priority,
 - labels, and
 - due date
2017-12-29 11:21:18 -05:00
Viraat Chandra d8c6cb7c0a interactive bots: Create Baremetrics bot. 2017-12-29 11:50:33 +01:00
Privisus b80a0cb297 interactive bots: Create Merels bot. 2017-12-29 10:48:52 +01:00
Viraat Chandra a2557ccbe6 interactive bots: Create Mention bot. 2017-12-28 16:33:00 -05:00
Shivam Gera 6121002b35 Update giphy.py 2017-12-28 16:22:20 -05:00
Robert Hönig c3348750d9 zulip_bots: Supply bots with 'full_content' of message.
This adds the 'full_message' field to the message dict
passed to bots.

Fixes #138.
2017-12-26 08:17:26 -05:00
Robert Hönig 79627002d6 zulip_bots: Add test for run_message_handler_for_bot(). 2017-12-26 08:17:26 -05:00
Robert Hönig 464b2612cc zulip_bots: Make FakeClient accept arbitrary arguments. 2017-12-26 08:17:26 -05:00
sColin16 b9905e5fc8 Game Adapter Class: Allow superusers to moderate bots. 2017-12-25 09:43:53 -05:00
sColin16 2c8b369d14 interactive bots: Extracted GameAdapter Class. 2017-12-25 09:43:53 -05:00
sColin16 35829218b7 interactive bots: Create connect four bot. 2017-12-23 16:02:50 -03:30
neiljp (Neil Pilgrim) 7d493d64c5 mypy: Remove type ignore in generate_manifest.py and simplify.
mypy 0.560 incorporates PR python/typeshed#1748, allowing extended
type-checking of cmd and log components of distutils such as this.
2017-12-21 18:43:42 -05:00
fredfishgames 7acf2c396b Update dialogflow bot to show user friendly messages 2017-12-19 16:34:13 -05:00
Nikhil Kumar Mishra d3916b945d github_detail: Limit bot to 5 requests per message.
Fixes #172 .
2017-12-19 14:41:39 -05:00
Jerry Zhang ce8979df7a interactive bots: Improve documentation for tictactoe bot. 2017-12-18 10:38:13 -05:00
Marco Burstein 878691a745 bots: Create Wit.ai Bot.
Wit.ai Bot communicates with the Wit.ai API. It can be configured with
any Wit.ai token and allows for setting up a custom handler function to
handle Wit.ai responses.
2017-12-18 10:32:05 -05:00
Robert Hönig b306324bfa zulip_bots: Make BotTestCase the only helper library.
Renames StubBotTestCase to BotTestCase and removes
legacy code for supporting both names.
2017-12-14 05:56:55 -05:00
Robert Hönig a475077da9 zulip_bots: Use utf-8 when reading fixtures.
This prevents issues with Python using platform
specific encodings, such as CP1252 on Windows.
2017-12-14 05:56:55 -05:00
neiljp (Neil Pilgrim) ced3a97b3f TicTacToe: Extract sanitized_move from TicTacToeGame as coords_from_command. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) c6e9beb2a1 TicTacToe: Rename & simplify some functions.
Rename:
* win_conditions -> contains_winning_move
* check_validity -> is_valid_move
* sanitize_move -> sanitized_move
2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) a72764d7b8 TicTacToe: Improve encapsulation of board data in TicTacToeGame. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) aadf639e5e TicTacToe: Remove python2 compatibility imports 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) cff3e30734 TicTacToe: Coalesce & refactor response messages. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) a7f7994302 TicTacToe: Use game objects instead of calling TicTacToeGame with self. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) b1dba0bd30 TicTacToe: Move tictactoe() text from game-logic to handle_message.
Also remove early debugging logic.
2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 6d4b205595 TicTacToe: Use simple comparison instead of overly-complex first_time(). 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) d10601b554 TicTacToe: Refactor new-game handling into existing section.
Also extend storage-update section; all related storage.put calls
are now together.
2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 33e8517b87 TicTacToe: Decouple TicTacToeGame.tictactoe() string from move result.
This allows the storage update to be refactored into one block before
sending the result text.
2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 5843801d13 TicTacToe: Simplify superfluous initial command logic. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 969b984b80 TicTacToe tests: Extend tests to end of game lose condition & quit. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 62d781a53e TicTacToe tests: Extend tests to end of game draw condition & quit. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) d686a3b337 bots (minor): Simplify test_link_shortener.py further.
* Rename test names to be more descriptive.
* Inline messages/response test.
2017-12-12 13:57:55 -06:00
Marco Burstein e9aa94f81c mypy: Add annotations for Link Shortener Bot.
Based on work started by @skunkmb.
2017-12-12 13:57:55 -06:00
Steve Howell f69d71c3b1 bots: Remove unneeded __future__ imports. 2017-12-12 07:32:14 -06:00
Steve Howell fd069dff82 lint: Require python3 shebangs.
This commit was originally from @fredfishgames, but it
needed a big rebase due to use letting it sit too long.
Also, we decided not to have shebangs at the top of test
files.
2017-12-12 07:14:16 -06: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
fredfishgames 424a4bb631 add _ to googletranslate and googlesearch 2017-12-11 13:15:43 -06:00
fredfishgames 657c6d7b9c interactive bots: Create DialogFlow bot. 2017-12-11 13:15:43 -06:00
Sivagiri Visakan 277b384379 bots: Add 100% test coverage to define bot. 2017-12-11 12:49:43 -06:00
Sivagiri Visakan d663dd2f49 bots: Make wikipedia bot return an error message.
Previously the Wikipedia bot was replying with `null` in case of an error.
A change has been made to return an error message if an error occurs.
2017-12-11 12:49:43 -06:00
Steve Howell fe3b995590 Fix KeyboardInterrupt handler in terminal.py.
The exception name was wrong before.
2017-12-11 11:07:28 -06:00
Marco Burstein 3c66894aff incrementor: Clean up type annotation/conversion.
This adds mypy annotations, and we also make the type
conversions in `handle_message` be a little more clear.

(@showell helped clean up this commit a bit)
2017-12-11 10:59:40 -06:00
Steve Howell b4ff5230a9 mypy: Fix StateHandler annotations.
`get` and `put` deal with arbitrary JSON-serializable types,
so `Text` was an innacurate annotation.
2017-12-11 10:35:03 -06:00
Steve Howell 7bc79a8911 Extract StubBotTestCase.make_request_message().
This de-duplicates some code and also makes it a bit
easier in the future to override how we create messages.
2017-12-11 09:39:48 -06:00
Steve Howell 5686d603ef minor: Clean up test_lib imports. 2017-12-11 09:34:11 -06:00
Steve Howell 971b48cbfc Decouple mock_request_exception from StubBotTestCase.
Tests that need mock_request_exception can just import it
directly now.
2017-12-11 09:26:36 -06:00
Steve Howell 1dbb73a1c8 Extract test_file_utils.py.
This isolates all the code that depends on our current
directory structure, and it de-clutters test_lib.py a bit.
2017-12-11 09:23:24 -06:00
Steve Howell 5034220829 bots: Extract request_test_lib.py.
The new module mocks out calls to the requests library, which
is used by many of our bots that use third party services.

Mocking of requests.py is mostly orthogonal to our other
testing concerns.
2017-12-11 09:05:06 -06:00
Steve Howell fb8ee29bc1 zulip_bots/test_lib.py: Remove unneeded imports/shebang. 2017-12-11 08:26:50 -06:00
Steve Howell b4705c2343 bot tests: Remove BotTestCase.
All of the functionality of BotTestCase was either directly
moved to StubBotTestCase or replaced by similar functions,
and all bots have been ported to StubBotTestCase.
2017-12-11 08:26:50 -06:00