Skip to main content

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 实例是作者运行的一个基于 Cloudflare worker 的 pastebin 服务, 实例所使用的代码是 SharzyL/pastebin-worker.

如果选择开启 global.pastebin, 在初次执行时, 可以保持 YAML 配置文件中的 global.pastebin_nameglobal.pastebin_password 为空, 命令执行时会自动上传, 上传成功后可以将标准输出中 lunar_birthday_ical.pastebin 日志行的 admin URL 中由 : 分隔的 {{ pastebin_name }}{{ pastebin_password }} 手动填入配置文件, 这样下次再执行时就只会在原本的 URL 上更新, 而不会重新上传, 保持 URL 不变, 避免需要更新订阅日历的链接.

下方为开启 global.pastebin 后的命令行输出,

$ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lunar_birthday_ical-0.1.3.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lunar_birthday_ical-0.1.3-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file lunar_birthday_ical-0.1.3.tar.gz.

File metadata

  • Download URL: lunar_birthday_ical-0.1.3.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.22.2 CPython/3.12.8 Linux/6.8.0-1020-azure

File hashes

Hashes for lunar_birthday_ical-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ffefcf5b43b9fbe7eba051797865f32d3591518c996c362ae224c4de092624d3
MD5 cbe04ec5a6abdc53343395c6162f0c79
BLAKE2b-256 58e409180f7faf5f9c92e8f665bc052d237a9e0b1b2df1a52fe83ba5b7756671

See more details on using hashes here.

File details

Details for the file lunar_birthday_ical-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: lunar_birthday_ical-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.22.2 CPython/3.12.8 Linux/6.8.0-1020-azure

File hashes

Hashes for lunar_birthday_ical-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 316322100f275fb3d84b73a9c9f13826e9ee4965a9df69db206a19676fde1bf5
MD5 907296488500c0fc006a0ebaac310f99
BLAKE2b-256 fd006406491cc12993590e557ac7e01b6e130f6bdf3246ee270e300e6ce2743e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page