Name | lunar-birthday-ical JSON |
Version |
0.3.4
JSON |
| download |
home_page | None |
Summary | A command line tool written in Python 3 for creating lunar birthday events |
upload_time | 2025-02-10 13:13:40 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | None |
keywords |
lunar
birthday
icalendar
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# 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](https://github.com/ak1ra-lab/lunar-birthday-ical/blob/master/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] [config.yaml ...]
Generate iCal events and reminders for lunar birthday and cycle days.
positional arguments:
config.yaml config file for iCal, checkout 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.
```
## Installation
It is recommended to use [`pipx`](https://github.com/pypa/pipx) to install command-line tools written in Python, including this project.
```ShellSession
$ 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](https://github.com/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}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "lunar-birthday-ical",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "lunar, birthday, icalendar",
"author": null,
"author_email": "ak1ra <git@ak1ra.xyz>",
"download_url": "https://files.pythonhosted.org/packages/3b/76/8b615f0f538b0c1e010b2e53044ba74fba4ab613dc7fbcb49b754dd951bc/lunar_birthday_ical-0.3.4.tar.gz",
"platform": null,
"description": "# lunar-birthday-ical\n\n## What is this?\n\nA command line tool written in Python 3 for creating lunar birthday events.\n\n`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](https://github.com/ak1ra-lab/lunar-birthday-ical/blob/master/config/example-lunar-birthday.yaml). The comments should be sufficient to explain the meaning of each option.\n\nYou can use the `-h` or `--help` option to view the command-line tool's help information.\n\n```\n$ lunar-birthday-ical -h\nusage: lunar-birthday-ical [-h] [-L YYYY MM DD | -S YYYY MM DD] [config.yaml ...]\n\nGenerate iCal events and reminders for lunar birthday and cycle days.\n\npositional arguments:\n config.yaml config file for iCal, checkout config/example-lunar-birthday.yaml for example.\n\noptions:\n -h, --help show this help message and exit\n -L YYYY MM DD, --lunar-to-solar YYYY MM DD\n Convert lunar date to solar date, add minus sign before leap lunar month.\n -S YYYY MM DD, --solar-to-lunar YYYY MM DD\n Convert solar date to lunar date.\n```\n\n## Installation\n\nIt is recommended to use [`pipx`](https://github.com/pypa/pipx) to install command-line tools written in Python, including this project.\n\n```ShellSession\n$ pipx install lunar-birthday-ical\n installed package lunar-birthday-ical {{ version }}, installed using Python 3.11.2\n These apps are now globally available\n - lunar-birthday-ical\ndone! \u2728 \ud83c\udf1f \u2728\n```\n\n## About pastebin\n\nIn 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](https://github.com/SharzyL/pastebin-worker)) run by the repository owner.\n\nIf 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.\n\n```\n$ lunar-birthday-ical config/example-lunar-birthday.yaml\n[2025-02-08 15:37:54,747][lunar_birthday_ical.ical][INFO] iCal file saved to config/example-lunar-birthday.ics\n[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}\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A command line tool written in Python 3 for creating lunar birthday events",
"version": "0.3.4",
"project_urls": {
"Changelog": "https://github.com/ak1ra-lab/lunar-birthday-ical/blob/master/CHANGELOG.md",
"Issues": "https://github.com/ak1ra-lab/lunar-birthday-ical/issues",
"Repository": "https://github.com/ak1ra-lab/lunar-birthday-ical"
},
"split_keywords": [
"lunar",
" birthday",
" icalendar"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9b43ac6bc74bffff99d8c42bc843159c727ed43324889917192d3254289d1c7a",
"md5": "b5b149e02b2a07228f595f042bfd5822",
"sha256": "8d3e8b318d9287448db423371265d28269118b0bc77e3b4212c66a4394c72aff"
},
"downloads": -1,
"filename": "lunar_birthday_ical-0.3.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b5b149e02b2a07228f595f042bfd5822",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 10889,
"upload_time": "2025-02-10T13:13:35",
"upload_time_iso_8601": "2025-02-10T13:13:35.585734Z",
"url": "https://files.pythonhosted.org/packages/9b/43/ac6bc74bffff99d8c42bc843159c727ed43324889917192d3254289d1c7a/lunar_birthday_ical-0.3.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3b768b615f0f538b0c1e010b2e53044ba74fba4ab613dc7fbcb49b754dd951bc",
"md5": "a9cd2e637e7bf80c218bdefe60be045a",
"sha256": "40aeea02ced342b18dde6aa3a8894e818c8bfee1d33462d40add5dc980d4a19f"
},
"downloads": -1,
"filename": "lunar_birthday_ical-0.3.4.tar.gz",
"has_sig": false,
"md5_digest": "a9cd2e637e7bf80c218bdefe60be045a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 12028,
"upload_time": "2025-02-10T13:13:40",
"upload_time_iso_8601": "2025-02-10T13:13:40.119187Z",
"url": "https://files.pythonhosted.org/packages/3b/76/8b615f0f538b0c1e010b2e53044ba74fba4ab613dc7fbcb49b754dd951bc/lunar_birthday_ical-0.3.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-10 13:13:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ak1ra-lab",
"github_project": "lunar-birthday-ical",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "lunar-birthday-ical"
}