-
Notifications
You must be signed in to change notification settings - Fork 425
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[YouTube] Support new comments data and use accessibility data for social links in attributed descriptions when present #1163
Conversation
b7b3d08
to
2eca6d3
Compare
I added support for formatting in 2eca6d3, so this is now ready for review, let me know what you think @AudricV and @Theta-Dev (since you made #953). I included many comments in the implementation so it should be understandable what is happening. Tests fail because I changed the video for the Here is a testing APK: app-debug.zip An issue I noticed is that comment replies can't load more replies for some reason, can you check this @AudricV? Here is a video to test with both formatted comments and many comment replies: https://www.youtube.com/watch?v=Qip1VkTuM70. |
I have just run the test build and I dont get any continuation pages, both for the main comments and comment replies. |
Also improve current comments code by removing outdated comment renderer data.
Also refactor descriptions parsing.
2eca6d3
to
09732d6
Compare
I though that removing the copy the contents array containing the comments renderer was a good idea, but it wasn't at all. I reverted this change and added a comment. I rebased on top of the dev and improved the message of @Stypox's commit and reverted the change of the comment formatting video URL, which should go in a separate commit (maybe along mocks changes, even if I have a PR updating client versions and more which will touch at all mocks which will come soon). |
...or/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeDescriptionHelper.java
Outdated
Show resolved
Hide resolved
...or/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeDescriptionHelper.java
Show resolved
Hide resolved
We can also add support for social icons instead as |
I would not do this since it would add too much complexity. To make the links look good, we would not only need to show the icon image next to the link text but also put everthing into this rounded chip. Since that is not a standard HTML element we would need to add custom styling. There are also social media icons like the new X logo that are not easily recognizable when they are just as tall as normal text. |
How about just string name prefixes for the major known sites like X/Twitter, FB, Insta, etc.? |
56bdaab
to
f4dcab1
Compare
I pushed a commit that uses the accessibility label instead of the link text, but only for urls that do have an accessibility label (i.e. only chips) and only for non-YouTube urls. What do you think? You can use this apk: NewPipe_v0.27.0_RC2_release.zip. |
f4dcab1
to
b80c3f5
Compare
Looks good to me. Good idea to extract the service name from the accessibility text. Note: the link text needs to have both leading and trailing whitespace stripped. There are still trailing spaces in the video and channel link. |
Yes, my regex was a bit flaky in that screenshot. But I have already fixed it in the code (made the captured text as small as possible with |
628491b
to
50f6c3d
Compare
I pushed three commits:
Here is an APK: app-release.zip |
Remove unneeded isClose field, and make constants private
7d38040
to
02274d5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
YoutubeDescriptionHelper
changes and the tests ones look good to me, I just have a few notes for which nothing could or should change. Thank you @Stypox!
.getObject("accessibilityInfo") | ||
.getString("accessibilityLabel", "") | ||
// accessibility labels are e.g. "Instagram Channel Link: instagram_profile_name" | ||
.replaceFirst(" Channel Link", ""); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note for potential multi-interface language support in the future: this text doesn't seem to be translated, according my tests on a few languages (ar, de, es, fr, fr-CA, it, zh). This seems to be an error which can be fixed by YouTube at anytime.
.replaceFirst(" Channel Link", ""); | ||
|
||
final Function<String, String> transformContent; | ||
if (accessibilityLabel.isEmpty() || accessibilityLabel.startsWith("YouTube: ")) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above for the YouTube:
part.
...or/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeDescriptionHelper.java
Show resolved
Hide resolved
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
* Migrate database * Update database migrations and getter/setter * Implement algorithm to merge playlists * Save changes to the database and bugfix * UI design and behavior * Debounced saver & bugfix & clean code * Use new item holder * Fix sonar warning and typo * Fix sonar warning * Reuse DebounceSaver * Add tests * Create sub-package and default interval for DebounceSaver & sort playlists in db * Update test and Javadoc * Add abstract methods in PlaylistLocalItem & rename setIsModified * Update playlists in parallel * Update index modification logic & redo sorting in the merge algorithm * Delete saveImmediate warnings & add comments * Trim search string and remove duplicate records from the database Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com> * Fix database migration and string trimming Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com> * Refactor database migration test and string trimming * Fix a typo * Apply review * Remove unnecessary debug warning and use JDoc instead * Added reset button but not working as intended. * Added reset button but slightly working as intended. * Added reset button but working as intended for theme. * Cleaned up xml files. * Added alert dialogue and restarts the app when resetting settings. * Changed alert dialogue. * clear shared preference xmls * Added delete xml method inside the yes dialogue. * Revert changes made to dev. * Revert changes made to dev. * Revert changes made to dev. * Revert committed file change of settings key. * Added strings to strings.xml to allow translation. * Update app/src/main/res/xml/debug_settings.xml Ensuring title to be fully displayed on small devices. Co-authored-by: Tobi <TobiGr@users.noreply.github.com> * Create new settings category: Backup and restore Following settings have been move to the new category: - import database (from ContenttSettings) - export database (from ContenttSettings) - reset settings (from DebugSettings) * Remove strange change * Add summary to reset preference * Remove mini variant and move upload date to top in comments * Use start/end instead of left/right in comment layout * Add replies button to comments * Move RelatedItemInfo next to fragment using it * Keep source list info in InfoItemBuilder Also remove some unused code * Load more items even if initial related items are empty * Implement CommentRepliesFragment * Save and restore state in CommentRepliesFragment * Fix some code smells * Always show comment replies in list mode * Set comment replies fragment title * Extract some utility methods from CommentInfoItemHolder * Add comment replies fragment header * Add some documentation and javadocs Also further simplify CommentRepliesInfo and RelatedItemsInfo * Revert relying on source ListInfo, use commentsInfoItem.getUrl() instead This reverts commit bb01da3691ff1d5c3dccd41b7ca1a5deb1b5676f. This commit was not needed * Expand DetailFragment again when exiting the CommentRepliesFragment * scroll last comment into view * Fix scrolling to correct comment after closing replies * Add @NonNull annotations * Update some AndroidX libraries * Fix AndroidX Work deprecation * Bump compileSdk to 34 * Utilize BundleCompat and IntentCompat methods * Store/retrieve parcelable arrays as lists instead. * Update miscellaneous libraries * Use 'tasks.register' for Gradle tasks * Change Converters to class to fix build * Exclude RxJava file from META-INF * Update Studio and desugaring versions * Update more libraries * Update AGP and Gradle * Add playlist description to PlaylistFragment * Ellipsize playlist description if it is longer than 5 lines The description can be expanded / collapsed via a "show more" / "show less" button. * Improve TextEllipsizer class * Fix FeedDAOTest * Fix settings_notification.xml indentation * Customize only 2 notification actions on Android 13+ * Extract NotificationSlot from NotificationActionsPreference * Allow each notification slot to contain any possible action * Extract NotificationActionData from NotificationUtil * Implement notification actions via MediaSessionConnector on Android 13+ * Do not update notification actions if nothing changed This should avoid costly updates of the media session. * Allow play/pausing from notification when buffering This change is in line with a recent change in how the play/pause button behaves in the player ui: if the buffering indicator is shown, it's still possible to toggle play/pause, to allow e.g. pausing videos before they even start. This change was needed because on Android 13+ notification actions can't be null, and thus the buffering hourglass action wasn't shown. * Android 33 -> Android 13 Co-authored-by: Tobi <TobiGr@users.noreply.github.com> * Base cache key on info type instead of item type It didn't really made sense to consider two cache keys as equal based on the type of items contained within that list. * Update NewPipeExtractor to include MediaCCC channel fix * use GitHub markdown to emphasise warning in Readme * Don't write defaultFormat setting, use default value Nowhere else does this (write a setting if it’s not set). It took me a while to see that this code does not do what it intends, because `defaultFormat` is already the default value in the first `context.getString`, so calling `getMediaFormatFromKey` again is the exact same call (“do you know the definition of insanity…”) and will return `null` again … So let’s drop the setting write and just rely on the default values. * Bump GH actions Old ones are deprecated. * BaseDescriptionFragment: Assert member is initialized `streamInfo` and `channelInfo` have to be initialized, since the only way to construct the class it to pass them. So we can remove the null check boilerplate and make some of the accessors `NonNull`. * Update Matrix room URL to new link * Update Jsoup to 1.17.2 * Update TextLinkifier.java minor fix * Translated using Weblate (Danish) Currently translated at 96.4% (703 of 729 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Danish) Currently translated at 96.4% (703 of 729 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Danish) Currently translated at 88.3% (644 of 729 strings) Translated using Weblate (Danish) Currently translated at 88.3% (644 of 729 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Russian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Georgian) Currently translated at 92.2% (71 of 77 strings) Translated using Weblate (Uzbek (latin)) Currently translated at 62.6% (457 of 729 strings) Translated using Weblate (Santali) Currently translated at 12.6% (92 of 729 strings) Translated using Weblate (French) Currently translated at 89.6% (69 of 77 strings) Translated using Weblate (Japanese) Currently translated at 11.6% (9 of 77 strings) Translated using Weblate (Bulgarian) Currently translated at 5.1% (4 of 77 strings) Translated using Weblate (Bengali) Currently translated at 20.7% (16 of 77 strings) Translated using Weblate (German) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Bengali (India)) Currently translated at 40.7% (297 of 729 strings) Translated using Weblate (Kurdish (Central)) Currently translated at 85.5% (624 of 729 strings) Translated using Weblate (Tamil) Currently translated at 46.6% (340 of 729 strings) Translated using Weblate (Bengali (Bangladesh)) Currently translated at 55.1% (402 of 729 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Greek) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (German) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 98.7% (76 of 77 strings) Translated using Weblate (Hebrew) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Hebrew) Currently translated at 99.4% (725 of 729 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Croatian) Currently translated at 99.4% (725 of 729 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Croatian) Currently translated at 2.5% (2 of 77 strings) Translated using Weblate (Malay) Currently translated at 48.6% (355 of 729 strings) Translated using Weblate (Croatian) Currently translated at 99.3% (724 of 729 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Finnish) Currently translated at 98.3% (717 of 729 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 22.0% (17 of 77 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 95.4% (696 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Vietnamese) Currently translated at 42.8% (33 of 77 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Esperanto) Currently translated at 70.7% (516 of 729 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Azerbaijani) Currently translated at 94.6% (690 of 729 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (French) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Santali) Currently translated at 10.0% (73 of 729 strings) Translated using Weblate (Turkish) Currently translated at 42.8% (33 of 77 strings) Translated using Weblate (German) Currently translated at 81.8% (63 of 77 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Kannada) Currently translated at 5.4% (40 of 729 strings) Translated using Weblate (Russian) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Croatian) Currently translated at 88.7% (647 of 729 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Odia) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Slovak) Currently translated at 20.7% (16 of 77 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (French) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Catalan) Currently translated at 86.5% (631 of 729 strings) Translated using Weblate (Telugu) Currently translated at 58.9% (430 of 729 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Greek) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Tigrinya) Currently translated at 8.9% (65 of 729 strings) Translated using Weblate (Russian) Currently translated at 98.7% (76 of 77 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Slovak) Currently translated at 99.7% (727 of 729 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Italian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Russian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Odia) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Kurdish (Central)) Currently translated at 85.5% (624 of 729 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Japanese) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (German) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Italian) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Czech) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Swedish) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Polish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Czech) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Italian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (German) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (German) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Serbian) Currently translated at 18.1% (14 of 77 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Greek) Currently translated at 24.6% (19 of 77 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Polish) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Greek) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (German) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Kannada) Currently translated at 5.5% (40 of 726 strings) Translated using Weblate (Sinhala) Currently translated at 2.6% (2 of 76 strings) Translated using Weblate (Sinhala) Currently translated at 4.1% (30 of 726 strings) Translated using Weblate (Bulgarian) Currently translated at 5.2% (4 of 76 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Turkish) Currently translated at 99.8% (725 of 726 strings) Translated using Weblate (Slovak) Currently translated at 98.4% (715 of 726 strings) Translated using Weblate (Italian) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (French) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Polish) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Greek) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Italian) Currently translated at 99.5% (723 of 726 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Czech) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (German) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 21.0% (16 of 76 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (725 of 725 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (725 of 725 strings) Translated using Weblate (Romanian) Currently translated at 99.8% (724 of 725 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (725 of 725 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (725 of 725 strings) Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: Alexthegib <traducoes@skiff.com> Co-authored-by: Allan Nordhøy <epost@anotheragency.no> Co-authored-by: Andrey F <firsan777@mail.ru> Co-authored-by: Angelk90 <angelo.k90@hotmail.it> Co-authored-by: Chethan <76928501+ch3thanhs@users.noreply.github.com> Co-authored-by: Danr <mdp43140@gmail.com> Co-authored-by: David Svane <davidcygnus@users.noreply.hosted.weblate.org> Co-authored-by: Deleted User <noreply+77891@weblate.org> Co-authored-by: DuninduH <mateyh37@gmail.com> Co-authored-by: Eric <zxmegaxqug@hldrive.com> Co-authored-by: Fjuro <ifjuro@proton.me> Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com> Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me> Co-authored-by: Heidhou chazanouvha <Heidhou@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Igor Rückert <igorruckert@yahoo.com.br> Co-authored-by: Igor Sorocean <sorocean.igor@gmail.com> Co-authored-by: Ihfandi <ihfandicahyo@gmail.com> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Jan Layola <gilajan@protonmail.com> Co-authored-by: Jeff Huang <s8321414@gmail.com> Co-authored-by: Juan Martinez <jjml.nipon@gmail.com> Co-authored-by: KarmaKat <lloydwestbury@gmail.com> Co-authored-by: Kuko <kuko7@protonmail.ch> Co-authored-by: LiJu09 <lisojuraj@gmail.com> Co-authored-by: Martin Constantino–Bodin <martin.bodin@ens-lyon.org> Co-authored-by: Mehmet <mehmetyalcin.0103@gmail.com> Co-authored-by: Michalis <michalisntovas@yahoo.gr> Co-authored-by: Milan <mobrcian@hotmail.com> Co-authored-by: Milo Ivir <mail@milotype.de> Co-authored-by: NEXI <nexiphotographer@gmail.com> Co-authored-by: Nils Van Zuijlen <nils.van-zuijlen@mailo.com> Co-authored-by: Nista <42772160+Nista11@users.noreply.github.com> Co-authored-by: Oğuz Ersen <oguz@ersen.moe> Co-authored-by: P.O <rasmusson.mikael@protonmail.com> Co-authored-by: Philip Goto <philip.goto@gmail.com> Co-authored-by: Pi-Cla <pirateclip@protonmail.com> Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com> Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com> Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org> Co-authored-by: Ray <ray@users.noreply.hosted.weblate.org> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Scrambled777 <weblate.scrambled777@simplelogin.com> Co-authored-by: Sergio Marques <so.boston.android@gmail.com> Co-authored-by: ShareASmile <aapshergill@gmail.com> Co-authored-by: Subbarayudu <raidu.g6@gmail.com> Co-authored-by: Subham Jena <subhamjena8465@gmail.com> Co-authored-by: T1z3n <info@njbraun.de> Co-authored-by: Terry Louwers <t.louwers@gmail.com> Co-authored-by: TobiGr <TobiGr@users.noreply.github.com> Co-authored-by: Vasilis K <skyhirules@gmail.com> Co-authored-by: VfBFan <VfBFan@users.noreply.hosted.weblate.org> Co-authored-by: Xəyyam Qocayev <xxmn77@gmail.com> Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com> Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl> Co-authored-by: cat <158170307+cultcats@users.noreply.github.com> Co-authored-by: ds-z <drazen.sostaric01@gmail.com> Co-authored-by: dyare darbani <darbanidyare@gmail.com> Co-authored-by: fsbat0 <fsbat0@users.noreply.hosted.weblate.org> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: hshbuk <hsh.bukchin@gmail.com> Co-authored-by: jspast <joao.pastorello@protonmail.com> Co-authored-by: kuragehime <kuragehime641@gmail.com> Co-authored-by: ngocanhtve <ngocanh.tve@gmail.com> Co-authored-by: pjammo <adrianoghr@hotmail.it> Co-authored-by: ssantos <ssantos@web.de> Co-authored-by: trunars <trunars@gmail.com> Co-authored-by: v1s7 <v1s7@users.noreply.hosted.weblate.org> Co-authored-by: Åzze <laitinen.jere222@gmail.com> Co-authored-by: Çağla Pickaxe <caglapickaxe@gmail.com> Co-authored-by: Макар Разин <makarrazin14@gmail.com> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bg/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bn/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/el/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/id/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ja/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ka/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ru/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/si/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/tr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/vi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/ Translation: NewPipe/Metadata * Improve app signature check * Convert isReleaseApk to lazy value * Use hexToByteArray() extension * Added "free memory" check before downloading [Android N / API 24+] (#10505) Added "free space" check before downloading eliminating bugs related to out-of-memory on Android N / API 24+ * Add separate message when download is rejected due to insufficient storage * Fix GitHub question discussion form The name and description fields are both invalid here. * Translated using Weblate (Danish) Currently translated at 100.0% (729 of 729 strings) Co-authored-by: cat <158170307+cultcats@users.noreply.github.com> * Don't add "question" label to question discussions (#10906) They already have a "Questions" category of their own anyway. * [CI] Update gradle/wrapper-validation-action to v2 Updates deprecated Node 16 to 20 * [CI] Update sonar job to use cache@v4 Updates deprecated Node 16 to 20 * use GitHub markdown to emphasise warning in all READMEs * Fix not considering nullability when comparing getAudioTrackType * Fix non-desugared method being used Search for "Not supported at all minSDK levels" here: https://developer.android.com/studio/write/java8-support-table * Fix choosing audio format to mux with video-only download * Remove unused DownloadDialog.onDismissListener * Fix NPE, since dismissing a dialog still calls onViewCreated() * Try to fix PR labeler Reference: https://github.com/actions/labeler?tab=readme-ov-file#permissions * Changed the landscape layout of list card item Make layout-land/list_stream_card_item a symlink to layout/list_stream_item * 11111th commit * Some more slight improvements * Move text from manual_update_title to check_for_updates * Ask for consent before starting update checks NewPipe is contacting its servers without asking for the users' consent. This is categorized as "tracking" by F-Droid (see https://github.com/TeamNewPipe/NewPipe/discussions/10785). This commit disables checking for udpates by default and adds a dialog asking for the user's consent to automatically check for updates if the app version is eligible for them. After upgrading to a version containing this commit the user is asked directly on the first app start. On fresh installs however, showing it on the first app start contributes to a bad onboarding an welcoming experience. Therefore, the dialog is shown at the second app start. Co-authored-by: Stypox <stypox@pm.me> * update_app_key default value should be false * Improve new version checks before running * show OverallDuration in Playlist earlier only overall amount of videos was shown. Now overall duration is shown there too - as formatted by existing Localization.concatenateStrings() and Localization.getDurationString(). show all videos OverallDuration in local Playlist too refactor to make implementation in LocalPlaylistFragment and PlaylistFragment more obviously similar unfortunately could not refactor upto BaseLocalListFragment revert the changes for online Playlists because they are paginated and may be infinite i.e. correct count may come only from the service->extractor chain which unfortunately does not give overall duration yet next try to improve user-experience with online Playlist just show that duration is longer (">") than the calculated value in case there is more page(s) even more improve user-experience for online Playlist by adding the duration of next items as soon as they are made visible make showing of playlists duration configurable, disabled by default adjusted duration to be handled as long because it comes as long from extractor no idea why I handled it as int earlier Revert "make showing of playlists duration configurable, disabled by default", refactor This reverts commit bc1ba17a20d3dd1763210f81d7ca67c5f1734a3d. Fix rebase Apply review Rename video -> stream Remove unused settings keys * Apply review * Fix DatabaseMigrationTest Complete removal of unneeded index, and remove default value for `remote_playlists.display_index`. * Also sort playlist duplicates by display index * Fix PlaylistLocalItemTest * Fix inconsistencies when removing playlist Remove checkDisplayIndexModified because it was causing more problems than it solved. Now when adding new playlists they won't necessarily appear at the top, but will get sorted alphabetically along with the other playlists with index -1. This will be the case until any playlist is sorted, at which point all indices are assigned and newly added playlists will appear at the top again. * Fix warnings and allow moving only up and down even in grid * Undo some unneeded changes to LocalPlaylistManager * Fix fragments without empty constructor * moved player notification to notification section * Move import export manager to separate folder * Make checkstyle accept javadocs with long links * Fix vulnerability with whitelist-aware ObjectInputStream Only a few specific classes are now allowed. * Show snackbar error when settings import fails * Add test: vulnerable settings should fail importing * Add comment that empty constructors are needed for IcePick See 5e7ad6ffd160633f15d5ad02f651ee3207539224 and https://github.com/TeamNewPipe/NewPipe/pull/10781#discussion_r1545351144 * Use JSON for settings imports/exports * Add test zips and extensive tests for ImportExportManager Now all possible combinations of files in the zip (present or not) are checked at the same time * Expose all import/export errors to the user * Show notification when failing to import settings * Translated using Weblate (Estonian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Odia) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 46.7% (36 of 77 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Czech) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Spanish) Currently translated at 99.7% (736 of 738 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Polish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (German) Currently translated at 99.7% (736 of 738 strings) Translated using Weblate (Korean) Currently translated at 31.1% (24 of 77 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Korean) Currently translated at 98.9% (726 of 734 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Polish) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Czech) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Italian) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Polish) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (German) Currently translated at 99.7% (732 of 734 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Russian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (German) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Hungarian) Currently translated at 16.8% (13 of 77 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Polish) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Czech) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Italian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (730 of 730 strings) Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: Apious <apious@kakao.com> Co-authored-by: Eduardo Malaspina <vaio0@swismail.com> Co-authored-by: Fjuro <fjuro@alius.cz> Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com> Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Jeff Huang <s8321414@gmail.com> Co-authored-by: Linerly <linerly@proton.me> Co-authored-by: Michael Moroni <michaelmoroni@disroot.org> Co-authored-by: Milan <mobrcian@hotmail.com> Co-authored-by: NEXI <nexiphotographer@gmail.com> Co-authored-by: Oğuz Ersen <oguz@ersen.moe> Co-authored-by: Philip Goto <philip.goto@gmail.com> Co-authored-by: Pi-Cla <pirateclip@protonmail.com> Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Tim Trek <T.Trek@byom.de> Co-authored-by: TobiGr <TobiGr@users.noreply.github.com> Co-authored-by: Tấn Lực Trương <september122022ios16@gmail.com> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: kuragehime <kuragehime641@gmail.com> Co-authored-by: rehork <cooky@e.email> Co-authored-by: Макар Разин <makarrazin14@gmail.com> Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ko/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/vi/ Translation: NewPipe/Metadata * Add changelog for v0.27.0 (997) * Update NewPipeExtractor to YT comments fix PR https://github.com/TeamNewPipe/NewPipeExtractor/pull/1163 * Release v0.27.0 (997) * Improve documentation * add an intuitive prefix for the duration of lists on UI, and avoid using the new prefix for single videos * Update NewPipeExtractor * Fix NPE when avatarUrl is empty * Fix not saving comment replies state on config change * Update NewPipeExtractor * Fix free storage space check for all APIs See https://stackoverflow.com/q/31171838 See https://pubs.opengroup.org/onlinepubs/9699919799/functions/fstatvfs.html * Translated using Weblate (Romanian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Croatian) Currently translated at 99.5% (735 of 738 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (French (Louisiana)) Currently translated at 0.2% (2 of 738 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (738 of 738 strings) Added translation using Weblate (French (Louisiana)) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (French) Currently translated at 99.7% (736 of 738 strings) Added translation using Weblate (Arabic (Tunisian)) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Kannada) Currently translated at 5.8% (43 of 738 strings) Translated using Weblate (Kannada) Currently translated at 5.1% (4 of 78 strings) Translated using Weblate (Italian) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Russian) Currently translated at 99.8% (737 of 738 strings) Translated using Weblate (German) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (German) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 99.0% (731 of 738 strings) Translated using Weblate (Portuguese) Currently translated at 99.7% (736 of 738 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Russian) Currently translated at 99.7% (736 of 738 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 50.0% (39 of 78 strings) Translated using Weblate (Sardinian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Greek) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Japanese) Currently translated at 99.4% (734 of 738 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Italian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Slovak) Currently translated at 21.7% (17 of 78 strings) Translated using Weblate (Czech) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 62.8% (49 of 78 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Polish) Currently translated at 61.5% (48 of 78 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 23.0% (18 of 78 strings) Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Ajeje Brazorf <lmelonimamo@yahoo.it> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: AudricV <AudricV@users.noreply.hosted.weblate.org> Co-authored-by: Fjuro <fjuro@alius.cz> Co-authored-by: Flavian <3zorro.1@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Jonatan Nyberg <jonatan@autistici.org> Co-authored-by: Jose Delvani <delvani.eletricista@gmail.com> Co-authored-by: Linerly <linerly@proton.me> Co-authored-by: MS-PC <MSPCtranslator@gmail.com> Co-authored-by: Milan <mobrcian@hotmail.com> Co-authored-by: Milo Ivir <mail@milotype.de> Co-authored-by: NEXI <nexiphotographer@gmail.com> Co-authored-by: Philip Goto <philip.goto@gmail.com> Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org> Co-authored-by: Ray <ray@users.noreply.hosted.weblate.org> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Sergio Marques <so.boston.android@gmail.com> Co-authored-by: ShareASmile <ShareASmile@users.noreply.hosted.weblate.org> Co-authored-by: Tấn Lực Trương <september122022ios16@gmail.com> Co-authored-by: Vasilis K <skyhirules@gmail.com> Co-authored-by: VfBFan <VfBFan@users.noreply.hosted.weblate.org> Co-authored-by: abhijithkjg <abhijithkj2001@gmail.com> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: kaajjo <claymanoff@gmail.com> Co-authored-by: kuragehime <kuragehime641@gmail.com> Co-authored-by: ngocanhtve <ngocanh.tve@gmail.com> Co-authored-by: ssantos <ssantos@web.de> Co-authored-by: yosrinajar <yosron3@gmail.com> Co-authored-by: zeineb-b <zeinebbouhejba21@gmail.com> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/id/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/kn/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/vi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/ Translation: NewPipe/Metadata * Ignore all errors when getting free storage space It's not a critical check that needs to be perfomed, so in case something does not work on some device/version, let's just ignore the error. * Update app/src/main/java/org/schabi/newpipe/streams/io/StoredDirectoryHelper.java Co-authored-by: Tobi <TobiGr@users.noreply.github.com> * Update NewPipeExtractor to v0.24.0 * Fix indentation for ktlint --------- Co-authored-by: GGAutomaton <32899400+GGAutomaton@users.noreply.github.com> Co-authored-by: TobiGr <tobigr@users.noreply.github.com> Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com> Co-authored-by: Vincent Tanumihardja <u7145408@anu.edu.au> Co-authored-by: Zhidong Piao <u7139999@anu.edu.au> Co-authored-by: vincetzr <110076924+vincetzr@users.noreply.github.com> Co-authored-by: Stypox <stypox@pm.me> Co-authored-by: TacoTheDank <SkytkRSfan3895@gmail.com> Co-authored-by: Isira Seneviratne <31027858+isira-seneviratne@users.noreply.github.com> Co-authored-by: Roshan Jossy <roshanjossey@gmail.com> Co-authored-by: Profpatsch <mail@profpatsch.de> Co-authored-by: Zongle Wang <wangzongler@gmail.com> Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Co-authored-by: Audric V <74829229+AudricV@users.noreply.github.com> Co-authored-by: Isira Seneviratne <isirasen96@gmail.com> Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: Alexthegib <traducoes@skiff.com> Co-authored-by: Allan Nordhøy <epost@anotheragency.no> Co-authored-by: Andrey F <firsan777@mail.ru> Co-authored-by: Angelk90 <angelo.k90@hotmail.it> Co-authored-by: Chethan <76928501+ch3thanhs@users.noreply.github.com> Co-authored-by: Danr <mdp43140@gmail.com> Co-authored-by: David Svane <davidcygnus@users.noreply.hosted.weblate.org> Co-authored-by: Deleted User <noreply+77891@weblate.org> Co-authored-by: DuninduH <mateyh37@gmail.com> Co-authored-by: Eric <zxmegaxqug@hldrive.com> Co-authored-by: Fjuro <ifjuro@proton.me> Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com> Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me> Co-authored-by: Heidhou chazanouvha <Heidhou@gmail.com> Co-authored-by: Igor Rückert <igorruckert@yahoo.com.br> Co-authored-by: Igor Sorocean <sorocean.igor@gmail.com> Co-authored-by: Ihfandi <ihfandicahyo@gmail.com> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Jan Layola <gilajan@protonmail.com> Co-authored-by: Jeff Huang <s8321414@gmail.com> Co-authored-by: Juan Martinez <jjml.nipon@gmail.com> Co-authored-by: KarmaKat <lloydwestbury@gmail.com> Co-authored-by: Kuko <kuko7@protonmail.ch> Co-authored-by: LiJu09 <lisojuraj@gmail.com> Co-authored-by: Martin Constantino–Bodin <martin.bodin@ens-lyon.org> Co-authored-by: Mehmet <mehmetyalcin.0103@gmail.com> Co-authored-by: Michalis <michalisntovas@yahoo.gr> Co-authored-by: Milan <mobrcian@hotmail.com> Co-authored-by: Milo Ivir <mail@milotype.de> Co-authored-by: NEXI <nexiphotographer@gmail.com> Co-authored-by: Nils Van Zuijlen <nils.van-zuijlen@mailo.com> Co-authored-by: Nista <42772160+Nista11@users.noreply.github.com> Co-authored-by: Oğuz Ersen <oguz@ersen.moe> Co-authored-by: P.O <rasmusson.mikael@protonmail.com> Co-authored-by: Philip Goto <philip.goto@gmail.com> Co-authored-by: Pi-Cla <pirateclip@protonmail.com> Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com> Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com> Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org> Co-authored-by: Ray <ray@users.noreply.hosted.weblate.org> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Scrambled777 <weblate.scrambled777@simplelogin.com> Co-authored-by: Sergio Marques <so.boston.android@gmail.com> Co-authored-by: ShareASmile <aapshergill@gmail.com> Co-authored-by: Subbarayudu <raidu.g6@gmail.com> Co-authored-by: Subham Jena <subhamjena8465@gmail.com> Co-authored-by: T1z3n <info@njbraun.de> Co-authored-by: Terry Louwers <t.louwers@gmail.com> Co-authored-by: Vasilis K <skyhirules@gmail.com> Co-authored-by: VfBFan <VfBFan@users.noreply.hosted.weblate.org> Co-authored-by: Xəyyam Qocayev <xxmn77@gmail.com> Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com> Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl> Co-authored-by: cat <158170307+cultcats@users.noreply.github.com> Co-authored-by: ds-z <drazen.sostaric01@gmail.com> Co-authored-by: dyare darbani <darbanidyare@gmail.com> Co-authored-by: fsbat0 <fsbat0@users.noreply.hosted.weblate.org> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: hshbuk <hsh.bukchin@gmail.com> Co-authored-by: jspast <joao.pastorello@protonmail.com> Co-authored-by: kuragehime <kuragehime641@gmail.com> Co-authored-by: ngocanhtve <ngocanh.tve@gmail.com> Co-authored-by: pjammo <adrianoghr@hotmail.it> Co-authored-by: ssantos <ssantos@web.de> Co-authored-by: trunars <trunars@gmail.com> Co-authored-by: v1s7 <v1s7@users.noreply.hosted.weblate.org> Co-authored-by: Åzze <laitinen.jere222@gmail.com> Co-authored-by: Çağla Pickaxe <caglapickaxe@gmail.com> Co-authored-by: Макар Разин <makarrazin14@gmail.com> Co-authored-by: CloudyRowly <76801836+CloudyRowly@users.noreply.github.com> Co-authored-by: Mohammed Anas <triallax@tutanota.com> Co-authored-by: ge78fug <ge78fug@mytum.de> Co-authored-by: bg1722 <bg1722> Co-authored-by: pratyaksh1610 <pratyakshkhuranaofficial@gmail.com> Co-authored-by: Apious <apious@kakao.com> Co-authored-by: Eduardo Malaspina <vaio0@swismail.com> Co-authored-by: Fjuro <fjuro@alius.cz> Co-authored-by: Linerly <linerly@proton.me> Co-authored-by: Michael Moroni <michaelmoroni@disroot.org> Co-authored-by: Tim Trek <T.Trek@byom.de> Co-authored-by: Tấn Lực Trương <september122022ios16@gmail.com> Co-authored-by: rehork <cooky@e.email> Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org> Co-authored-by: Ajeje Brazorf <lmelonimamo@yahoo.it> Co-authored-by: AudricV <AudricV@users.noreply.hosted.weblate.org> Co-authored-by: Flavian <3zorro.1@gmail.com> Co-authored-by: Jonatan Nyberg <jonatan@autistici.org> Co-authored-by: Jose Delvani <delvani.eletricista@gmail.com> Co-authored-by: MS-PC <MSPCtranslator@gmail.com> Co-authored-by: ShareASmile <ShareASmile@users.noreply.hosted.weblate.org> Co-authored-by: abhijithkjg <abhijithkj2001@gmail.com> Co-authored-by: kaajjo <claymanoff@gmail.com> Co-authored-by: yosrinajar <yosron3@gmail.com> Co-authored-by: zeineb-b <zeinebbouhejba21@gmail.com>
This PR adds support for the new rolling out YouTube comments data.
However, support for formatting (italic, strikethrough, bold, ...) has been not already added to attributed descriptions, this means that this PR introduces a regression for comments (and the relevant tests will fail).
This should be done in this PR, which would also apply this fix for video descriptions (hence the draft status), I need help about that (I can of course provide data to add this support).
I also improved the current comments code by removing outdated comment renderer data.
Fixes TeamNewPipe/NewPipe#10808.