Skip to content

Refactor JS interface functions to modules #56

Description

@DevonJames

For Library Index Interfaces

  • List All Artifacts, include these fields:

    • ArtifactID
    • Publisher
    • Title
    • Artifact Type
    • Description
    • Play Length (sum of all files inside it)
    • Cost ($artCost)
  • Sort A List of Artifacts by:

    • Publish Timestamp
    • Publisher Name, Alphabetically
    • Title, Alphabetically
    • Artifact Type, Alphabetically
    • Play Length (sum of all files within it)
    • Cost ($artCost)
  • Filter A List of Artifacts by any field

  • List All Publishers, include these fields:

    • Name
    • Address
    • Timestamp
    • emailmd5
  • Sort A List of Publishers by:

    • Registration Timestamp
    • Publisher Name, Alphabetically
    • Publisher Address, Alphabetically
  • Filter a List of Publishers by any field

  • List All Artifacts by a Publisher, include these fields:

    • ArtifactID
    • Title
    • Artifact Type
    • Cost ($artCost)
  • Get Publisher's avatar from Gravatar.com's API (using emailmd5 field, if available)

For Individual Artifact Interfaces

  • Get Artifact Info

    • Inputs shall include:
    • Artifact: $ArtifactID
    • Fields: "RequiredOnly", "All" or List fieldnames requested beyond the minimum required list below
    • Results shall always include these required fields:
    • artifact title: $title
    • artist: $artist
    • artifact type: $type
    • year: $year
    • timestamp: $timestamp
    • description: $description
    • publisher: $publisherName
    • artifact cost: $artCost
    • play length: sum of the $duration field for all files within artifact
    • files: $NumberOfFilesInArtifact
    • preview: $addressOfPreviewFile (coverArt or thumbnail)
  • Get Info about a specific file inside an Artifact

    • Inputs shall include:
    • Artifact: $artifactID?file=#
    • Fields: "RequiredOnly", "All" or List fieldnames requested beyond the minimum required list below
    • Results shall always include these required fields (but please exclude if they are empty):
    • type: $fileType
    • duration: $duration
    • sugPlay: $sugPlay
    • minPlay: $minPlay
    • disallowPlay: $disallowPlay
    • sugBuy: $sugBuy
    • minBuy: $minBuy
    • disallowBuy: $disallowBuy
    • retailer cut: $retail
    • promoter cut: $promo
  • Get the address of a file within an Artifact to Play or Download it

    • Inputs shall include:
    • artifact: $artifactID?file=#
    • Results shall include:
    • network: $networkName
    • location: $addressOfFile (either $location/$fname or $fileaddress. if the file has a price on it, return Payment Required)
    • dname: $displayName
    • type: $fileType
    • duration: $duration
  • Get Virtual "Pay Wall" Info to Play or Buy a whole Artifact or a file within an artifact.

    • Inputs shall include:
    • artifact: $artifactID or $artifactID?file=#
    • payment in what token: (BTC, FLO, and so on)
    • price in what fiat: (USD, CNY, and so on)
    • action: (play or buy)
    • price only: (Boolean, if Yes, do not generate a temp address)
    • Results shall include:
    • price for action: $priceInToken
    • payment address: $tempPaymentAddress
    • Session should stay live and periodically check if the Temp Payment Address for payments, and when an appropriate one is made, return these results:
    • network: $networkName
    • location: $addressOfFile **(either $location/$fname or $fileaddress.)
    • dname: $displayName
    • type: $fileType
    • duration: $duration

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions