]> git.donarmstrong.com Git - infobot.git/blob - src/Modules/insult.pl
* Add vim formatting comments ( # vim:ts=4:sw=4:expandtab:tw=80 )
[infobot.git] / src / Modules / insult.pl
1 #
2 # insult.pl: insult engine
3 #
4 # 2004.10.21  Tim Riker <Tim@Rikers.org>
5 # colorado server is dead. pull in the words and do it ourself
6 #
7
8 package Insult;
9
10 use strict;
11
12 sub Insult {
13     my ($insultwho) = @_;
14     my @adjs;
15     my @amts;
16     my @nouns;
17     &::DEBUG('Reading insult data');
18     while (<DATA>) {
19         chomp;
20         push(@adjs, split(' ', $1)) if /^adj\s*(.*)/;
21         push(@amts, split(' ', $1)) if /^amt\s*(.*)/;
22         push(@nouns, split(' ', $1)) if /^noun\s*(.*)/;
23     }
24     grep(s/\|/ /g, @adjs);
25     grep(s/\|/ /g, @amts);
26     grep(s/\|/ /g, @nouns);
27     srand(); # fork seems to not change rand. force it here
28     my $adj = @adjs[rand(@adjs)];
29     my $n;
30     $n = 'n' if $adj =~ /^[aeiouih]/;
31     my $amt = @amts[rand(@amts)];
32     my $adj2 = @adjs[rand(@adjs)];
33     my $noun = @nouns[rand(@nouns)];
34     my $whois = "$insultwho is";
35     $whois = 'You are' if ($insultwho eq $::who or $insultwho eq 'me');
36
37     &::performStrictReply("$whois nothing but a$n $adj $amt of $adj2 $noun");
38 }
39
40 1;
41
42 # vim:ts=4:sw=4:expandtab:tw=80
43
44 __DATA__
45 #
46 # configuration file for colorado insult server
47 #
48 # Use the '|' character to include a space in the middle of a noun, adjective
49 # or amount (it'll get transmogrified into a space.  No, really!).
50 #
51 # Mon Mar 16 10:49:53 MST 1992 garnett added more colorful insults
52 # Fri Dec  6 10:48:43 MST 1991 garnett
53 #
54
55 ##
56 # Adjectives
57 ##
58 adj acidic antique contemptible culturally-unsound despicable evil fermented
59 adj festering foul fulminating humid impure inept inferior industrial
60 adj left-over low-quality malodorous off-color penguin-molesting
61 adj petrified pointy-nosed salty sausage-snorfling tastless tempestuous
62 adj tepid tofu-nibbling unintelligent unoriginal uninspiring weasel-smelling
63 adj wretched spam-sucking egg-sucking decayed halfbaked infected squishy
64 adj porous pickled coughed-up thick vapid hacked-up
65 adj unmuzzled bawdy vain lumpish churlish fobbing rank craven puking
66 adj jarring fly-bitten pox-marked fen-sucked spongy droning gleeking warped
67 adj currish milk-livered surly mammering ill-borne beef-witted tickle-brained
68 adj half-faced headless wayward rump-fed onion-eyed beslubbering villainous
69 adj lewd-minded cockered full-gorged rude-snouted crook-pated pribbling
70 adj dread-bolted fool-born puny fawning sheep-biting dankish goatish
71 adj weather-bitten knotty-pated malt-wormy saucyspleened motley-mind
72 adj it-fowling vassal-willed loggerheaded clapper-clawed frothy ruttish
73 adj clouted common-kissing pignutted folly-fallen plume-plucked flap-mouthed
74 adj swag-bellied dizzy-eyed gorbellied weedy reeky measled spur-galled mangled
75 adj impertinent bootless toad-spotted hasty-witted horn-beat yeasty
76 adj imp-bladdereddle-headed boil-brained tottering hedge-born hugger-muggered
77 adj elf-skinned
78
79 ##
80 # Amounts
81 ##
82 amt accumulation bucket coagulation enema-bucketful gob half-mouthful
83 amt heap mass mound petrification pile puddle stack thimbleful tongueful
84 amt ooze quart bag plate ass-full assload
85
86 ##
87 # Objects
88 ##
89 noun bat|toenails bug|spit cat|hair chicken|piss dog|vomit dung
90 noun fat-woman's|stomach-bile fish|heads guano gunk pond|scum rat|retch
91 noun red|dye|number-9 Sun|IPC|manuals waffle-house|grits yoo-hoo
92 noun dog|balls seagull|puke cat|bladders pus urine|samples
93 noun squirrel|guts snake|assholes snake|bait buzzard|gizzards
94 noun cat-hair-balls rat-farts pods armadillo|snouts entrails
95 noun snake|snot eel|ooze slurpee-backwash toxic|waste Stimpy-drool
96 noun poopy poop craptacular|carpet|droppings jizzum cold|sores anal|warts