Database support. Access via the global app.db

Constructors

  • Returns DB

Methods

  • Do database backup.

    Parameters

    • fileName: string

      File name

    Returns Promise<boolean>

  • Start DB transaction. Note: From version 5.0.4 is async and returns Promise

    Returns Promise<void>

  • Clears cache of data already read from DB.
    It's useful when changing the DB externally or using executeQueryAsync
    After calling app.db.clearCache() the MM5 internal cache is cleared and the data is reloaded from DB (e.g. when F5 is pressed or a view refreshed)
    Note: Introduced in version 5.0.4

    Returns Promise<void>

    Example

    // navigate to Music > All tracks
    await app.db.executeQueryAsync("UPDATE Songs SET SongTitle = 'BlahBlah' WHERE ID = 1");
    await app.db.clearCache();
    uitools.refreshView(); // to reload the tracklist
  • Clears given tables in the database.

    Returns Promise<any>

    Resolves when done

  • Commit DB transaction Note: From version 5.0.4 is async and returns Promise

    Returns Promise<void>

  • Optimize database for faster access.

    Returns Promise<any>

  • Executes SQL query.

    Parameters

    • sql: string

      SQL query to execute

    Returns Promise<string>

  • Returns album for given album title, artist and year. Creates new, if not exists yet.

    Parameters

    • album: string

      Album title

    • artist: string

      Album artist

    • Optional year: number

      Release year

    Returns Promise<Album>

  • Gets album list by given SQL query

    Parameters

    • sql: string

      SQL like 'SELECT * FROM Albums WHERE ...'

    • Optional idColl: number

    Returns AlbumList

  • Gets artist list by given SQL query

    Parameters

    • sql: string

      SQL like 'SELECT * FROM Artists WHERE ...'

    • Optional idColl: number

    Returns ArtistList

  • Gets SQL of given auto-playlist ID
    NOTE: Added in version 5.0.4

    Parameters

    • id: number

      auto-playlist's id

    Returns Promise<string>

    Since

    5.0.4

    Example

    app.db.getAutoPlaylistQueryAsync( 1).then((sql) => {
    var trcklist = app.db.getTracklist(sql, -1);
    trcklist.whenLoaded().then(() => {
    // all tracks are loaded here
    });
    });
  • Gets artist list from given JS array with artist names and MusicBrainz GID. JS array contains objects, with "name" and "mbgid" properties. It returns only artists, which are in Library.

    Parameters

    • arr: {
          mbgid?: string;
          name: string;
      }[]

      JS array with artist names and MusicBrainz GIDs

    Returns ArtistList

  • Parameters

    • Rest ...params: any[]

    Returns ListItem

    Undocumented

  • Returns true if the database is locked (e.g. when doing DB optimizations, db rebuild, db backup etc.)

    Returns boolean

  • Get list of mood values.

    Parameters

    • Optional idColl: number

    Returns ListItemList

  • Get list of occasion values.

    Parameters

    • Optional idColl: number

    Returns ListItemList

  • Returns location of the current database file

    Returns string

    path database path

  • Get list of "people", according to a specified category. Usage: app.db.getPeople({category: '<categoryname>'})

    Parameters

    • params: {
          category: string;
      }
      • category: string

        Undocumented

    Returns PersonList

    Example

    var list = app.db.getPeople({category: 'artist'}); <br>
    <div data-control-class="Dropdown" data-init-params="{dbFunc: 'getPeople', dbFuncParams: {category: 'artist'}}">
  • Get list pinned objects (tracks, artists, albums etc.).

    Parameters

    • Optional collectionID: number

      ID of collection (default all collections)

    Returns PinnedObjectsList

  • Get list of quality values.

    Parameters

    • Optional idColl: number

    Returns ListItemList

  • Parameters

    • params: {
          category: string;
      }
      • category: string

        Undocumented

    Returns Promise<QueryData>

    Undocumented

  • Parameters

    • category: string

    Returns QueryData

    Undocumented

  • Opens specified SQL query and returns promise with QueryResults class.

    Parameters

    • sql: string

      Select query to open

    Returns Promise<QueryResults>

  • Get a list of strings, according to a specified category. Usage: app.db.getStringList({category: '<categoryname>'})

    Parameters

    • params: {
          category: string;
          includeDefault?: boolean;
      }
      • category: string

        Undocumented

      • Optional includeDefault?: boolean

        Undocumented

    Returns StringList

    Example

    var list = app.db.getStringList({category: 'genre'}); <br>
    <div data-control-class="Dropdown" data-init-params="{dbFunc: 'getStringList', dbFuncParams: {category: 'genre'}}">
  • Get list of tempo values.

    Parameters

    • Optional idColl: number

    Returns ListItemList

  • Gets tracks based on given SQL and collection ID

    Parameters

    • SQL: string
    • collID: number

      collection id

    Returns Tracklist

    Example

    var trcklist = app.db.getTracklist('SELECT * FROM Songs', -1);
    trcklist.whenLoaded().then(function () {
    // all tracks are loaded here
    });
  • Executes SQL insert query and return promise with ID of a new record.

    Parameters

    • sql: string

      SQL insert query to execute

    Returns Promise<number>

    ID of query

  • Returns boolean

    Undocumented

  • Parameters

    Returns Promise<any>

    Undocumented

  • Reindex database.

    Returns Promise<void>

  • Rebuilds database (copies and re-constructs tables), can fix malformed and databses

    Returns Promise<boolean>

    Whether the operation was successful

  • Parameters

    Returns Promise<any>

    Undocumented

  • Do database restore.

    Parameters

    • fileName: string

      File name

    Returns Promise<boolean>

  • Rollbacks DB transaction. Note: From version 5.0.4 is async and returns Promise

    Returns Promise<void>

  • Returns void

    Undocumented

  • Parameters

    • Rest ...params: any[]

    Returns Promise<boolean>

    Undocumented