use Asika\SimpleConsole\CommandArgsException;
use Asika\SimpleConsole\Console;
use Console_Table;
-use Friendica\BaseObject;
use Friendica\Core\Config\Configuration;
/**
protected $helpOptions = ['h', 'help', '?'];
+ /**
+ * @var Configuration
+ */
+ private $config;
+
protected function getHelp()
{
$help = <<<HELP
-console serverblock - Manage blocked servers
+console serverblock - Manage blocked server domain patterns
Usage
bin/console serverblock [-h|--help|-?] [-v]
- bin/console serverblock add <server> <reason> [-h|--help|-?] [-v]
- bin/console serverblock remove <server> [-h|--help|-?] [-v]
+ bin/console serverblock add <pattern> <reason> [-h|--help|-?] [-v]
+ bin/console serverblock remove <pattern> [-h|--help|-?] [-v]
Description
- With this tool, you can list the current blocked servers
- or you can add / remove a blocked server from the list
+ With this tool, you can list the current blocked server domain patterns
+ or you can add / remove a blocked server domain pattern from the list.
+
+ Patterns are case-insensitive shell wildcard comprising the following special characters:
+ - * : Any number of characters
+ - ? : Any single character
+ - [<char1><char2>...] : char1 or char2 or...
Options
-h|--help|-? Show help information
return $help;
}
- protected function doExecute()
+ public function __construct(Configuration $config, $argv = null)
{
- $a = BaseObject::getApp();
+ parent::__construct($argv);
+ $this->config = $config;
+ }
+
+ protected function doExecute()
+ {
if (count($this->args) == 0) {
- $this->printBlockedServers($a->getConfig());
+ $this->printBlockedServers($this->config);
return 0;
}
switch ($this->getArgument(0)) {
case 'add':
- return $this->addBlockedServer($a->getConfig());
+ return $this->addBlockedServer($this->config);
case 'remove':
- return $this->removeBlockedServer($a->getConfig());
+ return $this->removeBlockedServer($this->config);
default:
throw new CommandArgsException('Unknown command.');
break;
{
$table = new Console_Table();
$table->setHeaders(['Domain', 'Reason']);
- $blocklist = $config->get('system', 'blocklist');
+ $blocklist = $config->get('system', 'blocklist', []);
foreach ($blocklist as $domain) {
$table->addRow($domain);
}
$update = false;
- $currBlocklist = $config->get('system', 'blocklist');
+ $currBlocklist = $config->get('system', 'blocklist', []);
$newBlockList = [];
foreach ($currBlocklist as $blocked) {
if ($blocked['domain'] === $domain) {
$found = false;
- $currBlocklist = $config->get('system', 'blocklist');
+ $currBlocklist = $config->get('system', 'blocklist', []);
$newBlockList = [];
foreach ($currBlocklist as $blocked) {
if ($blocked['domain'] === $domain) {