#!/usr/bin/env php . */ define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); $helptext = << Prints site information for the domain given END_OF_SITEFORDOMAIN_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; require_once INSTALLDIR.'/plugins/EmailRegistration/extlib/effectiveTLDs.inc.php'; require_once INSTALLDIR.'/plugins/EmailRegistration/extlib/regDomain.inc.php'; function nicknameAvailable($nickname) { $sn = Status_network::staticGet('nickname', $nickname); return !empty($sn); } function nicknameForDomain($domain) { global $tldTree; $registered = getRegisteredDomain($domain, $tldTree); $parts = explode('.', $registered); $base = $parts[0]; if (nicknameAvailable($base)) { return $base; } $domainish = str_replace('.', '-', $registered); if (nicknameAvailable($domainish)) { return $domainish; } $i = 1; // We don't need to keep doing this forever while ($i < 1024) { $candidate = $domainish.'-'.$i; if (nicknameAvailable($candidate)) { return $candidate; } } return null; } $raw = $args[0]; $parts = explode('@', $raw); if (count($parts) == 1) { $domain = $parts[0]; } else { $domain = $parts[1]; } $domain = strtolower(trim($domain)); $nickname = nicknameForDomain($domain); if (empty($nickname)) { throw ClientException("No candidate found."); } else { print $nickname; print "\n"; }