/nogizaka-data

A project to process the raw data of Nogizaka Lib project to make them instantly available for the View.

Primary LanguageTypeScript

Nogizaka-lib Data

This is a project to process the raw data of Nogizaka Lib project to make them instantly available for the View.

Copyrights

Profile images and CD artworks © 乃木坂46LLC.

Information Source

Most information in this project is from Nogizaka46 official website and Wikipedia.

Usage

Install necessary packages and build

npm install
npm run build

Watch and transpile TypeScript to JavaScript

npm run watch

Generate final JSON data

npm start

File Structure

  • main.ts: entry point
  • /dist/: compiled JS file
  • /src/types/: data types for raw data
  • /src/common/: common used types
  • /src/raw/: raw data
  • /src/json/: final output JSON data

Raw Data Type

Specify data types for raw data. The purpose is to do type-check and unify input in data editing process.

TODO:

  • song
  • member
  • single & album
  • unit & corp

Raw Data Editing

Edit and input raw data in ts files.

TODO:

  • members
    • main
    • photoAlbums shopping
    • profileImage
    • singleImages
  • songs
    • main
    • creators
    • musicVideos
  • singles
  • albums
  • units

Raw Data Processing

Process and calculate edited raw data to get more data like members' positions history.

TODO:

  • Members
    • Calculate units and corps
    • Calculate positionsHistory and positionsHistory based on singles
  • Singles
    • Extract songType from songs
    • Extract focus members/unit/corp from songs
  • Albums
    • Extract songType from songs
    • Extract focus members/unit/corp from songs
  • Songs
    • Pair single and albums from songs and albums
    • Calculate the artwork based on its single and albums properties
  • Units & Corps
    • Extract performed songs from songs

Relationships of Data Updating Among Each Data Set

  • songs
    • song > albums
      • single > songs > title (raw)
    • song > singles
      • album > songs > title (raw)
  • singles
    • single > songs > type (NOTE: has default values but should reference songs)
      • song > type (raw)
    • single > focusPerformers
      • song > type (raw)
      • song > performers (raw)
      • song > formations (raw)
  • albums
    • album > songs > type (NOTE: has default values but should reference songs)
      • song > type (raw)
    • album > focusPerformers
      • song > type (raw)
      • song > performers (raw)
      • song > formations (raw)
  • members
    • member > units
      • unit > name (raw)
      • unit > type (raw)
    • member > positions
      • single > behindPerformers (raw)
      • single > song > type ->
        • song > formations (raw)
        • song > performers (raw)

Transfer Processed Raw Data into JSON

TODO:

  • Replace undefined with empty null (because undefined will remove properties)