A command line tool written in Python 3 for creating lunar birthday events
Project description
lunar-birthday-ical
What is this?
A command line tool written in Python 3 for creating lunar birthday events.
lunar-birthday-ical reads a YAML configuration file and generates an iCalendar .ics file. Optionally, it can upload the calendar to pastebin for easy subscription. For an example configuration file, refer to config/example-lunar-birthday.yaml. The comments should be sufficient to explain the meaning of each option.
You can use the -h or --help option to view the command-line tool's help information.
$ lunar-birthday-ical -h
usage: lunar-birthday-ical [-h] [-L YYYY MM DD | -S YYYY MM DD] [-o OUTPUT] [config]
Generate iCal events for lunar birthday and cycle days.
positional arguments:
config config file in YAML format, check config/example-lunar-birthday.yaml for example.
options:
-h, --help show this help message and exit
-L YYYY MM DD, --lunar-to-solar YYYY MM DD
Convert lunar date to solar date, add minus sign before leap lunar month.
-S YYYY MM DD, --solar-to-lunar YYYY MM DD
Convert solar date to lunar date.
-o OUTPUT, --output OUTPUT
Path to save the generated iCal file.
Installation
It is recommended to use pipx to install command-line tools written in Python, including this project.
$ 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! ✨ 🌟 ✨
About pastebin
In the YAML configuration file, you can choose whether to upload the generated .ics file to pastebin. This pastebin instance is a Cloudflare worker-based pastebin service (SharzyL/pastebin-worker) run by the repository owner.
If pastebin (pastebin.enabled) is enabled, you can leave pastebin.name and pastebin.password in the YAML configuration file empty on the first run. After executing the command, it will automatically upload, and upon successful upload, retrieve the pastebin.name and pastebin.password from the admin field in the lunar_birthday_ical.pastebin log line in the standard output (pastebin.name and pastebin.password are split with :, as shown in the output below with XXXXXXXXXXXXXXXXXXXXXXXX and YYYYYYYYYYYYYYYYYYYYYYYY). Manually fill these into the configuration file. This way, on subsequent executions, it will only update the existing URL instead of re-uploading, thus keeping the URL unchanged and avoiding the need to update the calendar URL.
$ lunar-birthday-ical config/example-lunar-birthday.yaml
[2025-02-08 15:37:54,747][lunar_birthday_ical.ical][INFO] iCal file saved to config/example-lunar-birthday.ics
[2025-02-08 15:37:57,097][lunar_birthday_ical.pastebin][INFO] {'url': 'https://komj.uk/XXXXXXXXXXXXXXXXXXXXXXXX', 'suggestUrl': 'https://komj.uk/XXXXXXXXXXXXXXXXXXXXXXXX/example-lunar-birthday.ics', 'admin': 'https://komj.uk/XXXXXXXXXXXXXXXXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYYYYY', 'isPrivate': True, 'expire': 604800}
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.3.0.tar.gz.
File metadata
- Download URL: lunar_birthday_ical-0.3.0.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.22.3 CPython/3.11.11 Linux/6.8.0-1020-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d519905af9bedc2d3cbc0586349b0fda41f47fcbecea56149f02ebccafe0fdc2
|
|
| MD5 |
99d83a50fa609ad104d53244d2b37e67
|
|
| BLAKE2b-256 |
b6c985217d449befc3ecf883f0de60dd9c29e6e81438f7582b5452b250c57804
|
File details
Details for the file lunar_birthday_ical-0.3.0-py3-none-any.whl.
File metadata
- Download URL: lunar_birthday_ical-0.3.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.22.3 CPython/3.11.11 Linux/6.8.0-1020-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20ebfc632b5b6ebd0a91f1e575db97babcd745d228b4bf836870855de4c13dfc
|
|
| MD5 |
86e88aae5ef02d8e0696d8e6457aa088
|
|
| BLAKE2b-256 |
d832bf2beee842aea137f05501b9483bf68e32c4cd6b4edb88f775b37ec48e51
|