An image hosting service on top of the LBRY protocol.
Find a file
2018-03-08 15:01:29 -08:00
auth removed console logs 2018-03-05 17:07:15 -08:00
config updated webpack to build to index.js and moved sql to take a config 2018-03-08 13:18:34 -08:00
constants fixed the import statements; 2018-01-23 14:45:54 -08:00
controllers updated webpack to build to index.js and moved sql to take a config 2018-03-08 13:18:34 -08:00
helpers fixed spelling and ternary 2018-03-06 16:23:21 -08:00
migrations added migration to change DOUBLE to DECIMAL 2017-11-08 07:25:21 -08:00
models updated webpack to build to index.js and moved sql to take a config 2018-03-08 13:18:34 -08:00
passport made bcrypt password check into a promise 2018-03-05 16:37:22 -08:00
public created public bundle 2018-03-08 13:21:13 -08:00
react fixed xxx/index and event binding 2018-03-08 09:26:33 -08:00
routes changed end-to-end publish label 2018-03-06 09:39:22 -08:00
task-scripts wrote a task to fill in channelNames 2018-03-07 13:45:51 -08:00
test added a test for logging in with a claim id 2018-03-05 19:22:42 -08:00
views removed unnecessary handlebars code 2018-02-23 11:17:59 -08:00
.eslintignore created public bundle 2018-03-08 13:21:13 -08:00
.eslintrc added standard-jsx to eslint and fixed issues 2018-02-21 17:02:57 -08:00
.gitignore created public bundle 2018-03-08 13:21:13 -08:00
.sequelizerc added migrations for Claim column types 2017-11-07 14:47:41 -08:00
index.js changed server to use exports 2018-03-08 15:01:29 -08:00
index.js.map changed server to use exports 2018-03-08 15:01:29 -08:00
LICENSE create initial LICENSE file 2018-02-05 12:43:14 -08: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 moved babel polyfill to dependencies 2018-03-08 13:56:47 -08:00
README.md Update README.md 2018-03-08 09:41:22 -08:00
server.js changed server to use exports 2018-03-08 15:01:29 -08:00
webpack.client.common.js split webpack config into dev and prod 2018-02-23 16:59:45 -08:00
webpack.config.js updated webpack to build to index.js and moved sql to take a config 2018-03-08 13:18:34 -08:00
webpack.dev.js split webpack config into dev and prod 2018-02-23 16:59:45 -08:00
webpack.prod.js split webpack config into dev and prod 2018-02-23 16:59:45 -08:00
webpack.server.common.js updated webpack to build to index.js and moved sql to take a config 2018-03-08 13:18:34 -08:00

Spee.ch

Spee.ch is a web app that reads and publishes images and videos to and from the LBRY blockchain.

How to run this repository locally

  • start mysql
    • install mysql
    • create a database called lbry
    • save your connection username and password someplace handy
  • start lbrynet daemon
    • install the lbry daemon
    • start the lbry daemon
  • start spee.ch
    • clone this repo
    • run npm install
    • create your speechConfig.js file
      • copy speechConfig.js.example and name it speechConfig.js
      • replace the null values in the config file with the appropriate values for your environment
    • build the app by running npm run build-prod
    • to start the server, run npm run start
  • visit localhost:3000
  • start spee.ch-sync (optional, recommended)
    • Note: this tool will decode blocks from the lbry blockchain and update the Claim and Certificate tables in mysql with all the claims from the blockchain. This is not necessary if you only want to host and resolve content published through your version of spee.ch, but it is required if you want to retrieve and host other content from the lbry network.
    • install and run this speech-sync tool

Tests

  • Spee.ch uses mocha with chai for testing.
  • To run all tests that do not require LBC, run npm test -- --grep @usesLbc --invert
  • To run all tests, including those that require LBC (like publishing), simply run npm test

API

GET

  • /api/claim/resolve/:name/:claimId
    • example: curl https://spee.ch/api/claim/resolve/doitlive/xyz
  • /api/claim/list/:name
    • example: curl https://spee.ch/api/claim/list/doitlive
  • /api/claim/availability/:name
    • returns the name if it is available
    • example: curl https://spee.ch/api/claim/availability/doitlive
  • /api/channel/availability/:name
    • returns the name if it is available
    • example: curl https://spee.ch/api/channel/availability/@CoolChannel

POST

  • /api/claim/publish
    • example: curl -F 'name=MyPictureName' -F 'file=@/path/to/myPicture.jpeg' https://spee.ch/api/claim/publish
    • Parameters:
      • name
      • file (must be type .mp4, .jpeg, .jpg, .gif, or .png)
      • nsfw (optional)
      • license (optional)
      • title (optional)
      • description (optional)
      • thumbnail url to thumbnail image, for .mp4 uploads only (optional)
      • channelName(optional)
      • channelPassword (optional,; required if channelName is provided)

Bugs

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