Skip to content

somerovi/cosmicray-rocketchat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cosmicray-Rocketchat

Implementation of Rocket.Chat restful api

Warning

Cosmicray-Rocketchat is under development

Install

$ pip install cosmicray-rocketchat

Quick start

CLI

Cosmicray-Rocketchat ships with a simple commandline interface.

$ rocketchat --help

Configuration: Credentials

Credentials are stored in a file called ~/.cosmicray/rocketchat/creds. The following snippet of code creates it:

>>> import rocketchat
>>> rocketchat.create_creds_file('myusername', 'mypassword')

Configuration: Domain and other settings

The following code will configure cosmicray-rocketchat client with the domain to use and save the configuration to file

>>> import rocketchat
>>> rocketchat.configure(domain='http://myrocketchatdomain.com')
>>> rocketchat.store_config()

When importing cosmicray-rocketchat, the config will be automatically loaded. If you need to disable ssl verification

>>> rocketchat.configure(
...    monkey_patch=True,
...    verify=False)
>>> rocketchat.store_config()

The monkey_patch flag disable SSL warnings.

Alternatively, the above configurations can be changed using the cli:

$ rocketchat configure password --username myusername
Promp password:
$ rocketchat configure domain "http://myrocketchatdomain.com" --no-verify

Configuration: Debugging

If there are any issues with making the requests, debugging can be enabled:

>>> import rocketchat
>>> rocketchat.configure(config={'debug': True})

Or via command line:

$ rocketchat configure domain --verbose

API

Cosmicray-Rocketchat defines endpoints from https://rocket.chat/docs/developer-guides/rest-api in rocketchat.v1 module. For example, to get the server api version, you would make the following request:

The preferred way to interact with the Rocket.Chat api is to use models defined in rocketchat.models module.

>>> rocketchat.models.User.me
<User(_id='CA9t5phAAaLcN9sdZ', type=None, status='offline', active=True, name='bot'...)>
>>> foo = rocketchat.models.User(username='foo').get()
>>> foo.send('Hello foo')

To list public, groups, direct message rooms

>>> rooms = rocketchat.models.Channel.channels
>>> groups = rocketchat.models.Channel.groups
>>> direct = rocketchat.models.Channel.direct

For convenience, one could access users and rooms via mappings:

>>> users = rocketchat.users()
>>> channels = rocketchat.channels()
>>> groups = rocketchat.groups()
>>> foo = users['foo']
>>> foo.send('Hello Foo!')
>>> messages = channels['mychannel'].messages.unread
>>> channels['mychannel'].send('Hey!')

To list/send messages for a channel (direct, group, or public/private channel):

>>> myroom = rocketchat.channels()['myroom']
>>> print(myroom.messages.unread)
>>> messages = myroom.messages.by_daterange('2018-01-01', '2018-01-02').count(100).get()
>>> myroom.send('hello')

To update/delete messages:

>>> message = myroom.messages.last[0]
>>> message.msg = 'changed message'
>>> message.update()
>>> message.pin()
>>> message.delete()

About

Implementation of rocketchat's restful API

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages