Skip to content

nandenjin/twinkle-parser

Repository files navigation

twinkle-parser

npm version Code Climate maintainability Codecov

Parse CSV from https://kdb.tsukuba.ac.jp to structured JSON.

Usage

From CLI

Quick use

npx twinkle-parser data_from_kdb.csv

Global Install

# 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

# * Inside repo directory
# Install dependencies
yarn

# Parse
yarn run parse data_from_kdb.csv

As API

# Install with NPM
npm install twinkle-parser

# Install with yarn
yarn add twinkle-parser
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

{
  "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! 🎉

// 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.