Commit graph

202 commits

Author SHA1 Message Date
Shivam Gera
6121002b35 Update giphy.py 2017-12-28 16:22:20 -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
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
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
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
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
sColin16
6109bd198a interactive bots: Improve wikipedia bot. 2017-12-11 08:05:09 -06:00
Steve Howell
0a05a28e34 test_virtual_fs.py: Use StubBotTestCase.
We use verify_dialog() now, and we also have a different
default email.
2017-12-11 08:00:02 -06:00
Marco Burstein
3c794b384b mypy: Add annotations for Yoda Bot. 2017-12-11 07:33:16 -06:00
Marco Burstein
8f64405bae mypy: Add annotations for Wikipedia Bot. 2017-12-11 07:26:43 -06:00
Marco Burstein
0467f83314 mypy: Add annotations for xkcd Bot. 2017-12-11 07:26:43 -06:00
neiljp (Neil Pilgrim)
e01ecc9fde test_virtual_fs.py: Remove unneeded imports and shebang. 2017-12-11 07:16:54 -06:00
neiljp (Neil Pilgrim)
060211a131 bots: Simplify test_yoda.py. 2017-12-10 18:16:40 -08:00
neiljp (Neil Pilgrim)
20cb236fdd bots: Simplify test_weather.py. 2017-12-10 18:16:27 -08:00
neiljp (Neil Pilgrim)
84d92337be bots: Simplify test_googletranslate.py.
Also add sender_full_name parameter in StubBotTestCase.verify_reply().
2017-12-10 16:26:03 -08:00
neiljp (Neil Pilgrim)
c8824cb2e5 bots: Simplify test_link_shortener.py. 2017-12-10 14:04:00 -08:00
Steve Howell
f8cefc5352 minor: Fix imports in test_xkcd.py.
We no longer need the `future` imports and we can
use `StubBotTestCase` now.
2017-12-10 09:25:12 -06:00
Marco Burstein
700ce6a673 bots: Create Chess Bot.
Chess Bot is a bot that allows you to play chess against either another
user or the computer. Use `start with other user` or
`start as <color> with computer` to start a game.

In order to play against a computer, `chess.conf` must be set with the
key `stockfish_location` set to the location of the Stockfish program on
this computer.

Use `bot_handler.storage` to preserve game state across messages.

(@showell also did minor work here to have the test use verify_dialog()
and have the bot respond to empty messages)
2017-12-10 09:14:32 -06:00
Nikhil Mishra
81b207795f followup bot: Fix help response and configure streams.
From @showell:

We had a PR here with lots going on, and the commits weren't
very well organized, and then there were some tricky merge
conflicts from another PR.  So I just squashed them all into
one commit.

What this does:
    * allow you to configure your followup stream
    * provide help in followup stream
    * add more testing to followup stream
    * add get_response() helper for tests

Fixes #173
Fixes #174
2017-12-10 05:23:35 -08:00
Kai Chen
1cdb0bffe6 mypy: Add annotations for encrypt. 2017-12-10 04:59:27 -08:00
Kai Chen
b382eacd18 mypy: Add annotations for define. 2017-12-10 04:59:27 -08:00
Kai Chen
d33e9b9d92 mypy: Add annotations for converter. 2017-12-10 04:59:27 -08:00
neiljp (Neil Pilgrim)
31853cfa80 Add test_bot_responds_to_empty_message to StubBotTestCase. 2017-12-09 15:06:41 -08:00