Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 14cd33ccccb6ec2b315d013cd9b1519fa03dda77
  • master par défaut
  • script
  • new-devel
  • devel
  • timingView-edit
  • fix-mpv
7 résultats

VivyApplication.cc

Blame
  • init.sql 4,84 Kio
    PRAGMA case_sensitive_like = false;
    PRAGMA encoding            = 'UTF-8';
    PRAGMA recursive_triggers  = true;
    PRAGMA foreign_keys        = true;
    
    
    -- Definition of a kara
    
    CREATE TABLE IF NOT EXISTS kara
      ( id          INTEGER PRIMARY KEY AUTOINCREMENT
      , song_name   TEXT    NOT NULL
      , source_name TEXT    NOT NULL
      , category    INTEGER NOT NULL REFERENCES kara_category
      , song_type   INTEGER NOT NULL REFERENCES kara_type
      , song_number INTEGER NOT NULL CHECK(song_number > 0)
      , language    TEXT    REFERENCES language
      , file_path   TEXT    NOT NULL UNIQUE
      , is_new      INTEGER NOT NULL
      , author_name TEXT
      , author_year INTEGER CHECK(author_year > 0)
      , available   INTEGER CHECK(available = 0 OR available = 1) DEFAULT 1 NOT NULL
      , string      TEXT GENERATED ALWAYS AS
        ( song_type || ' - ' || language || ' / ' || source_name || ' - ' || category ||
          song_number || ' - ' || song_name || ' [ ' || author_name || ' ]' ||
          CASE WHEN available = 0 THEN '(U)' ELSE '' END
        ) STORED
      );
    
    CREATE TABLE IF NOT EXISTS kara_type
      ( id    INTEGER PRIMARY KEY
      , name  TEXT    NOT NULL
      );
    
    INSERT INTO kara_type (id, name) VALUES
      (1, 'vo'), (2, 'va'), (3, 'amv'), (4, 'cdg'), (5, 'autres'), ( 6, 'vocaloid');
    
    CREATE TABLE IF NOT EXISTS kara_category
      ( id   INTEGER PRIMARY KEY
      , name TEXT    NOT NULL
      );
    
    INSERT INTO kara_category (id, name) VALUES
      (1, 'ED/d*'), (2, 'OP/d*'), (3, 'AMV'), (4, 'IS'), (5, 'VOCA'), (6, 'LIVE'),
      (7, 'CDG'), (8, 'PV'), (9, 'MV');
    
    CREATE TABLE IF NOT EXISTS language
      ( id   INTEGER PRIMARY KEY
      , name TEXT    NOT NULL
      );
    
    INSERT INTO language (id, name) VALUES
      (1, 'jp'), (2, 'fr'), (3, 'en'), (4, 'ru'), (5, 'sp'), (6, 'it'), (7, 'ch'),
      (8, 'latin'), (9, 'multi'), (10, 'undefined');
    
    -- Playlists are sets of karas that are meant to be played together, kinda like
    -- M3U except it's stored in a SQL database.
    
    CREATE TABLE IF NOT EXISTS playlist
      ( id          INTEGER PRIMARY KEY AUTOINCREMENT
      , name        TEXT    NOT NULL UNIQUE
      , last_update INTEGER NOT NULL
      );
    
    CREATE TABLE IF NOT EXISTS kara_playlist
      ( kara_id     INTEGER REFERENCES kara     ON DELETE CASCADE
      , playlist_id INTEGER REFERENCES playlist ON DELETE CASCADE
      , PRIMARY KEY (kara_id, playlist_id)
      ) WITHOUT ROWID;