Shivam Gera
fc1d134685
api: Use custom exceptions in API client.
...
This removes the use of RuntimeError, and replaces it with a custom
error class called ZulipError. In a few places, we use a subclass to
make it easier for code to interact with the error type.
2018-02-16 11:33:18 -08:00
Eeshan Garg
f74c94ba04
pypi_packaging: Release version 0.4.1.
2018-02-07 01:03:49 -03:30
XavierCooney
68ec3a5ef0
zephyr_mirror_backend.py: Remove duplicate import.
2018-01-16 08:07:09 -05:00
Eeshan Garg
67cdb6f8f0
zulip: Make a DELETE request in remove_subscriptions.
...
Previously, remove_subscriptions called the
PATCH /api/v1/users/me/subscriptions endpoint, which is more like
an ad-hoc endpoint for bulk adding/removing subscriptions for the
user that makes the request. However, making a DELETE request
allows an admin to pass in the `principals` argument to unsubscribe
other users from streams as well, which is more consistent with how
add_subscriptions works.
2018-01-12 07:29:06 -05:00
Eeshan Garg
4458276801
requirements: Remove runtime dependency on mock.
...
The zulip and zulip_botserver packages specify mock as a runtime
dependency, which is only needed for testing during development.
So, it made more sense to move it to requirements.txt so that
it can be installed by ./tools/provision during development.
2018-01-09 17:01:16 -03:30
neiljp (Neil Pilgrim)
d3220eefe7
Jabber: Report where Zulip config not found, clarifying typing.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
b5c3442b57
mypy: Remove explicit typing & add assertions in jabber backend.
...
Usage indicates set_jabber_client must be called before using
JabberToZulipBot, so assertions express intent & satisfy mypy.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
afee6d706f
mypy: Assert Zulip.[api_key|email] are not None, satisfying use in Zephyr.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
aa718da3e1
Zephyr: For correctness & mypy, res.get('result') -> res['result'].
...
Also correct nearby error message (subscribing to -> receiving).
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
02d9ba8edd
mypy: Add cast for zephyr_mirror_backend logger variable.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
466f5a7167
mypy: Amend zephyr mirror annotations for strict-optional.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
2b172e08c7
mypy: Correct SVN integration & satisfy strict-optional typing.
...
The commit_notice_destination return value was previously not
checked against None, which indicates no message should be sent.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
9502e0eb9a
hg integration: Use explicit sys.exit.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
55df1886cc
mypy: Amend hg integration to simplify error handling/typing.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
d26e44ebb2
mypy: Add client_cert assertion & amend annotation in Zulip API.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
13bf6f7262
mypy: Add non-None session assertion in Zulip API.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
2a2c8ae25f
API: Amend call_on_each_event error handling to not use .get().
...
mypy with strict-optional led to examination of res.get('result')
calls potentially raising TypeError ('error' in None).
Server code indicates this is safe, and other nearby code assumes
presence of fields in 'res' also.
2018-01-08 15:39:03 -05:00
Eeshan Garg
3030c73060
packages: Release 0.4.0.
2018-01-06 18:28:35 -03:30
Robert Hönig
06c5904347
Add 'mock' requirement for zulip and zulip_botserver.
...
These packages depend on mock. Previously, that dependency
was satisfied "by chance" because zulip_bots happened to
install 'mock'.
2018-01-06 16:39:52 +01:00
neiljp (Neil Pilgrim)
8b4e877546
mypy: Amend upload-file example, to pass with strict-optional.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
9df922e7fa
mypy: Adjust zulip api slightly, to pass with strict-optional.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
fc460dc12b
mypy: Rewrite trac integration for clarity & to pass strict-optional.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
33ccc04a32
mypy: Amend code & typing of integrations, to pass with strict-optional.
2018-01-02 14:05:33 -05:00
Rhea Parekh
27842b2d24
slack importer: Add README.md.
2017-12-27 07:54:42 -05:00
Rhea Parekh
0bb50fdc4e
slack importer: Shift the slack data conversion files to zulip server repo.
2017-12-27 07:54:42 -05:00
neiljp (Neil Pilgrim)
bcca5230a3
mypy: Remove un-needed 'type: ignore' for session.auth.
2017-12-21 18:43:42 -05:00
fredfishgames
b865978546
Create welcome-message
api example.
2017-12-19 14:42:55 -05: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
Rhea Parekh
e5726fdc96
slack: fix type annonations.
2017-12-03 10:30:02 -08:00
Rhea Parekh
1f17c04115
slack: remove the messages and attachments mapping.
2017-12-03 10:30:02 -08:00
Rhea Parekh
455acb8e3b
slack: Make minor fixes in zerver_userprofile and zerver_realm mappings.
2017-12-03 10:30:02 -08:00
Rhea Parekh
8def7564dd
slack: Map recipients and subscriptions for private messages.
2017-12-03 10:30:02 -08:00
rht
cb1cafe194
slack: Add attachment.json skeleton.
...
Map the attachments but disable attachments
them for now.
2017-12-03 10:30:02 -08:00
rht
b7ab8b4257
slack: Add avatar and uploads records.json.
2017-12-03 10:30:02 -08:00
rht
9ce064b2c1
slack: Do minor fixes.
...
Minor fixes in zerver_userprofile mapping.
Remove TODO from REALM_ID task.
2017-12-03 10:30:02 -08:00
Rhea Parekh
7198aab1a9
slack: Fix zerver_message, zerver_defaultstream
...
and refactor zerver_usermessage implementation.
2017-12-03 10:30:02 -08:00
rht
6366448903
slack: Add minor changes.
...
Rename the function channelmessage2zerver_message to channelmessage2zerver_message_for_one_stream.
Compress the converted data with tar instead of zip.
Add changes in zerver_userprofile mapping and zerver_realm mappings.
Do the manage.py import from a directory instead.
2017-12-03 10:30:02 -08:00
Rhea Parekh
716570ceaa
slack: Add zerver_usermessage object and map flags_mask
2017-12-03 10:30:02 -08:00
rht
b3a7a4f937
Slack: Add zerver_defaultstream feature.
...
Thanks to @rheaparekh for pointing out the doc for sanity check ;)
2017-12-03 10:30:02 -08:00
rht
46fd234824
slack: Clarify var naming of sanitize text function.
2017-12-03 10:30:02 -08:00
Rhea Parekh
ce51d99c6a
slack: Sanitize the message text and fix Travis test.
2017-12-03 10:30:02 -08:00
rht
7db4e36752
slack: Add minor changes.
...
Set default value to be False for message's has_image
Update type signature to functions.
Set default to be false for msg's has_link.
2017-12-03 10:30:02 -08:00
Rhea Parekh
a02f0f98c1
slack: Map recipient and fix subscription mapping.
2017-12-03 10:30:02 -08:00
rht
704b742f82
slack: Handle avatar from slack if it is stored in gravatar.
...
Thank you @**Rhea** for the research.
2017-12-03 10:30:02 -08:00
rht
cd3db24bca
Add slack data importer.
...
This importer is more comprehensive than the existing one.
slack import: Reduce TODO count.
2017-12-03 10:30:02 -08:00
Eeshan Garg
c3ab265d3e
packaging: Upgrade to release 0.3.9.
2017-11-29 01:23:12 -03:30
Robert Hönig
d6a4c02ba5
Rename bot storage endpoint from state to storage.
2017-11-28 20:41:59 +01:00
Eeshan Garg
50b5ec0f49
packages: Release 0.3.8 for all PyPI packages.
2017-11-27 23:34:38 -03:30
Steve Howell
043d963a99
Fail fast for bad connections with the API and bots.
...
The API has aggressive retry logic for connecting to a
server, which may make sense for situation where you have
connection blips or server restarts.
When you're first connecting to the API, however, connection
failures are almost certainly a sign of misconfiguration, so
now we fail fast.
The bot lib takes advantage of this API change by catching the
ZulipError exception and exiting gracefully.
2017-11-21 14:21:04 -08:00
derAnfaenger
f41030b515
API: rename get_state & update_state to get_storage & update_storage.
2017-11-18 08:58:47 -08:00
derAnfaenger
66da09324e
zulip package: Add API functions to access state.
2017-11-18 08:58:47 -08:00
neiljp (Neil Pilgrim)
c24c1d2e61
mypy: Add 'type: ignore' comment due to patching function.
2017-11-15 13:43:08 -08:00
neiljp (Neil Pilgrim)
9ed0fa9e6f
mypy: Remove unnecessary 'type: ignore' in google calendar.
2017-11-15 13:43:08 -08:00
neiljp (Neil Pilgrim)
3e55124f4e
mypy: Remove 'type: ignore's now that python/mypy#1248 is fixed.
2017-11-15 13:43:08 -08:00
derAnfaenger
c6aed00aa1
integrations: Make twitter bot handle search terms more intelligently.
...
When invoked with search terms, twitter bot looks for these terms
in the content of a message to find out if they match. However,
Twitter can return messages that don't directly contain a search term.
This commit adds the tweeter user handle and expanded urls to the
places to look for a search term.
2017-11-07 11:13:29 -08:00
derAnfaenger
2553cf45a5
integrations: Use default client init from options for twitter bot.
...
This allows users to specify a config file with the
--config-file option.
2017-11-07 11:13:29 -08:00
derAnfaenger
7e7c7598b7
integrations: Add requirements for twitter bot.
2017-11-07 11:13:29 -08:00
Alena Volkova
fe6deb2e03
mypy: zulip: Fix errors in tests/test_default_arguments.py.
2017-10-27 00:56:06 -04:00
Alena Volkova
99785a1be4
mypy: zulip: Fix errors in tests/__init__.py.
2017-10-27 00:56:06 -04:00
Alena Volkova
671a078137
mypy: zulip: Fix errors in integrations/zephyr/process_ccache.
2017-10-27 00:56:06 -04:00
Alena Volkova
8becce7c98
mypy: zulip: Annotate integrations/svn/zulip_svn_config.py.
2017-10-27 00:56:06 -04:00
Alena Volkova
ab192fe937
mypy: zulip: Annotate integrations/perforce/zulip_perforce_config.py.
2017-10-27 00:56:06 -04:00
Alena Volkova
7ad3324aaa
mypy: zulip: Fix errors in integrations/log2zulip/log2zulip.
2017-10-27 00:55:54 -04:00
Alena Volkova
995dc33334
mypy: zulip: Fix errors in integrations/irc/irc_mirror_backend.py.
2017-10-26 17:02:14 -04:00
Alena Volkova
af957c18fe
mypy: zulip: Annotate integrations/git/zulip_git_config.py.
2017-10-26 17:02:14 -04:00
Eeshan Garg
4af8bcd46e
packaging: Upgrade package version (0.3.5 -> 0.3.7).
2017-10-21 01:10:25 -02:30
derAnfaenger
0e6ea0a439
api: Add comments clarifying the request logic.
2017-10-11 22:24:12 -07:00
derAnfaenger
a7bfe692fa
api: Fix unused long-polling retry parameter.
...
This parameter was intended to control whether we give a long timeout
and related behavior, but it was accidentally not being passed into
the second layer of the library from the first.
While we're fixing it, make it actually limit the length of a timeout
to something reasonable.
2017-10-11 22:24:01 -07:00
Eeshan Garg
1e8e1f17c4
release: Upgrade package versions (0.3.4 -> 0.3.5).
2017-10-09 14:13:32 -02:30
Tim Abbott
297b62efc6
log2zulip: Use simpler code for accessing production venv.
...
The only problem with this resulting code is that setup_path_on_import
only works if the Python versions are the same, so you need to run
this with Python 3 in that case.
We try to resolve that for use on Zulip servers with
zulip/zulip:47c5aae5b242fb6d2f5e860602e0fc0af68419bb; since that's the
main case where the code path runs, that should be good enough.
2017-10-06 16:37:56 -07:00
Tim Abbott
dc2132e629
zephyr_mirror: Eliminate --root-path arguments.
...
These were quite messy code, and now that almost nobody is running
their own zephyr mirroring script (vs. using webathena), making the
zephyr mirroring script deployable outside the package isn't super
valuable.
2017-10-05 13:24:59 -07:00
Tim Abbott
963e6d0ad8
zephyr_mirror: Always run backend script from current directory.
...
While this technically removes functionality, it's rare that it would
be useful to do this.
2017-10-05 13:17:10 -07:00
Tim Abbott
96f2100974
zephyr: Remove root-path import nonsense from check-mirroring.
...
We no longer need this in order to access the script's dependencies,
since it now is part of a proper package.
2017-10-05 13:02:58 -07:00
Tim Abbott
bc4e54a35d
zephyr_mirror: Restart self using __file__, not root-path.
...
This should do the same thing, but with less complexity.
2017-10-05 12:46:01 -07:00
Tim Abbott
7e5a320343
zephyr_mirror: Move stamp_path to not be based on root_path.
2017-10-05 12:37:49 -07:00
Tim Abbott
6395dc1a45
zephyr_mirror: Update process_cache for repository move.
...
This also has the side effect of stopping using the --root-path
argument, which should no longer be required.
2017-10-05 12:21:11 -07:00
Tim Abbott
807afd2032
zephyr: Use add_default_arguments in sync_public_streams.
2017-09-29 16:21:18 -07:00
Tim Abbott
baa09bc26c
log2zulip: Clean up extra config path and add comments.
...
That extra complexity isn't particularly valuable.
2017-09-15 07:04:36 -07:00
derAnfaenger
b53dc5de4c
log2zulip: Make paths Windows compatible.
2017-09-15 07:04:36 -07:00
derAnfaenger
761d4f44c1
log2zulip: Use default argparser.
2017-09-15 07:04:36 -07:00
derAnfaenger
3fb640a5d0
zulip: Use canonical way to require an arg in subscribe.
2017-09-15 13:24:32 +02:00
derAnfaenger
a06437c4ee
zulip: Use canonical way to require an arg in unsubscribe.
2017-09-15 13:24:28 +02:00
derAnfaenger
0a49638e82
mypy: Add annotations to api_examples.py
2017-09-15 13:24:24 +02:00
derAnfaenger
61de5578f2
mypy: Fix annotations in core zulip files.
2017-09-15 13:24:09 +02:00
derAnfaenger
59d65309c7
zulip: Exit with info after provisioning script.
2017-09-15 03:06:17 -07:00
derAnfaenger
091f532da6
zulip-api-examples: Check and print path to script.
2017-09-15 02:06:38 -07:00
derAnfaenger
6630deda6a
twitter bots: Merge twitter-bot and twitter-search-bot.
2017-09-15 00:55:01 -07:00
derAnfaenger
623557d189
zulip: Install all example scripts in the package's dir.
2017-09-14 04:46:13 -07:00
derAnfaenger
2f044b44bd
zulip: Move examples to zulip/examples.
2017-09-14 04:46:13 -07:00
derAnfaenger
2f62507987
api: Add script to print path of examples directory.
...
Partially fixes #92 .
2017-09-14 04:46:13 -07:00
derAnfaenger
ae4bf8bbf4
zulip: Store examples in the package's directory.
2017-09-14 04:46:13 -07:00
derAnfaenger
59320f6b28
zulip: Explain use cases for generate_option_group()
method.
2017-09-14 11:39:11 +02:00
derAnfaenger
631c64ca6c
zulip: Move from simplejson to json.
...
This removes the simplejson dependency.
2017-09-14 02:26:56 -07:00
derAnfaenger
d05e932968
log2zulip: Replace ujson with json.
2017-09-12 02:14:51 -07:00
derAnfaenger
c6e7ddfb03
zulip package: Make check for provision failsafe.
...
It is not guaranteed that the integration scripts in
the Zulip repository even specify a `provision` option.
Therefore, checking the value of this option would fail.
Updating this with getattr and a default value.
2017-09-12 11:08:58 +02:00
derAnfaenger
cb770ffee9
irc-mirror.py: Allow optional provisioning.
...
To do so, we need to import all required internal modules after the
script had the option to provision. The provisioning itself is then
done by zulip.init_from_options().
2017-09-12 01:39:21 -07:00
derAnfaenger
61b609e6f2
irc integration: Make IRCBot a separate module.
...
This will allow us to import IRCBot at a later point
in the code, necessary for provsioning support.
2017-09-12 01:39:21 -07:00
derAnfaenger
9acd9d932c
irc-mirror.py: Make zulip_client an argument of IRCBot.
...
This is the first step towards moving IRCBot to a
separate file.
2017-09-12 01:39:21 -07:00
derAnfaenger
ec18cbff26
zulip package: Add provision option for scripts.
...
If enabled in a script, this option will try to install dependencies
in the requirements.txt in the script's directory.
2017-09-12 01:39:21 -07:00
derAnfaenger
50d8c5f7fe
zulip package: Add requirements.txt for each integration.
2017-09-12 01:39:21 -07:00