#!/usr/bin/env php . /** * @package GNUsocial * @author Evan Prodromou * @copyright 2009, StatusNet, Inc. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ // Abort if called from a web server define('INSTALLDIR', dirname(__DIR__)); define('PUBLICDIR', INSTALLDIR . DIRECTORY_SEPARATOR . 'public'); $shortoptions = 't:w:'; $longoptions = array('tagged=', 'not-tagged='); $helptext = <<find()) { while ($sn->fetch()) { print "$sn->nickname\n"; } } return; } function print_tagged_sites($tag) { $sn = new Status_network(); $sn->query( 'SELECT status_network.nickname '. 'FROM status_network INNER JOIN status_network_tag '. 'ON status_network.site_id = status_network_tag.site_id '. "WHERE status_network_tag.tag = '" . $sn->escape($tag) . "'" ); while ($sn->fetch()) { print "$sn->nickname\n"; } return; } function print_untagged_sites($tag) { $sn = new Status_network(); $sn->query( 'SELECT status_network.nickname '. 'FROM status_network '. 'WHERE NOT EXISTS '. '(SELECT tag FROM status_network_tag '. 'WHERE site_id = status_network.site_id '. "AND tag = '" . $sn->escape($tag) . "')" ); while ($sn->fetch()) { print "$sn->nickname\n"; } return; } if (have_option('t', 'tagged')) { $tag = get_option_value('t', 'tagged'); print_tagged_sites($tag); } elseif (have_option('w', 'not-tagged')) { $tag = get_option_value('w', 'not-tagged'); print_untagged_sites($tag); } else { print_all_sites(); }