public function importer_go() { ?> <div class="wrap"> <h1>GroupMe Importer</h1> <ol> <?php $_access_token = get_user_meta(get_current_user_id(), $this->meta_key, true); if (empty($_access_token)) { echo "<li>Connect</li>\n"; } else { echo "<li>Connected ✓</li>\n"; } ?> <li>Groups <ul> <?php $rest_api = new pjw_groupme_rest_api($_access_token); $groups = $rest_api->groups(); foreach ($groups as $group) { echo "<li><img src='{$group->image_url}' width='25px' height='25px'/> {$group->name} - {$group->id}</li>\n"; } ?> </ul> </li> </ol> </div> <?php }
function __dispatch_request($args) { if (isset($args['user-id']) && isset($args['action'])) { wp_set_current_user($args['user-id']); $_access_token = get_user_meta(get_current_user_id(), 'pjw_groupme_oauth_token', true); $rest_api = new pjw_groupme_rest_api($_access_token); switch ($args['action']) { case 'list-groups': $groups = $rest_api->groups(); foreach ($groups as $group) { echo "{$group->name} - {$group->id} - {$group->messages->count} messages\n"; } break; case 'fetch-messages': if (isset($args['group-id'])) { $messages = $rest_api->messages($args['group-id']); foreach ($messages->messages as $message) { echo date(DATE_ISO8601, $message->created_at) . " {$message->name}: {$message->text}\n"; } } else { echo "Usage: --user-id=X --action=fetch-messages --group-id=X ...\n\n"; } break; case 'walk-messages': if (isset($args['group-id'])) { // Hack use an after_id of 1 to get the first message in a group $messages = $rest_api->messages($args['group-id'], array('limit' => 100, 'after_id' => 1)); while (!empty($messages->messages)) { foreach ($messages->messages as $message) { echo date(DATE_ISO8601, $message->created_at) . " {$message->name}: {$message->text}\n"; if (count($message->attachments)) { foreach ($message->attachments as $attachment) { echo "\t" . date(DATE_ISO8601, $message->created_at) . " {$attachment->type} - {$attachment->url}\n"; } } } $messages = $rest_api->messages($args['group-id'], array('limit' => 100, 'after_id' => $message->id)); } } else { echo "Usage: --user-id=X --action=walk-messages --group-id=X ...\n\n"; } break; case 'sync-messages': if (isset($args['group-id'])) { // Find ID of last synced message $pjw_groupme_wp_api = new pjw_groupme_wp_api(); $after_id = $pjw_groupme_wp_api->get_last_synced_message_id($args['group-id']); if (!$after_id) { // Hack use an after_id of 1 to get the first message in a group $after_id = 1; } $messages = $rest_api->messages($args['group-id'], array('limit' => 100, 'after_id' => $after_id)); while (!empty($messages->messages)) { foreach ($messages->messages as $message) { echo '.'; $pjw_groupme_wp_api->sync_message($message); } $messages = $rest_api->messages($args['group-id'], array('limit' => 100, 'after_id' => $message->id)); } } else { echo "Usage: --user-id=X --action=sync-messages --group-id=X ...\n\n"; } break; } } else { echo "Usage: --user-id=X --action=Y ...\n\n"; } }