summaryrefslogtreecommitdiffstats
path: root/scripts/nickmix_pasky.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/nickmix_pasky.pl')
-rw-r--r--scripts/nickmix_pasky.pl74
1 files changed, 74 insertions, 0 deletions
diff --git a/scripts/nickmix_pasky.pl b/scripts/nickmix_pasky.pl
new file mode 100644
index 0000000..572df87
--- /dev/null
+++ b/scripts/nickmix_pasky.pl
@@ -0,0 +1,74 @@
+# Nickmix - Perturbates given nick (or just a word) in certain way.
+#
+# $Id: nickmix.pl,v 1.2 2002/02/09 22:13:12 pasky Exp pasky $
+
+
+use strict;
+
+use vars qw ($VERSION %IRSSI $rcsid);
+
+$rcsid = '$Id: nickmix.pl,v 1.2 2002/02/09 22:13:12 pasky Exp pasky $';
+($VERSION) = '$Revision: 1.2 $' =~ / (\d+\.\d+) /;
+%IRSSI = (
+ name => 'nickmix',
+ authors => 'Petr Baudis',
+ contact => 'pasky@ji.cz',
+ url => 'http://pasky.ji.cz/~pasky/dev/irssi/',
+ license => 'GPLv2, not later',
+ description => 'Perturbates given nick (or just a word) in certain way.'
+ );
+
+
+use Irssi;
+use Irssi::Irc;
+
+
+sub cmd_nickmix {
+ my ($data) = @_;
+ my %letters; # letters hash - value is count of letters
+ my $vstr; # vowels string
+ my $str; # resulting string
+
+ # First load the whole thing into letters hash
+ map { $letters{$_}++; } split(//, $data);
+
+ # Now take the (most of/all) vowels away and compose string from them
+ foreach (qw(a e i o u y)) {
+ my $c = int rand($letters{$_} * 4 + 1);
+
+ $c = $letters{$_} if ($c > $letters{$_});
+ $letters{$_} -= $c;
+
+ for (; $c; $c--) {
+ # Either add or prepend
+ if (rand(2) < 1) {
+ $vstr .= $_;
+ } else {
+ $vstr = $_ . $vstr;
+ }
+ }
+ }
+
+ # Position of the $vstr..
+ my $vpos = int rand (3);
+
+ $str = $vstr if (not $vpos);
+
+ # Now take the rest and do the same ;)
+ foreach (keys %letters) { for (; $letters{$_}; $letters{$_}--) {
+ # Either add or prepend
+ if (rand(2) < 1) {
+ $str .= $_;
+ } else {
+ $str = $_ . $str;
+ }
+ } }
+
+ if ($vpos == 1) { $str .= $vstr; } elsif ($vpos == 2) { $str = $vstr . $str; }
+
+ Irssi::print "$data -> $str";
+}
+
+Irssi::command_bind("nickmix", "cmd_nickmix");
+
+Irssi::print("Nickmix $VERSION loaded...");