README.md
setup.py
zulip_bots/__init__.py
zulip_bots/bot_shell.py
zulip_bots/custom_exceptions.py
zulip_bots/finder.py
zulip_bots/game_handler.py
zulip_bots/lib.py
zulip_bots/provision.py
zulip_bots/py.typed
zulip_bots/request_test_lib.py
zulip_bots/run.py
zulip_bots/simple_lib.py
zulip_bots/test_file_utils.py
zulip_bots/test_lib.py
zulip_bots.egg-info/PKG-INFO
zulip_bots.egg-info/SOURCES.txt
zulip_bots.egg-info/dependency_links.txt
zulip_bots.egg-info/entry_points.txt
zulip_bots.egg-info/requires.txt
zulip_bots.egg-info/top_level.txt
zulip_bots/bots/__init__.py
zulip_bots/bots/baremetrics/__init__.py
zulip_bots/bots/baremetrics/baremetrics.conf
zulip_bots/bots/baremetrics/baremetrics.py
zulip_bots/bots/baremetrics/doc.md
zulip_bots/bots/baremetrics/test_baremetrics.py
zulip_bots/bots/baremetrics/assets/list-commands.png
zulip_bots/bots/baremetrics/fixtures/account_info.json
zulip_bots/bots/baremetrics/fixtures/create_plan.json
zulip_bots/bots/baremetrics/fixtures/create_plan_error.json
zulip_bots/bots/baremetrics/fixtures/invalid_api_key.json
zulip_bots/bots/baremetrics/fixtures/list_customers.json
zulip_bots/bots/baremetrics/fixtures/list_plans.json
zulip_bots/bots/baremetrics/fixtures/list_sources.json
zulip_bots/bots/baremetrics/fixtures/list_subscriptions.json
zulip_bots/bots/baremetrics/fixtures/test_key_error.json
zulip_bots/bots/beeminder/__init__.py
zulip_bots/bots/beeminder/beeminder.conf
zulip_bots/bots/beeminder/beeminder.py
zulip_bots/bots/beeminder/doc.md
zulip_bots/bots/beeminder/test_beeminder.py
zulip_bots/bots/beeminder/fixtures/test_error.json
zulip_bots/bots/beeminder/fixtures/test_invalid_when_handle_message.json
zulip_bots/bots/beeminder/fixtures/test_invalid_when_initialize.json
zulip_bots/bots/beeminder/fixtures/test_message_with_daystamp_and_value.json
zulip_bots/bots/beeminder/fixtures/test_message_with_daystamp_and_value_and_comment.json
zulip_bots/bots/beeminder/fixtures/test_message_with_value_and_comment.json
zulip_bots/bots/beeminder/fixtures/test_valid_auth_token.json
zulip_bots/bots/chessbot/__init__.py
zulip_bots/bots/chessbot/chess.conf
zulip_bots/bots/chessbot/chessbot.py
zulip_bots/bots/chessbot/doc.md
zulip_bots/bots/chessbot/test_chessbot.py
zulip_bots/bots/connect_four/__init__.py
zulip_bots/bots/connect_four/connect_four.py
zulip_bots/bots/connect_four/controller.py
zulip_bots/bots/connect_four/doc.md
zulip_bots/bots/connect_four/test_connect_four.py
zulip_bots/bots/converter/__init__.py
zulip_bots/bots/converter/converter.py
zulip_bots/bots/converter/doc.md
zulip_bots/bots/converter/test_converter.py
zulip_bots/bots/converter/utils.py
zulip_bots/bots/converter/assets/multiple-converts.png
zulip_bots/bots/define/__init__.py
zulip_bots/bots/define/define.py
zulip_bots/bots/define/doc.md
zulip_bots/bots/define/test_define.py
zulip_bots/bots/define/assets/correct_word.png
zulip_bots/bots/define/assets/wrong_word.png
zulip_bots/bots/define/fixtures/test_incorrect_word.json
zulip_bots/bots/define/fixtures/test_multi_type_word.json
zulip_bots/bots/define/fixtures/test_single_type_word.json
zulip_bots/bots/dialogflow/__init__.py
zulip_bots/bots/dialogflow/dialogflow.conf
zulip_bots/bots/dialogflow/dialogflow.py
zulip_bots/bots/dialogflow/doc.md
zulip_bots/bots/dialogflow/test_dialogflow.py
zulip_bots/bots/dialogflow/fixtures/test_403.json
zulip_bots/bots/dialogflow/fixtures/test_alternate_result.json
zulip_bots/bots/dialogflow/fixtures/test_empty_response.json
zulip_bots/bots/dialogflow/fixtures/test_exception.json
zulip_bots/bots/dialogflow/fixtures/test_normal.json
zulip_bots/bots/dropbox_share/__init__.py
zulip_bots/bots/dropbox_share/doc.md
zulip_bots/bots/dropbox_share/dropbox_share.conf
zulip_bots/bots/dropbox_share/dropbox_share.py
zulip_bots/bots/dropbox_share/test_dropbox_share.py
zulip_bots/bots/dropbox_share/test_util.py
zulip_bots/bots/encrypt/__init__.py
zulip_bots/bots/encrypt/doc.md
zulip_bots/bots/encrypt/encrypt.py
zulip_bots/bots/encrypt/test_encrypt.py
zulip_bots/bots/encrypt/assets/EncryptBot-terminal.png
zulip_bots/bots/encrypt/assets/EncryptBot-test.png
zulip_bots/bots/encrypt/assets/EncryptBot-test2.png
zulip_bots/bots/encrypt/assets/EncryptBot-test3.png
zulip_bots/bots/file_uploader/__init__.py
zulip_bots/bots/file_uploader/doc.md
zulip_bots/bots/file_uploader/file_uploader.py
zulip_bots/bots/file_uploader/test_file_uploader.py
zulip_bots/bots/flock/__init__.py
zulip_bots/bots/flock/doc.md
zulip_bots/bots/flock/flock.conf
zulip_bots/bots/flock/flock.py
zulip_bots/bots/flock/test_flock.py
zulip_bots/bots/flock/fixtures/test_found_invalid_recipient.json
zulip_bots/bots/flock/fixtures/test_message_send_failed.json
zulip_bots/bots/flock/fixtures/test_message_send_success.json
zulip_bots/bots/flock/fixtures/test_no_recipient_found.json
zulip_bots/bots/followup/__init__.py
zulip_bots/bots/followup/followup.conf
zulip_bots/bots/followup/followup.py
zulip_bots/bots/followup/test_followup.py
zulip_bots/bots/front/__init__.py
zulip_bots/bots/front/doc.md
zulip_bots/bots/front/front.conf
zulip_bots/bots/front/front.py
zulip_bots/bots/front/test_front.py
zulip_bots/bots/front/assets/usage.png
zulip_bots/bots/front/fixtures/archive.json
zulip_bots/bots/front/fixtures/archive_error.json
zulip_bots/bots/front/fixtures/comment.json
zulip_bots/bots/front/fixtures/comment_error.json
zulip_bots/bots/front/fixtures/delete.json
zulip_bots/bots/front/fixtures/delete_error.json
zulip_bots/bots/front/fixtures/open.json
zulip_bots/bots/front/fixtures/open_error.json
zulip_bots/bots/front/fixtures/spam.json
zulip_bots/bots/front/fixtures/spam_error.json
zulip_bots/bots/game_handler_bot/__init__.py
zulip_bots/bots/game_handler_bot/game_handler_bot.py
zulip_bots/bots/game_handler_bot/test_game_handler_bot.py
zulip_bots/bots/game_of_fifteen/__init__.py
zulip_bots/bots/game_of_fifteen/doc.md
zulip_bots/bots/game_of_fifteen/game_of_fifteen.py
zulip_bots/bots/game_of_fifteen/test_game_of_fifteen.py
zulip_bots/bots/giphy/__init__.py
zulip_bots/bots/giphy/doc.md
zulip_bots/bots/giphy/giphy.conf
zulip_bots/bots/giphy/giphy.py
zulip_bots/bots/giphy/logo.png
zulip_bots/bots/giphy/test_giphy.py
zulip_bots/bots/giphy/assets/giphy-connection-error.png
zulip_bots/bots/giphy/assets/giphy-gif-found.png
zulip_bots/bots/giphy/assets/giphy-gif-not-found.png
zulip_bots/bots/giphy/fixtures/test_403.json
zulip_bots/bots/giphy/fixtures/test_no_result.json
zulip_bots/bots/giphy/fixtures/test_normal.json
zulip_bots/bots/giphy/fixtures/test_random.json
zulip_bots/bots/github_detail/__init__.py
zulip_bots/bots/github_detail/doc.md
zulip_bots/bots/github_detail/github_detail.conf
zulip_bots/bots/github_detail/github_detail.py
zulip_bots/bots/github_detail/logo.svg
zulip_bots/bots/github_detail/test_github_detail.py
zulip_bots/bots/github_detail/fixtures/test_404.json
zulip_bots/bots/github_detail/fixtures/test_issue.json
zulip_bots/bots/github_detail/fixtures/test_pull.json
zulip_bots/bots/google_search/__init__.py
zulip_bots/bots/google_search/doc.md
zulip_bots/bots/google_search/google_search.py
zulip_bots/bots/google_search/logo.png
zulip_bots/bots/google_search/test_google_search.py
zulip_bots/bots/google_search/fixtures/test_attribute_error.json
zulip_bots/bots/google_search/fixtures/test_ignore_links.json
zulip_bots/bots/google_search/fixtures/test_no_result.json
zulip_bots/bots/google_search/fixtures/test_normal.json
zulip_bots/bots/google_translate/__init__.py
zulip_bots/bots/google_translate/doc.md
zulip_bots/bots/google_translate/google_translate.conf
zulip_bots/bots/google_translate/google_translate.py
zulip_bots/bots/google_translate/test_google_translate.py
zulip_bots/bots/google_translate/fixtures/test_403.json
zulip_bots/bots/google_translate/fixtures/test_api_access_not_configured.json
zulip_bots/bots/google_translate/fixtures/test_conn_error.json
zulip_bots/bots/google_translate/fixtures/test_invalid_api_key.json
zulip_bots/bots/google_translate/fixtures/test_languages.json
zulip_bots/bots/google_translate/fixtures/test_normal.json
zulip_bots/bots/google_translate/fixtures/test_quotation.json
zulip_bots/bots/helloworld/__init__.py
zulip_bots/bots/helloworld/doc.md
zulip_bots/bots/helloworld/helloworld.py
zulip_bots/bots/helloworld/test_helloworld.py
zulip_bots/bots/help/__init__.py
zulip_bots/bots/help/help.py
zulip_bots/bots/help/test_help.py
zulip_bots/bots/idonethis/__init__.py
zulip_bots/bots/idonethis/doc.md
zulip_bots/bots/idonethis/idonethis.conf
zulip_bots/bots/idonethis/idonethis.py
zulip_bots/bots/idonethis/test_idonethis.py
zulip_bots/bots/idonethis/assets/idonethis-entries-list-specific-team.png
zulip_bots/bots/idonethis/assets/idonethis-help.png
zulip_bots/bots/idonethis/assets/idonethis-invalid-command.png
zulip_bots/bots/idonethis/assets/idonethis-list-entries-all-teams.png
zulip_bots/bots/idonethis/assets/idonethis-list-teams.png
zulip_bots/bots/idonethis/assets/idonethis-new-entry-specific-team.png
zulip_bots/bots/idonethis/assets/idonethis-new-entry.png
zulip_bots/bots/idonethis/assets/idonethis-team-info.png
zulip_bots/bots/idonethis/fixtures/api_noop.json
zulip_bots/bots/idonethis/fixtures/team_list.json
zulip_bots/bots/idonethis/fixtures/test_401.json
zulip_bots/bots/idonethis/fixtures/test_create_entry.json
zulip_bots/bots/idonethis/fixtures/test_create_entry_team_2.json
zulip_bots/bots/idonethis/fixtures/test_entries_list.json
zulip_bots/bots/idonethis/fixtures/test_show_team.json
zulip_bots/bots/incident/__init__.py
zulip_bots/bots/incident/incident.py
zulip_bots/bots/incrementor/__init__.py
zulip_bots/bots/incrementor/doc.md
zulip_bots/bots/incrementor/incrementor.py
zulip_bots/bots/incrementor/test_incrementor.py
zulip_bots/bots/jira/__init__.py
zulip_bots/bots/jira/doc.md
zulip_bots/bots/jira/jira.conf
zulip_bots/bots/jira/jira.py
zulip_bots/bots/jira/test_jira.py
zulip_bots/bots/jira/fixtures/test_create.json
zulip_bots/bots/jira/fixtures/test_create_error.json
zulip_bots/bots/jira/fixtures/test_edit.json
zulip_bots/bots/jira/fixtures/test_edit_error.json
zulip_bots/bots/jira/fixtures/test_get.json
zulip_bots/bots/jira/fixtures/test_get_error.json
zulip_bots/bots/jira/fixtures/test_search.json
zulip_bots/bots/jira/fixtures/test_search_scheme.json
zulip_bots/bots/link_shortener/__init__.py
zulip_bots/bots/link_shortener/doc.md
zulip_bots/bots/link_shortener/link_shortener.conf
zulip_bots/bots/link_shortener/link_shortener.py
zulip_bots/bots/link_shortener/test_link_shortener.py
zulip_bots/bots/link_shortener/fixtures/test_invalid_access_token.json
zulip_bots/bots/link_shortener/fixtures/test_normal.json
zulip_bots/bots/mention/__init__.py
zulip_bots/bots/mention/doc.md
zulip_bots/bots/mention/mention.conf
zulip_bots/bots/mention/mention.py
zulip_bots/bots/mention/test_mention.py
zulip_bots/bots/mention/assets/mentions_demo.png
zulip_bots/bots/mention/fixtures/get_account_id.json
zulip_bots/bots/mention/fixtures/get_alert_id.json
zulip_bots/bots/mention/fixtures/get_mentions.json
zulip_bots/bots/mention/fixtures/invalid_api_key.json
zulip_bots/bots/merels/__init__.py
zulip_bots/bots/merels/merels.py
zulip_bots/bots/merels/test_merels.py
zulip_bots/bots/merels/libraries/__init__.py
zulip_bots/bots/merels/libraries/constants.py
zulip_bots/bots/merels/libraries/database.py
zulip_bots/bots/merels/libraries/game.py
zulip_bots/bots/merels/libraries/game_data.py
zulip_bots/bots/merels/libraries/interface.py
zulip_bots/bots/merels/libraries/mechanics.py
zulip_bots/bots/merels/test/__init__.py
zulip_bots/bots/merels/test/test_constants.py
zulip_bots/bots/merels/test/test_database.py
zulip_bots/bots/merels/test/test_game.py
zulip_bots/bots/merels/test/test_interface.py
zulip_bots/bots/merels/test/test_mechanics.py
zulip_bots/bots/monkeytestit/__init__.py
zulip_bots/bots/monkeytestit/doc.md
zulip_bots/bots/monkeytestit/monkeytestit.conf
zulip_bots/bots/monkeytestit/monkeytestit.py
zulip_bots/bots/monkeytestit/test_monkeytestit.py
zulip_bots/bots/monkeytestit/fixtures/website_result_fail.json
zulip_bots/bots/monkeytestit/fixtures/website_result_success.json
zulip_bots/bots/monkeytestit/lib/__init__.py
zulip_bots/bots/monkeytestit/lib/extract.py
zulip_bots/bots/monkeytestit/lib/parse.py
zulip_bots/bots/monkeytestit/lib/report.py
zulip_bots/bots/salesforce/__init__.py
zulip_bots/bots/salesforce/doc.md
zulip_bots/bots/salesforce/salesforce.conf
zulip_bots/bots/salesforce/salesforce.py
zulip_bots/bots/salesforce/test_salesforce.py
zulip_bots/bots/salesforce/utils.py
zulip_bots/bots/salesforce/assets/link_details_example.png
zulip_bots/bots/salesforce/assets/query_example.png
zulip_bots/bots/salesforce/assets/top_opportunities_example.png
zulip_bots/bots/salesforce/fixtures/test_multiple_results.json
zulip_bots/bots/salesforce/fixtures/test_no_results.json
zulip_bots/bots/salesforce/fixtures/test_one_result.json
zulip_bots/bots/salesforce/fixtures/test_top_opportunities.json
zulip_bots/bots/stack_overflow/__init__.py
zulip_bots/bots/stack_overflow/doc.md
zulip_bots/bots/stack_overflow/stack_overflow.py
zulip_bots/bots/stack_overflow/test_stack_overflow.py
zulip_bots/bots/stack_overflow/fixtures/test_incorrect_query.json
zulip_bots/bots/stack_overflow/fixtures/test_multi_word.json
zulip_bots/bots/stack_overflow/fixtures/test_number_query.json
zulip_bots/bots/stack_overflow/fixtures/test_single_word.json
zulip_bots/bots/stack_overflow/fixtures/test_status_code.json
zulip_bots/bots/susi/__init__.py
zulip_bots/bots/susi/susi.py
zulip_bots/bots/susi/test_susi.py
zulip_bots/bots/susi/fixtures/test_reply.json
zulip_bots/bots/tictactoe/__init__.py
zulip_bots/bots/tictactoe/doc.md
zulip_bots/bots/tictactoe/test_tictactoe.py
zulip_bots/bots/tictactoe/tictactoe.py
zulip_bots/bots/trello/__init__.py
zulip_bots/bots/trello/doc.md
zulip_bots/bots/trello/test_trello.py
zulip_bots/bots/trello/trello.conf
zulip_bots/bots/trello/trello.py
zulip_bots/bots/trello/assets/list_commands.png
zulip_bots/bots/trello/fixtures/exception_boards.json
zulip_bots/bots/trello/fixtures/exception_cards.json
zulip_bots/bots/trello/fixtures/exception_checklists.json
zulip_bots/bots/trello/fixtures/exception_lists.json
zulip_bots/bots/trello/fixtures/get_all_boards.json
zulip_bots/bots/trello/fixtures/get_board_descs.json
zulip_bots/bots/trello/fixtures/get_cards.json
zulip_bots/bots/trello/fixtures/get_checklists.json
zulip_bots/bots/trello/fixtures/get_lists.json
zulip_bots/bots/trello/fixtures/invalid_key.json
zulip_bots/bots/trivia_quiz/__init__.py
zulip_bots/bots/trivia_quiz/test_trivia_quiz.py
zulip_bots/bots/trivia_quiz/trivia_quiz.py
zulip_bots/bots/trivia_quiz/fixtures/test_new_question.json
zulip_bots/bots/trivia_quiz/fixtures/test_status_code.json
zulip_bots/bots/twitpost/__init__.py
zulip_bots/bots/twitpost/test_twitpost.py
zulip_bots/bots/twitpost/twitpost.py
zulip_bots/bots/twitpost/fixtures/api_response.json
zulip_bots/bots/virtual_fs/__init__.py
zulip_bots/bots/virtual_fs/doc.md
zulip_bots/bots/virtual_fs/test_virtual_fs.py
zulip_bots/bots/virtual_fs/virtual_fs.py
zulip_bots/bots/weather/__init__.py
zulip_bots/bots/weather/doc.md
zulip_bots/bots/weather/test_weather.py
zulip_bots/bots/weather/weather.conf
zulip_bots/bots/weather/weather.py
zulip_bots/bots/weather/assets/screen1.png
zulip_bots/bots/weather/assets/screen2.png
zulip_bots/bots/weather/fixtures/test_city_not_found.json
zulip_bots/bots/weather/fixtures/test_city_with_country.json
zulip_bots/bots/weather/fixtures/test_only_city.json
zulip_bots/bots/weather/fixtures/test_only_country.json
zulip_bots/bots/wikipedia/__init__.py
zulip_bots/bots/wikipedia/doc.md
zulip_bots/bots/wikipedia/test_wikipedia.py
zulip_bots/bots/wikipedia/wikipedia.py
zulip_bots/bots/wikipedia/fixtures/test_hash_query.json
zulip_bots/bots/wikipedia/fixtures/test_incorrect_query.json
zulip_bots/bots/wikipedia/fixtures/test_multi_word.json
zulip_bots/bots/wikipedia/fixtures/test_number_query.json
zulip_bots/bots/wikipedia/fixtures/test_single_word.json
zulip_bots/bots/wikipedia/fixtures/test_status_code.json
zulip_bots/bots/witai/__init__.py
zulip_bots/bots/witai/doc.md
zulip_bots/bots/witai/test_witai.py
zulip_bots/bots/witai/witai.conf
zulip_bots/bots/witai/witai.py
zulip_bots/bots/xkcd/__init__.py
zulip_bots/bots/xkcd/doc.md
zulip_bots/bots/xkcd/logo.png
zulip_bots/bots/xkcd/test_xkcd.py
zulip_bots/bots/xkcd/xkcd.py
zulip_bots/bots/xkcd/assets/xkcd-help.png
zulip_bots/bots/xkcd/assets/xkcd-latest.png
zulip_bots/bots/xkcd/assets/xkcd-random.png
zulip_bots/bots/xkcd/assets/xkcd-specific-id.png
zulip_bots/bots/xkcd/assets/xkcd-wrong-command.png
zulip_bots/bots/xkcd/assets/xkcd-wrong-id.png
zulip_bots/bots/xkcd/fixtures/test_latest.json
zulip_bots/bots/xkcd/fixtures/test_not_existing_id.json
zulip_bots/bots/xkcd/fixtures/test_not_existing_id_2.json
zulip_bots/bots/xkcd/fixtures/test_random.json
zulip_bots/bots/xkcd/fixtures/test_specific_id.json
zulip_bots/bots/yoda/__init__.py
zulip_bots/bots/yoda/doc.md
zulip_bots/bots/yoda/test_yoda.py
zulip_bots/bots/yoda/yoda.conf
zulip_bots/bots/yoda/yoda.py
zulip_bots/bots/yoda/assets/yoda-speak-api.png
zulip_bots/bots/yoda/fixtures/test_1.json
zulip_bots/bots/yoda/fixtures/test_2.json
zulip_bots/bots/yoda/fixtures/test_api_key_error.json
zulip_bots/bots/yoda/fixtures/test_invalid_input.json
zulip_bots/bots/yoda/fixtures/test_only_numbers.json
zulip_bots/bots/yoda/fixtures/test_service_unavailable_error.json
zulip_bots/bots/yoda/fixtures/test_unknown_error.json
zulip_bots/bots/youtube/__init__.py
zulip_bots/bots/youtube/doc.md
zulip_bots/bots/youtube/test_youtube.py
zulip_bots/bots/youtube/youtube.conf
zulip_bots/bots/youtube/youtube.py
zulip_bots/bots/youtube/assets/youtube-api-enabled.png
zulip_bots/bots/youtube/assets/youtube-error.png
zulip_bots/bots/youtube/assets/youtube-list.png
zulip_bots/bots/youtube/assets/youtube-not-found.png
zulip_bots/bots/youtube/assets/youtube-search.png
zulip_bots/bots/youtube/fixtures/test_invalid_key.json
zulip_bots/bots/youtube/fixtures/test_keyok.json
zulip_bots/bots/youtube/fixtures/test_multiple.json
zulip_bots/bots/youtube/fixtures/test_noresult.json
zulip_bots/bots/youtube/fixtures/test_single.json
zulip_bots/bots/youtube/fixtures/test_unknown_error.json