Asynchronous client for https://rentry.co/ (https://rentry.org/)
Project description
aiorentry
Asynchronous API client for rentry.co (mirror: rentry.org)
About
This package allows you to interact with the rentry.co (or rentry.org) service.
Rentry.co is a markdown pastebin and publishing service that offers features such as previews, custom URLs, and editing.
Please note that this library is not developed by the official authors of rentry.co. It replicates the functionality of the official console utility, but provides it as an asynchronous API client. With this package you can manage your pages: create, edit and delete, as well as get data in text, PNG or PDF formats. All directly from your asynchronous Python application.
Installation
pip install aiorentry
Setup client
You can setup client in 2 ways:
As classic object
[!CAUTION] If you prefer the classic way, you should call
await client.setup()during initialization andawait client.close()during completion
import asyncio
from aiorentry.client import Client
async def main():
client = Client('https://rentry.co')
await client.setup()
# Your code here
await client.close()
asyncio.run(main())
As async context manager
import asyncio
from aiorentry.client import Client
async def main():
async with Client('https://rentry.co') as client:
# Your code here
asyncio.run(main())
Examples
Create new page
...
# Create new page
page = await client.new_page(
'## Hello world from awesome API',
)
print(page)
...
Page(url='m2e2wpe8', edit_code='hUHeRUei', text='## Hello world from awesome API')
...
# Create new page with custom url and edit_code
awesome_page = await client.new_page(
'## Hello world from awesome API',
url='awesome-url',
edit_code='qwerty=)'
)
print(awesome_page)
...
Page(url='awesome-url', edit_code='qwerty=)', text='## Hello world from awesome API')
Edit page
...
# Edit page
await client.edit_page(
'### Updated Hello world',
url='awesome-url',
edit_code='qwerty=)',
)
...
Delete page
...
# Delete page
await client.delete_page(
url='awesome-url',
edit_code='qwerty=)',
)
...
Get raw page text
[!NOTE] This rentry functionality has limitations now. You can't just view the source text of any page.
...
# Get raw content
content = await client.raw(
'awesome-url',
secret_raw_access_code='YOUR_CODE_HERE', # optional
)
print(content)
...
### Updated Hello world
To view the source text you have 2 options:
- Specify your personal code inside page metadata. In this case, everyone will have access to the source text of the page through the API.
- Specify your personal code when trying to get the source text of any page. In this case, you will be able to get the source text, regardless of the metadata of the target page
Get PDF file
[!NOTE] This functionality has been removed from the library as it is no longer available in the original service via API. This method will be completely removed in the next version.
Get PNG
[!NOTE] This functionality has been removed from the library as it is no longer available in the original service via API. This method will be completely removed in the next version.
Custom ClientSession
[!NOTE] By default, a new instance of
aiohttp.ClientSessionwill be created automatically. So normally you don't need to worry about this.
If you don't want to automatically create the session object inside the client, you can pass an existing aiohttp.ClientSession to the client constructor.
[!CAUTION] If you pass an existing session object to the client constructor, then you should care about releasing resources yourself.
The session will not be closed automatically! Even if the asynchronous context manager was used.
from aiohttp import ClientSession, TCPConnector
from aiorentry.client import Client
connector = TCPConnector(
limit=5, # Just for example
)
session = ClientSession(
connector=connector,
)
async with Client('https://rentry.co', session=session) as client:
# Your code here
async with session.get(...) as response:
# You can still use this session object
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiorentry-0.2.0.tar.gz.
File metadata
- Download URL: aiorentry-0.2.0.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.10.13 Linux/6.8.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86af6c60f4d6b5bddd1d4eec6a326008c2b6797165591f394a6221c5daecb187
|
|
| MD5 |
712253bc96e9a22e75353d085bfc7613
|
|
| BLAKE2b-256 |
9e3d7c53a5df9350fe1aaeb284ac20f7183f2b2417cfed19ba654159ee78fe4a
|
File details
Details for the file aiorentry-0.2.0-py3-none-any.whl.
File metadata
- Download URL: aiorentry-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.10.13 Linux/6.8.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cb5290ab10c0f2164b6ed4183eb807854088c3793f502f59f88d80e7de1ac6a
|
|
| MD5 |
b3b0fd83a752af538a470db07051e165
|
|
| BLAKE2b-256 |
eef4171e1e3f0c2758adfe6115d100799c331e0026aa7d655302eefea9aca2a5
|