A browser and wallet for LBRY, the decentralized, user-controlled content marketplace.
Find a file
infinite-persistence 6bd384b01a
TUS: retry on 423_locked to try address "failed to upload chunk"
## Background
Per developer of `tus-js-client`, it is normal to occasionally encounter upload errors. The auto-retry mechanism is meant to address this.

While implementing tab-lock to prevent multiple uploads of the same file, 423_locked was used to detect this scenario. But 423_locked could also mean "the server is busy writing the chunk" (per discussion with Randy), so we kind of disabled the auto-retry mechanism accidentally.

Meanwhile, from a prior discussion with Randy, one of the chunk-writing duration took 3 minutes. Our current maximum of "retry after 15s" wouldn't help.

## Change
1. Given that tab-locking was improved recently and no longer reliant on the server error messages (we use secure storage to mark a file as locked), reverted the change to "skip retry on 409/423". This is now back to normal recommended behavior.
2. `tus-js-client` currently does not support variable retry delay, otherwise we could prolong the delay if the error was 423. Since we know it could take up to 3 minutes, and that we don't know if it's file-size dependant, just add another 30s retry and put a friendlier message asking the user to retry themselves after waiting a bit.
2022-01-10 16:46:57 +08:00
.github Readme fixes (#192) 2021-11-01 09:54:35 -04:00
.tx make "I Understand" acknowledgement work for i18n case 2019-10-13 12:42:55 -04:00
build working 2020-12-16 10:52:22 -05:00
custom initial PR for custom homepages - take 2 2020-11-10 12:08:19 -05:00
electron Remove use-zoom 2021-11-09 15:57:12 +08:00
extras Blacklist: use existing map instead of looping (#400) 2021-12-01 10:24:27 -05:00
flow-typed Handle removed livestream comments 2021-12-30 11:55:44 -05:00
homepages Revert "Code-split homepages" 2021-10-28 01:33:46 +08:00
static i18n - remove some Desktop strings 2022-01-10 10:04:09 +08:00
ui File page: use compact follower count 2022-01-10 11:13:33 +08:00
web TUS: retry on 423_locked to try address "failed to upload chunk" 2022-01-10 16:46:57 +08:00
.env.defaults Add env to auto report new strings in console 2022-01-05 00:26:31 -08:00
.eslintignore Reduce triple call to single call, improve video loading, fix embed play button being off-center (#546) 2022-01-06 14:28:27 -05:00
.eslintrc Add pre-roll ads 2021-07-13 00:06:32 -04:00
.flowconfig Browser push notifications (#133) 2021-10-27 10:38:10 -04:00
.gitignore Analyze all .js files to get the full picture. 2021-10-27 09:19:52 +08:00
.lintstagedrc.json Lint '/extras/*' + fixes 2021-10-19 20:40:08 +08:00
.prettierrc.json redesign channel page 2019-05-06 23:29:50 -04:00
.sentryclirc update sentry config 2020-02-14 16:42:02 -05:00
babel.config.js use same code for handling open links on lbry.tv and desktop 2019-12-03 13:25:17 -05:00
CHANGELOG.md FAQ stuff (#109) 2021-10-21 16:21:51 -04:00
config.js Refactor Logo 2021-12-21 16:36:16 -05:00
CONTRIBUTING.md udpate readme 2021-04-21 11:06:29 -04:00
electron-builder.json remove 32 bit build 2021-01-25 14:24:57 -05:00
LICENSE Bump copyright year to 2021 2021-02-17 17:40:00 -05:00
package.json Feature livestream scheduling (#458) 2021-12-16 16:59:13 -05:00
postcss.config.js redesign channel page 2019-05-06 23:29:50 -04:00
README.md Dummy force push 2022-01-05 18:40:25 -05:00
webpack.base.config.js Enable BundleAnalyzerPlugin + remove 'yarn analyze' 2021-11-11 00:07:18 +08:00
webpack.electron.config.js Initial commit for LBRY-First 2020-07-08 14:23:43 -04:00
yarn.lock Feature livestream scheduling (#458) 2021-12-16 16:59:13 -05:00

Odysee Frontend - Odysee.com

This repo contains the UI and front end code that powers Odysee.com.

npm Build Status GitHub contributors

forthebadge forthebadge

Table of Contents

  1. Usage
  2. Running from Source
  3. Contributing
  4. License
  5. Security
  6. Contact

Usage

Go to the website to interact on this frontend.

Running from Source

You can run the web version (odysee.com), via running onto your host machine, or go to the website itself.

Prerequisites

  1. Clone (or fork) this repository: git clone https://github.com/OdyseeTeam/odysee-frontend
  2. Change directory into the cloned repository: cd odysee-frontend
  3. Install the dependencies: yarn

Run the web app for development

yarn dev:web

  • This uses webpack-dev-server and includes hot-reloading. If you want to debug the web server we use in production you can run yarn dev:web-server. This starts a server at localhost:1337 and does not include hot reloading.

Customize the web app

  • In root directory, duplicate the .env.default file and rename it to .env then copy the code below and paste it anywhere in the .env file.
cp .env.defaults .env
nano .env
  • To specify your own OG-IMAGE You can either place a png named v2-og.png in the /custom folder or specify the OG_IMAGE_URL in .env

  • To specify your own channels to be followed on first run AUTO_FOLLOW_URLS=lbry://@chan#123...a lbry://@chan2#456...a

  • If you want to customize the homepage content

  1. add CUSTOM_HOMEPAGE=true to the '.env' file
  2. copy /custom/homepage.example.js to /custom/homepage.js and make desired changes to homepage.js
  • If you want up to two custom sidebar links:
PINNED_URI_1=@someurl#2/someclaim#4
PINNED_LABEL_1=Linktext

PINNED_URI_2=$/discover?t=tag&[queryparams]
PINNED_LABEL_2=OtherLinkText
  • Finally NODE_ENV=production yarn compile:web to rebuild Note: You don't need to edit the .env file in the /web folder - that is copied during compile.

Deploy the web app (experimental)

  1. Create a server with a domain name and a reverse proxy https to port 1337.
  2. Install pm2, node v10, yarn
  3. Clone this repo
  4. Make any customizations as above
  5. Run yarn to install
  6. Run NODE_ENV=production yarn compile:web to build
  7. Set up pm2 to start ./web/index.js

Resetting your Packages

If the app isn't building, or yarn xxx commands aren't working you may need to just reset your node_modules. To do so you can run: rm -r node_modules && yarn or del /s /q node_modules && yarn on Windows.

If you really think something might have gone wrong, you can force your repo to clear everything that doesn't match the repo with git reset --hard HEAD && git clean -fxd && git pull -r

Contributing

We ❤️ contributions from everyone and contributions to this project are encouraged, and compensated. We welcome bug reports, bug fixes and feedback is always appreciated. For more details, see CONTRIBUTING.md.

contributions welcome GitHub contributors

License

This project is MIT licensed. For the full license, see LICENSE.

Security

For security issues, please reach out to security@odysee.com