An image hosting service on top of the LBRY protocol.
Find a file
2017-07-22 16:21:37 -07:00
config removed DownloadDirectory from config vars 2017-07-18 09:54:24 -07:00
controllers removed unnecessary logs 2017-07-19 15:42:56 -07:00
helpers added filename special character check, and moved replace regex to front end 2017-07-22 15:09:58 -07:00
models changed model logging 2017-07-12 16:57:12 -07:00
public added event listener to input to prevent spaces 2017-07-22 16:21:37 -07:00
routes added masonry.js to display trending images 2017-07-21 13:40:01 -07:00
views added event listener to input to prevent spaces 2017-07-22 16:21:37 -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 renamed server.js to speech.js 2017-07-18 10:02:09 -07:00
README.md renamed server.js to speech.js 2017-07-18 10:02:09 -07:00
speech.js added masonry.js to display trending images 2017-07-21 13:40:01 -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.DownloadDirectory 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 speech.js while passing three environmental variables: your lbry wallet address (LBRY_CLAIM_ADDRESS), your mysql connection uri (MYSQL_CONNECTION_STRING), and the environment to run (NODE_ENV).
    • i.e. LBRY_CLAIM_ADDRESS=<your wallet address here> MYSQL_CONNECTION_STRING=<your connection uri here> NODE_ENV=development node speech.js
    • e.g. LBRY_CLAIM_ADDRESS=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MYSQL_CONNECTION_STRING=mysql://root:XXXXXX@localhost:3306/lbry NODE_ENV=development node speech.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!