https://github.com/nandenjin/twinkle-parser
Parse CSV from https://kdb.tsukuba.ac.jp to structured JSON.
https://github.com/nandenjin/twinkle-parser
cli imagine-the-future university-of-tsukuba
Last synced: 6 months ago
JSON representation
Parse CSV from https://kdb.tsukuba.ac.jp to structured JSON.
- Host: GitHub
- URL: https://github.com/nandenjin/twinkle-parser
- Owner: nandenjin
- License: mit
- Created: 2019-04-12T14:01:46.000Z (about 7 years ago)
- Default Branch: dev
- Last Pushed: 2025-05-05T22:37:05.000Z (about 1 year ago)
- Last Synced: 2025-05-05T23:32:21.902Z (about 1 year ago)
- Topics: cli, imagine-the-future, university-of-tsukuba
- Language: TypeScript
- Homepage:
- Size: 2.88 MB
- Stars: 10
- Watchers: 3
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-tsukuba - twinkle-parser - KdBの提供するcsvを機械可読性を高めたJSONに変換する。ライブラリとしても利用可能。TypeScript製。 (公式サービス関連 / KdB)
README
## Usage
### From CLI
#### Quick use
```shell
npx twinkle-parser data_from_kdb.csv
```
#### Global Install
```shell
# Install with NPM
npm install -g twinkle-parser
# Install with yarn
yarn add --global twinkle-parser
# Then
twinkle-parser data_from_kdb.csv
```
#### Use inside repo
```shell
# * Inside repo directory
# Install dependencies
yarn
# Parse
yarn run parse data_from_kdb.csv
```
### As API
```shell
# Install with NPM
npm install twinkle-parser
# Install with yarn
yarn add twinkle-parser
```
```js
const parse = require('twinkle-parser')
const data = parse('CSV string here') // -> KDBData
```
### CLI options
| Option | |
| --------------------------- | ----------------------------------------------------------------- |
| `-o PATH` / `--output PATH` | Export result to a file at the `PATH` instead of to stdout. |
| `-p` / `--pretty` | Prettify json output. |
| `--fields` | Fields to be included (comma-separated, specifing all if not set) |
| `-h` / `--help` | Print help & usage. |
| `-v` / `--version` | Print version info
## Output Format
```jsonc
{
"COURSE_ID": {
"title": "Twinkle",
// Class type (defined value by original data)
"type": 1,
// Course unit
"unit": 1,
// Course target grades
"targets": [1, 2],
// Terms & Modules
// 0 = Spring A, 1 = Spring B, ...
"termStr": "春AB",
"terms": [ 0, 1 ],
// Day & Period sets
"periodStr": "月1-3\n水4-6",
"periods": [
// [ Days( 0 = Sun. 1 = Mon. ... ), Periods ]
[ [ 1 ], [ 0, 1, 2 ] ],
[ [ 3 ], [ 4, 5, 6 ] ]
],
// Rooms
"rooms": [ "7A106", "7C202" ],
// Instructors
"instructors": [ "筑波 太郎" ],
// Overview & Remarks
"overview": "",
"remarks": ""
// Last update in unix time
"updatedAt": 1583390263000
}
}
```
## TypeScript Support
TypeScript supported! 🎉
```ts
// This will be imported with types
import parse from 'twinkle-parser'
// And types for output data are also available
import { KDBData, KDBCourse } from 'twinkle-parser'
```
## Contribution
Issue or PR submissions are welcome.