Commit graph

2171 commits

Author SHA1 Message Date
jessopb
fb03d3a7f9
Fix video dispose (#6904)
* fix video dispose bug

* remove commented
2021-08-18 19:30:07 -04:00
saltrafael
d7329840ef
Improve clickability of notification links (#6711) 2021-08-18 17:40:36 -04:00
Franco Montenegro
bd92110d1f
Automatically claim initial rewards (new_user & email_verified) when … (#6807)
* Automatically claim initial rewards (new_user & email_verified) when accessing creating channel, edit channel and upload

* Do not try to get initial rewards if already claimed.
2021-08-18 12:34:24 -04:00
jessopb
7f35f87893
aniview only web - v0.1 (#6898) 2021-08-18 11:00:51 -04:00
infinite-persistence
afe4fee3f3 Fallback image for <FileThumbnail>
## Ticket
5457 Create file thumbnail fallback image for odysee

## Approach
Since `background-image` does not invoke an `onerror` event, create a test Image instance to have the `onerror` capability. This technique is used by majority of plugins. No additional fetch is seen with this technique.
2021-08-17 19:46:54 -07:00
jessopb
bd973289b6
Chore desktop cleanup (#6896)
* some desktop cleanup

* stripe environment

* wallet tabs

* fix

* old copy

* copy

* getClaimTypeText

* appstrings
2021-08-17 18:34:16 -04:00
infinite-persistence
4688b4bf58
Livestream: stop pinned comments from appearing as latest (#6888)
## Ticket
6879: Previously pinned livestream comments show as latest

## Issue
`comment.List` will always display the pinned comment first, hence the problem when the chat is refreshed.

## Approach
Completely split pinned comments from top-level comments in the Reducer, and the let the GUI (e.g. regular comments, livestream comments) decide how they want to display it.

For the case of livestream, there is no need to repeat the pinned comments in the regular chat area, since there is a dedicated area on top.
2021-08-17 12:09:55 -04:00
jessopb
5f55603fb2
send recsys powered-by (#6875)
* send recsys powered-by

* update lighthouse call in useLighthouse

* rename select selectors

* update channel search too
2021-08-17 10:03:25 -04:00
saltrafael
6e6fd61e90
#6557 CommentCreate: hold off "create channel" redirect until channel_list is fetched. 2021-08-17 10:48:03 +08:00
infinite-persistence
e1fc5fd6e3
Fix livestream autoscroll
## Ticket
6886 Livestream auto-scroll problems

## Issue
- `performedInitialScroll` was problematic as it won't allow auto-scroll even when user scrolled back to the bottom.
- The dependence on `commentElement` seems to assume a certain comment height? Not sure.

## Approach
- Add a scroll listener and stash the last scroll position.
- When a message is received, check if it's at the bottom. If yes, maintain that position after the new comment is added. If not, leave as is.
- When submitting a comment, always reset to the bottom.
2021-08-17 09:44:38 +08:00
infinite-persistence
4a8c08c8bf
Fix scroll position not restored when doing Back on Desktop (#6842)
## Ticket
6743: Desktop: "Back" in Following Page no longer restores scroll position

## Issue
This was a side-effect of "6609 claimListDiscover: don't re-render until query is done". That PR did not handle the case of navigating backwards, which typically would just need to display past results. It ended up always starting with a blank list on mount, so the scroll position could not be restored correctly.

I don't know why it still worked on Web/Chrome -- maybe the latest browser knows how to move to desired scroll position when the height is available.

## Change
If navigating backwards, initialize the final URI list with the previous result. It is almost always correct, and if not, will be corrected in the effects. This saves us one re-render when navigating backwards too.
2021-08-16 16:45:04 -04:00
infinite-persistence
1421a39518
Comment badge to reflect mod and admin status.
## Issue
6467 Add status indicators for messages from creator, delegated moderator, global moderator

## Changes
- Added the required icons.
- Added tooltip.

## Notes
- Left out "creator" since we are already highlighting the creator's name.
- Note that currently the status is only available via websocket deltas. `comment.List` does not provide the data.
- When `comment.List` includes the info, regular comments will automatically include these badges.
2021-08-16 10:08:56 +08:00
infinite-persistence
f81b0f5913
Lint, autoformat -- no functional change.
Doing this now so that an upcoming PR that uses this file won't include these bunch of annoying auto-formatter changes in the diff.
2021-08-16 06:48:37 +08:00
Thomas Zarebczan
a75ce9818c
Fix account verification check + copy on tip page (#6884)
bug fix + copy
2021-08-13 20:40:24 -04:00
Franco Montenegro
3f162eb285 Do not count auto follow channels for UserChannelFollowIntro. 2021-08-13 17:07:01 -04:00
Anthony
1d23afc531 various small bug fixes 2021-08-13 14:23:31 -04:00
mayeaux
8ff3b753ad
Move transactions from Settings to Wallet (#6871)
* remove unused conditional

get stuff ready for merge

bugfix and cleanup

requested changes

fixing flow errors

fix last flow error and touchups

fiat and lbc tabs coming along

support setting currency as the default tab via query param

add wallet fiat balance

fixing naming

add fiat transactions

using es6 to populate data

should be fine but keeps crashing

transaction listing working

add no transactions thing

about to add a third tab

add third tab

add card last 4 to transaction history

some renaming

show payments successfully

show filler for subscriptions

display if no transactions or subs

working but in the wrong component

approaching something thats working

showing total tipped amount

about to add last couple features

cleanup

More touchups

adding last features

calculate the total amount of unique creators tipped

couple touchups

remove transaction listings from settings

add view transactions buttons

small optimization

add subscriptions section

fix lot of linting errors and make command more userful

* some copy changes

* about to add last couple changes

* update still require verification

* fix button spacing

* hide subscriptions sections and fix links

* cleanups before merging

* more cleanup

* cleanup with last four fix

* changing tab functionality

* bugfix and fix presentation of cards

* fix transactions bug

* change order and remove logs

* remove unused code in account

* more linter fixes

* update account balance presentation

* fix flow errors
2021-08-13 13:59:43 -04:00
infinite-persistence
0ebb9420ef
CommentCreate: handle minimum tips and hyperchat
To avoid calling `setting.Get` excessively, we'll fetch the latest settings one last time before sending a tip. We'll also fetch in several areas, like when a comment action fails (most likely creator just enforced a minimum).

This will be easier when websocket send an update.
2021-08-12 14:51:42 +08:00
infinite-persistence
e9a2f44899
Commentron: incorporate 'setting.Get' into 'doFetchCreatorSettings'
## General
- `setting.List`: returns full creator settings. Requires signature (i.e. you own the channel)
- `setting.Get`: returns a public subset of the creator settings. No signature required, and it is mainly used by the GUI to determine the constraints of a channel (e.g. comments enabled? min tip requirements? etc.). Does not include private settings like "blocked words list".

`doFetchCreatorSettings` will handle both of these. Clients that uses the stashed results (`settingsByChannelId`) just needs to be aware the result might not contain everything, depending on whether you own the channel or not.

## Misc Related Changes
- Finally fix the reducer for COMMENT_FETCH_SETTINGS_COMPLETED to not purge the data on each call.
- Change `doFetchCreatorSettings` to operate on a single channel instead of multiple. We ended up not using the multple mode anyway, so it was wasteful code trying to batch the promises.
- `commentsDisabledChannelIds` is no longer needed. Previously, this was created just to differentiate between Creator (full) and Channel (subset) settings. It's cleaner to just use one object, so eliminated this.
- Remove unused 'commentingEnabled'.

## Aside
- There are now 2 ways to know if a channel has disabled comments: (1) from `comment.list` and `setting.Get|List`. Both of them updates `settingsByChannelId`, so it'll still be a single place for the GUI to check against.
2021-08-12 14:51:41 +08:00
infinite-persistence
ff9ca662f2
Option to change commments-server (desktop)
## Issue
> 5459 Add setting for changing your comment server. Visible on desktop (and possibly defaulting to Odysee URL), hidden on odysee.

## Comments
Not sure how this would actually work properly without the user recompiling the app to handle server differences. For example, even when we use our own server but switch between v1 and v2, some code changes are need to handle the differences. At that point, it seems easier for the user to just change the .env file? Anyway...

## Changes
- Added Desktop-only options to define custom server. [Settings > Advanced Settings > "Comment server" section].
2021-08-12 14:01:22 +08:00
infinite-persistence
4731786a3f
Livestream: implement Pinned Comments 2021-08-12 10:39:21 +08:00
Franco Montenegro
c2b51127ac Reuse BidHelpText for reposts 2021-08-11 18:50:40 -07:00
jessopb
cd4c1efd70
Stripe integration fix (#6850)
* fix frontend bug

* show superchats in order properly

* scroll properly when switching tabs

* calculate fiat tips properly

* sum up lbc amounts

* refactor code a bit remove why isnt this working bit

* bugfix cant tip fiat if no lbc balance

* add toast when someone does a tip for a comment

* add error toast for card page

* show error on account connection page

* automatically truncate to two decimals

* close to working perfectly

* show decimals value better

* increase size of input value

* one bug left but almost working perfectly

* reverse so newest transactions come first

* fixing bug caused by floating point precision

* eslint fixes

* remove unused conditional

* get stuff ready for merge

* bugfix and cleanup

* requested changes

* fixing flow errors

* fix last flow error and touchups

* fix i18n and remove logs

Co-authored-by: Anthony <contact@anthonymayfield.com>
2021-08-11 16:58:55 -04:00
saltrafael
445566c915 Fix delete option broken / missing 2021-08-11 10:07:43 -04:00
Franco Montenegro
cc3600631e Disable cancel button when submitting a comment. 2021-08-11 10:05:37 -04:00
mayeaux
0cc0e213a5
Anthony watchman integration (#6799)
* raw ingredients done adding functionality

* essentially working just need a cleanup

* almost working with a couple bugs

* almost working but a bug or two

* seems to be working well

* seems to be working well but needs a cleanup

* couple of bug fixes

* basically working now cleaning up

* seems to be working pretty well

* cleanup unnecessary changes

* eslint fixes

* bugfix seek event

* bugfix and andrey fix and better docs

* getting ready to add last piece of functionality

* handle seek events properly

* add dynamic duration to calculate interval properly

* fix lint errors

* last couple changes

* only run watchman with analytics on and on prod

* flow fixes

Co-authored-by: zeppi <jessopb@gmail.com>
2021-08-10 16:42:50 -04:00
zeppi
892a6deeaf reenable prerolls 2021-08-10 16:30:58 -04:00
zeppi
68bc4e3b90 Revert "disable google imasdk"
This reverts commit 283bbb52fa.
2021-08-10 16:30:58 -04:00
zeppi
dcac5ebcc9 fix collection preview links 2021-08-10 10:52:46 -04:00
infinite-persistence
19091f249a
Fix 'Favorites' string issue
Renamed variables for clarity while at it.

"Item added to %name%" is probably redundant due to toast passing through <i18nMessage>, causing a double translation.

Anyway, added all the resolved string for now to avoid them popping up in app-string during development.
2021-08-10 00:48:37 +08:00
saltrafael
7921c0971e Improve style 2021-08-06 15:07:10 -04:00
saltrafael
c55978f9d6 Allow to delete downloaded content from popup 2021-08-06 15:07:10 -04:00
saltrafael
4f0c6030e1 Add back file download link 2021-08-06 15:07:10 -04:00
Franco Montenegro
6b071bab21 Fix amountNeededForTakeover message for bids. 2021-08-06 14:16:38 -04:00
zeppi
4bcd5942af oops 2021-08-06 12:27:37 -04:00
zeppi
2a19f9f63c lrytv sunset nag 2021-08-06 12:27:37 -04:00
saltrafael
60f4cca007 Fix no expand button bug 2021-08-04 09:33:42 -04:00
zeppi
fe35ea3764 stream type string or array 2021-08-03 14:49:59 -04:00
zeppi
67bcc1b1ec build 2021-08-03 14:49:59 -04:00
zeppi
ff5ca7398c naming 2021-08-03 13:38:17 -04:00
zeppi
e3e5c50a13 style logo in embed 2021-08-03 13:38:17 -04:00
saltrafael
426042feab Fix icon color 2021-08-03 13:23:31 -04:00
saltrafael
a6ad758c71 Show on content page if a file is part of a playlist already 2021-08-03 13:23:31 -04:00
zeppi
2d66b8666d styling 2021-08-03 11:05:32 -04:00
saltrafael
f01fb7dd22 Mobile view: Make comments expandable 2021-08-03 11:05:32 -04:00
infinite-persistence
1d6101ddd2 Report recsys info when 'share_data_usage' is enabled.
Previous:
~~Although it was collecting info for all platforms, the data is only sent for Odysee.~~ Correction: it became enabled for all platform after `master` became Odysee.

New:
Only send out the telemetry for `IS_WEB` or if there's user consent.
2021-08-03 09:34:36 -04:00
infinite-persistence
34368760de Fill in remaining Recsys fields
## Issue
6366 Recsys Evaluation Telemetry

The recommended list from lighthouse is obtained from `makeSelectRecommendedContentForUri`. This list is further tweaked by the GUI (e.g. move autoplay next item to top, remove blocked content, etc.). Recsys wants the final recommendation list and the clicked index (in exact order), so we need pass these info to the videojs recsys plugin somehow. Also, Recsys wants a recommendation list ID as well as the parent (referrer) ID, we so need to track the clicks and navigation.

## General Approach
- It seems easiest to just spew back the final (displayed) list and all the required info to Redux, and the recsys plugin (or anyone else in the future) can grab it.
- Try to touch few files as possible. The dirty work should all reside in `<RecommendedContent>` only.

## Changes
- `ClaimPreview`: add optional parameters to store an ID of the container that it is in (for this case, it is `ClaimList`) as well as the index within the container.
  - When clicked, we store the container ID in the navigation history `state` object.
    - For general cases, anyone can check this state from  `history.location.state` to know which container referred/navigated to the current page. For the recsys use case, we can use this as the `parentUUID`.
- `ClaimList`: just relay `onClick` and set IDs.
- `RecommendedContent`: now handles the uuid generation (for both parent and child) and stores the data in Redux.
2021-08-03 09:34:36 -04:00
infinite-persistence
74659f40a1
Restore "Use better icon for "Copy Link"" -- lost in a merge.
b164a5d1 accidentally nulled the changed.

While at it, moved the "Copy RSS" button below "Copy Link" -- I think that looks better.
2021-08-03 14:24:02 +08:00
zeppi
26b1c901c8 no limit on stream types for following 2021-08-02 16:14:33 -04:00
btzr-io
c0c65c46f4 use env for twitter account 2021-08-01 09:39:16 -04:00
btzr-io
d462f96834 improve twitter share 2021-08-01 09:39:16 -04:00
Baltazar Gomez
37d9cbfbeb limit claim_search results on livestreamLink 2021-08-01 09:13:25 -04:00
btzr-io
9983777f86 faster claim search on livestreamLink 2021-08-01 09:13:25 -04:00
btzr-io
7802337655 prevent livestream api calls if no livestream claim exists: #6632 2021-08-01 09:13:25 -04:00
Thomas Zarebczan
b5fec393c6
Fix crash 2021-07-31 11:08:15 -04:00
zeppi
b93caf4ebc fix logo image 2021-07-30 12:12:58 -04:00
saltrafael
87ae041472 Add confirmation on comment removal 2021-07-30 10:24:04 -04:00
Baltazar Gomez
415a522805 fix notification menu button styles 2021-07-30 00:11:18 -07:00
infinite-persistence
0cdf881941
#6470 Improve accessibility and some minor css fixes 2021-07-30 09:34:40 +08:00
saltrafael
cc93ac1a01 Fix currently active playing item on playlist 2021-07-29 14:55:52 -04:00
infinite-persistence
7537b5ae7b
Lint and cleanup. No functional change. 2021-07-29 21:11:20 +08:00
infinite-persistence
4ff32e0c61
Fix missing file-thumbnail in Notifications
## Issue
6721 Notifications: Thumbnail for "new content" not showing up in Desktop layout

## Change
The `className` wasn't propagated during the `FileThumbnail` refactoring to `Thumbs`.
2021-07-29 15:56:42 +08:00
Baltazar Gomez
74087d2b86
Merge branch 'master' into accessibility 2021-07-28 23:47:42 -05:00
zeppi
9889c258e3 livestream api constant rename 2021-07-28 16:51:11 -04:00
zeppi
d25896d99c recon commentCreate 2021-07-28 15:43:56 -04:00
zeppi
edebde5a2e file reactions recon 2021-07-28 08:12:29 -04:00
zeppi
2a69c42e5b back to img tag 2021-07-27 15:13:29 -04:00
zeppi
b1e8d2d6db desktop logo 2021-07-27 15:13:29 -04:00
zeppi
ef77a5cd00 optimizedImage 2021-07-27 15:13:29 -04:00
zeppi
71d9b0d973 default logo 2021-07-27 15:13:29 -04:00
zeppi
3f4c601428 logo component on embeds/embeds ended 2021-07-27 15:13:29 -04:00
zeppi
19f8b0adac logoComponent 2021-07-27 15:13:29 -04:00
zeppi
e4d7e4f69d force has source channel page 2021-07-26 14:17:52 -04:00
zeppi
403ea8f6f4 no livestreams on channel content 2021-07-26 14:17:52 -04:00
infinite-persistence
6de16813cb
i18n update 2021-07-26 23:31:03 +08:00
infinite-persistence
8dc18e8fcd
Fix split (concat) string usage
Concatenated strings are hard to translate.
2021-07-26 12:37:59 +08:00
zeppi
0987c6e94f publish form recon 2021-07-23 10:14:22 -04:00
infinite-persistence
ffad52d5b7 Remove console.log
Seems like lint is being bypassed recently?
2021-07-23 08:42:58 -04:00
infinite-persistence
7a8d213861
Eliminate CLS in Recommended due to wrapper mismatch
Seem like `type === small` was missed out, so it was using a wrapper than necessary, causing the shift.
2021-07-23 13:23:52 +08:00
zeppi
038431f95c channel follow first run on master 2021-07-23 00:00:32 -04:00
zeppi
ed0387d94a pinning 2021-07-22 23:24:55 -04:00
zeppi
d88752c646 music icon, fix lint 2021-07-22 17:31:46 -04:00
Anthony
78b4fa05b3 pull out variable for max and min fiat amounts 2021-07-22 14:06:59 -04:00
Anthony
7975ccf3e0 disable button if theres a fiat tip error 2021-07-22 14:06:59 -04:00
Anthony
713dc69ed7 add check for two decimals and fix showing error for fiat tip 2021-07-22 14:06:59 -04:00
zeppi
f4559c1cce fileSubtitle recon 2021-07-22 12:09:54 -04:00
zeppi
8919182c0c default avatar config 2021-07-22 09:44:57 -04:00
btzr-io
86e1cfc3dd refactoring of claim preview aria-label format 2021-07-22 03:24:25 -05:00
btzr-io
2a291366da use full sentences with variables for claim preview aria-label 2021-07-22 02:37:57 -05:00
infinite-persistence
032e17cecd
Improve CLS on Posts
## Issue
6068 Fix "Cumulative Layout Shift" for Core Web Vitals

In Posts, the Comments section appears first while we fetch the MD file. When the MD is fetched, Comments get pushed to the bottom (or shifted up for short posts), hence the red CLS scores.

## Approach
There are too many layers between `<FilePage>` and `<DocumentViewer>` to pass the `loading` state around to hide the Comments section, so just make Comments fade in after a 2s delay.

## Changes
- Posts: Add 2s fade-in delay to Comments.
- Posts: remove the gray placeholder. This improves the score a bit more, and reduces flicker as well. There's already a spinner from `FileRenderInline` to tell the user to be patient.
- Posts: add a minimum 30vh height so that short posts don't get collapsed too much, causing the `FileDetails` and Comments to shift. Small shifts are fine as long as CLS is below 0.1.
2021-07-22 10:38:01 +08:00
Baltazar Gomez
c983af927f
Merge branch 'master' into accessibility 2021-07-21 20:59:12 -05:00
infinite-persistence
50c606d916 claimListDiscover: don't re-render until query is done
## Issue
6542 Livestream listing and blocked list kills CLS score

This is basically a repeat of what was done on `claimTileDiscover` (homepage), but now on `claimListDiscover` (category pages).

This handles the unnecessary re-render when:
- the uri list temporarily being zero while waiting for new claim-search results.
- livestream claim-search invalidating the list.

## Changes
Store the last uri list and use that when we know that claim-search is still not done.

## Tests
1. Ran Lighthouse on category pages (force a livestream channel on it). CLS score must be green.
2. Block `claim_search` from Dev Tools and move to another category. The page should say "timed out" instead of "no results" (i.e. maintain existing behavior).
2021-07-21 21:51:12 -04:00
zeppi
1994b5da04 guidelines optional in sidenav 2021-07-21 20:26:17 -04:00
zeppi
fbf105e113 fileActions recon 2021-07-21 18:37:43 -04:00
zeppi
91b908ad50 pubfile copy 2021-07-21 16:18:46 -04:00
infinite-persistence
4fc6b89975 Fix reposted channels incorrectly showing the channel thumb
## Issue
6589

## Notes
`parseURI` will return `isChannel=false` due to the reposted channel URL not having the '@' symbol.

Since we already have the claim object, check `value_type` directly instead.
2021-07-21 14:41:47 -04:00
saltrafael
b164a5d1f4 Pop up Menu Fixes and Improvements
Pop up Menu Fixes and Improvements

Improve re-directs

Fix file deletion

Improve code, and more

Fix List Layout collection popup

Allow to edit list

Fix blocking when not logged or no channel

Fix Edit and Delete showing for not owned Lists

Fix actions breaking when not logged in

Fix List options not showing

Lint

Shorten logic

Lint
2021-07-21 14:40:44 -04:00
zeppi
fdca58727c restore paid content 2021-07-21 12:49:56 -04:00
zeppi
1600bb69b9 sms copy 2021-07-21 08:11:33 -04:00
infinite-persistence
6b2548cc49
Fix channel-selector thumbnail not updating
Recently changed to `<OptimizedImg>`, which was assuming the `src` never changes.

dejavu ... we also hit this issue when implementing the `IntersectionObserver` lazy-loading.
2021-07-21 16:38:54 +08:00
btzr-io
6a8d32c9bf add SkipNavigationButton to its own file 2021-07-20 19:31:26 -05:00
btzr-io
f6261611f0 fix ClaimPreview errors 2021-07-20 18:49:41 -05:00
Dispatch
e138673d27
Merge pull request #6508 from saltrafael/live_comments
Fix 'Recent Comments' button for livestreams
2021-07-20 12:33:52 -07:00
zeppi
283bbb52fa disable google imasdk 2021-07-20 15:12:14 -04:00
zeppi
8674b97be8 disable aniview 2021-07-20 15:12:14 -04:00
Baltazar Gomez
0db4e4ab51
Merge branch 'master' into accessibility 2021-07-20 12:24:36 -05:00
btzr-io
bc2a8ba77d fix accessibility issue on rewards page #5991 2021-07-20 12:14:28 -05:00
zeppi
e4f1d4221b header notify recon 2021-07-20 12:32:17 -04:00
zeppi
8301244507 commentReactions recon ma 2021-07-20 11:17:44 -04:00
zeppi
27400cbe03 yt recon 2021-07-20 10:37:46 -04:00
zeppi
e834a4aa51 change uploads copy 2021-07-20 10:33:48 -04:00
infinite-persistence
11b5eb49a0
Optimize ChannelThumbnail using the new method 2021-07-20 16:21:51 +08:00
infinite-persistence
68432eef26
OptimizedImage - wrapper for CDN-optimized image
Objective:
- Get appropriately sized images to improve performance and Core Vitals score.
- Ensure images using "objectFit=cover" doesn't get stretched out if the source is large enough.
- Peg to 100px increments for better caching.

Notes:
- Skip images hosted in '/public'. If we really want to optimize it, then we'll need to provide the full path in the code, otherwise CDN lookup will fail.
2021-07-20 16:21:50 +08:00
infinite-persistence
08738ffcee
Reaction-fetch: handle "deleted all channels"
- use `selectActiveChannelClaim` as that takes the current channel list into account (i.e. correct state when all channels are deleted).
    - `selectActiveChannelId` should probably be removed or not exposed through a selector, as it is not updated when channel list changes?
2021-07-20 15:22:50 +08:00
infinite-persistence
c71e4718d0
Remove (revert) reaction-fetch hardstop
Root-cause is known, so removing it to detect other issues.
2021-07-20 15:22:49 +08:00
zeppi
4bf7c68574 use config for showTagsIntro 2021-07-19 22:46:43 -04:00
zeppi
765cef7564 recon notify components 2021-07-19 22:16:29 -04:00
zeppi
3dc7c35cd7 recon 2021-07-19 21:46:28 -04:00
zeppi
f6dc48fdc0 use odysee recsys plugin 2021-07-19 17:30:44 -04:00
zeppi
26e67b375c more 2021-07-19 13:52:15 -04:00
zeppi
50875566ad more 2021-07-19 13:52:15 -04:00
Anthony
fdfa2f1660 hotfix for bug 2021-07-19 11:08:59 -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
zeppi
e03325d0e4 remove old stripe setting 2021-07-18 22:30:12 -04:00
jessopb
a6c413da5c
move stuff to web (#6537) 2021-07-18 21:57:36 -04:00
mayeaux
4fe17363f3
disable review button if no card saved also some cleanup (#6535)
* disable review button if no card saved also some cleanup

* fix flow errors
2021-07-18 21:49:21 -04:00
jessopb
5a04d0fea0
some recon (#6532) 2021-07-18 13:06:52 -04:00
zeppi
dfc013d423 more recon 2021-07-18 11:27:05 -04:00
infinite-persistence
1fa7533ee3
Hide 'download' for livestreams
6517
2021-07-18 23:10:59 +08:00
infinite-persistence
f3ed597ff6
i18n: Fix invalid template literal use + split strings 2021-07-18 22:42:21 +08:00
Anthony
6aea8e38bc fix css 2021-07-17 13:19:33 -04:00
zeppi
7ffd59c169 more lint 2021-07-17 13:19:33 -04:00
zeppi
27aa4e4a22 lint 2021-07-17 13:19:33 -04:00
Anthony
7bb5df97fd Stripe 2
show visible card and add remove card button

show your transactions even if you dont have a card

fix presentational issues

show your transactions even if you dont have a card

fix presentational issues

add link to channel section

update yarn

show donation location

add remove card modal still needs completion and also changed how stripe is used on settings stripe card page

add confirm remove card modal to router

move bank account stuff to settings page

move account functionality to settings page

continuing to move account transactions to settings

list transactions for creator

updating copy

touchup tip error

do a better job autofocusing

bugfix

show an error on the card page if api returns 500

building out frontend for comment tip

display dollar sign if its a fiat tip

more frontend work

more frontend work

more frontend bug fixes

working with hardcoded payment intent id

working but with one bug

bugfixed

add toast if payment fails

add add card button

cant get claim id but otherwise done

more frontend work

call is working

show fiat for livestream comments

add is fiat on comments

round and show values properly

dont allow review if tiperror

copy displaying properly

disable buttons conditionally properly

remove card button working

remove card working with a workaround by refreshing page

bugfix

send toast when tip on comment

jeremy frontend changes

only show cart on lbc
2021-07-17 13:19:33 -04:00
infinite-persistence
cd32fb71c7
Experiment: hardstop reaction-fetch at 500
(Hypothetical max comment of 3000) / (10 comments per page) = 300.
Cap at 500 to stop runnaway loops.
2021-07-17 22:19:15 +08:00
infinite-persistence
47d39b20d3
Stop fetching reacts if failed for 3 times
Not sure if this will ever occur, but technically possible from the code point of view. Try adding this to see if it stops the spikes in `reaction.list` calls.
2021-07-17 13:53:58 +08:00
infinite-persistence
9c05239b04
Don't show "comments disabled" while still fetching.
## Issue
6513
2021-07-17 12:09:42 +08:00
keikari
1882e78d51 Tried to clear errors mentioned in lint details
154:28  error    Trailing spaces not allowed     
 161:6   error    Unexpected tab character
2021-07-16 18:32:41 -04:00
keikari
299682a6dc Make "support-pop-up" text match claim type.
Confirm button label will also show "your" instead of "this" for your own claims.
2021-07-16 18:32:41 -04:00
keikari
08dd1cbf0b Minor fix suggestion: Default to "TAB_BOOST" when supporting own claims
Someone mentioned about odysee.com showing "tip" related text when supporting own claim. Now it should default to "Boost" related text for own claims.

L167: Not edited but not sure if "claimIsMine" is needed there any more.
2021-07-16 18:32:41 -04:00
zeppi
70af46149d discover channelIds from homepages 2021-07-16 18:31:48 -04:00
saltrafael
9cdfb239c0
Playlist style fixes (#6509)
* Fix spacing on List page

* Fix alignment on List sidebar
2021-07-16 15:13:28 -04:00
Baltazar Gomez
e59c67a144
render filedrop for only authenticated users (#6466) 2021-07-16 14:53:14 -04:00
Marko Lorentz
e44b7b929e
i18n: Added missing state handling for RTL languages (#6275)
* Add RTL Support

* Add Arabic to supportedLanguages

* Fixed lint errors

* Allowed RTL flow for Hebrew

Co-authored-by: Sana <sana.benhassouna@ensi-uma.tn>
2021-07-16 13:51:08 -04:00
btzr-io
4d28c5d208 use aria current 2021-07-16 10:58:40 -04:00
btzr-io
504f230d59 show currently active playing item on playlist: #6204 2021-07-16 10:58:40 -04:00
infinite-persistence
ad7db1e939 Reactions: wait for previous fetch to complete before fetching again.
This was causing duplicate IDs to be fetched over and over again when scrolling quickly.
2021-07-16 10:54:12 -04:00
infinite-persistence
a13708f4dd Handle the case of all replies are blocked.
In this scenario, `comment.List` does not return `comment`. I was expecting an empty array.

Handled accordingly.
2021-07-16 10:54:12 -04:00
infinite-persistence
08c701ba19 Restore comment pagination
This reverts commit e6addb8c2a, reversing
changes made to 47b594107a.
2021-07-16 10:54:12 -04:00
saltrafael
b5ad359e32 Fix 'Recent Comments' button for livestreams 2021-07-16 10:55:47 -03:00
btzr-io
ba763a85cd remove react-helmet 2021-07-16 02:22:54 -05:00
btzr-io
d1a8f28464 use new aria label format for claim preview 2021-07-16 01:53:38 -05:00
infinite-persistence
73c872501c
Copy Link: use canonical
## Issue
6497
2021-07-16 10:18:37 +08:00
btzr-io
06e6feaf3b add date to claim-preview aria-label 2021-07-15 19:44:51 -05:00
btzr-io
d56b32ff19 simplify localization of claim-preview aria-label 2021-07-15 19:13:54 -05:00
btzr-io
60c5d3bf67 add more info for claim-preview-tile aria label 2021-07-15 18:12:11 -05:00
zeppi
b2b88b466e fix colon handling 2021-07-15 17:48:02 -04:00
btzr-io
7c8c43d3a7 fix file actions accessibility 2021-07-15 15:14:21 -05:00
btzr-io
6354a77bf1 make skip navigation link first focusable element 2021-07-15 13:32:58 -05:00
infinite-persistence
a2a1ddb403
Revert "Comments Pagination #6390"
This reverts commit 16ef013025, reversing
changes made to fba8b89b3b.
2021-07-15 22:23:26 +08:00
infinite-persistence
08548916df
Revert "Fix continuous reaction fetch in incognito"
This reverts commit ff059c58fd.
2021-07-15 22:23:14 +08:00
infinite-persistence
47b594107a
Use better icon for "Copy Link"
Not re-using the same icon as "Share".
2021-07-15 14:40:10 +08:00
btzr-io
d0e865b9ec define main language on html head 2021-07-15 01:12:18 -05:00
btzr-io
eb1ab935c5 consistent menu button styles and minor css fixes: #5145 2021-07-15 00:40:40 -05:00
btzr-io
4d4fbe4e9a fix typo 2021-07-14 22:12:40 -05:00
btzr-io
6d7e92d73b improve header accessibility
add skip navigation link + minor fixes
2021-07-14 22:08:30 -05:00
infinite-persistence
ff059c58fd
Fix continuous reaction fetch in incognito
myReactions will never be filled in incognito. Also, it's probably enough to just check othersReactions, but for now, still do both when logged in.
2021-07-15 09:58:15 +08:00
btzr-io
7aaaf998a8 use aria-hidden on all tile cards thumbnails 2021-07-14 18:58:56 -05:00
btzr-io
695343532d minor css fixes: #5145 2021-07-14 18:35:49 -05:00
btzr-io
484f2830c8 improve accessibility of claim preview tiles: #6480 2021-07-14 17:12:07 -05:00
btzr-io
6df622307c simplify card tile keyboard navigation 2021-07-14 15:09:48 -05:00
Baltazar Gomez
2f67ca370e
Merge branch 'master' into accessibility 2021-07-14 13:48:37 -05:00
btzr-io
0397617bed use aria-hidden on all icons by default 2021-07-14 13:44:22 -05: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
bc4f71ed8c clean 2021-07-14 12:26:21 -04:00
zeppi
7581d914fe hide menu on web for unauth 2021-07-14 12:26:21 -04:00
saltrafael
aced8fb593 Add watch later hover action and Favorites
add watch later hover action

replace watch later popup item for favorites

lint

styling for watch_later overlay

Add label

Use just claim, add requiresAuth

Add list icon

Tone down text

Turn WL Hover Button into component

Change WL hover icons

small revert

Keep watch later in the menu
2021-07-14 11:41:36 -04:00
infinite-persistence
5742e1c2ca
Handle representation of blocked replies
## Issue
- `Comment.replies` currently represent all replies, while `comment.List` returns a filtered version, so the actual replies could be less.
- The actual replies is represented by `total_filtered_items`, but we only get that after making a fetch. So, users could click "Show more" but get nothing.

## Fix
- Stop showing "Show more" based on `total_filtered_items`.
- If there is a balance, display 1 dummy comment to represent all blocked replies. This handles the case of "Show more" being displayed but ended up with 0 replies if all replies were blocked.

## Future
Note that `Comment.replies` might be changed to represented filtered comments in the near future (refer to Beamer), so the GUI is made such that the dummy just won't appear when that change happens.
2021-07-14 15:11:44 +08:00
infinite-persistence
e77a986125
Load comments if spinner is visible from the start
It was previously only responding to scroll events.
2021-07-14 13:00:26 +08:00
infinite-persistence
3d63ce4666
Load comments when approaching viewport
Seeing the spinner too much can be annoying.

- This approach works, but currently, when the list is very long, something is taking up resources and the handler couldn't be processed, so the effect is lost (still seeing the spinner). See 6473.

- Since we are now prefetching, bumped the debounceMs a bit.
2021-07-14 13:00:25 +08:00
infinite-persistence
5ef95846d8
Add AUTO_EXPAND_REPLIES flag to toggle the feature. 2021-07-14 12:58:26 +08:00
infinite-persistence
0cf6fe3df5
Comments Pagination
## Issue
6158 - Support Comment Pagination
2021-07-14 12:58:25 +08:00
infinite-persistence
052aa87ddd
Remove unused items 2021-07-14 11:13:13 +08:00
DispatchCommit
d32af5606b move pre-roll ad logic into it's designated video.js plugin 2021-07-13 22:22:06 -04:00
btzr-io
7398120c0c fix incorrect aria-label in rewards page 2021-07-13 18:09:09 -04:00
btzr-io
2391f66d90 fix upload button on creator analytics: #6323 2021-07-13 18:09:09 -04:00
btzr-io
2dbd5d0f00 fix sidebar shortcut activation on textarea: #6326 2021-07-13 18:07:41 -04:00
btzr-io
97202dd7aa allow other props for lbry icon (aria-hidden) 2021-07-13 16:56:21 -05:00
btzr-io
b595021a7f fix missing aria-label on links / navlinks 2021-07-13 16:38:50 -05:00
btzr-io
c11b73d117 use aria-hidden for icons indside buttons
use aria-expanded for sidebar menu button
2021-07-13 16:23:29 -05:00
btzr-io
9f18822754 use aria-hidden for filedrop component 2021-07-13 15:31:42 -05:00
btzr-io
6eca14f140 fix issue of invalid aria-label values 2021-07-13 15:19:52 -05:00
DispatchCommit
47d9b4a866 fix site detection, add hide logo to macro url 2021-07-13 00:06:32 -04:00
DispatchCommit
8253f5e0dc center play button 2021-07-13 00:06:32 -04:00
DispatchCommit
b777669a7e Add pre-roll ads
change ad macro url
rework video.js load logic
fix autoplay and retry errors
yeet player.ended error
fix another race condition
fix another error message
add allowPreRoll restrictions
fix some lint issues
remove annoying lint rule
remove video.js lazy loading
more linting fixes
2021-07-13 00:06:32 -04:00
infinite-persistence
59a8b9d663 WaitUntilOnPage: take scaling into account
It was waiting too near the viewport to load on certain zoom levels. This will maintain the same physical distance for the "approaching viewport" buffer regardless of zoom levels.
2021-07-12 17:06:30 -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
saltrafael
4bd5beb2f6 Fix notification bell toast 2021-07-12 11:03:11 -04:00
infinite-persistence
cd9337f2d4
Skip RSS URL generation if it's not a channel. 2021-07-09 21:54:44 +08:00
infinite-persistence
da8000303b
Add toast feedback for RSS and Link copy action.
6369
2021-07-09 21:54:43 +08:00
infinite-persistence
1f16736e5a
Fix invalid semicolon 2021-07-09 21:28:58 +08:00
infinite-persistence
d97a23b699 Rename default import/exports for clarity in text search (no functional change)
I believe it was just due to copy/pasting from another file and not renaming it.
2021-07-09 08:40:26 +08:00
zeppi
0bb9c520ff fix livestream display 2021-07-08 15:08:53 -04:00
infinite-persistence
67324aca21
Reload page when trying to open stale chunks
https://raphael-leger.medium.com/react-webpack-chunkloaderror-loading-chunk-x-failed-ac385bd110e0

#codesplit
2021-07-08 15:06:09 +08:00
infinite-persistence
3017155867
Don't lazy-load components in ErrorBoundary
We currently handle major errors through ErrorBoundary. If the error is network related, ErrorBoundary ends up blank if it's components are lazy-loaded.

#codesplit
2021-07-08 14:52:29 +08:00
infinite-persistence
a493428247
Skin fiat-tip notification
## Issue
6421 Notification: Fiat Tip Notification
2021-07-08 11:21:58 +08:00
infinite-persistence
52cba611b3
Cleaned up notification constants
- Organized under an object.
- Removed old unused ones.
2021-07-08 11:21:24 +08:00
infinite-persistence
26efe9fd45 Enable 'slow mode' in comments
## Issue
Sub item in <6119 Creator Settings: beyond "Muted Words">

## Changes
- Removed the existing 5s min gap on livestreams.
- Enabled the 'slow mode min gap' in Creator Settings

This change now affects both comments in claims and livestream comments.
2021-07-07 19:31:15 -04:00
zeppi
6761cd2aa6 add star icon 2021-07-07 14:36:20 -04:00
jessopb
be879ae90a
Recon 7 6 b (#6418)
* changes

* clean

* showNoSourceClaims
2021-07-07 14:21:11 -04:00
infinite-persistence
ffadae9373 Remove unused (?) selector 2021-07-07 07:50:59 -04:00
zeppi
b045f62eb7 rm comment 2021-07-06 16:06:58 -04:00
zeppi
e2b8aae554 use ENABLE_MATURE for fileTitleSection 2021-07-06 16:06:58 -04:00
zeppi
6b2569e5f2 use ENABLE_UI_NOTIFICATIONS 2021-07-06 16:06:58 -04:00
infinite-persistence
73e8a99c7e i18n - "LBC" to "Credit" 2021-07-06 14:53:23 -04:00
infinite-persistence
05d831b283 i18n - fiat 2021-07-06 14:53:23 -04:00
infinite-persistence
1f4746ed89 Fix RSS icon not having a gap 2021-07-06 11:21:40 -04:00
infinite-persistence
5d8e3d8b0a
Revert lazy-loading videojs
## Issue
The loading circle wasn't showing up, causing confusion.

Splitting CSS doesn't seem trivial as there seems to be a huge dependency on the load order. Pretty much similar to what this person is facing https://lihautan.com/css-code-splitting/#the-problem

## Change
This reverts videojs-specific changes from 4d638bcf.
2021-07-06 17:04:16 +08:00
jessopb
75a78cb65d
More recon (#6400)
* rm

* rm

* recon

* claimlist recon
2021-07-05 17:45:20 -04:00
infinite-persistence
8d1d2d2cf0 RecommendedContent: prevent excessive render
## Issue
When seeking on a video, RecommendedContent gets re-rendered, which causes the 20 ClaimPreviews to be re-rendered, several times. ClaimPreview has lots of children, plus it's constantly checking against the blacklist, among other things.

## Fix
The culprit seems to be the `recommendedContent` array -- the address may be different, but the contents are the same.
Do a deep compare instead.
2021-07-05 11:03:53 -04:00
zeppi
4f6740d1f8 flow... 2021-07-05 10:02:03 -04:00
zeppi
d34ef851d0 make flow shut up 2021-07-05 10:02:03 -04:00
zeppi
50556bba97 lint master 2021-07-05 10:02:03 -04:00
infinite-persistence
fc7edc875b
ChannelThumbnail improvements
- [x] (6332) The IntersectionObserver method of lazy-loading loads cached images visibly late on slower devices. Previously, it was also showing the "broken image" icon briefly, which we mended by placing a dummy transparent image as the initial src.
  - Reverted that ugly transparent image fix.
  - Use the browser's built-in `loading="lazy"` instead. Sorry, Safari.

- [x] Size-optimization did not take "device pixel ratio" into account.
  - When resizing an image through the CDN, we can't just take the dimensions of the tag in pixels directly -- we need to take zooming into account, otherwise the image ends up blurry.
  - Previously, we quickly disabled optimization for the channel avatar in the Channel Page because of this. Now that we know the root-cause, the change was reverted and we now go through the CDN with appropriate sizes. This also improves our Web Vital scores.

- [x] Size-optimization wasn't really implemented for all ChannelThumbnail instances.
  - The CDN-optimized size was hardcoded to the largest instance, so small images like sidebar thumbnails are still loading images that are unnecessarily larger.
  - There's a little-bit of hardcoding of values from CSS here, but I think it's a ok compromise (not something we change often). It also doesn't need to be exact -- the "device pixel ratio" calculate will ensure it's slightly larger than what we need.

- [x] Set `width` and `height` of `<img>` to improve CLS.
  - Addresses Ligthhouse complaints, although technically the shifting was addressed at the `ClaimPreviewTile` level (sub-container dimensions are well defined).
  - Notes: the values don't need to be the final CSS-adjusted sizes. It just needs to be in the right aspect ratio to help the browser pre-allocate space to avoid shifts.

- [x] Add option to disable lazy-load Channel Thumbnails
  - The guidelines mentioned that items that are already in the viewport should not enable `loading="lazy"`.
  - We have a few areas where it doesn't make sense to lazy-load (e.g. thumbnail in Header, channel selector dropdown, publish preview, etc.).
2021-07-05 16:04:10 +08:00
infinite-persistence
033b03e6e4
WaitUntilOnPage: respond to window resizing or zooming. 2021-07-05 12:06:55 +08:00
infinite-persistence
bb8fb038ca
WaitUntilOnPage: add option to load when approaching viewport 2021-07-05 12:06:54 +08:00
infinite-persistence
9745d6df3e
WaitUntilOnPage: Fix scroll listener always registered + bump debounce ms
## Issue
The scroll listener never unregisters, and is always registering itself on every scroll. I believe it was done that way to also handle the case of "element is already in viewport when mounted".

## Change
Tried to separate both "element is already in viewport when mounted" and "element scrolled into viewport" into different effects.

The timeout value used is a bit arbitrary, but is needed because the initial size is (0, 0), and to debounce any layout shifts. Reasoning: If an element is explicitly placed under this wrapper, the additional delay is acceptable since it's meant to be lazy-loaded anyway.
2021-07-05 12:06:54 +08:00
zeppi
270049316e fiat tips only on web 2021-07-03 14:42:37 -04:00
Anthony
434030e007 touchup frontend to show balance 2021-07-03 14:42:37 -04:00
zeppi
8a5230ed6a new api 2021-07-03 14:42:37 -04:00
zeppi
bec50829c1 updated code
about to test something

generate programatically

beginning of the frontend

stripe integration page seems to be working

add user

put functionality behind conditional tag

connect frontend working well

adding environment variables to save success and failure url

bugfix

bugfix

final clean up

adding credit card page

seems to be coming along

calls successfully coming from the frontend

fixing up frontend

cleaning up

frontend coming along

client secret working

basic frontend in place

adding tip page

adding more to the tip frontend

frontend almost done

tabs coming along

one last thing to do for frontend

adding explainer text as custom function

putting finishing touches on tabs

support tabs working well

disable fiat toggle when card not connected

fix frontend gui bug

bugfix and pull out label function

fix symbol for tip gui

modal when card is not yet saved

fix fiat disabled bug

knowing whether card is added programatically

sending tip with frontend

tip functionality working

show unpaid balance

add frontend for card add section

update frontend

update frontend

bugfix

change to use react instead of css

update how stripe is instantiated

fix bug

use customer setup

coming along

working but needs optimization

persist if card is saved

adding anonymous tip functionality

fix nan bug

build stripe endpoints programatically

show for all users for time being

allow the stripe key to automatically switch to live environment

bugfix

bugfix

fix jslint

fix channel page support button

better docs

show customer transactions on frontend

basic table in place

various page updates per jeremys notes

showing card details

nicer tip history table

add better prompt to add card on file viewer page

some linting

time

put connect account behind fiat enabled

no persist fiat mode

wallet calls

tip stuff
2021-07-03 14:42:37 -04:00
zeppi
22d9495b8d fix rss, add icon 2021-07-02 13:03:24 -04:00
infinite-persistence
5e97fdfa0d
RSS: Fix URL
Not sure why it worked in the dev instance.
2021-07-02 13:17:14 +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
ad202d6471
i18n 2021-07-01 17:01:58 +08:00
infinite-persistence
2e0f8c6120
Fix videojs overlay css
Related:
aaffd3b089 "CodeSplit: Load 3rd-party css before ours."
2021-07-01 15:23:42 +08:00
DispatchCommit
da23a5625b fix video js imports 2021-06-30 19:12:21 -07:00
zeppi
304c0553da lint 2021-06-29 14:52:11 -04:00
John B Nelson
5e2a4960fb FIX video.js event firing issues fore RecsysPlugin
- The `rateChange` event now logs the updated speed,
   not just the    time at which it occurred.
- The `scrub` now (more) accurately logs the position
   it came from before the destination.
- The recsys events get consolidated for logical consistency.
2021-06-29 14:52:11 -04:00
DispatchCommit
8ce12f8e60 fix autoplay for transcoded files 2021-06-29 14:52:11 -04:00
infinite-persistence
5766dc34b5 Port recsys to master; enabled for SIMPLE_SITE only 2021-06-29 14:52:11 -04:00
infinite-persistence
099667a4bb Use env for loading-bar color instead of hardcoded. 2021-06-29 21:01:14 +08:00
infinite-persistence
8291cdf7a9
Wunderbar: bump debounce to 1s
per feedback
2021-06-27 11:02:52 +08:00
Anthony
312c561529 update comment 2021-06-26 22:26:40 -04:00
Anthony
ab13b23cef dont display cc button via videojs settings 2021-06-26 22:26:40 -04:00
zeppi
aa8366f21c enable sign up in desktop 2021-06-26 11:56:32 -04:00
infinite-persistence
e367b66a08
Fix stuck video poster when switching videos
## Issue
With autoplay off, clicking on another video from the Recommended section didn't update the video poster.

## Fix
Made a mistake assuming that the whole component will be re-mounted, so was only setting the thumbnail once.
2021-06-26 01:05:23 +08:00
zeppi
c44beaf8fa remove bad new button 2021-06-25 11:40:37 -04:00
infinite-persistence
4d638bcf10
~ Initial Code Split (#6228) 2021-06-25 16:02:45 +08:00