X-Git-Url: https://git.ao2.it/tweeper.git/blobdiff_plain/25c3e276f01838c8fa55e9ca59f01d2707392988..ffca987d457b748c0a95da5caa5b2143ec370f53:/tweeper.php diff --git a/tweeper.php b/tweeper.php index ff98ab7..bcc85fe 100644 --- a/tweeper.php +++ b/tweeper.php @@ -1,9 +1,10 @@ + * Copyright (C) 2013-2020 Antonio Ospite * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,10 +38,10 @@ function is_cli() { */ function usage($argv) { if (is_cli()) { - $usage = "{$argv[0]} [-e|-h|--help] \n"; + $usage = "{$argv[0]} [-e|-m <0|1>|-u <0|1>|-v <0|1>|-h|--help] \n"; } else { - $usage = htmlentities("{$_SERVER['SCRIPT_NAME']}?src_url=&generate_enclosure=<0|1>"); + $usage = htmlentities("{$_SERVER['SCRIPT_NAME']}?src_url=&generate_enclosure=<0|1>&show_usernames=<0|1>&show_multimedia=<0|1>&verbose_output=<0|1>"); } return "usage: $usage"; @@ -50,21 +51,54 @@ function usage($argv) { * Parse command line options. */ function parse_options_cli($argv, $argc) { - $options = array( + $options = [ 'generate_enclosure' => FALSE, - ); + 'show_usernames' => TRUE, + 'show_multimedia' => TRUE, + 'verbose_output' => TRUE, + ]; if ($argc < 2) { return $options; } - $cli_options = getopt("eh", array("help")); + $cli_options = getopt("em:u:v:h", ["help"]); foreach ($cli_options as $opt => $val) { switch ($opt) { case 'e': $options['generate_enclosure'] = TRUE; break; + case 'm': + $ret = filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); + if (NULL === $ret) { + fwrite(STDERR, "Invalid argument for the -m option.\n"); + fwrite(STDERR, usage($argv)); + exit(1); + } + $options['show_multimedia'] = $val; + break; + + case 'u': + $ret = filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); + if (NULL === $ret) { + fwrite(STDERR, "Invalid argument for the -u option.\n"); + fwrite(STDERR, usage($argv)); + exit(1); + } + $options['show_usernames'] = $val; + break; + + case 'v': + $ret = filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); + if (NULL === $ret) { + fwrite(STDERR, "Invalid argument for the -v option.\n"); + fwrite(STDERR, usage($argv)); + exit(1); + } + $options['verbose_output'] = $val; + break; + case 'h': case 'help': echo usage($argv); @@ -76,7 +110,9 @@ function parse_options_cli($argv, $argc) { } } - $options['src_url'] = $argv[count($cli_options) + 1]; + // For now assume that the URL is the lest argument, in the future we could + // switch to PHP >= 7.1 and use the $optind argument of getopt(). + $options['src_url'] = array_pop($argv); return $options; } @@ -85,9 +121,12 @@ function parse_options_cli($argv, $argc) { * Parse options passed from a query string. */ function parse_options_query_string() { - $options = array( + $options = [ 'generate_enclosure' => FALSE, - ); + 'show_usernames' => TRUE, + 'show_multimedia' => TRUE, + 'verbose_output' => TRUE, + ]; if (isset($_GET['src_url'])) { $options['src_url'] = $_GET['src_url']; @@ -97,6 +136,18 @@ function parse_options_query_string() { $options['generate_enclosure'] = $_GET['generate_enclosure'] == 1; } + if (isset($_GET['show_multimedia'])) { + $options['show_multimedia'] = $_GET['show_multimedia'] != 0; + } + + if (isset($_GET['show_usernames'])) { + $options['show_usernames'] = $_GET['show_usernames'] != 0; + } + + if (isset($_GET['verbose_output'])) { + $options['verbose_output'] = $_GET['verbose_output'] != 0; + } + return $options; } @@ -114,7 +165,7 @@ if (!isset($options['src_url'])) { exit(1); } -$tweeper = new Tweeper($options['generate_enclosure']); +$tweeper = new Tweeper($options['generate_enclosure'], $options['show_usernames'], $options['show_multimedia'], $options['verbose_output']); $output = $tweeper->tweep($options['src_url']); if (is_null($output)) { exit(1);