Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/argonism/piyo
🐣 esa API v1 client library, written in python
https://github.com/argonism/piyo
Last synced: 2 days ago
JSON representation
🐣 esa API v1 client library, written in python
- Host: GitHub
- URL: https://github.com/argonism/piyo
- Owner: argonism
- Created: 2021-09-20T10:59:37.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-10-05T08:32:52.000Z (about 1 year ago)
- Last Synced: 2024-10-10T09:31:15.266Z (about 1 month ago)
- Language: Python
- Homepage:
- Size: 59.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🐣 piyo
esa API v1 client library, written in Python[![Downloads](https://static.pepy.tech/badge/piyo)](https://pepy.tech/project/piyo)
[![Downloads](https://static.pepy.tech/badge/piyo/month)](https://pepy.tech/project/piyo)
[![Downloads](https://static.pepy.tech/badge/piyo/week)](https://pepy.tech/project/piyo)## Installation
Install this library using pip from [PyPI](https://pypi.org/project/piyo/)
``` shell
pip install piyo
```## Usage By purpose
### Preparation
```python
from piyo import Clientclient = Client(access_token='', current_team='')
```### Search article
Set search keywords and options.
See official documents for details: https://docs.esa.io/posts/102#%E8%A8%98%E4%BA%8B
``` python
keywords = ["diary", "secret"]
search_options = {
"sort": "created"
}
posts = client.posts(keywords=keywords, search_options=search_options)
```## Usage
``` python
from piyo import Clientclient = Client(access_token='', current_team='')
# Client will look up environment variables "ESA_ACCESS_TOKEN", so you can set access token
# to ESA_ACCESS_TOKEN instead of pass it to Client.client.user()
#=> GET /v1/userclient.teams()
#=> GET /v1/teamsclient.team()
#=> GET /v1/teams/client.stats()
#=> GET /v1/teams//statsclient.members()
#=> GET /v1/teams//membersclient.delete_member()
#=> DELETE /v1/teams//members/1client.posts(keywords=["diary secret"], search_options={"sort": "created"})
#=> GET /v1/teams//postsclient.post(1)
#=> GET /v1/teams//posts/1client.create_post({post: {name: "hi!"}})
#=> POST /v1/teams//postsclient.update_post(1, {post: {name: "hi!"}})
#=> PATCH /v1/teams//posts/1client.delete_post(1)
#=> DELETE /v1/teams//posts/1client.comments()
#=> GET /v1/teams//commentsclient.comments(1)
#=> GET /v1/teams//posts/1/commentsclient.create_comment(1, {"comment":{"body_md":"LGTM!"}})
#=> POST /v1/teams//posts/1/commentsclient.update_comment(234, {"comment":{"body_md":"LGTM!"}})
#=> PATCH /v1/teams//comments/234client.delete_comment(234)
#=> DELETE /v1/teams//comments/234client.comment(234)
#=> GET /v1/teams//comments/234client.add_post_star(1)
#=> POST /v1/teams//posts/1/starclient.delete_post_star(1)
#=> DELETE /v1/teams//posts/1/starclient.stargazers(1)
#=> GET /v1/teams//posts/1/stargazersclient.add_comment_star(234)
#=> POST /v1/teams//comment/234/starclient.delete_comment_star(234)
#=> DELETE /v1/teams//comment/234/starclient.watchers(1)
#=> POST /v1/teams//posts/1/watchersclient.add_watch(1)
#=> POST /v1/teams//posts/1/watchclient.delete_watch(1)
#=> DELETE /v1/teams//posts/1/watchclient.batch_move({})
#=> POST /v1/teams//posts/1/watchclient.regenerate_invitation()
#=> POST /v1/teams//invitation_regeneratorclient.send_invitation({"member": {"emails": ["[email protected]"]})
#=> POST /v1/teams//invitationsclient.delete_invitation("mee93383edf699b525e01842d34078e28")
#=> DELETE /v1/teams//invitations/mee93383edf699b525e01842d34078e28client.invitations()
#=> GET /v1/teams//invitationsclient.emojis()
#=> GET /v1/teams//emojisclient.create_emoji({"emoji": {"code": "funny", "image": base64}})
#=> POST /v1/teams//emojisclient.delete_emoji("test_emoji")
#=> DELETE /v1/teams//emojis/test_emoji```
## Development
issues and pull requests are always welcome!
run integration test
``` shell
python3 tests/integration_test.py
```run unit test
``` shell
python3 tests/.py -v
```