跳转到主要内容

rentry.co的异步客户端(https://rentry.co/)(镜像:https://rentry.org/)

项目描述

aiorentry

rentry.co(镜像:rentry.org)的异步API客户端

GitHub Actions Workflow Status codecov PyPI - Version GitHub License

关于

此包允许您与rentry.co(或rentry.org)服务进行交互。

Rentry.co是一个提供预览、自定义URL和编辑等功能的高级Markdown粘贴板和发布服务。

请注意,此库不是由rentry.co的官方作者开发的。它复制了官方控制台工具的功能,但提供了异步API客户端。使用此包,您可以管理您的页面:创建、编辑和删除,以及以文本、PNG或PDF格式获取数据。所有操作均直接从您的异步Python应用程序中完成。

安装

pip install aiorentry

设置客户端

您可以通过两种方式设置客户端

作为经典对象

[!警告] 如果您更喜欢经典方式,您应该在初始化期间调用 await client.setup(),在完成期间调用 await client.close()

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())

作为异步上下文管理器

import asyncio

from aiorentry.client import Client


async def main():
    async with Client('https://rentry.co') as client:
        # Your code here


asyncio.run(main())

示例

创建新页面

...
# 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
await client.edit_page(
    '### Updated Hello world',
    url='awesome-url',
    edit_code='qwerty=)',
)
...

删除页面

...
# Delete page
await client.delete_page(
    url='awesome-url',
    edit_code='qwerty=)',
)
...

获取原始页面文本

...
# Get raw content
content = await client.raw('awesome-url')
print(content)
...
### Updated Hello world

获取PDF文件

...
# Get PDF
with open('page.pdf', mode='wb') as fp:
    fp.write(await client.pdf(page.url))
...

获取PNG

...
with open('page.png', mode='wb') as fp:
    fp.write(await client.png(page.url))
...

自定义ClientSession

[!注意] 默认情况下,将自动创建新的实例。所以通常您不需要担心这个问题。

如果您不想在客户端自动创建会话对象,可以将现有的 aiohttp.ClientSession 传递给客户端构造函数。

[!注意] 如果将现有的会话对象传递给客户端构造函数,那么您应该自己注意释放资源。
会话将不会自动关闭! 即使使用了异步上下文管理器。

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

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

aiorentry-0.1.2.tar.gz (4.8 kB 查看哈希值)

上传时间

构建分发

aiorentry-0.1.2-py3-none-any.whl (5.1 kB 查看哈希值)

上传时间 Python 3

由以下支持