Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 2 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 (over 5 years ago)
- Default Branch: dev
- Last Pushed: 2024-10-29T20:11:10.000Z (2 months ago)
- Last Synced: 2024-10-29T22:44:19.622Z (2 months ago)
- Topics: cli, imagine-the-future, university-of-tsukuba
- Language: TypeScript
- Homepage:
- Size: 2.45 MB
- Stars: 10
- Watchers: 4
- Forks: 1
- Open Issues: 8
-
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.