Skip to content

Refactor JS interface functions to modules #56

Open
@DevonJames

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions