X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2FYammerImport%2Fscripts%2Fyammer-import.php;h=22b6422195dc1fa9f2c9d857e47c0bbf9cdaa02c;hb=0ed9000fd34497644829a4d0ef700bdea519771f;hp=ac258e1c7d411abe620d8089696ca71454abc621;hpb=ec648fb71748fa15872eacc66144b2960800d897;p=quix0rs-gnu-social.git diff --git a/plugins/YammerImport/scripts/yammer-import.php b/plugins/YammerImport/scripts/yammer-import.php index ac258e1c7d..22b6422195 100644 --- a/plugins/YammerImport/scripts/yammer-import.php +++ b/plugins/YammerImport/scripts/yammer-import.php @@ -6,36 +6,59 @@ if (php_sapi_name() != 'cli') { define('INSTALLDIR', dirname(dirname(dirname(dirname(__FILE__))))); +$longoptions = array('verify=', 'reset'); require INSTALLDIR . "/scripts/commandline.inc"; -// temp stuff -require 'yam-config.php'; -$yam = new SN_YammerClient($consumerKey, $consumerSecret, $token, $tokenSecret); -$imp = new YammerImporter($yam); - -// First, import all the users! -// @fixme follow paging -- we only get 50 at a time -$data = $yam->users(); -foreach ($data as $item) { - $user = $imp->importUser($item); - echo "Imported Yammer user " . $item['id'] . " as $user->nickname ($user->id)\n"; -} +echo "Checking current state...\n"; +$runner = YammerRunner::init(); -// Groups! -// @fixme follow paging -- we only get 20 at a time -$data = $yam->groups(); -foreach ($data as $item) { - $group = $imp->importGroup($item); - echo "Imported Yammer group " . $item['id'] . " as $group->nickname ($group->id)\n"; +if (have_option('reset')) { + echo "Resetting Yammer import state...\n"; + $runner->reset(); + echo "done.\n"; + exit(0); } -// Messages! -// Process in reverse chron order... -// @fixme follow paging -- we only get 20 at a time, and start at the most recent! -$data = $yam->messages(); -$messages = $data['messages']; -$messages = array_reverse($messages); -foreach ($messages as $item) { - $notice = $imp->importNotice($item); - echo "Imported Yammer notice " . $item['id'] . " as $notice->id\n"; +switch ($runner->state()) +{ + case 'init': + echo "Requesting authentication to Yammer API...\n"; + $url = $runner->requestAuth(); + echo "Log in to Yammer at the following URL and confirm permissions:\n"; + echo "\n"; + echo " $url\n"; + echo "\n"; + echo "Pass the resulting code back by running:\n"; + echo "\n"; + echo " php yammer-import.php --verify=####\n"; + echo "\n"; + break; + + case 'requesting-auth': + if (!have_option('verify')) { + echo "Awaiting authentication...\n"; + echo "\n"; + echo "If you need to start over, reset the state:\n"; + echo "\n"; + echo " php yammer-import.php --reset\n"; + echo "\n"; + exit(1); + } + echo "Saving final authentication token for Yammer API...\n"; + $runner->saveAuthToken(get_option_value('verify')); + // Fall through... + + default: + while ($runner->hasWork()) { + echo "... {$runner->state()}\n"; + if (!$runner->iterate()) { + echo "FAIL??!?!?!\n"; + } + } + if ($runner->isDone()) { + echo "... done.\n"; + } else { + echo "... no more import work scheduled.\n"; + } + break; }