Merge remote-tracking branch 'upstream/develop' into media-handling

This commit is contained in:
Michael 2021-04-26 09:01:26 +00:00
commit f25c3f4619
7 changed files with 290 additions and 8 deletions

View file

@ -1,10 +1,68 @@
Version 2021.03 (unreleased) Version 2021.04 (2021-04-26)
Friendica Core Friendica Core
Removed the frontend worker [annando] Updates to the translations BG, DE, EN-US, ES, HU, IT, RU [translation teams]
Updates to the themes (frio) [Extarys, MrPetovan]
Updates to the documentation [tobiasd, urbalazs]
General code cleanup [annando, MrPetovan, Quix0r]
Enhanced the babel functionality to work with some addons [MrPetovan]
Enhanced the import of mails [annando]
Enhanced the PHP8 compatibility [annando, nupplaphil, realkinetix]
Enhanced federation with diaspora*, Peertube, Pleroma [annando]
Enhanced the admin panel federation overview [annando]
Enhanced the federated deletion of items [annando]
Enhanced the usability of Friendica in containers [nupplaphil]
Enhanced the handling of contact avatars [annando]
Enhanced the display of shared postings [annando]
Enhanced the process of deleting items [annando]
Enhanced the trending tags [annando]
Enhanced the maintenance page [MrPetovan]
Enhanced the performance [annando]
Enhanced the PWA [Extarys]
Enhanced the handling of private messages [fabrixxm]
Enhanced the video BBCode tag [MrPetovan]
Enhanced the installation wizard [fabrixxm]
Enhanced the handling of #tags [MrPetovan]
Enhanced the handling of audio attachments [annando]
Moved API endpoints to pin, star, ignore and like items [MrPetovan]
Updated the composer dependencies [MrPetovan]
Reworked the database structure [annando]
Fixed a bug in accessing uexport and uimport [MrPetovan]
Fixed a bug while logging [nupplaphil]
Fixed a bug handling legacy photo storage [annando]
Fixed a bug while parsing fetched HTML [annando]
Fixed a bug that prevented images to be fetched [annando]
Fixed a bug that caused content being handled for expired users [annando]
Fixed some problems of handling OEmbed content [MrPetovan]
Fixed a bug in the storage move command [fabrixxm, utzer]
Fixed a bug in the mime type handling [jurassic-c]
Fixed a problem with the /parseurl path [MrPetovan]
Fixed a problem with mentions in the summary of a posting [annando]
Fixed a bug with the endless scroll in saved folders [annando]
Removed the front-end worker [annando]
Added a security.txt file to the repository [MrPetovan]
Added remember device setting for the 2FA [MrPetovan]
Added the possibility to block tags from the trending tags [annando]
Added the possibility to chmod proxied files [Quix0r]
Friendica Addons Friendica Addons
Updated to the translations BG, DE, EN-US, ES, HU, IT [translation teams]
Adapted the addons to the new database schema [annando]
Adapted the addons to the new class structure [annando, MrPetovan]
deprecated flash based addons (sniper, mahjongg) [urbalazs]
mailstream
better URL handling [mexon]
smileybutton addon was reworked [MrPetovan]
twitter
Fixed an OEmbed problem with URL handling [MrPetovan]
Improved handling of Photo postings [annando]
Closed Issues Closed Issues
8910, 9402, 9640, 9677, 9698, 9716, 9733, 9743, 9746, 9753, 9761,
9764, 9767, 9777, 9782, 9789, 9799, 9811, 9814, 9820, 9827, 9846,
9854, 9856, 9872, 9875, 9879, 9881, 9885, 9895, 9905, 9907, 9912,
9914, 9929, 9936, 9948, 9950, 9962, 9971, 9975, 9977, 9980, 9996,
10017, 10032, 10041, 10047, 10050, 10068, 10105, 10107, 10110,
10156
Version 2021.01 (2021-01-04) Version 2021.01 (2021-01-04)
Friendica Core Friendica Core

View file

@ -43,6 +43,7 @@ Beluga
Ben Ben
Ben Roberts Ben Roberts
ben-utzer ben-utzer
Beringer Zsolt
BinkaDroid BinkaDroid
Bjoessi Bjoessi
bufalo1973 bufalo1973
@ -58,6 +59,7 @@ Christian M. Grube
Christian Vogeley Christian Vogeley
Christian Wiwie Christian Wiwie
Cohan Robinson Cohan Robinson
Colby Sollars
Copiis Praeesse Copiis Praeesse
CrystalStiletto CrystalStiletto
Cyboulette Cyboulette
@ -87,6 +89,7 @@ Eric Côté
erik erik
Erkan Yilmaz Erkan Yilmaz
Eugene Veresk Eugene Veresk
Extarys
Fabian Dost Fabian Dost
Fabio Comuni Fabio Comuni
felixgilles felixgilles
@ -106,6 +109,7 @@ Gregory Smith
guzzisti guzzisti
Haakon Meland Eriksen Haakon Meland Eriksen
Hans Meine Hans Meine
hauke
Hauke Hauke
Hauke Altmann Hauke Altmann
Herbert Thielen Herbert Thielen
@ -179,6 +183,7 @@ mytbk
nathilia-peirce nathilia-peirce
Nicola Spanti Nicola Spanti
nobody nobody
nupplaPhil
Olaf Conradi Olaf Conradi
Oliver Oliver
Olivier Olivier
@ -203,6 +208,7 @@ R C
Rabuzarus Rabuzarus
Radek Radek
Rafael Garau Rafael Garau
Rafael Kalachev
Rain Hawk Rain Hawk
Rainulf Pineda Rainulf Pineda
Ralf Thees Ralf Thees
@ -227,6 +233,7 @@ Samuli Valavuo
Sandro Santilli Sandro Santilli
Sebastian Egbers Sebastian Egbers
sella sella
Senex Petrovic
Seth Seth
Silke Meyer Silke Meyer
Simon L'nu Simon L'nu
@ -243,6 +250,7 @@ Sveinn í Felli
Sven Anders Sven Anders
Sylke Vicious Sylke Vicious
Sylvain Lagacé Sylvain Lagacé
szymon.filip
Sérgio Lima Sérgio Lima
Taekus Taekus
Tazman DeVille Tazman DeVille
@ -270,12 +278,12 @@ U-SOUND\mike
ufic ufic
Ulf Rompe Ulf Rompe
Unknown Unknown
Valvin A utzer
Valvin
Vasudev Kamath Vasudev Kamath
Vasya Novikov Vasya Novikov
Vinzenz Vietzke Vinzenz Vietzke
vislav vislav
vladimir N
Vladimir Núñez Vladimir Núñez
VVelox VVelox
Vít Šesták 'v6ak' Vít Šesták 'v6ak'

View file

@ -1 +1 @@
2021.03-rc 2021.06-dev

View file

@ -37,8 +37,8 @@ use Friendica\Util\BasePath;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
define('FRIENDICA_PLATFORM', 'Friendica'); define('FRIENDICA_PLATFORM', 'Friendica');
define('FRIENDICA_CODENAME', 'Red Hot Poker'); define('FRIENDICA_CODENAME', 'Siberian Iris');
define('FRIENDICA_VERSION', '2021.03-rc'); define('FRIENDICA_VERSION', '2021.06-dev');
define('DFRN_PROTOCOL_VERSION', '2.23'); define('DFRN_PROTOCOL_VERSION', '2.23');
define('NEW_TABLE_STRUCTURE_VERSION', 1288); define('NEW_TABLE_STRUCTURE_VERSION', 1288);

213
src/Console/Addon.php Normal file
View file

@ -0,0 +1,213 @@
<?php
/**
* @copyright Copyright (C) 2021, Friendica
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Console;
use Console_Table;
use Friendica\App;
use Friendica\Content\Pager;
use Friendica\Core\L10n;
use Friendica\Core\Addon as AddonCore;
use Friendica\Database\Database;
use Friendica\Util\Strings;
use RuntimeException;
/**
* tool to manage addons on the current node
*/
class Addon extends \Asika\SimpleConsole\Console
{
protected $helpOptions = ['h', 'help', '?'];
/**
* @var App\Mode
*/
private $appMode;
/**
* @var L10n
*/
private $l10n;
/**
* @var Database
*/
private $dba;
protected function getHelp()
{
$help = <<<HELP
console user - Modify addon settings per console commands.
Usage
bin/console addon list all [-h|--help|-?] [-v]
bin/console addon list enabled [-h|--help|-?] [-v]
bin/console addon list disabled [-h|--help|-?] [-v]
bin/console addon enable <addonname> [-h|--help|-?] [-v]
bin/console addon disable <addonname> [-h|--help|-?] [-v]
Description
Modify addon settings per console commands.
Options
-h|--help|-? Show help information
-v Show more debug information
HELP;
return $help;
}
public function __construct(App\Mode $appMode, L10n $l10n, Database $dba, array $argv = null)
{
parent::__construct($argv);
$this->appMode = $appMode;
$this->l10n = $l10n;
$this->dba = $dba;
AddonCore::loadAddons();
}
protected function doExecute()
{
if ($this->getOption('v')) {
$this->out('Class: ' . __CLASS__);
$this->out('Arguments: ' . var_export($this->args, true));
$this->out('Options: ' . var_export($this->options, true));
}
if (count($this->args) == 0) {
$this->out($this->getHelp());
return 0;
}
if ($this->appMode->isInstall()) {
throw new RuntimeException('Database isn\'t ready or populated yet');
}
$command = $this->getArgument(0);
switch ($command) {
case 'list':
return $this->list();
case 'enable':
return $this->enable();
case 'disable':
return $this->disable();
default:
throw new \Asika\SimpleConsole\CommandArgsException('Wrong command.');
}
}
/**
* Lists plugins
*
* @return int Return code of this command
*
* @throws \Exception
*/
private function list()
{
$subCmd = $this->getArgument(1);
$table = new Console_Table();
switch ($subCmd) {
case 'all':
$table->setHeaders(['Name', 'Enabled']);
break;
case 'enabled':
case 'disabled':
$table->setHeaders(['Name']);
break;
default:
$this->out($this->getHelp());
return false;
}
foreach (AddonCore::getAvailableList() as $addon) {
$addon_name = $addon[0];
$enabled = AddonCore::isEnabled($addon_name) ? "enabled" : "disabled";
switch ($subCmd) {
case 'all':
$table->addRow([$addon_name, $enabled]);
break;
case 'enabled':
if (!$enabled) {
continue 2;
}
$table->addRow([$addon_name]);
case 'disabled':
if ($enabled) {
continue 2;
}
$table->addRow([$addon_name]);
break;
}
}
$this->out($table->getTable());
}
/**
* Enables an addon
*
* @return int Return code of this command
*
* @throws \Exception
*/
private function enable()
{
$addonname = $this->getArgument(1);
$addon = Strings::sanitizeFilePathItem($addonname);
if (!is_file("addon/$addon/$addon.php")) {
throw new RuntimeException($this->l10n->t('Addon not found'));
}
if (AddonCore::isEnabled($addon)) {
throw new RuntimeException($this->l10n->t('Addon already enabled'));
}
AddonCore::install($addon);
return 0;
}
/**
* Disables an addon
*
* @return int Return code of this command
*
* @throws \Exception
*/
private function disable()
{
$addonname = $this->getArgument(1);
$addon = Strings::sanitizeFilePathItem($addonname);
if (!is_file("addon/$addon/$addon.php")) {
throw new RuntimeException($this->l10n->t('Addon not found'));
}
if (!AddonCore::isEnabled($addon)) {
throw new RuntimeException($this->l10n->t('Addon already disabled'));
}
AddonCore::uninstall($addon);
return 0;
}
}

View file

@ -292,7 +292,8 @@ class PageInfo
} }
// Stripping link labels that include a shortened version of the URL // Stripping link labels that include a shortened version of the URL
if (strpos($url, trim($match[1], '.…')) !== false) { $trimMatch = trim($match[1], '.…');
if (!empty($trimMatch) && strpos($url, $trimMatch) !== false) {
return ''; return '';
} }

View file

@ -44,6 +44,7 @@ class Console extends \Asika\SimpleConsole\Console
Usage: bin/console [--version] [-h|--help|-?] <command> [<args>] [-v] Usage: bin/console [--version] [-h|--help|-?] <command> [<args>] [-v]
Commands: Commands:
addon Addon management
cache Manage node cache cache Manage node cache
config Edit site config config Edit site config
createdoxygen Generate Doxygen headers createdoxygen Generate Doxygen headers
@ -74,6 +75,7 @@ HELP;
} }
protected $subConsoles = [ protected $subConsoles = [
'addon' => Friendica\Console\Addon::class,
'cache' => Friendica\Console\Cache::class, 'cache' => Friendica\Console\Cache::class,
'config' => Friendica\Console\Config::class, 'config' => Friendica\Console\Config::class,
'createdoxygen' => Friendica\Console\CreateDoxygen::class, 'createdoxygen' => Friendica\Console\CreateDoxygen::class,