GitHub/WoltLab/WCF.git
3 years agoRemove thumbnail generation from MediaImporter
Tim Düsterhus [Tue, 27 Apr 2021 12:09:36 +0000 (14:09 +0200)]
Remove thumbnail generation from MediaImporter

This is useless, because it can be performed using MediaRebuildDataWorker. It
might also break the import process for borked source images.

see 44f9dba4c98359b53679cdac3bb43982e716a7e1

3 years agoMerge branch '5.2' into 5.3
Matthias Schmidt [Mon, 26 Apr 2021 14:20:42 +0000 (16:20 +0200)]
Merge branch '5.2' into 5.3

3 years agoDo not write empty i18n package information in `package.xml`
Matthias Schmidt [Mon, 26 Apr 2021 14:20:34 +0000 (16:20 +0200)]
Do not write empty i18n package information in `package.xml`

3 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Fri, 23 Apr 2021 13:28:18 +0000 (15:28 +0200)]
Merge branch '5.2' into 5.3

3 years agoMerge branch '3.1' into 5.2
Tim Düsterhus [Fri, 23 Apr 2021 13:27:49 +0000 (15:27 +0200)]
Merge branch '3.1' into 5.2

3 years agoMerge pull request #4143 from WoltLab/3.1-fix-sitemap
Tim Düsterhus [Fri, 23 Apr 2021 13:27:25 +0000 (15:27 +0200)]
Merge pull request #4143 from WoltLab/3.1-fix-sitemap

Fix generating sitemaps with factor 250 objects sitemaps

3 years agoFix generating sitemaps with factor 250 objects
joshuaruesweg [Fri, 23 Apr 2021 09:32:26 +0000 (11:32 +0200)]
Fix generating sitemaps with factor 250 objects

3 years agoMerge branch '5.2' into 5.3
Matthias Schmidt [Fri, 23 Apr 2021 06:08:01 +0000 (08:08 +0200)]
Merge branch '5.2' into 5.3

3 years agoOnly validate minimum text length if any text is given
Matthias Schmidt [Fri, 23 Apr 2021 06:07:42 +0000 (08:07 +0200)]
Only validate minimum text length if any text is given

The case of no text having been entered and the field being required is already handled separately.

3 years agoMerge pull request #4133 from WoltLab/article-update-outdated
Tim Düsterhus [Wed, 21 Apr 2021 13:08:40 +0000 (15:08 +0200)]
Merge pull request #4133 from WoltLab/article-update-outdated

Ensure that the creating of related rows uses up to date article fields

3 years agoMerge pull request #4135 from WoltLab/httprequest-close-body
Joshua Rüsweg [Wed, 21 Apr 2021 09:55:59 +0000 (11:55 +0200)]
Merge pull request #4135 from WoltLab/httprequest-close-body

Always close Guzzle response body after reading it

3 years agoAlways close Guzzle response body after reading it
joshuaruesweg [Wed, 21 Apr 2021 09:20:27 +0000 (11:20 +0200)]
Always close Guzzle response body after reading it

3 years agoMissing parameter in pagination of the article list
Marcel Werk [Wed, 21 Apr 2021 09:15:26 +0000 (11:15 +0200)]
Missing parameter in pagination of the article list

3 years agoConsider user list box conditions when using cache builder internally
Matthias Schmidt [Tue, 20 Apr 2021 14:00:42 +0000 (16:00 +0200)]
Consider user list box conditions when using cache builder internally

3 years agoEnsure that the creating of related rows uses up to date article fields
Tim Düsterhus [Tue, 20 Apr 2021 12:47:33 +0000 (14:47 +0200)]
Ensure that the creating of related rows uses up to date article fields

Previously the code would store outdated data in the search index and recent
activities when changing the article's timestamp while publishing the article
or when changing the article's author.

3 years agoMerge pull request #4127 from WoltLab/fix-user-storage-handler
Tim Düsterhus [Mon, 19 Apr 2021 11:45:19 +0000 (13:45 +0200)]
Merge pull request #4127 from WoltLab/fix-user-storage-handler

Fix requesting multiple times the UserStorage tables if no cache exists

3 years agoFix requesting multiple times the UserStorage tables if no cache exists
joshuaruesweg [Fri, 16 Apr 2021 10:38:56 +0000 (12:38 +0200)]
Fix requesting multiple times the UserStorage tables if no cache exists

3 years agoMerge branch '5.2' into 5.3
Alexander Ebert [Sat, 17 Apr 2021 10:02:09 +0000 (12:02 +0200)]
Merge branch '5.2' into 5.3

3 years agoMerge branch '3.1' into 5.2
Alexander Ebert [Sat, 17 Apr 2021 10:00:17 +0000 (12:00 +0200)]
Merge branch '3.1' into 5.2

3 years agoUpdate the number of responses that will be loaded
Alexander Ebert [Sat, 17 Apr 2021 10:00:01 +0000 (12:00 +0200)]
Update the number of responses that will be loaded

3 years agoRelease 5.3.7 5.3.7
Alexander Ebert [Fri, 16 Apr 2021 14:15:00 +0000 (16:15 +0200)]
Release 5.3.7

3 years agoFix missing space in user registration email confirm mails
joshuaruesweg [Fri, 16 Apr 2021 12:53:29 +0000 (14:53 +0200)]
Fix missing space in user registration email confirm mails

3 years agoFix newline handling in user registration notification mails
joshuaruesweg [Fri, 16 Apr 2021 12:52:05 +0000 (14:52 +0200)]
Fix newline handling in user registration notification mails

3 years agoFix `UserNotification::markAllAsConfirmed()` for no unconfirmed notifications
Matthias Schmidt [Thu, 15 Apr 2021 12:33:16 +0000 (14:33 +0200)]
Fix `UserNotification::markAllAsConfirmed()` for no unconfirmed notifications

See 81982c717bbb55c36306ede938dc189f01f85592

3 years agoMerge branch '5.3' of https://github.com/WoltLab/WCF into 5.3 5.3.6
Alexander Ebert [Wed, 14 Apr 2021 12:12:00 +0000 (14:12 +0200)]
Merge branch '5.3' of https://github.com/WoltLab/WCF into 5.3

3 years agoRelease 5.3.6
Alexander Ebert [Wed, 14 Apr 2021 12:10:01 +0000 (14:10 +0200)]
Release 5.3.6

3 years agoRelease 5.3.14
Alexander Ebert [Wed, 14 Apr 2021 12:10:01 +0000 (14:10 +0200)]
Release 5.3.14

3 years agoMerge branch '5.2' into 5.3
Alexander Ebert [Wed, 14 Apr 2021 12:06:16 +0000 (14:06 +0200)]
Merge branch '5.2' into 5.3

3 years agoUpdating minified JavaScript files
WoltLab [Wed, 14 Apr 2021 12:01:06 +0000 (12:01 +0000)]
Updating minified JavaScript files

3 years agoRelease 5.2.14 5.2.14
Alexander Ebert [Wed, 14 Apr 2021 11:39:31 +0000 (13:39 +0200)]
Release 5.2.14

3 years agoMerge branch '3.1' into 5.2
Alexander Ebert [Wed, 14 Apr 2021 11:36:56 +0000 (13:36 +0200)]
Merge branch '3.1' into 5.2

3 years agoRelease 3.1.22 3.1.22
Alexander Ebert [Wed, 14 Apr 2021 11:20:59 +0000 (13:20 +0200)]
Release 3.1.22

3 years agoAdd missing permissions check when removing moderated content
Matthias Schmidt [Tue, 13 Apr 2021 11:13:38 +0000 (13:13 +0200)]
Add missing permissions check when removing moderated content

3 years agoImproved visuals for code boxes on small screens
Alexander Ebert [Wed, 14 Apr 2021 08:57:36 +0000 (10:57 +0200)]
Improved visuals for code boxes on small screens

3 years agoOnly show top add button on empty captcha question list page
Matthias Schmidt [Wed, 14 Apr 2021 08:21:14 +0000 (10:21 +0200)]
Only show top add button on empty captcha question list page

Close #4072

3 years agoCorrectly handle a missing .htaccess in the tmp/ folder
Tim Düsterhus [Tue, 13 Apr 2021 14:59:42 +0000 (16:59 +0200)]
Correctly handle a missing .htaccess in the tmp/ folder

see be81c8401ba16bd1f84fe95f8ca71c372cf548ec

3 years agoMerge pull request #4118 from WoltLab/db_fk_future_tables
Matthias Schmidt [Tue, 13 Apr 2021 14:36:24 +0000 (16:36 +0200)]
Merge pull request #4118 from WoltLab/db_fk_future_tables

Properly handle foreign keys referencing tables created later on

3 years agoProperly handle foreign keys referencing tables created later on
Matthias Schmidt [Tue, 13 Apr 2021 14:21:54 +0000 (16:21 +0200)]
Properly handle foreign keys referencing tables created later on

If a foreign key of the first table references a table to be created later on, this foreign key can only be created once the referenced table was created.

3 years agoCheck if foreign key references unknown database table
Matthias Schmidt [Tue, 13 Apr 2021 14:01:45 +0000 (16:01 +0200)]
Check if foreign key references unknown database table

3 years agoMerge branch '5.3' of https://github.com/WoltLab/WCF into 5.3
Alexander Ebert [Tue, 13 Apr 2021 12:13:03 +0000 (14:13 +0200)]
Merge branch '5.3' of https://github.com/WoltLab/WCF into 5.3

3 years agoAvoid one disk write with every request
Alexander Ebert [Tue, 13 Apr 2021 12:12:54 +0000 (14:12 +0200)]
Avoid one disk write with every request

3 years agoMerge branch '5.2' into 5.3
Matthias Schmidt [Tue, 13 Apr 2021 12:03:37 +0000 (14:03 +0200)]
Merge branch '5.2' into 5.3

3 years agoFix `reloadPageOnSuccess` from different clipboard actions for same object type
Matthias Schmidt [Tue, 13 Apr 2021 12:02:59 +0000 (14:02 +0200)]
Fix `reloadPageOnSuccess` from different clipboard actions for same object type

If there are multiple clipboard action classes for the same object type, for example in case a plugin adds further clipboard actions, only the `reloadPageOnSuccess` data of the first clipboard action instance is used instead of collecting the data from all relevant clipboard action instances.

See #2584

3 years agoMerge pull request #4116 from WoltLab/html-processing-performance
Alexander Ebert [Tue, 13 Apr 2021 11:27:32 +0000 (13:27 +0200)]
Merge pull request #4116 from WoltLab/html-processing-performance

Improve the performance of the HTMLOutputProcessor

3 years agoUse `XPath::query()` for its superior performance
Alexander Ebert [Mon, 12 Apr 2021 20:14:20 +0000 (22:14 +0200)]
Use `XPath::query()` for its superior performance

3 years agoUse `XPath::query()` for its superior performance
Alexander Ebert [Mon, 12 Apr 2021 20:01:30 +0000 (22:01 +0200)]
Use `XPath::query()` for its superior performance

3 years ago`XPath::query()` is much more efficient than `getElementByTagName()`
Alexander Ebert [Mon, 12 Apr 2021 19:42:29 +0000 (21:42 +0200)]
`XPath::query()` is much more efficient than `getElementByTagName()`

The test document with ~8k elements took ~0.6s using `getElementsByTagName(*)`, but only 0.03s using `query("//*")`

3 years agoInline calls in `removeNode()` to improve the simplified-html/plain performance
Alexander Ebert [Mon, 12 Apr 2021 17:30:02 +0000 (19:30 +0200)]
Inline calls in `removeNode()` to improve the simplified-html/plain performance

3 years agoAvoid updates to DOMNodeList for childNodes
Alexander Ebert [Mon, 12 Apr 2021 17:21:21 +0000 (19:21 +0200)]
Avoid updates to DOMNodeList for childNodes

3 years agoAvoid live updates to DOMNodeList
Alexander Ebert [Mon, 12 Apr 2021 17:20:54 +0000 (19:20 +0200)]
Avoid live updates to DOMNodeList

The DOMNodeList is a live collection that is updated whenever an item is removed. This can have a significant performance impact when removing a large set of nodes.

3 years agoMerge branch '5.2' into 5.3
Marcel Werk [Mon, 12 Apr 2021 15:03:22 +0000 (17:03 +0200)]
Merge branch '5.2' into 5.3

3 years agoMerge branch '3.1' into 5.2
Marcel Werk [Mon, 12 Apr 2021 15:00:29 +0000 (17:00 +0200)]
Merge branch '3.1' into 5.2

3 years agoUpdated Google's address in the privacy policy
Marcel Werk [Mon, 12 Apr 2021 14:59:49 +0000 (16:59 +0200)]
Updated Google's address in the privacy policy

3 years agoRelease 5.3.6
Alexander Ebert [Mon, 12 Apr 2021 12:59:27 +0000 (14:59 +0200)]
Release 5.3.6

3 years agoUpdating minified JavaScript files
WoltLab [Mon, 12 Apr 2021 12:17:23 +0000 (12:17 +0000)]
Updating minified JavaScript files

3 years agoMerge pull request #4113 from WoltLab/event-all
Alexander Ebert [Mon, 12 Apr 2021 11:38:18 +0000 (13:38 +0200)]
Merge pull request #4113 from WoltLab/event-all

Add the update of wcf1_event_listener to update_com.woltlab.wcf_5.3.php

3 years agoAdd the update of wcf1_event_listener to update_com.woltlab.wcf_5.3.php
Tim Düsterhus [Mon, 12 Apr 2021 10:09:58 +0000 (12:09 +0200)]
Add the update of wcf1_event_listener to update_com.woltlab.wcf_5.3.php

… and restore update_com.woltlab.wcf_5.3.3_db.php for the users that upgraded
from 5.2.x to 5.3.3+.

3 years agoMerge branch '5.2' into 5.3
Alexander Ebert [Mon, 12 Apr 2021 10:07:15 +0000 (12:07 +0200)]
Merge branch '5.2' into 5.3

3 years agoMerge pull request #4112 from WoltLab/user-option-title
Alexander Ebert [Mon, 12 Apr 2021 10:05:22 +0000 (12:05 +0200)]
Merge pull request #4112 from WoltLab/user-option-title

Use UserOption::getTitle() where possible

3 years agoUse UserOption::getTitle() in userOptionList.tpl
Tim Düsterhus [Mon, 12 Apr 2021 09:57:46 +0000 (11:57 +0200)]
Use UserOption::getTitle() in userOptionList.tpl

This one was missed in the previous commit.

3 years agoUse UserOption::getTitle() where possible
Tim Düsterhus [Mon, 12 Apr 2021 09:53:43 +0000 (11:53 +0200)]
Use UserOption::getTitle() where possible

Not all places could be adjusted for compatibility reasons, as the `Option`
super class does not have the `getTitle()` method and as the prefix is given
explicitly.

Helper methods for the description should also be added.

see #4107

3 years agoMerge branch '5.2' into 5.3
Alexander Ebert [Mon, 12 Apr 2021 09:37:06 +0000 (11:37 +0200)]
Merge branch '5.2' into 5.3

3 years agoMerge branch '3.1' into 5.2
Alexander Ebert [Mon, 12 Apr 2021 09:36:52 +0000 (11:36 +0200)]
Merge branch '3.1' into 5.2

3 years agoReset the assignment cache on group deletion
Alexander Ebert [Mon, 12 Apr 2021 09:36:26 +0000 (11:36 +0200)]
Reset the assignment cache on group deletion

Fixes #4045

3 years agoTypo + ES5-incompatible syntax
Alexander Ebert [Mon, 12 Apr 2021 09:13:26 +0000 (11:13 +0200)]
Typo + ES5-incompatible syntax

3 years agoLogical separation of attachments in messages and signatures
Alexander Ebert [Sun, 11 Apr 2021 16:24:54 +0000 (18:24 +0200)]
Logical separation of attachments in messages and signatures

Fixes #3835

3 years agoHide the quote tooltip while dragging the touch selection
Alexander Ebert [Sat, 10 Apr 2021 14:02:36 +0000 (16:02 +0200)]
Hide the quote tooltip while dragging the touch selection

3 years agoImproved the behavior of page action buttons on mobile
Alexander Ebert [Sat, 10 Apr 2021 13:35:47 +0000 (15:35 +0200)]
Improved the behavior of page action buttons on mobile

3 years agoWork-around for the scroll position when inserting quotes on iOS
Alexander Ebert [Sat, 10 Apr 2021 12:35:53 +0000 (14:35 +0200)]
Work-around for the scroll position when inserting quotes on iOS

3 years agoDetection of pasted blob uris in iOS
Alexander Ebert [Fri, 9 Apr 2021 16:48:41 +0000 (18:48 +0200)]
Detection of pasted blob uris in iOS

3 years agoBlock the form submit if one or more editors are still in source code mode
Alexander Ebert [Fri, 9 Apr 2021 15:34:56 +0000 (17:34 +0200)]
Block the form submit if one or more editors are still in source code mode

3 years agoDetection of repeated mentions with the first mention at index 0
Alexander Ebert [Fri, 9 Apr 2021 14:38:22 +0000 (16:38 +0200)]
Detection of repeated mentions with the first mention at index 0

3 years agoWork-around for the HTML entity in notifications for reactions
Alexander Ebert [Fri, 9 Apr 2021 14:29:44 +0000 (16:29 +0200)]
Work-around for the HTML entity in notifications for reactions

3 years agoAvoid the use of gradients involving the `transparent` keyboard
Alexander Ebert [Fri, 9 Apr 2021 10:14:42 +0000 (12:14 +0200)]
Avoid the use of gradients involving the `transparent` keyboard

3 years agoUse a separate shadow link for embedded content
Alexander Ebert [Fri, 9 Apr 2021 10:07:10 +0000 (12:07 +0200)]
Use a separate shadow link for embedded content

Avoid conflicts with complex HTML inside the excerpt similar to how articles work.

3 years agoImplement `_dialogSubmit()` for confirmation dialogs
Alexander Ebert [Fri, 9 Apr 2021 09:14:36 +0000 (11:14 +0200)]
Implement `_dialogSubmit()` for confirmation dialogs

See #3234

3 years agoMerge pull request #4100 from SoftCreatR/patch-2
Tim Düsterhus [Wed, 7 Apr 2021 10:47:55 +0000 (12:47 +0200)]
Merge pull request #4100 from SoftCreatR/patch-2

Add support for youtube shorts

3 years agoMerge branch '5.2' into 5.3
Marcel Werk [Wed, 7 Apr 2021 09:54:07 +0000 (11:54 +0200)]
Merge branch '5.2' into 5.3

3 years agoLack of filtering of content from ignored users
Marcel Werk [Wed, 7 Apr 2021 09:53:54 +0000 (11:53 +0200)]
Lack of filtering of content from ignored users

3 years agoMerge pull request #4105 from WoltLab/notification-markAllAsRead
Tim Düsterhus [Wed, 7 Apr 2021 07:18:44 +0000 (09:18 +0200)]
Merge pull request #4105 from WoltLab/notification-markAllAsRead

Attempt to prevent deadlocks involving marking all notifications as read

3 years agoAttempt to prevent deadlocks involving marking all notifications as read
Tim Düsterhus [Tue, 6 Apr 2021 14:24:49 +0000 (16:24 +0200)]
Attempt to prevent deadlocks involving marking all notifications as read

The previous implementation, UPDATEing all rows with a specific userID, needed
to create pretty coarse locks on the `userID` INDEX. Specifically it also
created gap locks, preventing concurrent *creation* of INDEX records that would
have been matched.

My current understanding of MySQL's locking behavior is that the `confirmTime`
being part of the INDEX is what caused the issue:

The `userID` INDEX includes the columns userID, eventID, objectID and
confirmTime. Now consider the following:

Thread 1: Marks all notifications for userID = A as read.
Thread 2: Marks objects X, Y and Z for userID A as read.

Thread 1 will lock all existing notifications for userID = A as well as all
insertions into the `userID` INDEX with that specific userID. This includes
marking notifications as read, because this will delete the old index record
and insert a new index record with an updated confirmTime.

Thread 2 will lock the specific notifications for userID = A as well as all
insertions into the `userID` INDEX with that specific userID and objectIDs.
This includes marking notifications as read, because this will delete the old
index record and insert a new index record with an updated confirmTime.

Now consider the following timeline:

T1: Locks the gaps for userID = A.
T2: Locks the gaps for userID = A, objects X, Y, Z.

These locks are allowed to coexist:

> Gap locks in InnoDB are “purely inhibitive”, which means that their only
> purpose is to prevent other transactions from inserting to the gap.
(https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html)

T1: Wants to UPDATE the confirmTime for userID = A, object X.

-> This is prevented by the gap lock held by T2, thus T1 waits.

T2: Wants to UPDATE the confirmTime for userID = A, object X.

-> This is prevented by the gap lock held by T1, thus T2 waits.

Now we have a deadlock.

As the current query needs to UPDATE a large number of rows it is fairly slow,
holding the locks for a long time and also needing to update the rows
one-by-one. This gives other threads enough opportunity to run in-between,
wreaking havoc.

Fix this issue by first selecting the exact notifications we need to mark as
read using a simple SELECT. This SELECT should not be able to deadlock with
concurrent write statements.

Afterwards we update the notifications based off a condition matching specific
rows within the PRIMARY KEY. As these must match existing rows only, no gap
locks will be needed, thus reducing the chance to block concurrent threads.

Additionally we only need to update a very small number of rows (should be less
than 50 in the vast majority of cases), reducing the time spent in the query,
further closing the window for concurrent requests and possibly making the
process faster due to less rows being updated (and thus needing to be written
to disk).

3 years agoMerge pull request #4098 from netzhuffle/patch-4
Tim Düsterhus [Tue, 6 Apr 2021 10:20:40 +0000 (12:20 +0200)]
Merge pull request #4098 from netzhuffle/patch-4

Fix param type for handleException

3 years agoPreview images and cover photos were exported twice
Marcel Werk [Wed, 31 Mar 2021 09:16:59 +0000 (11:16 +0200)]
Preview images and cover photos were exported twice

3 years agoRemove/replace nbsp when copying code to the clipboard
Marcel Werk [Tue, 30 Mar 2021 17:54:29 +0000 (19:54 +0200)]
Remove/replace nbsp when copying code to the clipboard

3 years agoCover photo deletion was not saved properly
Marcel Werk [Tue, 30 Mar 2021 16:39:32 +0000 (18:39 +0200)]
Cover photo deletion was not saved properly

3 years agoAlways fetch package information using the default language
Marcel Werk [Tue, 30 Mar 2021 13:24:21 +0000 (15:24 +0200)]
Always fetch package information using the default language

3 years agoFixed missing language variables for error messages
Marcel Werk [Tue, 30 Mar 2021 13:08:03 +0000 (15:08 +0200)]
Fixed missing language variables for error messages

3 years agoRemoved obsolete language variables
Marcel Werk [Tue, 30 Mar 2021 13:04:08 +0000 (15:04 +0200)]
Removed obsolete language variables

3 years agoMerge branch '5.2' into 5.3
Marcel Werk [Mon, 29 Mar 2021 16:24:45 +0000 (18:24 +0200)]
Merge branch '5.2' into 5.3

3 years agoMerge branch '3.1' into 5.2
Marcel Werk [Mon, 29 Mar 2021 16:24:08 +0000 (18:24 +0200)]
Merge branch '3.1' into 5.2

3 years agoUpdate the user rank after users change their profile
Marcel Werk [Mon, 29 Mar 2021 16:23:50 +0000 (18:23 +0200)]
Update the user rank after users change their profile

3 years agoRemoved obsolete Chrome workaround for dialogs with scrollbars
Marcel Werk [Mon, 29 Mar 2021 13:52:14 +0000 (15:52 +0200)]
Removed obsolete Chrome workaround for dialogs with scrollbars

3 years agoRemoved obsolete whitespaces
Marcel Werk [Sun, 28 Mar 2021 12:29:18 +0000 (14:29 +0200)]
Removed obsolete whitespaces

3 years agoDelete trophy images when deleting tropies
Marcel Werk [Sun, 28 Mar 2021 12:13:50 +0000 (14:13 +0200)]
Delete trophy images when deleting tropies

3 years agoFixed wrong parameter type
Marcel Werk [Sun, 28 Mar 2021 12:13:14 +0000 (14:13 +0200)]
Fixed wrong parameter type

3 years agoMissing margin for trophies with images
Marcel Werk [Sun, 28 Mar 2021 11:17:59 +0000 (13:17 +0200)]
Missing margin for trophies with images

3 years agoHide comment counter when comments are disabled
Marcel Werk [Sun, 28 Mar 2021 11:02:52 +0000 (13:02 +0200)]
Hide comment counter when comments are disabled

3 years agoMade sure ids in toc are unique
Marcel Werk [Sun, 28 Mar 2021 10:48:19 +0000 (12:48 +0200)]
Made sure ids in toc are unique

3 years agoMerge branch '5.2' into 5.3
Marcel Werk [Sun, 28 Mar 2021 09:51:29 +0000 (11:51 +0200)]
Merge branch '5.2' into 5.3

3 years agoAdded support for youtube shorts
Sascha Greuel [Sun, 28 Mar 2021 09:43:58 +0000 (11:43 +0200)]
Added support for youtube shorts