An image hosting service on top of the LBRY protocol.
Find a file
2018-07-30 15:51:01 -07:00
client fixed regex and oebed url creator 2018-07-27 15:56:56 -07:00
devConfig fixed conflicts for merging 2018-04-17 12:57:53 -07:00
server added channel oEmbed route 2018-07-30 15:51:01 -07:00
test updated the iframe test page 2018-07-12 11:30:27 -07:00
.babelrc added babel to transpile SSR jsx 2018-04-18 12:01:26 -07:00
.eslintignore added spee.ch-components under client 2018-05-22 19:06:37 -07:00
.eslintrc added standard-jsx to eslint and fixed issues 2018-02-21 17:02:57 -08:00
.gitignore added spee.ch-components under client 2018-05-22 19:06:37 -07:00
.npmignore added spee.ch-components under client 2018-05-22 19:06:37 -07:00
.sequelizerc updated sequelize cli paths via .sequelizerc 2018-07-26 15:32:33 -07:00
index.js testing iframe page 2018-07-02 22:47:18 -07:00
LICENSE create initial LICENSE file 2018-02-05 12:43:14 -08:00
package-lock.json added imagemagic and created media processing wrapper modules 2018-07-27 09:58:00 -07:00
package.json added imagemagic and created media processing wrapper modules 2018-07-27 09:58:00 -07:00
README.md working on regex 2018-07-27 18:40:57 -07:00

Spee.ch

This repo packages the spee.ch server for use with spee.ch implementations.

Quick start

To get started running your own version of spee.ch, visit lbryio/www.spee.ch

Install

npm install spee.ch --save 

Dependenceis

Make sure the following are installed

Development

  • the server/ folder contains all of the server code
    • index.js is the entry point for the server. It creates the express app, requires the routes, syncs the database, and starts the server listening on the PORT designated in the config file.
    • the server/routes folder contains all of the routes for the express app
    • the server/models folder contains all of the models which the app uses to interact with the mysql database. Note: this app uses the sequelize ORM.

Tests

  • This package uses mocha with chai for testing.
  • Before running tests, create a testingConfig.js file in devConfig/ by copying testingConfig.example.js
  • To run tests:
    • To run all tests, including those that require LBC (like publishing), simply run npm test
    • To run only tests that do not require LBC, run npm run test:no-lbc

API

  • (post) /api/claim/publish
    • example: curl -F 'name=MyPictureName' -F 'file=@/path/to/myPicture.jpeg' https://spee.ch/api/claim/publish
    • Parameters:
      • name (required)
      • file (required) (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)
  • (get) /api/claim/resolve/:name/:claimId
    • example: curl https://spee.ch/api/claim/resolve/doitlive/xyz
  • (get) /api/claim/list/:name
    • example: curl https://spee.ch/api/claim/list/doitlive
  • (get) /api/claim/availability/:name
    • returns the name if it is available
    • example: curl https://spee.ch/api/claim/availability/doitlive
  • (get) /api/channel/availability/:name
    • returns the name if it is available
    • example: curl https://spee.ch/api/channel/availability/@CoolChannel

Bugs

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

Contribute

Below is a guide to the issue tags in this repo

level 1

Issues with spee.ch that anyone with basic web development can handle, little-to-no experience with the spee.ch codebase is required.

level 2

Issues with spee.ch familiarity with the spee.ch codebase is required, but little-to-no familiarity with the lbry daemon is necessary

level 3

Issues with spee.ch strong familiarity with the spee.ch code base and how the lbry daemon functions is required

level 4

Issues with lbry (e.g. the spee.ch wallet, lbrynet configuration, etc.) that require strong familiarity with the lbry daemon and/or network to fix. Generally these issues are best suited for the lbry protocol team but are placed in this repo because of they are part of the spee.ch implementation

Stack

URL formats

Below is a list of all possible urls for the content on spee.ch

  • controlling, free LBRY claim
    • spee.ch/claim (show)
    • spee.ch/claim.ext (serve)
  • specific LBRY claim
    • spee.ch/claim_id/claim
    • spee.ch/claim_id/claim.ext
  • all free contents for the controlling LBRY channel
    • spee.ch/@channel
  • a specific LBRY channel
    • spee.ch/@channel:channel_id
  • a specific claim within the controlling LBRY channel
    • spee.ch/@channel/claim (show)
    • spee.ch/@channel/claim.ext (serve)
  • a specific claim within a specific LBRY channel
    • spee.ch/@channel:channel_id/claim
    • spee.ch/@channel:channel_id/claim.ext