Bot::Backbone::Service::OFun::CodeName - Assign code names to words and phrases for fun and profit


version 0.142230


    # in your bot config
    service code_name => (
        service         => 'OFun::CodeName',
        nouns_file      => 'nouns.txt',
        adjectives_file => adjectives.txt',
        db_dsn          => 'dbi:SQLite:codename.db',

    dispatcher chatroom => as {
        redispatch_to 'code_name';

    # in chat
    alice> !codename bob
    bot> exploding chariot
    alice> !codename exploding chariot
    bot> bob


Have you ever wanted to assign really horrible code names to your projects? Your clients? Your coworkers? Well, now is your chance. Just put this little baby into your bot config and let it assign code names to your heart's content.

To work, you must supply it with your own list of nouns and adjectives (not included) and a database, which is used to store the code names that have been assigned. The code names are assigned in a standard-ish way so they will be reassigned the same way every time, so long as you continue using the same noun and adjective list. The database is used to remember the code name's reversal and also to keep the code names the same if you do choose to modify your word lists for some reason (say to remove some NSFW word or to add an NSFW word you forgot to add in the first place).



    !codename phrase
    !codename code name

This command is used to generate a new codename or to tell you what a code name refers to. You don't need to quote your words or anything, just give it as short or as long a phrase as you want named and it will respond.




These are files that provide adjectives and nouns to the service. The words should be listed one-per-line in the file with no blanks. Extra whitespace on either side of each word will be trimmed.



These are arrays of the loaded word lists.



Creates the codenames file. It uses DDL SQL that should be compatible with SQLite and MySQL databases.


This implements the !codename command.


  my $codename = $self->generate_code_name($phrase);

Given a string, it returns a new code name for that string.


  my $alias = $self->find_key($key);

Given a code name or a phrase that has been assigned a code name, it returns the alias (i.e., the original phrase for code names and the code name assigned for phrases). If that's not a stored alias, it returns undef.


  $self->find_key($key, $alias, $is_code_name);

Stores a key/alias pair. When a code name is generated, it will be stored twice, once to point the code name to the phrase and once to point the phrase back to the code name. The $is_code_name flag is used to indicate whether the $key is a code name or a phrase in this call. This flag is not used for anything right now, but might be used for something in the future and is used to at least allow you to discern which is the code name and which is not.


No op.


Andrew Sterling Hanenkamp <>


This software is copyright (c) 2014 by Qubling Software LLC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.