An image hosting service on top of the LBRY protocol.
Find a file
2017-07-08 13:05:04 -07:00
config changed production log level to verbose 2017-07-05 09:32:43 -07:00
controllers moved request logs to middleware and reorganized front end js 2017-07-06 13:37:03 -07:00
helpers extrapolated file validations 2017-07-07 16:08:35 -07:00
models added new db field and search to compare speech addresses on potential hits 2017-07-03 18:27:35 -07:00
public updated file upload limit 2017-07-07 21:20:41 -07:00
routes extrapolated file validations 2017-07-07 16:08:35 -07:00
views added autoplay 2017-07-08 13:05:04 -07:00
.eslintignore Edited code to be ES6, added eslint and some basic linting configuration 2017-06-17 22:51:30 +02:00
.eslintrc Semicolon rule added 2017-06-19 18:37:35 +02:00
.gitignore removed console log and added publish back in 2017-07-03 19:25:58 -07:00
package-lock.json Edited code to be ES6, added eslint and some basic linting configuration 2017-06-17 22:51:30 +02:00
package.json refactored publish controller and routes 2017-06-26 10:02:14 -07:00
README.md updated readme 2017-07-04 09:15:58 -07:00
server.js copy to clipboard works 2017-07-06 17:38:57 -07:00

spee.ch

spee.ch is a single-serving site that reads and publishes images to and from the LBRY blockchain.

how to run this repository locally

  • start lbry
    • install the lbry daemon (0.14.2rc2 or higher)
    • start the lbry daemon
  • start mysql
    • install mysql
    • create a database called lbry
    • save your connection uri somewhere handy (you will need it when you start the server)
      • the uri should be in the form mysql://user:pass@host:port/dbname
  • clone this repo
    • customize config/develpment.json by replacing the value of Database.PublishUploadPath with a string representing the local path where you want uploaded files to be stored.
  • run npm install
  • to start the server, from your command line run node server.js while passing three environmental variables: your lbry wallet address (LBRY_WALLET_ADDRESS), your mysql connection uri (MYSQL_CONNECTION_STRING), and the environment to run (NODE_ENV).
    • i.e. LBRY_WALLET_ADDRESS=<your wallet address here> MYSQL_CONNECTION_STRING=<your connection uri here> NODE_ENV=development node server.js
    • e.g. LBRY_WALLET_ADDRESS=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MYSQL_CONNECTION_STRING=mysql://root:XXXXXX@localhost:3306/lbry NODE_ENV=development node server.js
    • To run hot, use nodemon instead of node
  • visit localhost:3000

site navigation

  • spee.ch
    • To publish a file, navigate to the homepage.
  • spee.ch/< the name of the claim >
    • To view the file with the largest bid at a claim.
    • E.g. spee.ch/doitlive.
  • spee.ch/< the name of the claim >/< the claim_id >
    • To view a specific file at a claim
    • E.g. spee.ch/doitlive/c496c8c55ed79816fec39e36a78645aa4458edb5
  • spee.ch/< the name of the claim >/all
    • To view a batch of files at a claim
    • E.g. spee.ch/doitlive/all

API

GET

  • /api/resolve/:name
    • a successfull request returns the resolve results for the claim at that name in JSON format
  • /api/claim_list/:name
    • a successfull request returns a list of claims at that claim name in JSON format
  • /api/isClaimAvailable/:name
    • a successfull request returns a boolean: true if the name is still available, false if the name has already been published to by spee.ch.

POST

  • /api/publish
    • request parameters:
      • body (form-data):
        • name: string (optional)
          • defaults to the file's name, sans extension
          • names can only contain the following characters: A-Z, a-z, _, or -
        • license: string (optional)
          • defaults to "No License Provided"
          • only "Public Domain" or "Creative Commons" licenses are allowed
        • nsfw: string, number, or boolean (optional)
          • defaults true
          • nsfw can be a string ("on"/"off"), number (0 or 1), or boolean (true/false)
      • files:
        • the files object submitted must use "speech" or "null" as the key for the file's value object
    • a successfull request will return the transaction details resulting from your published claim in JSON format

bugs

If you find a bug or experience a problem, please report your issue here on github and find us in the lbry slack!