diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bcb704366cb5e333a626c18c308c7e0448a8e69f (patch) | |
tree | f0d6ab7d78ecdd9207cf46536376b44b91a1ca71 /ksirc/test/nicklist.pl | |
download | tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.tar.gz tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'ksirc/test/nicklist.pl')
-rw-r--r-- | ksirc/test/nicklist.pl | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ksirc/test/nicklist.pl b/ksirc/test/nicklist.pl new file mode 100644 index 00000000..948429eb --- /dev/null +++ b/ksirc/test/nicklist.pl @@ -0,0 +1,77 @@ +sub rndchr { + my $string = ""; + for(my $i = 0; $i < 8; $i++){ + $string .= chr(int(rand(26)) + 97); # More or less the alpahbet + } + return $string; +} + +srand(time()); + +&timer(1, "&next_one", 1); + +$state = 0; +$max_nicks = 100; +$min_nicks = 5; +$num_nicks = 0; +%list_nicks = (); +$repeat = 100000; +$count = 0; + +@state = (\&join, \&part); + +$line = "~#test~*#* Users on #test:"; +for($i = 0; $i < $max_nicks; $i++){ + my($mynick) = rndchr(); + $list_nicks{$mynick} = 1; + $is_op = rand(100); + if($is_op > 50){ + $mynick = "@" . $mynick; + } + $line .= " " . $mynick; + $num_nicks ++; +} +print "$line\n"; + +sub next_one { + for(my($i) = 0; $i < 200; $i++){ + $goto_state = int(rand($#state+1)); + &{$state[$goto_state]}; + } + if($count++ < $repeat){ + &timer(1, "&next_one", 1); + } +} + +sub join{ + return if $num_nicks > $max_nicks; + my($mynick) = rndchr(); + $list_nicks{$mynick} = 1; + print("~#test~*>* $mynick (blah\@blah) has joined channel #test\n"); + $is_op = rand(100); + if($is_op > 75){ + print "~#test~*+* Mode change \"+o $mynick\" on channel #test by ChanServ\n"; + } + $is_voice = rand(100); + if($is_voice > 40){ + print "~#test~*+* Mode change \"+v $mynick\" on channel #test by ChanServ\n"; + } + $num_nicks ++; +} + +sub part{ + return if $num_nicks < $min_nicks; + AGAIN: { + my($times) = int(rand($num_nicks)); + for($i = 0; $i<= $times; $i++){ + ($mynick, $value) = each(%list_nicks); + } + return if $mynick eq ''; + } + next AGAIN if $value != 1; + $list_nicks{$mynick} = 0; + print("~#test~*<* $mynick has left channel #test\n"); + + delete $list_nicks{$mynick}; + $num_nicks --; +} |