2017-05-24 20:10:51 +02:00
# spee.ch
spee.ch is a single-serving site that reads and publishes images to and from the [LBRY ](https://lbry.io/ ) blockchain.
2017-03-29 19:28:35 +02:00
2017-06-05 19:50:13 +02:00
## how to run this repository locally
2017-05-24 20:07:43 +02:00
* start lbry
2017-06-29 21:39:43 +02:00
* install the [`lbry` ](https://github.com/lbryio/lbry ) daemon (0.14.2rc2 or higher)
2017-05-24 20:07:43 +02:00
* start the `lbry` daemon
2017-06-18 19:07:14 +02:00
* 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`
2017-05-24 20:07:43 +02:00
* clone this repo
2017-07-12 18:00:38 +02:00
* 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.
2017-05-24 20:07:43 +02:00
* run `npm install`
2017-07-14 07:21:18 +02:00
* to start the server, from your command line run `node server.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 server.js`
* e.g. `LBRY_CLAIM_ADDRESS=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MYSQL_CONNECTION_STRING=mysql://root:XXXXXX@localhost:3306/lbry NODE_ENV=development node server.js`
2017-06-18 19:07:14 +02:00
* To run hot, use `nodemon` instead of `node`
2017-06-05 19:50:13 +02:00
* visit [localhost:3000 ](http://localhost:3000 )
2017-03-29 19:28:35 +02:00
2017-05-24 20:07:43 +02:00
## site navigation
2017-06-01 05:29:16 +02:00
* spee.ch
2017-05-24 20:07:43 +02:00
* To publish a file, navigate to the homepage.
2017-06-01 05:29:16 +02:00
* spee.ch/< the name of the claim >
2017-05-24 20:07:43 +02:00
* 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
2017-06-01 05:29:16 +02:00
* spee.ch/< the name of the claim > /all
2017-05-24 20:07:43 +02:00
* To view a batch of files at a claim
* E.g. spee.ch/doitlive/all
2017-06-27 00:16:46 +02:00
## API
#### GET
2017-06-27 02:16:46 +02:00
* /api/resolve/:name
2017-06-27 00:16:46 +02:00
* a successfull request returns the resolve results for the claim at that name in JSON format
2017-06-27 02:16:46 +02:00
* /api/claim_list/:name
2017-06-27 00:16:46 +02:00
* a successfull request returns a list of claims at that claim name in JSON format
2017-07-04 18:15:58 +02:00
* /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.
2017-06-27 00:16:46 +02:00
#### POST
2017-06-27 02:16:46 +02:00
* /api/publish
2017-06-27 00:16:46 +02:00
* request parameters:
2017-06-27 02:16:46 +02:00
* body (form-data):
2017-06-27 04:26:37 +02:00
* 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
2017-06-27 04:40:31 +02:00
* nsfw: string, number, or boolean (optional)
2017-06-27 04:26:37 +02:00
* defaults `true`
2017-06-27 04:40:31 +02:00
* nsfw can be a string ("on"/"off"), number (0 or 1), or boolean (`true`/`false`)
2017-06-27 00:16:46 +02:00
* files:
2017-06-27 04:26:37 +02:00
* the `files` object submitted must use "speech" or "null" as the key for the file's value object
2017-06-27 00:16:46 +02:00
* a successfull request will return the transaction details resulting from your published claim in JSON format
2017-06-12 02:32:31 +02:00
## bugs
If you find a bug or experience a problem, please report your issue here on github and find us in the lbry slack!