A command line tool written in Python 3 for creating lunar birthday events
Project description
lunar-birthday-ical
这是什么?
一个使用 Python 3 编写的用于创建农历生日事件的命令行工具.
lunar-birthday-ical 读入一个 YAML 配置文件, 生成 iCalendar 格式的 .ics 文件, 可选是否将日历上传到 pastebin, 方便直接订阅,
示例配置文件请参考 config/example-lunar-birthday.yaml, 注释应该足够能解释每个选项分别是什么含义.
可以使用 -h 或者 --help 选项查看命令行工具帮助信息,
$ lunar-birthday-ical -h
usage: lunar-birthday-ical [-h] [-o OUTPUT] input
Generate iCal events for lunar birthday and cycle days.
positional arguments:
input input config.yaml, check config/example-lunar-birthday.yaml for example.
options:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
Path to save the generated iCal file.
安装
推荐使用 pipx 来安装 Python 编写的命令行工具, 包括本项目,
$ pipx install lunar-birthday-ical
installed package lunar-birthday-ical {{ version }}, installed using Python 3.11.2
These apps are now globally available
- lunar-birthday-ical
done! ✨ 🌟 ✨
$ lunar-birthday-ical config/example-lunar-birthday.yaml
[2025-01-25 12:17:05,137][lunar_birthday_ical.ical][INFO] iCal file saved to config/example-lunar-birthday.ics
关于 pastebin
在 YAML 配置文件中可选配置是否同时将生成的 .ics 文件同时上传 pastebin, 该 pastebin 实例是 repo owner 运行的一个基于 Cloudflare worker 的 pastebin 服务, 实例所使用的代码是 SharzyL/pastebin-worker.
如果选择启用 pastebin (pastebin.enabled), 在初次执行时, 可以保持 YAML 配置文件中的 pastebin.name 和 pastebin.password 为空, 命令执行时会自动上传, 上传成功后可以将标准输出中 lunar_birthday_ical.pastebin 日志行的 admin 中由 : 分隔的 {{ pastebin.name }} 和 {{ pastebin.password }} 手动填入配置文件, 这样下次再执行时就只会在原本的 URL 上更新, 而不会重新上传, 保持 URL 不变, 避免需要更新订阅日历的链接.
下方为启用 pastebin.enabled 后的命令行输出,
$ lunar-birthday-ical config/example-lunar-birthday.yaml
[2025-01-25 12:17:05,137][lunar_birthday_ical.ical][INFO] iCal file saved to config/example-lunar-birthday.ics
[2025-01-25 12:17:07,040][httpx][INFO] HTTP Request: POST https://komj.uk/ "HTTP/1.1 200 OK"
[2025-01-25 12:17:07,041][lunar_birthday_ical.pastebin][INFO] {'url': 'https://komj.uk/{{ pastebin.name }}', 'suggestUrl': 'https://komj.uk/{{ pastebin.name }}/example-lunar-birthday.ics', 'admin': 'https://komj.uk/{{ pastebin.name }}:{{ pastebin.password }}', 'isPrivate': True, 'expire': None}
Project details
Release history Release notifications | RSS feed
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 lunar_birthday_ical-0.2.1.tar.gz.
File metadata
- Download URL: lunar_birthday_ical-0.2.1.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.22.3 CPython/3.13.1 Linux/6.8.0-1020-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
376d8a923e7a6e4dbf82c39a313e41483e1ccc4bf4aa8795c3193cbbdb21a8fd
|
|
| MD5 |
64cd763c8cb67d1f722bfe3ff4270613
|
|
| BLAKE2b-256 |
d220ec7f7712f3ad103bf3806bb3ca666b7962479918bcb6f12901af6d16d4b8
|
File details
Details for the file lunar_birthday_ical-0.2.1-py3-none-any.whl.
File metadata
- Download URL: lunar_birthday_ical-0.2.1-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.22.3 CPython/3.13.1 Linux/6.8.0-1020-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d4a3ed00328af7be4c69689957468e909627b9902e41bef13dbb9f76b6a81e5
|
|
| MD5 |
d2224a15879f7539a2b0a964e2b89a43
|
|
| BLAKE2b-256 |
663defc7334c678cd06f227abefa4e317cda5839c1b108a63add47afd0b6e51e
|