-j --joins Number of groups per user (default 5)
-t --tags Number of distinct hash tags (default 10000)
-x --prefix User name prefix (default 'testuser')
+ -w --words Words file (default '/usr/share/dict/words')
END_OF_CREATESIM_HELP;
$is_reply = rand(0, 1);
- $content = 'Test notice content';
+ $content = testNoticeContent();
if ($is_reply == 0) {
- common_set_user($user);
- $stream = new InboxNoticeStream($user);
- $notices = $stream->getNotices(0, 20, null, null);
+ $stream = new InboxNoticeStream($user, $user->getProfile());
+ $notices = $stream->getNotices(0, 20);
if ($notices->N > 0) {
$nval = rand(0, $notices->N - 1);
$notices->fetch(); // go to 0th
}
}
+function testNoticeContent()
+{
+ global $words;
+
+ if (is_null($words)) {
+ return "test notice content";
+ }
+
+ $cnt = rand(3, 8);
+
+ $ids = array_rand($words, $cnt);
+
+ foreach ($ids as $id) {
+ $parts[] = $words[$id];
+ }
+
+ $text = implode(' ', $parts);
+
+ if (mb_strlen($text) > 80) {
+ $text = substr($text, 0, 77) . "...";
+ }
+
+ return $text;
+}
+
function main($usercount, $groupcount, $noticeavg, $subsavg, $joinsavg, $tagmax)
{
global $config;
$config['site']['dupelimit'] = -1;
- $n = 1;
- $g = 1;
+ $n = 0;
+ $g = 0;
- newUser(0);
- newGroup(0, $n);
+ // Make users first
+
+ $preuser = min($usercount, 5);
+
+ for ($j = 0; $j < $preuser; $j++) {
+ printfv("$i Creating user $n\n");
+ newUser($n);
+ $n++;
+ }
+
+ $pregroup = min($groupcount, 3);
+
+ for ($k = 0; $k < $pregroup; $k++) {
+ printfv("$i Creating group $g\n");
+ newGroup($g, $n);
+ $g++;
+ }
// # registrations + # notices + # subs
$events = $usercount + $groupcount + ($usercount * ($noticeavg + $subsavg + $joinsavg));
+ $events -= $preuser;
+ $events -= $pregroup;
+
$ut = $usercount;
$gt = $ut + $groupcount;
$nt = $gt + ($usercount * $noticeavg);
$tagmax = (have_option('t', 'tags')) ? get_option_value('t', 'tags') : 10000;
$userprefix = (have_option('x', 'prefix')) ? get_option_value('x', 'prefix') : 'testuser';
$groupprefix = (have_option('z', 'groupprefix')) ? get_option_value('z', 'groupprefix') : 'testgroup';
+$wordsfile = (have_option('w', 'words')) ? get_option_value('w', 'words') : '/usr/share/dict/words';
+
+if (is_readable($wordsfile)) {
+ $words = file($wordsfile);
+} else {
+ $words = null;
+}
try {
main($usercount, $groupcount, $noticeavg, $subsavg, $joinsavg, $tagmax);