Options
All
  • Public
  • Public/Protected
  • All
Menu

MuCritic

Index

Classes

Interfaces

Type aliases

Variables

Functions

Object literals

Type aliases

AggregatableEntities

AggregatableEntities: DatabaseEntities | SpotifyTrackFull

Types for data aggregation

Aggregation

AggregationType

AggregationType: "album" | "artist" | "artists" | "review" | "profile" | "track"

CsvHeaders

CsvHeaders: CsvHeader[]

DatabaseEntities

EncodedAggregations

EncodedAggregations: EncodedTrack | EncodedAlbum | EncodedArtist

EncodedAlbum

EncodedAlbum: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

EncodedAlbumTracks

EncodedAlbumTracks: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

EncodedArtist

EncodedArtist: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

EncodedArtistTracks

EncodedArtistTracks: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

EncodedTrack

EncodedTrack: [number, number, number, number, number, number, number, number, number, number, number, number, number]

FlatAggregations

FlatAlbumAggregation

FlatAlbumAggregation: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

FlatArtistAggregation

FlatArtistAggregation: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

FlatReviewAggregation

FlatReviewAggregation: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

FlatTrackAggregation

FlatTrackAggregation: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

RymDatabaseEntities

SpotifyBatchEntities

SpotifyBatchEntities: AlbumEntity | ArtistEntity

SpotifyDatabaseEntities

SpotifyTrackFull

SpotifyTrackFull: TrackEntity | SpotifyTrackFromApi

Variables

Let albumEncoder

albumEncoder: LayersModel = null

Let albumTrackEncoder

albumTrackEncoder: LayersModel = null

Let artistEncoder

artistEncoder: LayersModel = null

Let artistTrackEncoder

artistTrackEncoder: LayersModel = null

Let trackEncoder

trackEncoder: LayersModel = null

Functions

aggregateAlbums

  • aggregateAlbums(): Promise<void>

aggregateArtists

  • aggregateArtists(): Promise<void>

aggregateDistribution

  • aggregateDistribution(aggregations: Aggregation[]): void
  • Reports the average, min, and max for all properties from an array of aggregations. Useful for data normalization/analysis

    Parameters

    Returns void

aggregateFavoriteArtists

  • aggregateFavoriteArtists(): Promise<void>

aggregateProfileArtists

  • aggregateProfileArtists(): Promise<void>

aggregateReviews

  • aggregateReviews(): Promise<void>
  • aggregate all reviews for all user profiles into CSV files

    Returns Promise<void>

aggregateReviewsMaster

  • aggregateReviewsMaster(): Promise<void>
  • aggregate all reviews into a CSV file, using the RYM average as the reviewer

    Returns Promise<void>

aggregateTracks

  • aggregateTracks(): Promise<void>
  • Generate CSV files of track information (all tracks, album tracks, or artist tracks). Receieves 'tracks', 'albums', or 'artists' via the first cli argument

    Returns Promise<void>

aggregateWebAlbums

  • aggregateWebAlbums(): Promise<void>
  • Generates a CSV file of processed, encoded albums for web consumption

    Returns Promise<void>

connectToDatabase

  • connectToDatabase(): Promise<void>
  • Initializes a database connection

    Required .env variables:

    • DATABASE_HOST
    • DATABASE_PORT
    • DATABASE_USERNAME
    • DATABASE_PASSWORD
    • DATABASE_NAME

    Returns Promise<void>

extractCountFromPair

  • extractCountFromPair(pairText: string, strict?: boolean, defaultNum?: number): number
  • Extract number a combined number-header string

    Parameters

    • pairText: string

      Example: Discography 12

    • Default value strict: boolean = false
    • Default value defaultNum: number = 0

    Returns number

    Example: 12

extractMemberCountFromString

  • extractMemberCountFromString(members: string, defaultVal?: number): number
  • Extract the number of band members from a string scraped from Rate Your Music

    Parameters

    • members: string

      Example: Kevin Shields (guitar, vocals, sampler), Colm O'Ciosoig (drums, sampler, 1983-95, 2007-...

    • Default value defaultVal: number = 1

    Returns number

getRequestBody

  • getRequestBody(url: string): Promise<string>

isNullOrUndef

  • isNullOrUndef<T>(content: T, strict: boolean, errorMessage: string): boolean
  • Conditional error throwing on null/undefined generic content - used heavily by ParseElement

    strict

    if 'errorMessage' should be thrown, should 'content' be null/undefined

    Type parameters

    • T

    Parameters

    • content: T
    • strict: boolean
    • errorMessage: string

    Returns boolean

readFileToArray

  • readFileToArray(fileName: string): Promise<string[]>
  • remarks

    This helper is essentially a beefed up, promisified fs.readFile

    Parameters

    • fileName: string

      file to read, relative to base directory

    Returns Promise<string[]>

    an array of file lines

recommend

  • recommend(artistNames: string[]): Promise<void>
  • Run the model, generating album scores for all artists. All models must be generated & all datasets must be present

    Parameters

    • artistNames: string[]

      5 artists from which to generate recommendations

    Returns Promise<void>

scrapeRateYourMusic

  • scrapeRateYourMusic(): Promise<void>
  • When first scraping this data, unique keys were enforced only in the scraping logic, and not in the database rules. Therefore, a few hundred duplicates for various records sneaked into the table. This function removes those duplicates in a safe manner. However, since it was only intended to fix a specific problem one time, it is somewhat sloppy and should not be trusted.

    Returns Promise<void>

scrapeRateYourMusicProfiles

  • scrapeRateYourMusicProfiles(): Promise<void>
  • Scrapes information from [Rate Your Music] directly into a local Postgres database.

    remarks
    • npm call: npm run rymScrape
    • A single instance of this function will never make more than one request at a time.
    • Ingests an array of RYM usernames read from a file. File location supplied by CLI argument, npm run rymScrape ./rymResources/FILENAME.txt. Defaults to DEFAULT_PROFILE_FILENAME from env

    Returns Promise<void>

scrapeSpotifyData

  • scrapeSpotifyData(): Promise<void>
  • Uses the spotifyId field for all album and artist records in database to read and store all other Spotify data into the database

    remarks
    • npm call: npm run spotifyDataScrape
    • A single instance of this function will never make more than one request at a time

    Returns Promise<void>

scrapeSpotifyIds

  • scrapeSpotifyIds(): Promise<void>
  • Uses the Spotify API to populate the spotifyGenres table

    remarks
    • npm call: npm run spotifyGenreScrape

    Returns Promise<void>

serveDocumentation

  • serveDocumentation(): void
  • Serves documentation generated by TypeDoc

    remarks

    npm call: npm run serve

    Returns void

stringToNum

  • stringToNum(toConvert: string, strict?: boolean, defaultNum?: number): number
  • strict

    if an error should be thrown upon unsuccessful conversion

    defaultnum

    return value upon conversion failure, when strict = false

    Parameters

    • toConvert: string
    • Default value strict: boolean = false
    • Default value defaultNum: number = 0

    Returns number

Object literals

Const AlbumAggregator

AlbumAggregator: object

AlbumAggregation generator class for AlbumEntity

aggregationType

aggregationType: "album" = "album"

convertFromRaw

encode

flatten

generateFromEntity

normalize

template

Const ArtistAggregator

ArtistAggregator: object

ArtistAggregator generator class for ArtistEntity

aggregationType

aggregationType: "artist" = "artist"

convertFromRaw

encode

flatten

generateFromEntity

normalize

template

Const ReviewAggregator

ReviewAggregator: object

ReviewAggregation generator class for ReviewEntity

aggregationType

aggregationType: "review" = "review"

convertFromRaw

flatten

generateFromEntity

normalize

template

Const TrackAggregator

TrackAggregator: object

TrackAggregation generator class for TrackEntity database entries

aggregationType

aggregationType: "track" = "track"

convertFromRaw

encode

flatten

generateFromEntity

normalize

template

Generated using TypeDoc