Commit graph

445 commits

Author SHA1 Message Date
infinite-persistence
d14470830c
tus: reduce chunk size (25MB -> 10MB)
With the throughput tweaks at the backend, it seems like the number of "file is locked" errors have reduced.

The next thing to try is to reduce the chunk size, hoping that file writes would be faster, reducing the lock duration from causing a timeout.
2022-01-15 14:44:15 +08:00
mayeaux
ae976c377e
EU ads (#700)
* add new ad

* bugfix

* prioritize eu ad over mobile ad

* replace frontpage ad with EU ad

* bugfix checking for EU
2022-01-14 14:21:17 -05:00
infinite-persistence
91d0eb30b8
tus: remove multi-tab assumption + pass original err msg
Completely remove any assumptions of multi-tab uploading from server status (should have done it previously, but wanted to be conservative). This should make it less confusing to the user.

The real issue still remains -- the upload is somehow locked at the backend.

Also, when we override the error to present a user-friendly message to the user, pass the original error to the log (just in case it gives extra info).
2022-01-13 09:57:45 +08:00
infinite-persistence
238f6b2eda
tus: adjust retry delay + remove logging
From the logs, it seems like the second retry (5s) fixes the "normal" cases, so just remove the first retry (0s).

Also from the logs, if a retry doesn't work by the third attempt (10s), it's most likely the "locked" case and retrying further doesn't help. So, reduce one more useless retry attemp.

Removed logging since we've gathered enough data, and that this hook is expected to be hit a lot, so we don't want to clog the logs.
2022-01-13 09:43:29 +08:00
infinite-persistence
c90c5bcc2a
Route markdown to v1 (#680)
I think I just forgot to do it the first time.
2022-01-12 10:31:46 -05:00
infinite-persistence
431f55ef26
Delete pixel experiment (#683) 2022-01-12 10:14:44 -05:00
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
infinite-persistence
46c7c193be
Log the status code for the retry 2022-01-10 11:50:29 +08:00
infinite-persistence
47043bc965
Remove 'retryTimeout' - that's just the timer ID, nothing useful 2022-01-10 11:39:34 +08:00
mayeaux
58bdcbd1ed
Reduce triple call to single call, improve video loading, fix embed play button being off-center (#546)
Lots of optimizations and cleanup for the player. If we run into any strange issues, can revert.
2022-01-06 14:28:27 -05:00
infinite-persistence
01459d906a
tus: Get more information from publish errors 2022-01-06 15:39:51 +08:00
infinite-persistence
555bde87f8
tus: make chunk size multiples of 256KiB
Our current chunk size is 25,000,000.

Google and S3 documentation suggests the chunk size to be multiples of 256KiB. MongoDB too.  We aren't using any of those, but I guess no harm doing the same.  From the logs, the values "25,000,000" and "50,000,000" seems to be common.
2022-01-06 15:39:51 +08:00
Thomas Zarebczan
d4866b09bb
update embedly referrer param 2022-01-05 10:58:23 -05:00
infinite-persistence
c6fb204d11 Skip checking DIST_ROOT twice
f0cd1592 did an additional call instead of replacement.

Aside: the 1 hour value only has effect in dev instances. For prod, CloudFlare seems to override that to 4 hours.
2022-01-05 09:00:28 -05:00
Anthony
ec5a9802fc
Refactor ad implementation, fix two bugs (#616) 2022-01-05 16:15:08 +08:00
Anthony
cac05d5714 more touchups 2022-01-04 18:05:10 -05:00
Anthony
e3395e31ba refactor ad implementation 2022-01-04 18:05:10 -05:00
Anthony
28bcb96ec7 autoscroll on home page and dont run ads js at all for firefox android 2022-01-04 18:05:10 -05:00
Dan Peterson
24cc07c09b escape referrerQuery in the oEmebed xml generator 2022-01-04 17:19:55 -05:00
Dan Peterson
3744f26295 Escape/encode referrerQuery 2022-01-04 17:19:55 -05:00
infinite-persistence
e5a2e3961e Remove unused items 2022-01-04 08:54:30 -05:00
infinite-persistence
5948ee0d80
i18n: restore ability to retrieve new i18n strings
## Issue
In the original Desktop code, new strings encountered during runtime will be automatically added to the local `app-strings.json` file. The feature is unavailable in Web because writing to file would require explicit permissions.

## Change
Partially restore the functionality by saving the strings to memory and retrieving it from the console via `copy(window.new_strings)`. It's a little bit of manual work, but I think it is good as it forces a sanity check before committing (previously, experimental/developmental strings are committed and being translated in Transifex).
2022-01-03 10:36:12 +08:00
infinite-persistence
5aa6827258
NagNoUser i18n update 2021-12-30 20:42:53 +08:00
Dan Peterson
60430b5267 clean up dupe code + make sure failing analytics doesn't throw subscription error. 2021-12-29 15:45:10 -05:00
Dan Peterson
c22a3048dc Make sure user is available (ie. backend api not down) 2021-12-29 15:45:10 -05:00
Anthony
dfaa848ab7 change the way checking if onetrust is available 2021-12-14 15:09:31 -05:00
Anthony
d675d3234c use production script for odysee 2021-12-14 15:09:31 -05:00
Anthony
c011145029 bugfix typo 2021-12-14 15:09:31 -05:00
Anthony
863b4bfdea hide bottom left widget 2021-12-14 15:09:31 -05:00
Anthony
cafc3d676f switch footer to onetrust 2021-12-14 15:09:31 -05:00
Anthony
5f874e44a7 disable ads on android firefox 2021-12-13 12:31:41 -05:00
Anthony
b34de2d5cf dont run sidebar ad on android firefox 2021-12-13 12:31:41 -05:00
infinite-persistence
9c723b3db3
tus: skip fingerprint storage
## Ticket
418 TUS: skip fingerprint storage

- Fingerprints for canceled uploads are not being cleared by tus-js-client. It's in localStorage, and there is limit for that.
- We are storing the confirmed fingerprint (from the backend) in redux anyway, so we don't need that functionality.
2021-12-13 15:35:21 +08:00
infinite-persistence
157b50c58e
Upload: tab sync and various fixes (#428)
* Upload: fix redux key clash

## Issue
`params` is the "final" value that will be passed to the SDK and  `channel` is not a valid argument (it should be `channel_name`). Also, it seems like we only pass the channel ID now and skip the channel name entirely.

For the anonymous case, a clash will still happen when since the channel part is hardcoded to `anonymous`.

## Approach
Generate a guid in `params` and use that as the key to handle all the cases above. We couldn't use the `uploadUrl` because v1 doesn't have it.

The old formula is retained to allow users to retry or cancel their existing uploads one last time (otherwise it will persist forever). The next upload will be using the new key.

* Upload: add tab-locking

## Issue
- The previous code does detect uploads from multiple tabs, but it was done by handling the CONFLICT error message from the backend. At certain corner-cases, this does not work well. A better way is to not allow resumption while the same file is being uploading from another tab.

- When an upload from 1 tab finishes, the GUI on the other tab does not remove the completed item. User either have to refresh or click Cancel. Clicking Cancel results in the 404 backend error. This should be avoided.

## Approach
- Added tab synchronization and locking by passing the "locked" and "removed" information through `localStorage`.

## Other considered approaches
- Wallet sync -- but decided not to pollute the wallet.
- 3rd-party redux tab syncing -- but decided it's not worth adding another module for 1 usage.

* Upload: check if locked before confirming delete

## Reproduce
Have 2 tabs + paused upload
Open "cancel" dialog in one of the tabs.
Continue upload in other tab
Confirm cancellation in first tab
Upload disappears from both tabs, but based on network traffic the upload keeps happening.
(If upload finishes the claim seems to get created)
2021-12-07 09:48:09 -05:00
mayeaux
1bfe9e2eda
Ad blacklist terms (#434)
* coming along well

* working properly

* check claim name and dont have side effect if the environment vars are not set

* check against claim name
2021-12-06 13:01:40 -05:00
mayeaux
82643b1f4a
Finish cleaning out DOM (#413)
* finish cleaning out dom

* lint
2021-12-02 13:22:51 -05:00
mayeaux
a842a58608
Persist ads (#411)
* persist homepage ads

* persist all ads
2021-12-02 12:04:40 -05:00
saltrafael
c492204e26
[oEmbed] some changes and fixes (#392)
* Fix query selection

* Fix xml format

* Fix link url and author_url

* Refactor repeated components

* Refactor repeated embed iframe string

* Add support for passing referrer queries to src

* Change iframe id from lbry to odysee

* Improve replace logic understanding

* Fix URL

Co-authored-by: Thomas Zarebczan <tzarebczan@users.noreply.github.com>
2021-12-01 10:36:52 -05:00
mayeaux
6d3ec149b3
use second card on small screens and dont load script if authenticated (#406) 2021-12-01 09:52:03 -05:00
infinite-persistence
6fb2e02e3a
Change ad script injection method + fix effect dependency (#396)
## Issue
Tom seeing crashes on the line that was trying to remove the script, saying it's not a child of that node.

## Changes
- I'm guessing the found `fjs` sometimes is not in `head`, but we always remove from `head` during cleanup. Just append to the bottom of head, and remove from head. I think script order doesn't matter if we are injecting at runtime?

- Fixed effect dependency while at it (the latest PR removed the need to check for `type`).
2021-11-30 22:17:28 -05:00
infinite-persistence
0aff130ea4
Fix lint and formatting (#394) 2021-11-30 19:53:23 -05:00
mayeaux
1e071550ae
Add ad to the homepage as a card (#362)
* coming along well

* coming along well

* adding custom react element

* coming along well

* coming along well

* coming along well

* working pretty well

* almost done

* essentially working just could use a couple touchups

* cleanup and lint errors

* fix lint errors

* fix flow errors

* possible bugfix

* dynamically set width and height

* only run when rowdata is populated

* trying using ref

* better way to check for card population

* working implementation

* working implementation

* clean up flow and clean up script

* fix typo in comment and logs
2021-11-30 17:01:03 -05:00
saltrafael
34eaccdbee
add oEmbed Support for video claims (#376)
* Refactor html.js

* Fix Favicon

* Refactor rss.js

* Create oEmbed.js
2021-11-29 21:27:56 -05:00
Thomas Zarebczan
7613d07c35
Misc updates 2021-11-29 20:32:39 -05:00
Thomas Zarebczan
27d8f4174c
fix thumbnail URLs 2021-11-29 19:31:23 -05:00
infinite-persistence
fd17ab4c8b
Route recommendation search to recsys + add user_id (#353)
* Route recommendation search to recsys 5% of the time + add `user_id`

## Ticket
334 send some recommended requests to recsys

## Approach
`doSearch`:
    - If the search options include `related_to`, route that to the new `searchRecommendations` which performs the 5% check + appends `user_id` at the end. This way, we don't need to alter the function signature of `doSearch`.
    - Else, run proceed as normal.

* Always go to alt provider

f

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-11-24 15:25:22 -05:00
infinite-persistence
6bbf310348 GA: browser notification subscription 2021-11-24 07:28:25 -08:00
mayeaux
f2715fa97b
Adds GDPR support (#311)
* add gdpr support

* only run on production

* testing implementation

* just needs last touches then ready

* ready for merge

* add cookies to sidebar

* hide button when secureprivacy not available

* switch over to loading script as a react hook

* conditionally add secureprivacy script

* save gdpr status on session

* better design
2021-11-23 10:21:33 -05:00
infinite-persistence
eb83a834a1
TUS: handle remaining locked file error messages 2021-11-23 11:28:32 +08:00
infinite-persistence
87c3dcc057
SyncFatalError: show nag instead of hard-crashing. (#331)
* SyncFatalError: show nag instead of hard-crashing.

## Issue
When sync fails, we crash the app.

## Ticket
Maybe closes 39 "Better handle both internal and web backend interruptions / downtime"

## Approach
I'm tackling this from the standpoint that (1) sync errors are not that fatal -- we'll just lost a few recent changes (2) network disconnection is the common cause.

## Changes
- If we are offline:
    - Inform user through a nag. All other status is meaningless if we are offline.
- If we are online:
    - If api is STATUS_DOWN, show the existing crash page.
    - If there is a sync error, show a nag saying settings are now potentially unsynchronized, and add a button to retry sync.
    - If there is a chunk error, nag to reload.

* Attempt to detect `status=DOWN`

Previous code resolves the status to either "ok" or "not", which makes the app unable to differentiate between the "degraded" (nag) and "down" (crash) states.
2021-11-22 09:30:43 -05:00
infinite-persistence
2d3057d5cf
Detect concurrent uploads and stop it. 2021-11-22 16:12:11 +08:00
infinite-persistence
b6e9c7aabf
TUS: handle URL removal on 4xx errors
## Issue
The TUS client automatically removes the upload fingerprint whenever there is a 4xx error. When we try to resume later, we couldn't find the the fingerprint and ended up creating a new upload ID.

## Changes
Since we are also storing the uploadUrl ourselves, provided that to override the tus client's default behavior of restarting a new session on 4xx errors.
2021-11-22 16:12:10 +08:00
infinite-persistence
d48a7c7295
TUS: reduce chunk size from 100MB to 25MB.
The stalling behavior has changed a bit, probably with the removal of CF.

The stall difference between 10MB and 50MB is not too noticable, so picking 25MB as a start.
2021-11-19 14:40:03 +08:00
jessopb
4cf9309ee1
facilitate admin temp files (#313) 2021-11-17 13:28:36 -05:00
infinite-persistence
73f208923a
Optimize makeSelectClaimIsNsfw (and it's surrounding friends) 2021-11-16 10:14:01 +08:00
Dan Peterson
cb104017ad
adjust livestream interval (#294) 2021-11-15 12:34:21 -06:00
Dan Peterson
c242c37869
Add initialization status to push notification hook. Can be used to better control render strategy in cmpnts utilizing it. (#284) 2021-11-12 12:06:07 -05:00
infinite-persistence
b0509bc990
Band-aid: wait a while before sending notify
## Issue
The status = 0 is due to unresponsive backend right after the tus-upload. No root-cause found yet.

## Change
It may or may not help, but adding a delay to account for the unresponsive stage for now.
2021-11-12 18:43:57 +08:00
infinite-persistence
d8080a9fda
Notify: log retry attempts 2021-11-12 16:30:41 +08:00
infinite-persistence
62e7fe06a5
TUS: Don't retry on 4xx
## Issue/Steps
From Randy:
- started the upload then open a new tab of the same page
- one of the tab finished the upload and successfully published the file, and the other tab received 404 error on patch and head request, because the file is already removed on the server

## Changes
Use the default onRetry code that ignores all 4xx, except for LOCKED and CONFLICT. Had to duplicate some code from tus because I still need to inject the 'retry' progress for the GUI to update the string.
2021-11-12 14:32:41 +08:00
infinite-persistence
dfe30b6d78
TUS: fix parallel uploads of the same file
## Issue
If you make 2 claims from the same source file, the second upload thinks it's trying to resume from the first one. They should be unique uploads.

## Approach
Stash the upload url for comparison when looking up existing uploads to resume.

Stash that in `params` to minimize code changes. We'll just need to ensure it is cleared before we generate the SDK payload.
2021-11-12 14:32:40 +08:00
infinite-persistence
861aaf4cde Notify: Re-enable delay but only for initial connection problem
We want to avoid the double `notify`, and also to confirm whether the SDK is timing out.
2021-11-12 11:19:26 +08:00
infinite-persistence
9bfa1a3577
Notify: Disable retry + try to report status code 2021-11-12 09:01:36 +08:00
mayeaux
d047a748b7
Test ads (#277)
display ad in related sidebar for video view page

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-11-11 17:15:50 -05:00
infinite-persistence
7ef5975ee8
Notify: auto-retry once after 10 seconds
Also:
- Show the resume button on notify errors.
- Changed the error message to differentiate against v1's.
2021-11-11 09:55:48 +08:00
infinite-persistence
b5f1ae1291
Tus-retry: widen delay gap + add 1 more retry 2021-11-11 09:54:25 +08:00
Dan Peterson
5639e4c1ff
Adjust some initial states to optimize initial render (#265) 2021-11-10 14:15:40 -05:00
infinite-persistence
cb6a044584
Support resume-able upload via tus (#186)
* Publish button: use spinner instead of "Publishing..."

Looks better, plus the preview could take a while sometimes.

* Refactor `doPublish`. No functional change

This is to allow `doPublish` to accept a custom payload as an input (for resuming uploads), instead of always resolving it from the redux data.

* Add doPublishResume

* Support resume-able upload via tus

## Issue
38 Handle resumable file upload

## Notes
Since we can't serialize a File object, we'll need to the user to re-select the file to resume.

* Exclude "modified date" for Firefox/Android

## Issue
It appears that the modification date of the Android file changes when selected, so that file was deemed "different" when trying to resume upload.

## Change
Exclude modification date for now. Let's assume a smart user.

* Move 'currentUploads' to 'publish' reducer

`publish` is currently rehydrated, so we can ride on that and don't need to store the `currentUploads` in `localStorage` for persistence. This would allow us to store Markdown Post data too, as `localStorage` has a 5MB limit per app.

We could have also made `webReducer` rehydrate, but in this repo, there is no need to split it to another reducer. It also makes more sense to be part of publish anyway (at least to me).

This change is mostly moving items between files, with the exception of
1. An additional REHYDRATE in the publish reducer to clean up the tusUploader.
2. Not clearing `currentUploads` in CLEAR_PUBLISH.

* Restore v1 code for livestream replay, etc.

v2 (tus) does not handle `remote_url`, so the app still needs v1 for that. Since we'll still have v1 code, use v1 for previews as well.
2021-11-10 13:16:16 -05:00
Dan Peterson
1d8753e2ba
Revert claim preview + fix small css issue + export named function 2021-11-10 08:21:16 +08:00
Dan Peterson
60f06dac52
Fix livestream state issues. Create unified long polling mechanism. 2021-11-10 08:21:15 +08:00
infinite-persistence
d7fc5069be
Remove .env.ody again
Accidentally brought back in when porting over the Redux consolidation PR.
2021-11-09 15:57:13 +08:00
infinite-persistence
1426dd5b83
Remove skin support and lbry.tv scss
## Issue
211 - CSS load-order problem

## Notes
It is unlikely that we'll need to support different brands in the future, so simplifying the code and number of files so that we don't have to handle the various import paths. Will probably make things easier for the css-splitting work too.
2021-11-09 10:36:08 +08:00
Thomas Zarebczan
db12a4b991
Odysee specific changes and other misc improvements (#219) 2021-11-03 15:47:19 -04:00
Dan Peterson
704452732a
Add hints if an error occurs subscribing to notifications (#143)
* Add hints if an error occurs subscribing to notifications

* Update import (type/linting issue)

* disable optimization for debugging

* Revert "disable optimization for debugging"

This reverts commit 5b837f94e97b7488a7dc565e7f74d399e19c286f.

* improve detection of notification support + improve ux / ui surrounding that

* update translations
2021-11-01 14:51:23 -04:00
saltrafael
c24153c6ca
[New Feature] Comment Emotes (#125)
* Refactor form-field

* Create new Emote Menu

* Add Emotes

* Add Emote Selector and Emote Comment creation ability

* Fix and Split CSS
2021-10-27 14:20:47 -04:00
Dan Peterson
762bddb158
Don't instantiate messaging SDK if service worker is unavailable (Firefox/Private) (#142) 2021-10-27 13:34:50 -04:00
Dan Peterson
03f69eff86
Browser push notifications (#133)
* fix type error

fix is subscribed check

- Persist subscription data locally
- add / remove subscription during log in / out
- Use store directly in hook

Add toast error if subscription fails

Revert removal of v2

hotfix linting issue

Add custom notification handler

- fix isSupported flag
- make icon color compatible with light/dark theme
- fix icon on notifications blocked banner

wip: add push notification banner to notifications page.

- ignore failed deletions via internal API
- add ua parsing package
- add more robust meta data to token save

refactor naming + add push toggle to notification button

shift some code around

update css naming o proper BEM notation

update notifications UI

remove now unneeded util function

Update push notification system to sue firebase sdk

separate service worker webpack bundling

update service worker to use firebase sdk

Add firebase config

Add firebase and remove filemanager

Stub out the basics for browser push notifications.

* fix safari

* try smaller image for badge

* add token validation with server, refactor code

* remove param

* add special icon for web notification badge

* add translations

* add missing trans for toast error

* add pushRequest method that will not prompt users who have subscribed but since disabled notifications in the settings.
2021-10-27 10:38:10 -04:00
Merge
30023422b8
Desktop cherry-pick: "7240 Integrate lbry redux and lbryinc" 2021-10-19 20:40:07 +08:00
Thomas Zarebczan
02a8099514
Take 99 2021-10-12 22:30:05 -04:00
Thomas Zarebczan
9dbee19961
Add test embed domain to rule out cards 2021-10-12 20:55:33 -04:00
Thomas Zarebczan
b49fed4cf5
fix config for thumbs
whoops

Fix encoded URLs
2021-10-12 20:31:10 -04:00
Thomas Zarebczan
2b5d32c313
Use cards.odysee.com (#56) 2021-10-12 19:16:39 -04:00
saltrafael
7c518aa712
[Comment/Livestream] Markdown and style fixes (#55)
* Fix CSS for live chat embeds

* Fix Markdown Lists in Comments

* Disable copy link menu option on livestream comments

* Fix nested indents in Live Chat

* Fix mentions and timestamps not parsed in bullet lists

* Highlight livestream comment and menu button on hover

* Fix mention parsing
2021-10-12 17:06:20 -04:00
Thomas Zarebczan
eaa32e4df4
Odysee references revamp, part1 2021-10-08 15:22:07 -04:00
Thomas Zarebczan
1bb491857e
lint fix, return url always
fix lint
2021-10-08 11:06:51 -04:00
Thomas Zarebczan
3077c778c3
Test more twitter thumbnail stuff 2021-10-08 10:44:22 -04:00
Thomas Zarebczan
88794761d0
use thumbnails.odysee.com
f
2021-10-07 16:38:59 -04:00
mayeaux
e3791aefdc
Send video bitrate and user bandwidth to Watchman (#7145)
* adding functionality to detect user download speed

* calculating bandwidth speed more intelligently

* saving download speed and updating it every 30s

* all the functionality should be done needs testing

* fix linting

* use a 1mb file for calculating bandwidth

* add optional chaining plugin to babel and get bitrate from texttrack

* allow optional chaining for flow

* ignore flow error

* disable bandwidth checking functionality

* fix flow error
2021-10-06 14:59:33 -04:00
infinite-persistence
401f7fec17
Revert "Add sitemap to influence Sitelinks"
Seems like I messed up robots.txt?

This reverts commit 95654955b1.
2021-10-06 13:05:36 +08:00
infinite-persistence
95654955b1
Add sitemap to influence Sitelinks
## Issue
Part of `7166 improve search metadata`

## Notes
This is an experiment to influence the Sitelinks in our search results. Our current sitemap only consists of claims, so claims appear in Sitelinks more often. We (Julian) want categories to have higher priority, if possible.

For now, the sitemap will be defined in Google Console instead of robots.txt.

If it works, the file should be uploaded to sitemap.odysee.com, alongside the claim list sitemap.
2021-10-06 11:56:13 +08:00
infinite-persistence
5ed9e3e3ae
OG: Technology category missing due to rename
- 'technology' was renamed to 'tech'.
- Leave both entries there for now. Not sure if other homepages still use the old link or not.
2021-10-04 11:21:13 +08:00
infinite-persistence
5757eb7036
OG: fix url for categories
## Issue
Category cards are showing up as "odysee.com" cards in Facebook.

## Change
- `og:url` is supposed to be the canonical URL. It was hardcoded to "odysee.com", so every category was being redirected when the card is being generated.
- Removed `twitter:url`. The documentation says it will fall back to `og:url`, so there is not need to define both if it's the same.
2021-10-04 10:27:49 +08:00
infinite-persistence
4f07867f8f
Corrected meta for "description" (patch for #7206)
It should be `name`, not `property`. Copy-paste error from the OG version.
2021-10-02 08:42:19 +08:00
infinite-persistence
d3be8726fc
Add favicon for Google Search results (#7205)
- A side-quest from "7166 improve search metadata".
- The favicon must be from the same domain as the homepage, so the CDN URL couldn't be used, hence the additional upload.
- The favicon also needs to be multiples of 48x48 and above.
    - Wanted to use SVG for the smallest size possible, but seems like Safari does not fully support it. Got Dejan to give me a reasonably-sized PNG.

## Reference
https://developers.google.com/search/docs/advanced/appearance/favicon-in-search#guidelines
2021-10-01 08:09:02 -04:00
infinite-persistence
dac8d711d1
Prevent random description in Google Search results for "odysee" (#7206)
## Issue
7166 improve search metadata

Depending on the search term and timing, Google extracts data from the sidebar or page content to use as the search-result description.

## Change
Defined `description` (on top of the existing `og:description` and `twitter:description`.

While I couldn't find a definitive doc saying that this is the solution, this is present in all other sites (and matches their description in a Google Search results).
2021-10-01 08:08:39 -04:00
saltrafael
2f4dedfba2
Add Channel Mention selection ability (#7151)
* Add Channel Mention selection ability

* Fix mentioned user name being smaller than other text

* Improve logic for locating a mention

* Fix mentioning with enter on livestream

* Fix breaking for invalid URI query

* Handle punctuation after mention

* Fix name display and appeareance

* Use canonical url

* Fix missing search
2021-09-30 17:30:32 -04:00
Thomas Zarebczan
3e8172af13
force mp3 extension vs mpga 2021-09-27 12:40:06 -04:00
infinite-persistence
e23e9e1387
Localize sunset nag
Changed the text a bit so that we can re-use the existing 'Learn more'.
2021-09-23 20:19:23 +08:00
jessopb
8a277e767a
revert embedNoEnd and modify preferEmbed end display (#7144) 2021-09-21 12:47:56 -04:00
infinite-persistence
aefa889ee4
Embed: add replay button + msg resizing (#7141)
* Embed: add replay button

Also, changed "Rewatch or Discuss" to "Discuss + external arrow" since there is a dedicated re-watch button.

* Embed: resize "ended message" based on container height
2021-09-21 11:48:05 -04:00
jessopb
6ca058c3a1
support embed preference (#7114)
* support embed preference

* title color
2021-09-18 10:23:30 -04:00
jessopb
91fbd615e2
fix embed end logo (#7106) 2021-09-15 11:28:45 -04:00
infinite-persistence
d5e8f2d18c
Fix scrollbar in upgrade modal (#7076)
## Issue
5848 Remove scroll-bar in update prompt

## Changes
- Make scrollbars appear only when necessary.
- Style the scrollbar. Similar to other areas, we skip this for Mac (can't recall why we need to skip).
2021-09-13 11:35:26 -04:00
dependabot[bot]
2cd06fcd00
Bump tar from 4.4.15 to 4.4.19 in /web (#6996)
Bumps [tar](https://github.com/npm/node-tar) from 4.4.15 to 4.4.19.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.15...v4.4.19)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 12:17:03 -04:00
zeppi
3b94ecaf80 redirect activate page 2021-08-31 15:46:20 -04:00
mayeaux
529ad258fe
fix overflow text on meme div (#6987) 2021-08-30 13:58:21 -04:00
infinite-persistence
90c469454a
Fix Category-Metadata path parsing
## Issue
6849 category metadata shows in place of creator channel when using vanity URL
2021-08-30 12:51:01 +08:00
infinite-persistence
1124125578
Fix Facebook meta warnings (#6965) 2021-08-25 15:10:00 -04:00
infinite-persistence
e1223d0d02
Convert setting sub-pages to new style
"Creator Settings", "Blocked and Muted", "Manage notifications", "Stripe"
2021-08-23 23:45:26 +08:00
dependabot[bot]
c0fbc412ae Bump minimist from 1.2.0 to 1.2.5 in /web
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.5.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.5)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-13 16:26:06 -04:00
dependabot[bot]
76296de079 Bump path-parse from 1.0.6 to 1.0.7 in /web
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-10 13:47:40 -04:00
dependabot[bot]
4937baad20 Bump url-parse from 1.5.1 to 1.5.3 in /web
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-10 13:47:30 -04:00
Baltazar Gomez
926d76de07 fix lint: operator '=' must be spaced 2021-08-10 13:47:15 -04:00
Baltazar Gomez
5e239f48c9 fix lint 2021-08-10 13:47:15 -04:00
Baltazar Gomez
017ec11737 fix og error ( truncated unicode character ) - closes #6839 2021-08-10 13:47:15 -04:00
Thomas Zarebczan
7312badc18
use website URL if exists for RSS 2021-08-10 12:56:23 -04:00
Baltazar Gomez
dbaa702888
fix wrong embed og metadata: #6814 2021-08-08 09:10:01 +08:00
btzr-io
c85e448499
fix redirection and normalization of claim urls 2021-08-07 19:23:14 +08:00
btzr-io
68e4684ccd
use better resolve url 2021-08-07 19:23:00 +08:00
btzr-io
2c812da785
fix embed claim url 2021-08-07 10:16:10 +08:00
btzr-io
722f933052
use value.release_time 2021-08-07 10:16:09 +08:00
btzr-io
45fcf0d518
use value.audio for google video metadata 2021-08-07 10:16:08 +08:00
Baltazar Gomez
6d91d1c799
use resolve for og metadata 2021-08-07 10:16:07 +08:00
Thomas Zarebczan
6db75f8a66 rss tests
Various fixes and improvements to work with Apple Podcasts

f

f

image support
2021-08-06 17:05:36 -04:00
zeppi
4b64c35360 sunset link 2021-08-06 13:30:33 -04:00
zeppi
2a19f9f63c lrytv sunset nag 2021-08-06 12:27:37 -04:00
dependabot[bot]
ceb1b91273 Bump tar from 4.4.13 to 4.4.15 in /web
Bumps [tar](https://github.com/npm/node-tar) from 4.4.13 to 4.4.15.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.13...v4.4.15)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-04 12:20:10 -04:00
infinite-persistence
f2e583f314 RSS: change from 'download' to 'stream' url to pass Media Test
This apparently ensures the media is playable across all devices and apps.
2021-08-04 12:07:14 -04:00
infinite-persistence
0af1dfe282 RSS: podcast support
## Issue
`https://github.com/lbryio/lbry-desktop/issues/6369#issuecomment-882081892`

## Changes
- Replace 'feed' with 'node-rss' for itunes spec support.
- Replace content type from 'rss+xml' to 'xml' so that the browser will display it nicely using the document tree without us having to re-format it ('node-rss' does not). Seems like all feeds that I found does it this way.
- There is no need to escape characters now that 'node-rss' does it. Nice.
2021-08-04 12:07:14 -04:00
zeppi
e3e5c50a13 style logo in embed 2021-08-03 13:38:17 -04:00
infinite-persistence
4156e83f57 Fix: OG messed up if $" is in title
## Issue
5951: OG messed up if `$"` is in title

The replacement string would contain `...$&quot...`. The character `$&` has special meaning in `replace`, so the output was messed up.

## Approach
Use a direct slice approach. A bit less elegant.
2021-08-03 11:36:26 -04:00
btzr-io
fa1b1737bb fix inconsistent theme css vars: fixes #6738 2021-07-29 22:26:26 -07:00
zeppi
c4639934d1 better... 2021-07-29 11:28:19 -04:00
zeppi
e09199d331 stylesRecon 2021-07-29 11:28:19 -04:00
zeppi
3f4c601428 logo component on embeds/embeds ended 2021-07-27 15:13:29 -04:00
zeppi
1e9dabe6e2 favicon custom
html fav tag remove

basic meta favi

missing favicon

recon
2021-07-23 17:12:18 -04:00
zeppi
aed3e98c79 footer recon 2021-07-23 16:20:11 -04:00
zeppi
20b7b24203 meme component2 2021-07-23 14:56:42 -04:00
Thomas Zarebczan
26e2dc16ec
Reinstate music category metadata 2021-07-23 11:49:44 -04:00
infinite-persistence
c62c667436
CLS: reserve space for injected video ads 2021-07-23 13:23:51 +08:00
infinite-persistence
28e9aea290 Improve cache for hashed js files 2021-07-21 08:13:27 -04:00
infinite-persistence
47c41b436d RSS: Add enclosure for media
- Moved the thumbnail from 'enclosure' to 'description' by appending the thumbnail in front.
- Generate enclosure for media. It's up to readers on how they will handle it. Some will display the inline video player, some will just provide a download link.
2021-07-20 15:27:24 -04:00
Andrey Beletsky
8e3aee5813 Change API server address to odysee-api 2021-07-20 10:23:00 -04:00
zeppi
90e2a225e4 use meme component 2021-07-19 14:00:35 -04:00
jessopb
ae2354a0e0 Revert "move stuff to web (#6537)"
This reverts commit a6c413da5c.
2021-07-19 10:12:57 -04:00
infinite-persistence
6f4ce0a57c
Apply placeholder images
https://lbryians.slack.com/archives/C81FGKR51/p1624278721203900?thread_ts=1624269131.202200&cid=C81FGKR51

The intrinsic size needs to be at least equal the final image's size. Stretching, SVGs, etc. doesn't count.
2021-07-19 12:07:26 +08:00
infinite-persistence
1745f08fb8
Fix typo in filename 2021-07-19 10:42:53 +08:00
jessopb
a6c413da5c
move stuff to web (#6537) 2021-07-18 21:57:36 -04:00
zeppi
d612b86a8c homepages v2
homepages served without cache

error catching

memo homepagedata

support auto limit

no more config pins
2021-07-14 14:09:46 -04:00
zeppi
00146bcbb2 restrict pixel from auth and mobile 2021-07-14 14:07:29 -04:00
Dispatch
fba8b89b3b
Merge pull request #6438 from lbryio/retargetting-pix
add retargeting pixel
2021-07-13 20:49:18 -07:00
zeppi
e6376871d5 move pixel to web 2021-07-13 23:40:49 -04:00
infinite-persistence
ad1c826f2c RSS: Use canonical_url (with ':') instead of slicing to 2 characters.
## Changes
- Change to canonical_url (with ':').
- The old format of 'claimName/claimId' needs to be supported still, since we shipped with it.

## Notes
- It would be nice to use regex instead of 2 separate paths, but I couldn't figure out how to make the koa variables work.
2021-07-12 17:06:03 -04:00
infinite-persistence
249f06bd21
w3c validation 2021-07-09 22:16:28 +08:00
infinite-persistence
e7bed19391
Shorten the RSS URL
This will be backward compatible with existing format that uses the full claim_id.
2021-07-09 21:54:44 +08:00
infinite-persistence
f6641ee045
Bump from 50 to 500 latest entries per creation_timestamp 2021-07-09 21:54:43 +08:00
infinite-persistence
06e454e9dc
Check if folder exist before clearing stale js
If was failing the build for environments without a prior build.

+lint
2021-07-08 10:21:45 +08:00
Anthony
0ef61fc575 clear stale js files on nonprod environments 2021-07-07 12:26:04 -04:00
zeppi
22d9495b8d fix rss, add icon 2021-07-02 13:03:24 -04:00
infinite-persistence
c84d820b09
RSS: Switch from ChainQuery to SDK
## Issue
3779 RSS feed for channels
2021-07-02 13:03:22 +08:00
infinite-persistence
49046c9d25
RSS feed for channels
## Issue
3779 RSS feed for channels

## Initial implementation details
- RSS only (not atom)
- Grabs latest 10 entries (Beamer have concerns)

## Credit
Referenced the community version mentioned in 3779
2021-07-02 13:03:21 +08:00
infinite-persistence
3322b91c5d
Improve <video> poster thumbnail fetching.
Even with the caching changes, a 150kB thumbnail still takes 1-2s to fetch. This impacts the score.

## Change
(1) Start with a large-enough placeholder image (has to be larger than the final image -- inflating doesn't count), then delay just enough for scoring, then switch to the real thumbnail.

(2) Since we are now doing post-mount stuff, we have the exact dimensions to optimize the claim thumbnail. This reduces the typically-several-MBs thumbnail to kBs.
2021-06-25 16:00:47 +08:00
infinite-persistence
3539031e5a
CodeSplit: Initial work 2021-06-25 16:00:44 +08:00
zeppi
6d8fce6011 remove more google 2021-06-23 08:54:19 -04:00
zeppi
95fa01a952 youpos 2021-06-18 10:57:19 -04:00
zeppi
d0b6839755 copy 2021-06-18 10:57:19 -04:00
zeppi
2268ab01fb app works when id api fails 2021-06-18 10:57:19 -04:00
saltrafael
143be541cf bump redux 2021-06-14 14:53:14 -04:00
infinite-persistence
cbf0be3f3c
i18n update request from translators 2021-06-13 15:46:18 +08:00
infinite-persistence
9eb0d2a87e Revert "bump redux"
This reverts commit 141ebcf1cd.
2021-06-13 15:45:15 +08:00
saltrafael
141ebcf1cd bump redux 2021-06-11 17:01:20 -04:00
Anthony
fd03679c56 use standalone as the display instead of minimal-ui 2021-06-10 17:10:03 -04:00
dependabot[bot]
8f423c5ffb Bump ws from 6.2.1 to 6.2.2 in /web
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 14:04:11 -04:00
zeppi
eb7d4e1eef lint 2021-06-08 13:46:01 -04:00
zeppi
a0c2f8fa40 move pwa to web static, change desc 2021-06-08 13:46:01 -04:00
Anthony
7eeb3d3c55 check against domain to see if pwa manifest should be added 2021-06-08 13:44:08 -04:00
zeppi
50dd986787 no flow for you 2021-06-08 13:25:52 -04:00
zeppi
ca116ba010 wip
wip

wip - everything but publish, autoplay, and styling

collection publishing

add channel to collection publish

cleanup

wip

bump

clear mass add after success

move collection item management controls

redirect replace to published collection id

bump

playlist selector on create

bump

use new collection add ui element

bump

wip

gitignore

add content json

wip

bump

context add to playlist

basic collections page style pass wip

wip: edits, buttons, styles...

change fileAuthor to claimAuthor

update, pending bugfixes, delete modal progress, collection header, other bugfixes

bump

cleaning

show page bugfix

builtin collection headers

no playlists, no grid title

wip

style tweaks

use normal looking claim previews for collection tiles

add collection changes

style library previews

collection menulist for delete/view on library

delete modal works for unpublished

rearrange collection publish tabs

clean up collection publishing and items

show on odysee

begin collectoin edit header and css renaming

better thumbnails

bump

fix collection publish redirect

view collection in menu does something

copy and thumbs

list previews, pending, context menus, list page

enter to add collection, lists page empty state

playable lists only, delete feature, bump

put fileListDownloaded back

better collection titles

improve collection claim details

fix horiz more icon

fix up channel page

style, copy, bump

refactor preview overlay properties,
fix reposts showing as floppydisk
add watch later toast,
small overlay properties on wunderbar results,
fix collection actions buttons

bump

cleanup

cleaning, refactoring

bump

preview thumb styling, cleanup

support discover page lists search

sync, bump

bump, fix sync more

enforce builtin order for now

new lists page empty state

try to indicate unpublished edits in lists

bump

fix autoplay and linting

consts, fix autoplay

bugs

fixes

cleanup

fix, bump

lists experimental ui, fixes

refactor listIndex out

hack in collection fallback thumb

bump
2021-06-08 13:25:52 -04:00
infinite-persistence
46d258c439
Fix footer in master (patch)
- fix invalid <li> nesting
2021-06-08 12:48:15 +08:00
infinite-persistence
5eae88b553
Fix footer in master
Since lbry.tv is going away, I tried not to touch the css file much so that the merge into `odysee` won't affect it. The side effect is that the links are now white instead of the regular link color.
2021-06-08 01:19:41 +08:00
Anthony
72130b19d2 remove js clearing function until further testing 2021-06-04 12:05:23 -04:00
Anthony
32772c679b fix eslint and change theme colour 2021-06-04 12:05:23 -04:00
Anthony
78f2307982 bugfix renaming of function 2021-06-04 12:05:23 -04:00
Anthony
42c319702a conditionally add metatags only if site title is odysee 2021-06-04 12:05:23 -04:00
Anthony
9798bf14f4 update icon and move serviceworker to root to fix scope 2021-06-04 12:05:23 -04:00
Anthony
f0cd159235 cache static files for webserver 2021-06-04 12:05:23 -04:00
Anthony
78d4efd8f3 clean dist folder when compiling 2021-06-04 12:05:23 -04:00
Anthony
2e5cfe7a1e add pwa to lbry-desktop 2021-06-04 12:05:23 -04:00
infinite-persistence
eb4e80d56b Re-sync 'web/package.json' with the main one.
Not sure if it's possible to just inherit the main one if there is no customization, but for now, just copy/paste.
2021-06-02 08:21:43 +08:00
Thomas Zarebczan
b90066b3f5
Update finance 2021-06-01 15:51:54 -04:00
Thomas Zarebczan
fd2f664870
last fix for metadata 2021-05-27 17:50:02 -04:00
Thomas Zarebczan
97a4f5fcab
Fix metadata and make thumbs work 2021-05-27 17:00:19 -04:00
dependabot[bot]
67296716d7 Bump dns-packet from 1.3.1 to 1.3.4 in /web
Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-27 13:20:14 -04:00
Thomas Zarebczan
4694cadef6
Update category metadata 2021-05-27 13:18:23 -04:00
dependabot[bot]
e96e1ed7ca
Bump url-parse from 1.4.7 to 1.5.1 in /web (#6038)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.1.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-15 02:10:43 -04:00
dependabot[bot]
2c23055c1a
Bump lodash from 4.17.19 to 4.17.21 in /web (#6050)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-15 02:03:03 -04:00
zeppi
fe86010be5 More master reconciliation
rewards page recon

router recon

uEmailVerify recon

uPVerify recon

rm style

app/view recon

channel page recon

chanFol recon

syncPassword recon

fileDesc recon

web/redirect recon

wip

page/view recon
2021-04-27 23:05:38 -04:00
dependabot[bot]
e1be0f30bd Bump ssri from 6.0.1 to 6.0.2 in /web
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-21 11:20:00 -04:00
infinite-persistence
8493b1e3df GoogleVideoSearch: fix blank description; invalid thumbnails
## Issue
Closes 5923 video metadata issues

## Notes
For thumbnails, future claims should have correct thumbnails after `5925 Fix thumbnail-checking and block 'data:image'`. For existing claims, we'll just skip the metadata to avoid the crawler error. Users can easily update their thumbnails.

For the `OlivOliv` thumbnail url case, I wasn't sure whether to go all out to fetch and verify each thumbnail. I ended up just checking whether it starts with `http(s)`
2021-04-21 10:49:57 -04:00
infinite-persistence
e4c1f107bd GoogleVideoSearch: fix duration
Forgot that `moment.duration()` takes in ms.
2021-04-19 14:35:27 -04:00