package Slash::XTaran::Affen; ############################################################################### # Affen.pm (aka Ninja-Affen) # Generiert die Generiert-Zeile von Symlink. # # Copyright (c) 2004 by Symlink # # Code: Axel "XTaran" Beckert # # Textquellen: Von Raffzahn uebersetztes und erweitertes Original-Slashdot, # bene (http://thomas.quaritsch.at/ + http://qwws.net/~bene/sprueche.txt), # XTaran, Tontaube, Raffzahn, tbf, dino, fabiana, xilef, Frank, Venty, # mirabile, tuxedo # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################### my $VERSION = q[$Id: Affen.pm,v 1.15 2006/10/06 23:56:54 slash Exp $]; use Exporter; @ISA = qw(Exporter); @EXPORT = qw(ninja_affen); use strict; no warnings; sub ninja_affen { my ($I, $debug) = @_; my @anzahl_f = qw( Abteilung Agentur Arbeitsbrigade Arbeitsgruppe Arbeitsgemeinschaft Aktiengesellschaft Armee Badewanne voll Bande Baukolonne Belegschaft Bundestagsfraktion Brigade CD voller Clique Community voller Datscha voller Demonstration Dose DVD voller Einheit Einsatztruppe Ente voller Fabrik voller Familie Flasche voll Flotte Geheimgesellschaft Genossenschaft Gesellschaft GmbH Gruppe Gruppierung Hausbesetzung Herde Horde Jumbopackung Karawane Karavelle voller Kiste Klasse Kolchose Kneipe voller Kolonne Kompanie Kommune landwirtschaftlichen Produktivgenossenschaft LKW-Ladung LPG Mannschaft Menge Meute Palette Party Rasselbande Riesenpackung Rolle Rotte Schüssel Schar Schnittmenge Schule Sippe Sitzung Sowchose Teilmenge Therapiegruppe Tonne Tüte Tafelrunde Selbsthilfegruppe Sitzblockade Truppe Telefonzelle voller Verbrüderung Vereinigung Videokassette voller Zusammenrottung ); my @anzahl_m = qw( Arbeitskreis Arbeitskringel Bugreport voller Bully voll Bund Club Container voll Eimer Flock Geleitzug Graben voller Haufen Jumbojet voller Kader Kasten Kleinbus voller Klub Koffer voll Konzern Kübel LKW voll Pulk Sack voll Schrank voll Schwarm Staat Streik Tetrapack voll Trabbi voller Unfall Verein Vorstand VW-Bus voller Zug Zug voller Zwinger ); my @anzahl_s = qw( Batallion Buch voller Bündel Dekagramm Exabyte Fass Geschwader Gramm Kibbuz Kilobyte Kilogramm Kollektiv Kombinat Megabyte Milligramm Paket Petabyte Pfund Publikum Regal voll Regiment Rudel Saufgelage Schlachtschiff voller Team Terabyte ); my @eigenschaft = qw( 100% biologisch abbaubarer abartiger abgehefteter abgedrehter abgehärteter abgefahrener affensüchtiger ambitionierter anachronistischer anarchistischer androïder angriffslustiger anonymer assimilierender aufgemöbelter aufgeschäumter ausgebuffter ausgeflippter ausgefuchster ausgekochter ausgerasteter ausrastender autonomer behaarter beliebiger besoffener bespitzelter betüpfelter bierernster bildzeitungslesender bitterböser bitterscharfer blitzblanker blitzblauer blonder blühender blutsaugender böswilliger Brüsseler damischer depperter DIN-genormter distributionstestender dummer durchfallhabender durchgedrehter durchgefallener durchgeknallter durchgerührter durchgeschüttelter durchgeweichter durchgebrannter durchsichtiger durchschnittlicher durchtrainierter drahtloser elektrischer elektronischer elender endergoner Emmentaler fanatischer fauler feiger ferrariroter fettiger feuchtfröhlicher flachliegender flexibler fliegender frauenverstehender freizügiger frischgeborener funktionaler ganzheitlicher geblümter gedünsteter gebratener gekochter gekreuzigter geldsüchtiger gelochter genialer genmanipulierter gepfählter gerade erst aufgestandener gerührter, nicht geschüttelter geslashdosster geslashdotteter giftgrüner globaler grasgrüner greiser großartiger grotesker gut abgehangener günstiger hart gekochter halb erfrorener heimtückischer heisskristallisierter herumirrender hirnrissiger hirnverbrannter hochkantgefräster holistischer HTML-konformer hundertjähriger instabiler ISO-9001-zertifizierter isolierter jugendfreier jugendgefährdender kämpferischer kaltgelöteter karierter karitativer kettenrasselnder klargeschäumter kluger klugscheißender koffeïnhaltiger kopiergeschützter kotz- -äh- jadegrüner kreuzverkehrter krummer kugeliger künstlicher leicht entflammbarer leicht entzündlicher lilablaßblau-karierter losgelassener lustiger marmorierter männlicher männermordender müder milchiger mit Lynx betrachtbarer mutiger nachtschwarzer Nächte durchchattender naseweiser natural born nicht jugendfreier nur mit ÄctiveSchweinekram betrachtbarer oberaffengeiler oberaffenmegatittengeiler objektorientierter orangfarbener ovallochgebohrter paketierter pflegebedürftiger platter politisch korrekter POSIX-konformer preiswerter prima privatpublizierender privathaftpflichtversicherter programmierbarer proprietärer prozeduraler psychopatischer psychosomatischer psychodelischer qualitätsorientierter radioaktiver raffgieriger raffzahnisierender rasender rebellischer regenbogenfarbener religiöser RFC-konformer rosaroter ruachada rubinroter runderneuerter süß-saurer sadiger satter sauerstoffgebleichter schadenfroher schiefer schimmeliger schizophrener schlafloser schneeweißer schräger schulmädchenbraver schwebender schwer entflammbarer schwiitzerdüütscher sich gegenseitig auf die Palme bringender sich gegenseitig ins Grab bringender sinnloser sozialistischer spammender spinatgrüner spitzgedackelter spritzwassergeschützter strebsamer subversiver süchtiger surrealer strunzdoofer strunzdummer symlinkender synthetischer tiefergelegter transatlantischer transparenter überteuerter unchatbarer unerträglicher unsichtbarer unsterblicher urlaubsreifer verdatterter verknoteter verschandelter verwirrter verwunschener verzauberter verzerrter vollsynthetischer vom Spam-Filter erwischter wasserstoffgebleichter wattwandernder weiblicher weich gekochter weißwurstverschlingender werdender wiederauferstandener wildgewordener wohlschmeckender wohlriechender zerstörter zerstreuter zitronengelber zuckersüßer zugedröhnter zugekokster ); my @prefix = qw( Abend Abmahn Aikido- Albino Allround- Alpen Alternativ Angriffs Anschluß AOL- Baumarkt Berg Billig Bio Blondinen Boandl Bogen Brat Brüll BSD- Budget Bünzli Chili Chilbi Dampf Diesel Dorf Dosen e- Einweg Eis Elektro Elite Energiespar Erd Essig Euro Farb Fern Fichtennadel Finger Fisherprice Flächen Flurförder Frühstücks Funk-LAN- Fußball Gerichts Gigahertz Glüh Großstadt Gurken Halb Hauben Haupt Heinzel Hochleistungs Hollywood- Hüpf Hyper Hyperraum i- Instant Joghurt Judo- Käse Kaffeelöffel Kantönli Karate- Karpfen Kilohertz Kirweih Klang Klebe Kokos Knoblauch Kugel Ländle Laber LAN- Land Laser Lauf Lebkuchen Lego- Lehm Leucht Linux Luxus m- M- Megahertz Mehrweg Mikro Millihertz Märklin- Mainzel Marmor Meeres Meister Meta µ- Mikro Ministerial Mist Mobilfunk Möchtegern Monopol Morgen Müll Nacht Nadel Nadelstreifen Nagel Nahkampf Netz Ninja Open-Source- Operations Orangen Patent Pfand Playmobil- Polar Pseudo Psycho Punk Putz Quark Quassel Robo Röhren Raff Rasen Rauch Reinigungs Renn Rost Rum Salat Sarg Sau Sauregurken Schaum Schatten Schokoladen Schinken Schlamm Schnee Schreibtisch Schrumpf Schwarzweiß Sicherheits See Sonntags Sprung Sub Sümlink Super Suppen Sym System Taekwondo- Tal Telekommunikations Tennis Terahertz Tür Uber Über Übertölpelungs Ultra Urlaubs Vereins Vollkorn Voodoo Vorstands Wüsten Wahl Wake-on-LAN- Wald WAN- WaveLAN- Wild Witz WLAN- X- XXL- XXX- Yoghurt Zentral Zirkus Zucker Zwiebel ); my @objekt = qw( Abteilungsleiter Administratoren Affen Äpfel Amseln Androïden Anhalter Anonymlinge Anwälte Anzüge Aquarien Arme Aromen Augen Bäder Baken Balrogs Bayern Bazillen Bazis Becher Beeren Beine Betriebsprogramme Bienen Birnen Blitze Blondinen Briefträger Bosonen Bots Borgs Bürokraten Bugs Butler Chaiben Chips Chöre Computer Creme Daemons Debianiden Deppen Desinfizierer Detektive Detektoren Diener Dinos Dinosaurier Disketten Distributionen Distributoren Dödel Doozers Drachen Dünger Eichhörnchen Eier Eimer Elefanten Elfen Enten Enzyklopädien Experten Füße Fahrräder Faxen Faxgeräten Fehler Feiglinge Festplatten Ferengi Flaschen Fledermäuse Fliegengitter Formenwandler Fragezeichen Fraggles Frogs Gänse Geeks Geister Gelbfüssla Generäle Gerichte Gesetze Gluonen Gnome Gorillas Gorgs Gurken Halblinge Halodries Händis Hämorrhiden Handtücher Harfen Hasen Hebammen Heizdecken Heizkörper Helden Hippies Hobbits Hornissen Hörnchen Hühner Höhner Hunde Hundlinge Impedanzwandler Imperatoren Indianer Informatikern Infotiker Insider Isotope Jecken Jedis Jojos Journalisten Kabel Känguruhs Kakerlaken Kakteen Karpfen Katarrhe Katzen Klingonen Klopapierrollen Knöllchen Kobolde Köpfe Kopfhörer Krebse Kreppel Kuchen Kugelschreiber Läuse Löffel Ladies Lampen Lauben Laute Lautsprecher Lautstärkeregler Leibwächter Magier Mächte Mäher Männchen Männlein Mätressen Manager Maßnahmen Matratzen Matrosen Mauspads Melonen Mirabellen Mikroben Modems Module Mönche Mofas Monitore Monster Mopeds Mumien Murmeltiere Nadeln Nägel Nasen Nikoläuse Ninjas Nudeln Nüssen Öffner Orks Palmen Panikmacher Parlamentsmitglieder Patchlevel Partikel Pasten Pasteten Paviane Pfadfinder Pfützen Photonen Pilze Pinguine Piranhas Polypen Popups Potschamperl Preißen Priemeln Progrämmli Projekte Psychopaten Pylonen Radieschen Radieserl Rasierapparate Rebellen Redaktoren Reifen Reporter Rieschfüdlä Riesen Roboter Rocker Röcke Romulaner Sackerl Säckl Säcke Säuglinge Sandwiches Schamhaare Schachtldeifi Schatten Schiffe Schimpansen Schläger Schlangen Schlaumeier Schlümpfe Schnecken Schnittchen Schnitten Schnitzel Schrauben Schweizer Seher Semmeln Server Skelette Socken Sofas Spaghetti Spammer Spaßbremsen Spatzen Spiele Spinnenweben Springbrunnen Steher Sterndl Störungen Strahlen Strippen Stroaßabohna Strolche Strümpfe Stubenhocker Studios Submissions Symbionten Symlinker Symlinkstories Sysadmins Taschentücher Tantis Tastaturen Taucher Telefone Teletubbies Terrarien Termiten Tetrapacks Teufel Tontauben Trams Trämmli Transistoren Trekkies Tribbles Trills Tubel Tüten Türme Tuxe Uboote Ueli Unterhosen Unterhemden Unternehmensberater Untertassen Unterteller Urgroßmütterchen Urteile Urwälder Vampire Ventilatoren Verstärker Verwaltungsräte Videorekorder Vögel Vulkanier Wäscheständer Wecker Weißwürscht Würfel Wasserbetten Wandler Wanzen Wellen Welten Wespen Wichte Wichtel Wigwams Wookies Wolpertinger Würste Xylophone Yetis Zähne Zecken Zeichensätze Zufälle Zwerge ); my @objekt_nolc = qw( 5¼-Zoll-Festplatten voller Bauhöhe 8-Zoll-Disketten ABC-Schützen AOL-CDs Apache-Webserver Ballermänner Barbiepuppen Berichterstatter Billigbrüllwürfel aussem Aldi BNC-Kabel Boxenluder Büttenredner CD-Laufwerke CD-Rohlinge, denen noch Benimm und Daten eingebrannt werden müssen, CDs Claqueure CowboyNeals CowboyNeal-Poll-Optionen Crash-Test-Dummies DAUs Darwin-Awards Dieter-Bohlen-Fans Dünnbrettbohrer DVDs Emacsen FC-Bayern-Fans FC-Bayern-Spieler Fieselschweiflinge Fuchskugeln Gaffer GEZ-Spitzel GEZ-Blockwarte Ghostbusters Glückskekse Gopher-Server Gschamstara Halb-DAUs Heftklammern Heise-Stories Heise-Trolle Higgs-Bosonen Hotmail-Accounts HTTP-Anfragen iMacs IRC-Kanälen IRC-Sessions ICMP-Pakete IPv6-Pakete Jedi-Ritter Kopiergeschütze Küblböck-Fans Kuhfladen LDAP-Bücher Modern-Talking-Fans Notausschalter Olé-Olé-Schreier Perl-Skripte Power-PCs Powerbooks PCs Pings Platin-CD-Rohlinge proc-Filesysteme Quietscheentchen Raffzahn-Poll-Optionen Rauhfasertapeten Raumteufel Rechtschreibreformen Rechtschreibdeformen Satte-Liter-Schüsseln Satellitenschüsseln Schnabeltiere Schokoladenfabrikanten Schrumpfschläuche Slashdot-Stories Symlink-Stories T-Shirts täglich ,grüßender Murmeltiere TCP/IP-Pakete Tamburmajore Toplevelsubdomains UDP-Datagramme Uli-Stein-Mäuse UFOs W-Bosonen WAP-Brauser WLAN-Kabel Wörtersterne wuider Biesler XSLT-Prozessoren XML-Schematas Z-Bosonen ); ### Auswahl welcher Spruch my $spruch = rand(10); my $dreher = $spruch < 1 && $spruch >= 0; my $praesentiert = $spruch < 2 && $spruch >= 1; my $geschlecht = rand(3); my $maennlich = $geschlecht < 1 && $geschlecht >= 0; my $weiblich = $geschlecht < 2 && $geschlecht >= 1; my $saechlich = $geschlecht < 3 && $geschlecht >= 2; ### Der Spruchtext my $text = qq[]. ($praesentiert ? qq[Diese Seite wurde Ihnen ]. qq[($I->{U}{nickname}, #$I->{U}{uid}) ]. qq[präsentiert von %s %s.] : $dreher ? qq[Diese Seite wurde von ]. qq[$I->{U}{nickname} ($I->{U}{uid}) ]. qq[für %s %s generiert.] : qq[Diese Seite wurde für ]. qq[$I->{U}{nickname} ($I->{U}{uid}) ]. qq[von %s %s generiert.]). qq[

\n]; ### Auswahl der Behaeltnisse, Eigenschaften, Prefixe und Objekte printf $text, ($weiblich ? ($dreher?"eine":"einer")." ".$anzahl_f[rand scalar @anzahl_f] : $maennlich ? ($dreher?"einen":"einem")." ".$anzahl_m[rand scalar @anzahl_m] : $saechlich ? ($dreher?"ein":"einem")." ".$anzahl_s[rand scalar @anzahl_s] : '*** Ja was nun? ***'), (int rand 2 ? (int rand 2 ? "$eigenschaft[rand scalar @eigenschaft] ". (int rand 2 ? $objekt[rand scalar @objekt] : $objekt_nolc[rand scalar @objekt_nolc]) : &concat_random(\@prefix,\@objekt)) : $eigenschaft[rand scalar @eigenschaft]." ". &concat_random(\@prefix,\@objekt)); ### Statistiken if ($debug) { my $sprueche_anzahl = 3; my $x=(scalar(@anzahl_m)+scalar(@anzahl_f)+scalar(@anzahl_s))*(scalar(@eigenschaft)+1); $x = (($x*(scalar(@prefix)+1)*scalar(@objekt)) + ($x*scalar(@objekt_nolc))); my $y = $x*$sprueche_anzahl; my $xg = sprintf('%.2fGi', $x/(1024**3)); my $yg = sprintf('%.2fGi', $y/(1024**3)); $xg =~ s/\./,/; $yg =~ s/\./,/; while ($x =~ /\d{4}/) { $x =~ s/(\d)(\d{3})((\'\d{3})*)$/$1\'$2$3/; } while ($y =~ /\d{4}/) { $y =~ s/(\d)(\d{3})((\'\d{3})*)$/$1\'$2$3/; } printf '

Aktuelle Begriffsanzahlen: %s bzw. %s (mal die %i Spruchtexte = %s bzw. %s Sprüche)

', $x, $xg, $sprueche_anzahl, $y, $yg, $sprueche_anzahl, scalar(@anzahl_f), scalar(@anzahl_m), scalar(@anzahl_s), scalar(@eigenschaft), scalar(@prefix), scalar(@objekt), scalar(@objekt_nolc); my @stat = stat('/home/slash/Slash/XTaran/Affen.pm'); printf(qq!

Last modified: %s
$VERSION

!, scalar localtime($stat[9])); } } sub concat_random { my ($prefix_a, $objekt_a) = @_; my $objekt = $objekt_a->[rand scalar @$objekt_a]; my $prefix = $prefix_a->[rand scalar @$prefix_a]; return $prefix.($prefix =~ /-$/ ? $objekt : lc($objekt)); }