lunar-birthday-ical


Namelunar-birthday-ical JSON
Version 0.3.4 PyPI version JSON
download
home_pageNone
SummaryA command line tool written in Python 3 for creating lunar birthday events
upload_time2025-02-10 13:13:40
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
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"
}
        
Elapsed time: 0.74292s