跳转到主要内容

Vestaboard客户端库

项目描述

Vesta

Vesta是Python的Vestaboard客户端库。它提供API客户端和字符编码实用程序。

安装

Vesta需要Python 3.8或更高版本。它可以通过PyPI进行安装。

$ python -m pip install vesta

它的唯一运行时依赖项是HTTPX库,它将被自动安装。

用法

API客户端

读写API

ReadWriteClient提供了一个用于通过读写API与Vestaboard交互的客户端接口。

请注意,Vestaboard所有者必须首先通过在移动应用的设置部分或从Web应用的开发者部分启用Vestaboard的读写API来获取他们的读写API密钥。

import vesta
rw_client = vesta.ReadWriteClient("read_write_key")

# Once enabled, you can write and read messages:
message = vesta.encode_text("{67} Hello, World {68}")
assert rw_client.write_message(message)
assert rw_client.read_message() == message

订阅API

SubscriptionClient提供了一个用于通过订阅API与多个Vestaboards交互的客户端接口。

请注意,获取订阅或发送消息需要API密钥和密钥。这些凭据可以在Web应用的开发者部分创建。

信息可以以文本字符串或表示板上字符确切位置的二维字符代码数组的形式发布。

如果指定了文本,则行将在水平和垂直方向上居中。将推断字母数字和标点符号的字符代码,或者可以使用包含字符代码的大括号显式指定(如 {5}{65})。

import vesta
subscription_client = vesta.SubscriptionClient("api_key", "api_secret")

# List subscriptions and send them messages:
subscriptions = subscription_client.get_subscriptions()
for subscription in subscriptions:
    subscription_client.send_message(subscription["id"], "{67} Hello, World {68}")

本地API

LocalClient 提供了一个客户端接口,用于通过 Vestaboard的本地API 在本地网络中与Vestaboard交互。

请注意,Vestaboard所有者必须首先请求 本地API启用令牌 才能使用本地API。

import vesta
local_client = vesta.LocalClient()

# The Vestaboard's Local API must be enabled to get its Local API key. After
# you've done this once, you can save the key somewhere safe and pass it
# directly to LocalClient() for future client initializations.
local_api_key = local_client.enable(ENABLEMENT_TOKEN)
# e.g. local_client = LocalClient(local_api_key)
assert local_client.enabled

# Once enabled, you can write and read messages:
message = vesta.encode_text("{67} Hello, World {68}")
assert local_client.write_message(message)
assert local_client.read_message() == message

VBML API

VBMLClient 提供了一个客户端接口,用于与 VBML(Vestaboard标记语言)API 交互。

import vesta

component = Component(
    "Vestaboard Markup Language",
    justify="center",
    align="center",
    width=22,
    height=6,
)

vbml_client = vesta.VBMLClient()
vesta.pprint(vbml_client.compose([component]))

平台客户端

Client 提供了一个客户端接口,用于与已弃用的 Vestaboard平台API 交互。

这是原始的Vestaboard平台API。它已被弃用,并由上面列出的其他API取代。特别是,Vestaboard鼓励Platform API用户切换到 订阅API,该API提供几乎相同的功能。

字符编码

所有Vestaboard字符(字母、数字、符号和颜色)都编码为整数 字符代码。Vesta包括一些用于处理这些字符代码的有用例程。

encode() 将字符串编码为字符代码列表。除了可打印字符外,字符串还可以包含大括号中的字符代码序列,例如 {5}{65}

>>> vesta.encode("{67} Hello, World {68}")
[67, 0, 8, 5, 12, 12, 15, 55, 0, 23, 15, 18, 12, 4, 0, 68]

encode_row() 将字符串编码为字符代码行。它通过提供对齐控制来建立在 encode() 的基础上。

>>> vesta.encode_row("{67} Hello, World {68}", align="center")
[0, 0, 0, 67, 0, 8, 5, 12, 12, 15, 55, 0, 23, 15, 18, 12, 4, 0, 68, 0, 0, 0]

encode_text() 将文本字符串编码为字符代码行,通过添加对齐、边距控制和换行进一步建立在 encode()encode_row() 的基础上。

>>> encode_text("multiple\nlines\nof\ntext", align="center", valign="middle")
[
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 13, 21, 12, 20, 9, 16, 12, 5, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 14, 5, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 5, 24, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
]

最后,可以使用 pprint() 将编码的字符以美观的方式打印到控制台,这在开发过程中可能很有用。

>>> vesta.pprint([0, 0, 0, 67, 0, 8, 5, 12, 12, 15, 55, 0, 23, 15, 18, 12, 4, 0, 68, 0, 0, 0])
| | | |◼︎| |H|E|L|L|O|,| |W|O|R|L|D| |◼︎| | | |

示例

许可证

本项目的许可协议为MIT许可协议

项目详情


下载文件

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

源分布

vesta-0.12.0.tar.gz (17.6 kB 查看哈希值)

上传时间

构建分布

vesta-0.12.0-py3-none-any.whl (14.8 kB 查看哈希值)

上传于 Python 3

支持