[![PyPI Version](https://img.shields.io/pypi/v/nstimes.svg)](https://pypi.org/project/nstimes)
![Python Version](https://img.shields.io/badge/Python-3.10%20%E2%86%92%203.12-blue)
![CI/CD](https://github.com/evanraalte/nstimes/actions/workflows/actions.yml/badge.svg)
# `nstimes`
Find your next train home while you are in CLI. I used the Dutch Railway Services (Nederlandse Spoorwegen) API to make myself this tool.
**Usage**:
```console
$ nstimes [OPTIONS] COMMAND [ARGS]...
```
**Options**:
* `--version`: Print version info
* `--install-completion`: Install completion for the current shell.
* `--show-completion`: Show completion for the current shell, to copy it or customize the installation.
* `--help`: Show this message and exit.
**Commands**:
* `journey`: Provide train type, platform and departure...
* `update-stations-json`: Generate stations lookup
## `nstimes journey`
Provide train type, platform and departure times of an A -> B journey
**Usage**:
```console
$ nstimes journey [OPTIONS]
```
**Options**:
* `--start TEXT`: Start station [required]
* `--end TEXT`: Stop station [required]
* `--token TEXT`: Token to talk with the NS API [env var: NS_API_TOKEN; required]
* `--time TEXT`: Time to departure (%H:%M) [default: 12:19]
* `--date TEXT`: Date to departure (%d-%m-%Y) [default: 15-10-2023]
* `--printer-choice [table|ascii]`: [default: ascii]
* `--help`: Show this message and exit.
## `nstimes update-stations-json`
Generate stations lookup, should not be neccesary
**Usage**:
```console
$ nstimes update-stations-json [OPTIONS]
```
**Options**:
* `--token TEXT`: Token to talk with the NS API [env var: NS_API_TOKEN; required]
* `--path TEXT`: Token to talk with the NS API [env var: NS_API_TOKEN; default: /home/erik/dev/ns_cli/nstimes/stations.json]
* `--help`: Show this message and exit.
**Installation**
To install, run the following:
```bash
pip install nstimes
```
To verify, run:
```bash
nstimes --version
```
To install auto-completion, run:
```bash
nstimes --install-completion
```
In order for autocomplete to work, one might need to add this to their `.zshrc`:
```bash
echo -e "\ncompinit -D\n" | tee -a ~/.zshrc
source ~/.zshrc # Reload shell
```
**Obtaining NS token**
Create an account at the [NS API portal](https://apiportal.ns.nl/signin).
Then create a token [here](https://apiportal.ns.nl/api-details#api=reisinformatie-api).
Add the token to your shell, for zsh:
```bash
echo -e "\nexport NS_API_TOKEN=****\n" | tee -a ~/.zshrc
source ~/.zshrc # Reload shell
```
**Printers**
By default, this tool prints in ASCII, e.g.:
```bash
IC p. 12 in 4 min (21:37) -> (21:50)
IC p. 12 in 16 min (21:49) -> (22:02)
SPR p. 4 in 17 min (21:50) -> (22:10)
IC p. 12 in 34 min (22:07) -> (22:20)
IC p. 12 in 46 min (22:19) -> (22:32)
SPR p. 4 in 47 min (22:20) -> (22:40)
```
If you use the `--printer-choice table` option it prints like:
```bash
Journeys from Utrecht Centraal -> Amersfoort Centraal at
24-01-2024 21:32
┏━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Train ┃ Platform ┃ Leaves in ┃ Departure time ┃ Arrival time ┃
┡━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ IC │ 12 │ 4 min │ (21:37) │ (21:50) │
│ IC │ 12 │ 16 min │ (21:49) │ (22:02) │
│ SPR │ 4 │ 17 min │ (21:50) │ (22:10) │
│ IC │ 12 │ 34 min │ (22:07) │ (22:20) │
│ IC │ 12 │ 46 min │ (22:19) │ (22:32) │
│ SPR │ 4 │ 47 min │ (22:20) │ (22:40) │
└───────┴──────────┴───────────┴────────────────┴──────────────┘
```
Raw data
{
"_id": null,
"home_page": "https://github.com/evanraalte/nstimes",
"name": "nstimes",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<4.0",
"maintainer_email": "",
"keywords": "nederland,NS,spoorwegen,Nederlandse,reisplanner",
"author": "Erik van Raalte",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/05/17/6f4462e2d97b73aec696ad1f4e5054dfbbeb2b0b0bf261172e349bb04e25/nstimes-0.4.8.tar.gz",
"platform": null,
"description": "\n[![PyPI Version](https://img.shields.io/pypi/v/nstimes.svg)](https://pypi.org/project/nstimes)\n![Python Version](https://img.shields.io/badge/Python-3.10%20%E2%86%92%203.12-blue)\n![CI/CD](https://github.com/evanraalte/nstimes/actions/workflows/actions.yml/badge.svg)\n\n\n# `nstimes`\n\nFind your next train home while you are in CLI. I used the Dutch Railway Services (Nederlandse Spoorwegen) API to make myself this tool.\n\n**Usage**:\n\n```console\n$ nstimes [OPTIONS] COMMAND [ARGS]...\n```\n\n**Options**:\n\n* `--version`: Print version info\n* `--install-completion`: Install completion for the current shell.\n* `--show-completion`: Show completion for the current shell, to copy it or customize the installation.\n* `--help`: Show this message and exit.\n\n**Commands**:\n\n* `journey`: Provide train type, platform and departure...\n* `update-stations-json`: Generate stations lookup\n\n## `nstimes journey`\n\nProvide train type, platform and departure times of an A -> B journey\n\n**Usage**:\n\n```console\n$ nstimes journey [OPTIONS]\n```\n\n**Options**:\n\n* `--start TEXT`: Start station [required]\n* `--end TEXT`: Stop station [required]\n* `--token TEXT`: Token to talk with the NS API [env var: NS_API_TOKEN; required]\n* `--time TEXT`: Time to departure (%H:%M) [default: 12:19]\n* `--date TEXT`: Date to departure (%d-%m-%Y) [default: 15-10-2023]\n* `--printer-choice [table|ascii]`: [default: ascii]\n* `--help`: Show this message and exit.\n\n## `nstimes update-stations-json`\n\nGenerate stations lookup, should not be neccesary\n\n**Usage**:\n\n```console\n$ nstimes update-stations-json [OPTIONS]\n```\n\n**Options**:\n\n* `--token TEXT`: Token to talk with the NS API [env var: NS_API_TOKEN; required]\n* `--path TEXT`: Token to talk with the NS API [env var: NS_API_TOKEN; default: /home/erik/dev/ns_cli/nstimes/stations.json]\n* `--help`: Show this message and exit.\n\n\n\n**Installation**\n\nTo install, run the following:\n```bash\npip install nstimes\n```\n\nTo verify, run:\n```bash\nnstimes --version\n```\n\nTo install auto-completion, run:\n```bash\nnstimes --install-completion\n```\n\nIn order for autocomplete to work, one might need to add this to their `.zshrc`:\n```bash\necho -e \"\\ncompinit -D\\n\" | tee -a ~/.zshrc\nsource ~/.zshrc # Reload shell\n```\n\n**Obtaining NS token**\nCreate an account at the [NS API portal](https://apiportal.ns.nl/signin).\nThen create a token [here](https://apiportal.ns.nl/api-details#api=reisinformatie-api).\n\nAdd the token to your shell, for zsh:\n```bash\necho -e \"\\nexport NS_API_TOKEN=****\\n\" | tee -a ~/.zshrc\nsource ~/.zshrc # Reload shell\n```\n\n\n**Printers**\nBy default, this tool prints in ASCII, e.g.:\n```bash\nIC p. 12 in 4 min (21:37) -> (21:50)\nIC p. 12 in 16 min (21:49) -> (22:02)\nSPR p. 4 in 17 min (21:50) -> (22:10)\nIC p. 12 in 34 min (22:07) -> (22:20)\nIC p. 12 in 46 min (22:19) -> (22:32)\nSPR p. 4 in 47 min (22:20) -> (22:40)\n```\nIf you use the `--printer-choice table` option it prints like:\n```bash\n Journeys from Utrecht Centraal -> Amersfoort Centraal at\n 24-01-2024 21:32\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Train \u2503 Platform \u2503 Leaves in \u2503 Departure time \u2503 Arrival time \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 IC \u2502 12 \u2502 4 min \u2502 (21:37) \u2502 (21:50) \u2502\n\u2502 IC \u2502 12 \u2502 16 min \u2502 (21:49) \u2502 (22:02) \u2502\n\u2502 SPR \u2502 4 \u2502 17 min \u2502 (21:50) \u2502 (22:10) \u2502\n\u2502 IC \u2502 12 \u2502 34 min \u2502 (22:07) \u2502 (22:20) \u2502\n\u2502 IC \u2502 12 \u2502 46 min \u2502 (22:19) \u2502 (22:32) \u2502\n\u2502 SPR \u2502 4 \u2502 47 min \u2502 (22:20) \u2502 (22:40) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CLI tool to obtain schedule info from the dutch railway services",
"version": "0.4.8",
"project_urls": {
"Homepage": "https://github.com/evanraalte/nstimes",
"Repository": "https://github.com/evanraalte/nstimes"
},
"split_keywords": [
"nederland",
"ns",
"spoorwegen",
"nederlandse",
"reisplanner"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e9ea32500269f598fa3096d3a57f4d78ca25c6a1cc276ddd8ab3323638b2bc8a",
"md5": "e69c7324dab882b44ed6545ee4868e08",
"sha256": "177787dfd43567f9bae3dcb1837eccd597195465a7c259b165c423a9d2aff4ae"
},
"downloads": -1,
"filename": "nstimes-0.4.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e69c7324dab882b44ed6545ee4868e08",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<4.0",
"size": 11596,
"upload_time": "2024-01-25T19:43:53",
"upload_time_iso_8601": "2024-01-25T19:43:53.646770Z",
"url": "https://files.pythonhosted.org/packages/e9/ea/32500269f598fa3096d3a57f4d78ca25c6a1cc276ddd8ab3323638b2bc8a/nstimes-0.4.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "05176f4462e2d97b73aec696ad1f4e5054dfbbeb2b0b0bf261172e349bb04e25",
"md5": "5db92b764fd5aef43b2dab3b9af1bc46",
"sha256": "d3bc0013fb461295593d14a1b904350eda7d3d8d93ad47f4435e17486f25ca21"
},
"downloads": -1,
"filename": "nstimes-0.4.8.tar.gz",
"has_sig": false,
"md5_digest": "5db92b764fd5aef43b2dab3b9af1bc46",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<4.0",
"size": 10869,
"upload_time": "2024-01-25T19:43:55",
"upload_time_iso_8601": "2024-01-25T19:43:55.066851Z",
"url": "https://files.pythonhosted.org/packages/05/17/6f4462e2d97b73aec696ad1f4e5054dfbbeb2b0b0bf261172e349bb04e25/nstimes-0.4.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-25 19:43:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "evanraalte",
"github_project": "nstimes",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nstimes"
}