$shortoptions = 'i:n:f:a:j'; $longoptions = array('id=', 'nickname=', 'file=', 'after=', 'json'); $helptext = <<<END_OF_EXPORTACTIVITYSTREAM_HELP exportactivitystream.php [options] Export a StatusNet user history to a file -i --id ID of user to export -n --nickname nickname of the user to export -j --json Output JSON (default Atom) -a --after Only activities after the given date END_OF_EXPORTACTIVITYSTREAM_HELP; require_once INSTALLDIR . '/scripts/commandline.inc'; try { $user = getUser(); if (have_option('a', 'after')) { $afterStr = get_option_value('a', 'after'); $after = strtotime($afterStr); $actstr = new UserActivityStream($user, true, UserActivityStream::OUTPUT_RAW, $after); } else { $actstr = new UserActivityStream($user, true, UserActivityStream::OUTPUT_RAW); } if (have_option('j', 'json')) { $actstr->writeJSON(STDOUT); } else { print $actstr->getString(); } } catch (Exception $e) { print $e->getMessage() . "\n"; exit(1); }
/** * Send a feed of the user's activities to the browser * * Uses the UserActivityStream class; may take a long time! * * @return void */ function sendFeed() { $cur = common_current_user(); $stream = new UserActivityStream($cur, true, UserActivityStream::OUTPUT_RAW); header('Content-Disposition: attachment; filename=' . $cur->nickname . '.atom'); header('Content-Type: application/atom+xml; charset=utf-8'); // @fixme atom feed logic is in getString... // but we just want it to output to the outputter. $this->raw($stream->getString()); }