<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
$help = <<<HELP
console serverblock - Manage blocked server domain patterns
Usage
- bin/console serverblock [-h|--help|-?] [-v]
- bin/console serverblock add <pattern> <reason> [-h|--help|-?] [-v]
- bin/console serverblock remove <pattern> [-h|--help|-?] [-v]
- bin/console serverblock export <filename>
- bin/console serverblock import <filename>
+ bin/console serverblock [-h|--help|-?] [-v]
+ bin/console serverblock add <pattern> <reason> [-h|--help|-?] [-v]
+ bin/console serverblock remove <pattern> [-h|--help|-?] [-v]
+ bin/console serverblock export <filename>
+ bin/console serverblock import <filename>
Description
- 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.
- Using the export and import options you can share your server blocklist
- with other node admins by CSV files.
-
- Patterns are case-insensitive shell wildcard comprising the following special characters:
- - * : Any number of characters
- - ? : Any single character
- - [<char1><char2>...] : char1 or char2 or...
+ 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.
+ Using the export and import options you can share your server blocklist
+ with other node admins by CSV files.
+
+ 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
- -v Show more debug information.
+ -h|--help|-? Show help information
+ -v Show more debug information.
HELP;
return $help;
}
$filename = $this->getArgument(1);
$blocklist = $config->get('system', 'blocklist', []);
$fp = fopen($filename, 'w');
+ if (!$fp) {
+ throw new Exception(sprintf('The file "%s" could not be created.', $filename));
+ }
foreach ($blocklist as $domain) {
fputcsv($fp, $domain);
}
$filename = $this->getArgument(1);
$currBlockList = $config->get('system', 'blocklist', []);
$newBlockList = [];
- if (($fp = fopen($filename, 'r')) !== FALSE) {
- while (($data = fgetcsv($fp, 1000, ',')) !== FALSE) {
+ if (($fp = fopen($filename, 'r')) !== false) {
+ while (($data = fgetcsv($fp, 1000, ',')) !== false) {
$domain = $data[0];
- if (count($data) == 0) {
+ if (count($data) == 0) {
$reason = self::DEFAULT_REASON;
} else {
$reason = $data[1];
'domain' => $domain,
'reason' => $reason
];
- if (!in_array($data, $newBlockList))
+ if (!in_array($data, $newBlockList)) {
$newBlockList[] = $data;
+ }
}
foreach ($currBlockList as $blocked) {
- if (!in_array($blocked, $newBlockList))
+ if (!in_array($blocked, $newBlockList)) {
$newBlockList[] = $blocked;
+ }
}
if ($config->set('system', 'blocklist', $newBlockList)) {
$this->out(sprintf("Entries from %s that were not blocked before are now blocked", $filename));
return 1;
}
+ } else {
+ throw new Exception(sprintf('The file "%s" could not be opened for importing', $filename));
}
}
/**
* Prints the whole list of blocked domains including the reason
*
- /* @param IConfig $config
+ * @param IConfig $config
*/
private function printBlockedServers(IConfig $config)
{