From 907cb6558cc996f3f776659c6fc906e94088e8e8 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 21 Sep 2010 15:54:39 -0700 Subject: [PATCH] Initial semi-working yammer import :D * no avatars * no details of user accounts or their auth info * no group memberships or subscriptions * no attachments * will probably esplode if >20 messages in your network *whistle innocently* --- plugins/YammerImport/yammer-import.php | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 plugins/YammerImport/yammer-import.php diff --git a/plugins/YammerImport/yammer-import.php b/plugins/YammerImport/yammer-import.php new file mode 100644 index 0000000000..d6ec975132 --- /dev/null +++ b/plugins/YammerImport/yammer-import.php @@ -0,0 +1,59 @@ +messages(); +/* + ["messages"]=> + ["meta"]=> // followed_user_ids, current_user_id, etc + ["threaded_extended"]=> // empty! + ["references"]=> // lists the users, threads, replied messages, tags +*/ + +// 1) we're getting messages in descending order, but we'll want to process ascending +// 2) we'll need to pull out all those referenced items too? +// 3) do we need to page over or anything? + +// 20 qualifying messages per hit... +// use older_than to grab more +// (better if we can go in reverse though!) +// meta: The older-available element indicates whether messages older than those shown are available to be fetched. See the older_than parameter mentioned above. +foreach ($data['references'] as $item) { + if ($item['type'] == 'user') { + $user = $imp->importUser($item); + echo "Imported Yammer user " . $item['id'] . " as $user->nickname ($user->id)\n"; + } else if ($item['type'] == 'group') { + $group = $imp->importGroup($item); + echo "Imported Yammer group " . $item['id'] . " as $group->nickname ($group->id)\n"; + } else if ($item['type'] == 'tag') { + // could need these if we work from the parsed message text + // otherwise, the #blarf in orig text is fine. + } else if ($item['type'] == 'thread') { + // Shouldn't need thread info; we'll reconstruct conversations + // from the reply-to chains. + } else if ($item['type'] == 'message') { + // If we're processing everything, then we don't need the refs here. + } else { + echo "(skipping unknown ref: " . $item['type'] . ")\n"; + } +} + +// Process in reverse chron order... +// @fixme follow paging +$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"; +}