diff options
Diffstat (limited to 'scripts/nickmix_pasky.pl')
| -rw-r--r-- | scripts/nickmix_pasky.pl | 74 | 
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..."); | 
