diff --git a/docs/user/commands.md b/docs/user/commands.md index f680a9dc8..be2e43929 100644 --- a/docs/user/commands.md +++ b/docs/user/commands.md @@ -1,6 +1,6 @@ gonzobot Command list ------ -**8ball (8, eightball):** <question> - asks the all knowing magic electronic eight ball <question> +**8ball (eightball, 8):** <question> - asks the all knowing magic electronic eight ball <question> **about**: -- Gives information about CloudBot. Use .about license for licensing information @@ -8,381 +8,663 @@ gonzobot Command list **adduser**: <user> <group> - adds <user> to <group> ( *Permission required:* permissions_users) +**aesthetic (vapor, fw):** <string> -- Converts <string> to full width characters. + **amazon (az):** <query> -- Searches Amazon for query **antonym**: <word> -- Returns a list of antonyms for <word>. -**ask (cb, cleverbot):** <question> -- Asks Cleverbot <question> +**ask (gonzobot, cb, gonzo, cleverbot):** chat with cleverbot.com + +**awesome (cool, iscool):** - Prints a webpage to show <nick> how awesome they are. -**ban**: [channel] <user> - bans <user> in [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_ban, op) +**ban**: <channel> <user> - bans <user> in <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_ban, op) **bancount**: <user> - gets a count of <user>'s minecraft bans from fishbans +**band (la):** <artist> - displays information about <artist>. + +**bang**: when there is a duck on the loose use this command to shoot it. + **bans (fishbans):** <user> - gets information on <user>'s minecraft bans from fishbans -**base64**: base64 <string> -- Encode <string> with base64. +**base64**: <string> -- Encode <string> with base64. + +**bdsm (dominate):** <user> - Just a little bit of kinky fun. -**beats**: beats -- Gets the current time in .beats (Swatch Internet Time). +**beats**: -- Gets the current time in .beats (Swatch Internet Time). -**bing (bsearch):** <query> - returns the first bing search result for <query> +**beer**: <user> - gives beer to <user> -**bingimage**: <query> - returns the first bing image search result for <query> +**befriend**: when there is a duck on the loose use this command to befriend it before someone else shoots it. -**bite**: bites the specified nick somewhere random. +**bible (passage):** Prints the specified passage from the Bible -**boobs (boobies):** prints boobies! +**bing (b):** <query> - returns the first bing search result for <query> -**bookpun**: Suggests a pun of a book title/author. +**bingimage (bis):** <query> - returns the first bing image search result for <query> + +**bitcoin (btc):** -- Returns current bitcoin value + +**bite**: <user> - bites <user> + +**boobs (boobies):** - prints boobies! + +**bookpun**: - Suggests a pun of a book title/author. **books (gbooks):** books <query> -- Searches Google Books for <query>. -**bottomten (pointsbottom, hated):** .bottomten or .pointsbottom prints the top 10 things with the highest points in the channel. To see the top 10 items in all of the channels the bot sits in use .topten global. +**bottomten (hated, pointsbottom):** - prints the top 10 things with the lowest points in the channel. To see the bottom 10 items in all of the channels the bot sits in use .bottomten global. **brainfuck (bf):** <prog> - executes <prog> as Brainfuck code -**btc (bitcoin):** [bitpay|coinbase|bitstamp] - gets bitcoin exchange rate using <exchange>, defaulting to blockchain +**brekkie (brekky):** <user> - gives brekkie to <user> + +**brew**: <query> - returns the first brewerydb search result for <query> -**cake**: <user> - gives <user> an awesome cake +**burger**: <user> - gives a tasty burger to <user> -**capitalise (capitalize):** capitalize <string> -- Capitalizes <string>. +**cah**: Submit text to be used as a CAH whitecard + +**cahb**: Submit text with _ for the bot to fill in the rest. You can submit text with multiple _ + +**cake**: <user> - gives a cake to <user> + +**cakeday**: cakeday <reddituser> will return the cakeday for the given reddit username. + +**capitalize (capitalise):** <string> -- Capitalizes <string>. **catgifs**: gets a fucking cat gif. **cats**: gets a fucking fact about cats. -**choose**: <choice1>, [choice2], [choice3], etc. - randomly picks one of the given choices +**cereal**: <user> - gives cereal to <user> + +**changetopic (question, discuss):** generates a random question to help start a conversation or change a topic + +**cheese**: <user> - gives cheese to <user> + +**chicken**: <user> - gives chicken to <user> + +**chocolate**: <user> - gives chocolate to <user> + +**choose**: <choice1>, <choice2>, <choice3>, etc. - randomly picks one of the given choices + +**clearoptout**: <channel> - Clears the optout list for a channel. Specify "global" to clear all data for this network -**coin**: [amount] - flips [amount] coins +**clinton**: <user> - Clinton a <user> + +**cmdinfo**: <command> - Gets various information about a command + +**coffee**: <user> - gives coffee to <user> + +**coin**: <amount> - flips <amount> coins **color_parse**: Command has no documentation. -**confucious**: confucious say man standing on toilet is high on pot. +**compliment**: <user> - Makes the bot compliment <user>. + +**confucious**: - confucious say man standing on toilet is high on pot. + +**conncheck**: This command is an effort to make the bot reconnect to a network if it has been disconnected. ( *Permission required:* botcontrol) -**cookie**: <user> - gives <user> a cookie +**connlist (listconns):** - Lists all current connections and their status ( *Permission required:* botcontrol) -**cycle**: [#channel] - cycles [#channel], or the caller's channel if no channel is specified ( *Permission required:* botcontrol) +**cookie**: <user> - gives a cookie to <user> -**cypher**: <pass> <string> - cyphers <string> with <password> +**crypto (cryptocurrency):** <ticker> <currency> -- Returns current value of a cryptocurrency -**dadjoke**: love em or hate em, bring on the dad jokes. +**cycle**: <#channel> - cycles <#channel>, or the caller's channel if no channel is specified ( *Permission required:* botcontrol) -**debase64 (unbase64):** unbase64 <string> -- Decode <string> with base64. +**cypher (cipher):** <pass> <string> -- cyphers <string> with <password> -**decrypt**: <pass> <string> - decrypts <string> with <pass>. (can only decrypt strings encrypted on this bot) +**dadjoke**: - love em or hate em, bring on the dad jokes. -**decypher**: <pass> <string> - decyphers <string> with <password> +**debase64 (unbase64):** <string> -- Decode <string> with base64. -**define (dictionary):** <word> -- Returns a dictionary definition for <word>. +**decypher (decipher):** <pass> <string> - decyphers <string> with <password> -**deluser**: <user> [group] - removes <user> from [group], or from all groups if no group is specified ( *Permission required:* permissions_users) +**define (dictionary):** <word> -- Returns a dictionary definition from Wordnik for <word>. -**deop**: [channel] <user> - deops <user> in [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_op, op) +**deleteherald**: deleteherald <nickname> Delete <nickname>'s herald. ( *Permission required:* botcontrol, snoonetstaff) + +**deluser**: <user> <group> - removes <user> from <group>, or from all groups if no group is specified ( *Permission required:* permissions_users) + +**deop**: <channel> <user> - deops <user> in <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_op, op) **derpify**: derpify <text> - returns some amusing responses from your input. -**devoice**: [channel] <user> - devoices <user> in [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_voice, op) +**devoice**: <channel> <user> - devoices <user> in <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_voice, op) **dig**: .dig <domain> <recordtype> returns a list of records for the specified domain valid record types are A, NS, TXT, and MX. If a record type is not chosen A will be the default. -**dinner (wtfsimfd):** - TELLS YOU WHAT THE F**K YOU SHOULD MAKE FOR DINNER - **disableregex**: Command has no documentation. ( *Permission required:* botcontrol) -**doit**: prints a do it line, example: mathmaticians do with a pencil +**dogecoin (doge):** -- Returns current dogecoin value + +**doggifs**: - Returns a random dog GIF from http://bestanimations.com/ + +**doit**: - prints a do it line, example: mathmaticians do with a pencil **domain (domainr):** <domain> - uses domain.nr's API to search for a domain, and similar domains +**donut**: <user> - gives a donut to <user> + +**doobie**: <user> - gives a doobie to <user> + **down (offline, up):** <url> - checks if <url> is online or offline +**dp (g, dogpile):** Uses the dogpile search engine to find shit on the web. + +**dpis (gis):** Uses the dogpile search engine to search for images. + +**dragon (ds):** Searches the dragonvale wiki for the specified text. + **drama**: <phrase> - gets the first paragraph of the Encyclopedia Dramatica article on <phrase> **drink**: <nick>, makes the user a random cocktail. +**duckforgive**: Allows people to be removed from the mandatory cooldown period. ( *Permission required:* op, ignore) + +**duckkic (starthun, stophun):** dummmy command to make sure people use the full command so OPS can block it if they need to. + +**duckkick**: If the bot has OP or half-op in the channel you can specify .duckkick enable|disable so that people are kicked for shooting or befriending a non-existent duck. Default is off. ( *Permission required:* chanop, op, botcontrol) + +**duckmerge**: Moves the duck scores from one nick to another nick. Accepts two nicks as input the first will have their duck scores removed the second will have the first score added. Warning this cannot be undone. ( *Permission required:* botcontrol) + +**ducks**: Prints a users duck stats. If no nick is input it will check the calling username. + +**duckstats**: Prints duck statistics for the entire channel and totals for the network. + +**dumpchans**: - Dumps all stored channel data for this connection to the console ( *Permission required:* botcontrol) + +**dumpusers**: - Dumps all stored user data for this connection to the console ( *Permission required:* botcontrol) + +**dwi (dealwithit):** <nick> - Tell <nick> in the channel to deal with it. Code located in reactions.py + **e (etymology):** <word> - retrieves the etymology of <word> -**enableregex**: Command has no documentation. ( *Permission required:* botcontrol) +**eggcalc (dragoncalc, dc):** Parses dragonvalebreedingguide.com for a list of possible dragons based on the incubation time. Enter the time as 5 hours, 30 minutes. For upgraded incubation times put 'upgrade' at the front of the time length -**encrypt**: <pass> <string> - encrypts <string> with <pass>. (<string> can only be decrypted using this bot) +**enableregex**: Command has no documentation. ( *Permission required:* botcontrol) -**escape**: escape <string> -- Unicode escapes <string>. +**escape**: <string> -- Unicode escapes <string>. **expand**: <url> - unshortens <url> -**f (forget):** <word> - forgets previously remembered <word> ( *Permission required:* delfactoid) +**f (forget):** <word> - forgets previously remembered <word> ( *Permission required:* op, chanop) **fact**: Gets a random fact about numbers or dates. **feed (rss, news):** <feed> -- Gets the first three items from the RSS/ATOM feed <feed>. +**fetish (tmf):** <nick> - Did some one just mention what your fetish was? Let <nick> know! Code located in reactions.py + +**fight (fite, challenge, spar):** <user> - fights <user> + +**fix**: fixes a flipped over table. ┬─┬ノ(ಠ_ಠノ) + +**flenny**: flenny is watching. + **flip**: <text> -- Flips <text> over. **flirt (jackmeoff, sexup):** <user> - flirts with <user> **flushlog**: Command has no documentation. ( *Permission required:* botcontrol) -**fml**: - gets a random quote from fmyfife.com +**fmk**: Fuck, Marry, Kill + +**fml**: - gets a random quote from fmylife.com **fortune**: - hands out a fortune cookie +**fos (fuckoff, foaas):** fos <name> to tell some one to fuck off or just .fos for a generic fuckoff + +**fp (facepalm):** <nick> - Expresses your frustration with <Nick>. Code located in reactions.py + +**friends**: Prints a list of the top duck friends in the channel, if 'global' is specified all channels in the database are included. + +**fuck**: returns something funny. + **generatehelp**: Dumps a list of commands with their help text to the docs directory formatted using markdown. ( *Permission required:* botcontrol) **geoip**: geoip <host|ip> -- Looks up the physical location of <host|ip> using Maxmind GeoLite -**gitio**: <url> [custom] - shortens a github URL <url> using git.io with [custom] as an optional custom shortlink, +**ghissue (issue):** <username|repo> <number> - gets issue <number>'s summary, or the open issue count if no issue is specified -**global_ignore**: <nick|mask> -- ignores all input from <nick|mask> in ALL channels. ( *Permission required:* ignore) +**gif (giphy):** Searches giphy.com for a gif using the provided search term. -**global_unignore**: <nick|mask> -- un-ignores all input from <nick|mask> in ALL channels. ( *Permission required:* ignore) +**gitio**: <url> <custom> - shortens a github URL <url> using git.io with <custom> as an optional custom shortlink, -**glomp**: glomps the specified nick. +**global_ignore**: <nick|mask> -- ignores all input from <nick|mask> in ALL channels. ( *Permission required:* botcontrol) -**googl**: <url> [custom] - shorten <url> using goo.gl with [custom] as an option custom shortlink, +**global_unignore**: <nick|mask> -- un-ignores all input from <nick|mask> in ALL channels. ( *Permission required:* botcontrol) -**google (g, search):** <query> - returns the first google search result for <query> +**glomp**: <user> - glomps <user> -**googleimage (gis, image):** <query> - returns the first google image result for <query> +**googl**: <url> <custom> - shorten <url> using goo.gl with <custom> as an option custom shortlink, + +**google_translate**: <source language <target language>> <sentence> - translates <sentence> from source language (default autodetect) **gperms**: <group> - lists permissions given to <group> ( *Permission required:* permissions_users) -**grab**: grab <nick> grabs the last message from the +**grab**: grab <nick> grabs the last message from the specified nick and adds it to the quote database -**grabrandom**: grabs a random quote from the grab database +**grabrandom (grabr):** grabs a random quote from the grab database -**grabsearch**: .grabsearch <text> matches "text" against nicks or grab strings in the database +**grabsearch (grabs):** .grabsearch <text> matches "text" against nicks or grab strings in the database **groups (listgroups, permgroups):** - lists all valid groups ( *Permission required:* permissions_users) +**gse**: <query> -- Returns first Google search result for <query>. + +**gseis (image):** <query> -- Returns first Google Images result for <query>. + **gusers**: <group> - lists users in <group> ( *Permission required:* permissions_users) -**hash**: hash <string> -- Returns hashes of <string>. +**halal (halaal):** <user> - gives food to <user> + +**hash**: <string> -- Returns hashes of <string>. + +**hd (headdesk):** <nick> - Hit your head against the desk becausae of <nick>. Code located in reactions.py -**help**: [command] - gives help for [command], or lists all available commands if no command is specified +**help**: <command> - gives help for <command>, or lists all available commands if no command is specified -**herald**: herald [message] adds a greeting for your nick that will be announced everytime you join the channel. +**herald**: herald <message> adds a greeting for your nick that will be announced everytime you join the channel. Using .herald show will show your current herald and .herald delete will remove your greeting. + +**high5 (highfive, hi5):** <user> - highfives <user> **hookup**: matches two users from the channel in a sultry scene. **horoscope**: <sign> - get your horoscope -**ignore**: <nick|mask> -- ignores all input from <nick|mask> in this channel. ( *Permission required:* ignore) +**hug**: <user> - hugs <user> + +**hunt_opt_out**: Running this command without any arguments displays the status of the current channel. hunt_opt_out add #channel will disable all duck hunt commands in the specified channel. hunt_opt_out remove #channel will re-enable the game for the specified channel. ( *Permission required:* op, ignore) + +**icecream**: <user> - gives icecream to <user> + +**ignore**: <nick|mask> -- ignores all input from <nick|mask> in this channel. ( *Permission required:* ignore, chanop) **imdb**: imdb <movie> - gets information about <movie> from IMDb -**imgur**: [search term] / [/r/subreddit] / [/user/username] / memes / random - returns a link to a random imgur image based +**imgur**: <search term> / </r/subreddit> / </user/username> / memes / random - returns a link to a random imgur image based -**imguralbum (album, multiimgur, imgalbum):** [search term] / [/r/subreddit] / [/user/username] / memes / random - returns a link to lots of random images +**imguralbum (multiimgur, imgalbum, album):** <search term> / </r/subreddit> / </user/username> / memes / random - returns a link to lots of random images **info**: <factoid> - shows the source of a factoid **insult**: <user> - insults <user> -**isbase64 (checkbase64):** isbase64 <string> -- Checks if <string> is a valid base64 encoded string +**isbase64 (checkbase64):** <string> -- Checks if <string> is a valid base64 encoded string -**isgd**: <url> [custom] - shortens a url using is.gd with [custom] as an optional custom shortlink, +**isgd**: <url> <custom> - shortens a url using is.gd with <custom> as an optional custom shortlink, -**issues**: <username|repo> [number] - gets issue [number]'s summary, or the open issue count if no issue is specified +**issafe**: <website> -- Checks the website against Google's Safe Browsing List. **isup**: <url> - uses isup.me to check if <url> is online or offline -**join**: <channel> - joins <channel> ( *Permission required:* botcontrol) +**join**: <channel> - joins <channel> ( *Permission required:* botcontrol, snoonetstaff) + +**karma (ruser):** karma <reddituser> will return the information about the specified reddit username + +**kebab**: <user> - gives a kebab to <user> + +**kenm**: Wisdom from Ken M. **kernel**: - gets a list of linux kernel versions -**kick**: [channel] <user> - kicks <user> from [channel], or from the caller's channel if no channel is specified ( *Permission required:* op_kick, op) +**kero (kerowhack):** - Returns the text input the way kerouac5 would say it. + +**keto**: <user> - gives food to <user> + +**kick**: <channel> <user> - kicks <user> from <channel>, or from the caller's channel if no channel is specified ( *Permission required:* op_kick, op) + +**kill (end):** <user> - kills <user> -**kill**: <user> - kills <user> +**killers**: Prints a list of the top duck killers in the channel, if 'global' is specified all channels in the database are included. -**la (lartist):** <artist> prints information about the specified artist +**kosher**: <user> - gives food to <user> + +**langlist (tlist):** List the languages/codes that can be used to translate. Translation is powered by Yandex https://translate.yandex.com **lart**: <user> - LARTs <user> -**lastfm (np, l):** [user] [dontsave] - displays the now playing (or last played) track of LastFM user [user] +**lastfm (last, np, l):** <user> <dontsave> - displays the now playing (or last played) track of LastFM user <user> + +**lastfmcompare (lc, compare):** <user> (<user> optional) - displays the now playing (or last played) track of LastFM user <user> -**lastfmcompare (compare, lc):** [user] ([user] optional) - displays the now playing (or last played) track of LastFM user [user] +**lastgrab (lgrab):** prints the last grabbed quote from <nick>. -**lastgrab**: prints the last grabbed quote from <nick>. +**lawyerjoke**: - returns a lawyer joke, so lawyers know how much we hate them **leet**: <text> -- Makes <text> more 1337h4x0rz. -**length**: length <string> -- Gets the length of <string> +**length**: <string> -- Gets the length of <string> + +**lenny**: why the shit not lennyface + +**libreband (librela):** <artist> - displays information about <artist>. + +**librecompare (librelc):** This command is not supported in the libre.fm API + +**librefm (librelast, librenp):** <user> <dontsave> - displays the now playing (or last played) track of libre.fm user <user> + +**librelibrelta (libretopall):** Grabs a list of the top artists in the last year for a libre.fm username. You can set your librefm username with .l username + +**libreltm (libretopmonth):** Grabs a list of the top artists in the last month for a libre.fm username. You can set your librefm username with .l username + +**libreltw (libretopweek):** Grabs a list of the top artists in the last week for a libre.fm username. You can set your librefm username with .l username + +**libreplays**: This command is not supported in the libre.fm API + +**libretopartists (libreta):** Grabs a list of the top artists for a libre.fm username. You can set your libre.fm username with .librefm username + +**libretoptrack (librett, libretop, libretoptracks):** Grabs a list of the top tracks for a libre.fm username **listbad**: Returns a list of bad words specify a channel to see words for a particular channel ( *Permission required:* badwords) -**listfactoids**: - lists all available factoids ( *Permission required:* listfactoids) +**listchans**: -- Lists the current channels the bot is in ( *Permission required:* botcontrol) + +**listfacts**: - lists all available factoids + +**listoptout**: <channel> - View the opt out data for <channel> or the current channel if not specified. Specify "global" to view all data for this network **listregex**: Command has no documentation. ( *Permission required:* botcontrol) -**lmgtfy (gfy):** [phrase] - gets a lmgtfy.com link for the specified phrase +**litecoin (ltc):** -- Returns current litecoin value + +**lmgtfy (gfy):** <phrase> - gets a lmgtfy.com link for the specified phrase + +**load_geoip**: Command has no documentation. ( *Permission required:* botcontrol) **loadbad**: Should run on start of bot to load the existing words into the regex ( *Permission required:* badwords) -**lock**: [channel] - locks [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_lock, op) +**locate (maps):** <location> -- Finds <location> on Google Maps. -**lower**: lower <string> -- Convert string to lowercase. +**lock**: <channel> - locks <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_lock, op) -**lt (ltrack):** Grabs a list of the top tracks for a last.fm username +**lower**: <string> -- Convert string to lowercase. **lta (topartist):** Grabs a list of the top artists for a last.fm username. You can set your lastfm username with .l username -**ltc (litecoin):** - gets litecoin exchange rate from BTC-E +**ltm (topmonth):** Grabs a list of the top artists in the last month for a last.fm username. You can set your lastfm username with .l username **ltop (ltt):** Grabs a list of the top tracks for a last.fm username -**mcping (mcp):** <server[:port]> - gets info about the Minecraft server at <server[:port]> +**ltw (topweek):** Grabs a list of the top artists in the last week for a last.fm username. You can set your lastfm username with .l username + +**lty (topyear):** Grabs a list of the top artists in the last year for a last.fm username. You can set your lastfm username with .l username + +**lurve (luff, luv):** <user> - lurves <user> + +**lyrics**: lyrics <artist and/or song> will fetch the first 150 characters of a song and a link to the full lyrics. + +**mcping (mcp):** <server<:port>> - gets info about the Minecraft server at <server<:port>> **mcstatus**: - gets the status of various Mojang (Minecraft) servers -**mcuser (mcpaid, haspaid):** <username> - gets information about the Minecraft user <account> +**mcuser (haspaid, mcpaid):** <username> - gets information about the Minecraft user <account> **mcwiki**: mcwiki <phrase> - gets the first paragraph of the Minecraft Wiki article on <phrase> -**me (act):** [#channel] <action> - acts out <action> in a [#channel], or in the current channel of none is specified ( *Permission required:* botcontrol) +**me (act):** <#channel> <action> - acts out <action> in a <#channel>, or in the current channel of none is specified ( *Permission required:* botcontrol, snoonetstaff) + +**meh**: - List the current meh.com deal. + +**message (sayto):** <name> <message> - says <message> to <name> ( *Permission required:* botcontrol, snoonetstaff) + +**metacritic (mc):** <all|movie|tv|album|x360|ps3|pc|gba|ds|3ds|wii|vita|wiiu|xone|ps4> <title> - gets rating for <title> from + +**metar**: metars <ICAO station code> returns the metars information for the specified station. A list of station codes can be found here: http://weather.rap.ucar.edu/surface/stations.txt -**message (sayto):** <name> <message> - says <message> to <name> ( *Permission required:* botcontrol) +**mfp (myfitnesspal):** <user> - returns macros from the MyFitnessPal food diary of <user> -**metacritic (mc):** [all|movie|tv|album|x360|ps3|pc|gba|ds|3ds|wii|vita|wiiu|xone|ps4] <title> - gets rating for <title> from +**milkshake**: <user> - gives a milkshake to <user> -**minuspts**: prints the things you have liked +**minuspts**: - prints the things you have disliked and their scores -**mlb**: mlb <team city> gets the score or next scheduled game for the specified team. If no team is specified all games will be included. +**mlb**: <team city> - gets the score or next scheduled game for the specified team. If no team is specified all games will be included. **mlia**: - gets a random quote from MyLifeIsAverage.com -**mm (rmpoint):** .rmpoint or (.mm) <thing> subtracts a point from the <thing> +**mm (rmpoint):** <thing> - subtracts a point from the <thing> + +**mock**: <nick> - turn <user>'s last message in to aLtErNaTiNg cApS + +**monsterfriends**: Prints a list of the top monster friends in the channel, if 'global' is specified all channels in the database are included. + +**monsterkillers**: Prints a list of the top monster killers in the channel, if 'global' is specified all channels in the database are included. + +**monsters**: Prints a users monster stats. If no nick is input it will check the calling username. + +**monsterstats**: Prints monster statistics for the entire channel and totals for the network. + +**moregrab**: if a grab search has lots of results the results are pagintated. If the most recent search is paginated the pages are stored for retreival. If no argument is given the next page will be returned else a page number can be specified. + +**moremod**: if a sub or mod list has lots of results the results are pagintated. If the most recent search is paginated the pages are stored for retreival. If no argument is given the next page will be returned else a page number can be specified. + +**moreprofile**: If a category search has lots of results the results are paginated. If the most recent search is paginated the pages are stored for retrieval. If no argument is given the next page will be returned else a page number can be specified. + +**morescore**: <pagenum> - if a score list has lots of results the results are pagintated. If the most recent search is paginated the pages are stored for retreival. If no argument is given the next page will be returned else a page number can be specified. + +**muffin**: <user> - gives a muffin to <user> **munge**: <text> -- Munges up <text>. -**mute**: [channel] - mutes [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_mute, op) +**mute**: <channel> - mutes <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_mute, op) -**namegen**: [generator|list] - generates some names using the chosen generator, or lists all generators if 'list' is specified +**namegen**: <generator|list> - generates some names using the chosen generator, or lists all generators if 'list' is specified -**nba**: nba <team city> gets the score or next scheduled game for the specified team. If no team is specified all games will be included. +**nba**: <team city> - gets the score or next scheduled game for the specified team. If no team is specified all games will be included. -**ncaab**: ncaab <team city> gets the score or next scheduled game for the specified team. If no team is specified all games will be included. +**ncaab**: <team city> - gets the score or next scheduled game for the specified team. If no team is specified all games will be included. -**ncaaf**: ncaaf <team city> gets the score or next scheduled game for the specified team. If no team is specified all games will be included. +**ncaaf**: <team city> - gets the score or next scheduled game for the specified team. If no team is specified all games will be included. **newegg**: newegg <item name> - searches newegg.com for <item name> -**nfl**: nfl <team> gets the score or next schedule game for the specified team. If no team specified all games will be included. +**nfl**: <team city> - gets the score or next scheduled game for the specified team. If no team is specified all games will be included. -**nhl**: nhl <team city> gets the score or next scheduled game for the specified team. If no team is specified all games will be included. +**nhl**: <team city> - gets the score or next scheduled game for the specified team. If no team is specified all games will be included. **nick**: <nick> - changes my nickname to <nick> ( *Permission required:* botcontrol) -**nk**: outputs a random North Korea propoganda slogan +**nk**: - outputs a random North Korea propaganda slogan + +**noodles**: <user> - gives noodles to <user> **note (notes, todo):** <add|list|get|del|clear> args - manipulates your list of notes +**nugget**: <user> - gives nuggets to <user> + +**objgrowth**: Command has no documentation. ( *Permission required:* botcontrol) + +**objtypes**: Command has no documentation. ( *Permission required:* botcontrol) + **octopart (octo):** octopart <keyword> -- Search for any part on the Octopart database. -**op**: [channel] <user> - ops <user> in [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_op, op) +**op**: <channel> <user> - ops <user> in <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_op, op) + +**optout**: <chan> <pattern> <allow> - Set the global allow option for hooks matching <pattern> in <chan>, or the current channel if not specified -**osrc**: <github user> - gets an Open Source Report Card for <github user> from osrc.dfm.io +**pancake**: <user> - gives pancakes to <user> -**part**: [#channel] - parts [#channel], or the caller's channel if no channel is specified ( *Permission required:* botcontrol) +**part**: <#channel> - parts <#channel>, or the caller's channel if no channel is specified ( *Permission required:* botcontrol, snoonetstaff) -**password**: [length [types]] - generates a password of <length> (default 10). [types] can include 'alpha', 'no caps', +**password**: <length <types>> - generates a password of <length> (default 12). <types> can include 'alpha', 'no caps', 'numeric', 'symbols' or any combination: eg. 'numbers symbols' (default: alpha numeric no caps) + +**pasta**: <user> - gives pasta to <user> + +**penis (bepis):** much dongs, very ween, add a user nick as an arguement for slightly different 'output' + +**pie**: <user> - gives pie to <user> **pig (piglatin):** pig <text> -- Converts <text> to pig latin. -**ping**: <host> [count] - pings <host> [count] times +**ping**: <host> <count> - pings <host> <count> times + +**pizza**: <user> - gives pizza to <user> + +**plays**: <artist> - displays the current user's playcount for <artist>. You must have your username saved. -**plpaste**: <command> - pastes the plugin file that contains <command> ( *Permission required:* plpaste) +**plpaste**: <command> - pastes the plugin file that contains <command> ( *Permission required:* botcontrol) -**pluspts**: prints the things you have liked +**pluginlist**: - List all currently loaded plugins ( *Permission required:* botcontrol) -**points**: .points <thing> will print the total points for <thing> in the channel. +**pluginload**: <plugin path> - (Re)load <plugin> manually ( *Permission required:* botcontrol) -**poll**: .poll <description>[: choice1, choice2, ..., choice n] - Begins a poll if you do not already have an active poll; choices default to [yes|no]; end poll and get results with '.poll close'. +**pluginunload**: <plugin path> - Unload <plugin> manually ( *Permission required:* botcontrol) -**polls**: .polls [user] - Gets a list of active polls, or information on a specific poll. +**pluspts**: - prints the things you have liked and their scores -**potato**: <user> - makes <user> a tasty little potato +**points**: <thing> - will print the total points for <thing> in the channel. -**pp (addpoint):** .addpoint or (.pp) <thing> adds a point to the <thing> +**poll**: Command has no documentation. + +**potato**: <user> - gives a potato to <user> + +**pp (addpoint):** <thing> - adds a point to the <thing> **pre (scene):** pre <query> -- searches scene releases using orlydb.com +**present (gift):** <user> - gives gift to <user> + +**profile**: <nick> <category> Returns a user's saved profile data from "<category>", or lists all available profile categories for the user if no category specified + +**profileadd**: <category> <content> Adds data to your profile in the current channel under "<category>" + +**profileclear**: Clears all of your profile data in the current channel + +**profiledel**: <category> Deletes "<category>" from a user's profile + **pronounce (sounditout):** <word> -- Returns instructions on how to pronounce <word> with an audio example. -**pun**: Come on everyone loves puns right? +**pun**: - Come on everyone loves puns right? + +**pymdiff**: Command has no documentation. ( *Permission required:* botcontrol) + +**pymsummary**: Command has no documentation. ( *Permission required:* botcontrol) **python (py):** <python code> - executes <python code> using eval.appspot.com -**q (quote):** [#chan] [nick] [#n] OR add <nick> <message> - gets the [#n]th quote by <nick> (defaulting to random) +**q (quote):** <#chan> <nick> <#n> OR add <nick> <message> - gets the <#n>th quote by <nick> (defaulting to random) **qrcode (qr):** <link> - returns a link to a QR code image for <link> -**quiet**: [channel] <user> - quiets <user> in [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_quiet, op) +**quiet**: <channel> <user> - quiets <user> in <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_quiet, op) -**r (remember):** <word> [+]<data> - remembers <data> with <word> - add + to <data> to append ( *Permission required:* addfactoid) +**quran (verse):** Prints the specified Qur'anic verse(s) and its/their translation(s) + +**r (remember):** <word> <+><data> - remembers <data> with <word> - add + to <data> to append. If the input starts with <act> the message will be sent as an action. If <user> in in the message it will be replaced by input arguments when command is called. ( *Permission required:* op, chanop) **rainbow**: <text> -- Gives <text> rainbow colors. +**randomusefulsite**: Command has no documentation. + **raw**: <command> - sends <command> as a raw IRC command ( *Permission required:* botcontrol) -**recipe**: [term] - gets a recipe for [term], or gets a random recipe if no term is specified +**reconnect**: <connection> - Reconnects to <connection> or the current connection if not specified ( *Permission required:* botcontrol) -**reddit**: <subreddit> [n] - gets a random post from <subreddit>, or gets the [n]th post in the subreddit +**reddit**: <subreddit> <n> - gets a random post from <subreddit>, or gets the <n>th post in the subreddit **regexstatus**: Command has no documentation. ( *Permission required:* botcontrol) **remind (reminder, in):** <1 minute, 30 seconds>: <do task> -- reminds you to <do task> in <1 minute, 30 seconds> -**remove**: [channel] <user> - force removes <user> from [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_rem, op) +**remove**: <user> - force removes <user> from the caller's channel. ( *Permission required:* op_rem, op) **resethistory**: - resets chat history for the current channel **resetregex**: Command has no documentation. ( *Permission required:* botcontrol) -**restart**: [reason] - restarts me with [reason] as its quit message. ( *Permission required:* botcontrol) +**restart**: <reason> - restarts me with <reason> as its quit message. ( *Permission required:* botcontrol) + +**results**: <user> -- Shows current results from <user>'s poll. If <user> is empty, -**reverse**: reverse <string> -- Reverses <string>. +**reverse**: <string> -- Reverses <string>. + +**rice**: <user> - gives rice to <user> **rmbad (delbad):** removes the specified word from the specified channels bad word list ( *Permission required:* badwords) **roll (dice):** <dice roll> - simulates dice rolls. Example: 'dice 2d20-d5+4 roll 2': D20s, subtract 1D5, add 4 -**rot13**: rot13 <string> -- Encode <string> with rot13. +**rot13**: <string> -- Encode <string> with rot13. **rottentomatoes (rt):** rt <title> -- gets ratings for <title> from Rotten Tomatoes -**sandwich**: <user> - give a tasty sandwich to <user> +**ruad (ruadick, rud):** checks ruadick.com to see if you're a dick on reddit + +**sandwich**: <user> - gives a sandwich to <user> -**say**: [#channel] <message> - says <message> to [#channel], or to the caller's channel if no channel is specified ( *Permission required:* botcontrol) +**sauce (source):** Returns a link to the source + +**say**: <#channel> <message> - says <message> to <#channel>, or to the caller's channel if no channel is specified ( *Permission required:* botcontrol, snoonetstaff) + +**scone**: <user> - gives a scone to <user> + +**scuser**: <query> -- Searches for users on SoundCloud. **seen**: <nick> <channel> - tells when a nickname was last in active in one of my channels -**shorten**: <url> [custom] - shortens a url with [custom] as an optional custom shortlink +**shorten**: <url> <custom> - shortens a url with <custom> as an optional custom shortlink **showtells**: showtells -- View all pending tell messages (sent in a notice). -**slap**: <user> -- Makes the bot slap <user>. +**shrug**: shrugs + +**slap**: <user> - Makes the bot slap <user>. + +**slickdeals**: - List the top 3 frontpage slickdeals.net deals. **snopes**: snopes <topic> -- Searches snopes for an urban legend about <topic>. +**soundcloud (sc):** <query> -- Searches for tracks on SoundCloud. + +**soup**: <user> - gives Some Soup to <user> + **spalbum**: spalbum <album> -- Search Spotify for <album> -**spartist**: spartist <artist> -- Search Spotify for <artist> +**spank**: <user> - Spanks <user> + +**spartist (artist):** spartist <artist> -- Search Spotify for <artist> **spell**: spell <word/sentence> -- Check spelling of a word or sentence. **spotify (sptrack):** spotify <song> -- Search Spotify for <song> -**steam**: steam [Takes a Steam ID_64 formatted ID and returns a ID_32 formatted IDsearch] - Search for specified +**starthunt**: This command starts a duckhunt in your channel, to stop the hunt use .stophunt ( *Permission required:* chanop, op, botcontrol) + +**steak**: <user> - gives a nice steak dinner to <user> + +**steam**: <query> - Search for specified game/trailer/DLC + +**steamcalc (steamdb):** steamcalc <username> - Gets value of steam account. Uses steamcommunity.com/id/<nickname>. **steamid (steamuser, su, sid):** steamid <username> -- gets the steam ID of <username>. Uses steamcommunity.com/id/<nickname>. **stock**: <symbol> -- gets stock information -**stop (quit):** [reason] - stops me with [reason] as its quit message. ( *Permission required:* botcontrol) +**stophunt**: This command stops the duck hunt in your channel. Scores will be preserved ( *Permission required:* chanop, op, botcontrol) + +**stopthebot**: <reason> - stops me with <reason> as its quit message. ( *Permission required:* botcontrol) + +**strax**: <user> - Generates a quote from Strax, optionally targeting <user> + +**subinfo (sub, subreddit, rinfo):** subinfo <subreddit> fetches information about the specified subreddit. + +**submods (mods, rmods):** submods <subreddit> prints the moderators of the specified subreddit. + +**subs (moderates):** This plugin prints the list of subreddits a user moderates listed in a reddit users profile. Private subreddits will not be listed. **suggest**: suggest <phrase> -- Gets suggested phrases for a google search **superscript**: <text> -- Makes <text> superscript. -**swapcase**: swapcase <string> -- Swaps the capitalization of <string>. +**sushi**: <user> - gives sushi to <user> + +**swapcase**: <string> -- Swaps the capitalization of <string>. **synonym**: <word> -- Returns a list of synonyms for <word>. @@ -390,67 +672,87 @@ gonzobot Command list **table**: <text> -- (╯°□°)╯︵ <ʇxǝʇ> +**taco**: <user> - gives a taco to <user> + +**taf**: tafs <ICAO station code> returns the taf information for the specified station. A list of station codes can be found here: http://weather.rap.ucar.edu/surface/stations.txt + +**tea**: <user> - gives tea to <user> + **tell**: tell <nick> <message> -- Relay <message> to <nick> when <nick> is around. **tfw**: Command has no documentation. -**titlecase**: title <string> -- Convert string to title case. +**threaddump**: Command has no documentation. ( *Permission required:* botcontrol) -**topic**: [channel] <topic> - changes the topic to <topic> in [channel], or in the caller's channel ( *Permission required:* op_topic, op) +**time**: <location> -- Gets the current time in <location>. -**topten (loved, pointstop):** .topten or .pointstop prints the top 10 things with the highest points in the channel. To see the top 10 items in all of the channels the bot sits in use .topten global. +**titlecase**: <string> -- Convert string to title case. -**translate**: [source language [target language]] <sentence> - translates <sentence> from source language (default autodetect) +**topic**: <channel> <topic> - changes the topic to <topic> in <channel>, or in the caller's channel ( *Permission required:* op_topic, op) + +**topten (pointstop, loved):** - prints the top 10 things with the highest points in the channel. To see the top 10 items in all of the channels the bot sits in use .topten global. + +**tran (translate):** tran <language or language code> text to translate. Translation is Powered by Yandex https://translate.yandex.com + +**triforce**: - returns a triforce! + +**trump**: <user> - Trump a <user> **tv (tv_next):** tv <series> -- Get the next episode of <series>. **tv_prev (tv_last):** tv_last <series> -- Gets the most recently aired episode of <series>. -**twitch**: Command has no documentation. +**twitch (twitchtv):** <channel name> -- Retrieves the channel and shows it's offline/offline status -**twitter (twatter, tw):** twitter <user> [n] -- Gets last/[n]th tweet from <user> +**twitter (tw, twatter):** twitter <user> <n> -- Gets last/<n>th tweet from <user> **twuser (twinfo):** twuser <user> -- Get info on the Twitter user <user> -**ugroups**: [user] - lists all permissions given to [user], or the caller if no user is specified +**ugroups**: <user> - lists all permissions given to <user>, or the caller if no user is specified + +**unban**: <channel> <user> - unbans <user> in <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_ban, op) -**unban**: [channel] <user> - unbans <user> in [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_ban, op) +**unescape**: <string> -- Unicode unescapes <string>. -**unescape**: unescape <string> -- Unicode unescapes <string>. +**unignore**: <nick|mask> -- un-ignores all input from <nick|mask> in this channel. ( *Permission required:* ignore, chanop) -**unignore**: <nick|mask> -- un-ignores all input from <nick|mask> in this channel. ( *Permission required:* ignore) +**unlock**: <channel> - unlocks <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_lock, op) -**unlock**: [channel] - unlocks [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_lock, op) +**unmute**: <channel> - unmutes <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_mute, op) -**unmute**: [channel] - unmutes [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_mute, op) +**unquiet**: <channel> <user> - unquiets <user> in <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_quiet, op) -**unquiet**: [channel] <user> - unquiets <user> in [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_quiet, op) +**updateusers**: - Forces an update of all /NAMES data for all channels ( *Permission required:* botcontrol) -**uperms**: [user] - lists all permissions given to [user], or the caller if no user is specified +**uperms**: <user> - lists all permissions given to <user>, or the caller if no user is specified -**upper**: upper <string> -- Convert string to uppercase. +**upper**: <string> -- Convert string to uppercase. -**urban (u):** urban <phrase> [id] -- Looks up <phrase> on urbandictionary.com. +**urban (u):** urban <phrase> <id> -- Looks up <phrase> on urbandictionary.com. **usa**: <text> -- Makes <text> more patriotic. -**validate (w3c):** validate <url> -- Runs url through the w3c markup validator. +**validate (w3c):** validate <url> -- Runs url through the W3C Markup Validator. -**voice**: [channel] <user> - voices <user> in [channel], or in the caller's channel if no channel is specified ( *Permission required:* op_voice, op) +**voat**: <subverse> <n> - gets a random post from <subverse>, or gets the <n>th post in the subverse + +**voice**: <channel> <user> - voices <user> in <channel>, or in the caller's channel if no channel is specified ( *Permission required:* op_voice, op) **vote**: .vote <poll> <choice> - Vote on a poll; responds on error and silently records on success. -**weather (we):** weather <location> [dontsave] -- Gets weather data +**weather (we):** weather <location> -- Gets weather data for <location>. **whois**: <domain> -- Does a whois query on <domain>. **wiki (w, wikipedia):** wiki <phrase> -- Gets first sentence of Wikipedia article on <phrase>. -**wisdom**: words of wisdom from various bathroom stalls. +**wine**: <user> - gives wine to <user> + +**wisdom**: - words of wisdom from various bathroom stalls. -**wnba**: wnba <team city> gets the score or next scheduled game for the specified team. If no team is specified all games will be included. +**wnba**: <team city> - gets the score or next scheduled game for the specified team. If no team is specified all games will be included. -**wolframalpha (convert, wa, ca, calc, math):** w<query> -- Computes <query> using Wolfram Alpha. +**wolframalpha (ca, wa, math, calc, convert):** <query> -- Computes <query> using Wolfram Alpha. **word (wordoftheday):** returns the word of the day. To see past word of the day enter use the format yyyy-MM-dd. The specified date must be after 2009-08-10. @@ -458,9 +760,7 @@ gonzobot Command list **wordusage (wordexample, usage):** <word> -- Returns an example sentence showing the usage of <word>. -**wouldyou**: Asks a would you rather question - -**wpass (wordpass, wordpassword):** [length] - generates an easy to remember password with [length] (default 4) commonly used words +**wpass (wordpass, wordpassword):** <length> - generates an easy to remember password with <length> (default 4) commonly used words **wrainbow**: <text> -- Gives each word in <text> rainbow colors. @@ -468,9 +768,11 @@ gonzobot Command list **xkcd**: xkcd <search term> - Search for xkcd comic matching <search term> -**yomomma**: input <nick>, tells a yo momma joke to <nick> +**yomomma**: <nick> - tells a yo momma joke to <nick> **youtime (ytime):** youtime <query> -- Gets the total run time of the first YouTube search result for <query>. **youtube (yt, you, y):** youtube <query> -- Returns the first YouTube search result for <query>. +**zombs**: prints some fucked up shit. + diff --git a/plugins/correction.py b/plugins/correction.py index 286a80ad5..155f2c497 100644 --- a/plugins/correction.py +++ b/plugins/correction.py @@ -7,6 +7,9 @@ unescape_re = re.compile(r'\\(.)') +def shorten_msg(msg): + out = (msg[:500]) if len(msg) > 500 else msg + return out @hook.regex(correction_re) def correction(match, conn, nick, chan, message): """ diff --git a/plugins/duckhunt.py b/plugins/duckhunt.py index 305e4c584..f9169f5ee 100644 --- a/plugins/duckhunt.py +++ b/plugins/duckhunt.py @@ -116,7 +116,7 @@ def incrementMsgCounter(event, conn): global game_status if event.chan in opt_out: return - if game_status[conn.name][event.chan]['game_on'] == 1 and game_status[conn.name][event.chan]['duck_status'] == 0: + if game_status[conn.name][event.chan]['game_on'] == 1 and game_status[conn.name][event.chan]['duck_status'] == 0 and "snoonet/bot/" not in event.host: game_status[conn.name][event.chan]['messages'] += 1 if event.host not in game_status[conn.name][event.chan]['masks']: game_status[conn.name][event.chan]['masks'].append(event.host) @@ -342,6 +342,8 @@ def attack(nick, chan, message, db, conn, notice, attack): if not random.random() <= chance and chance > .05: out = random.choice(miss) + " You can try again in 7 seconds." scripters[nick.lower()] = shoot + 7 + if nick.lower() == "paradox": + scripters[nick.lower()] = shoot + 864000 return out if chance == .05: diff --git a/plugins/geoip.py b/plugins/geoip.py index d08fe44de..a78241377 100644 --- a/plugins/geoip.py +++ b/plugins/geoip.py @@ -70,6 +70,7 @@ def check_db(loop): @asyncio.coroutine @hook.on_start +@hook.command(permissions=['botcontrol']) def load_geoip(loop): async_util.wrap_future(check_db(loop), loop=loop) diff --git a/plugins/google.py b/plugins/google.py index 11a693756..f1132f748 100644 --- a/plugins/google.py +++ b/plugins/google.py @@ -13,7 +13,6 @@ def api_get(kind, query): # @hook.command("googleimage", "gis", "image") def googleimage(text): """ - returns the first google image result for """ - parsed = api_get('images', text) if not 200 <= parsed['responseStatus'] < 300: raise IOError('error searching for images: {}: {}'.format(parsed['responseStatus'], '')) diff --git a/plugins/google_cse.py b/plugins/google_cse.py index a679565d7..c5e74f62a 100644 --- a/plugins/google_cse.py +++ b/plugins/google_cse.py @@ -68,7 +68,7 @@ def gse_gis(text): result = parsed['items'][0] metadata = parsed['items'][0]['image'] except KeyError: - return "No results found." + return "No results found or I am out of free searches for the day. Try .bis or .gif" dimens = '{}x{}px'.format(metadata['width'], metadata['height']) size = filesize.size(int(metadata['byteSize'])) diff --git a/plugins/huntblock.py b/plugins/huntblock.py new file mode 100644 index 000000000..82c38c625 --- /dev/null +++ b/plugins/huntblock.py @@ -0,0 +1,6 @@ +from cloudbot import hook + +@hook.command("duckkic", "starthun", "stophun", autohelp=False) +def huntfoil(): + """dummmy command to make sure people use the full command so OPS can block it if they need to.""" + return "please use the full command." diff --git a/plugins/jokes.py b/plugins/jokes.py index 67782fc7a..4aef4cf56 100644 --- a/plugins/jokes.py +++ b/plugins/jokes.py @@ -97,6 +97,11 @@ def boobies(text): return "Sorry I couldn't turn anything in '{}' into boobs for you.".format(out) return out +@hook.command("zombs", autohelp=False) +def zombs(conn, chan): + """prints some fucked up shit.""" + out = "\u2299\u2299\u0505\u0F0D\u0020\u0E88\u0020\u25DE\u0C6A\u25DF\u0E88\u0020\u0F0D\u0648" + return out @hook.command("awesome", "iscool", "cool") def awesome(text, is_nick_valid): @@ -135,3 +140,8 @@ def kero(text): def lawyerjoke(message): """- returns a lawyer joke, so lawyers know how much we hate them""" message(random.choice(lawyerjoke)) + +@hook.command("fuck", autohelp=False) +def fuck(text): + """returns something funny.""" + return("something funny.") diff --git a/plugins/link_announcer.py b/plugins/link_announcer.py index ba058dcdb..6cf09f590 100644 --- a/plugins/link_announcer.py +++ b/plugins/link_announcer.py @@ -17,7 +17,6 @@ MAX_RECV = 1000000 - @hook.regex(url_re, priority=Priority.LOW, action=Action.HALTTYPE, only_no_match=True) def print_url_title(message, match): with closing(requests.get(match.group(), headers=HEADERS, stream=True, timeout=3)) as r: diff --git a/plugins/monsterhunt.py b/plugins/monsterhunt.py index f5edaf5a7..ecd2ef2b1 100644 --- a/plugins/monsterhunt.py +++ b/plugins/monsterhunt.py @@ -409,7 +409,6 @@ def friends(text, chan, conn, db): url = web.paste(json.dumps(topfriends, indent=4)) out += ' • '.join(["{}: {}".format('\x02' + k[:1] + u'\u200b' + k[1:] + '\x02', str(v)) for k, v in topfriends]) out = smart_truncate(out) - out += " " + url return out diff --git a/plugins/password.py b/plugins/password.py index e9bd61d4d..58e6ee4b3 100644 --- a/plugins/password.py +++ b/plugins/password.py @@ -70,7 +70,7 @@ def word_password(text, notice): try: length = int(text) except ValueError: - length = 3 + length = 4 if length > 10: notice("Maximum length is 50 characters.") diff --git a/plugins/penis.py b/plugins/penis.py new file mode 100644 index 000000000..25461c49e --- /dev/null +++ b/plugins/penis.py @@ -0,0 +1,18 @@ +import random + +from cloudbot import hook + +balls = ['(_)_)', '8', 'B', '(___)__)', '(_)(_)', '(@)@)', '3'] +shaft = ['=', '==', '===', '====', '=====', '========', '/////////////////////////', '|||||||||||||', '\u2248\u2248\u2248'] +head = ['D', 'Q', '>', '|\u2283' '\u22d1', '\u22d9', '\u22d7'] +emission = ['~ ~ ~ ~', '~ * ~ &', '', '*~* *~* %'] +bodypart = ['face', 'glasses', 'thigh', 'tummy', 'back', 'hiney', 'hair', 'boobs', 'tongue'] + +@hook.command("penis", "bepis", autohelp=False) +def penis(text, message, nick): + """much dongs, very ween, add a user nick as an arguement for slightly different 'output'""" + if not text: + message("{}{}{}".format(random.choice(balls), random.choice(shaft), random.choice(head))) + else: + person = text.split(' ')[0] + message("{}{}{}{} all over {}'s {}".format(random.choice(balls), random.choice(shaft), random.choice(head),random.choice(emission), person, random.choice(bodypart))) diff --git a/plugins/profiling.py b/plugins/profiling.py index cfa0ec589..35c5992c7 100644 --- a/plugins/profiling.py +++ b/plugins/profiling.py @@ -61,6 +61,7 @@ def get_thread_dump(): if line: code.append(" {}".format(line.strip())) code.append("") # new line + return "\n".join(code) return web.paste("\n".join(code), ext='txt') diff --git a/plugins/recipe.py b/plugins/recipe.py index 63f1d3bcd..04ac96f5f 100644 --- a/plugins/recipe.py +++ b/plugins/recipe.py @@ -24,7 +24,7 @@ RANDOM_URL = SEARCH_URL + "/surprise" # set this to true to censor this plugin! -CENSOR = True +CENSOR = False PHRASES = [ "EAT SOME FUCKING \x02{}\x02", "YOU WON'T NOT MAKE SOME FUCKING \x02{}\x02", diff --git a/plugins/tell.py b/plugins/tell.py index 97ad9e535..979139c31 100644 --- a/plugins/tell.py +++ b/plugins/tell.py @@ -152,6 +152,8 @@ def tell_cmd(text, nick, db, notice, conn, notice_doc, is_nick_valid): query = text.split(' ', 1) if query[0].lower() == "paradox": return "Paradox doesn't want to hear from me. Just send him a fucking message." + if query[0].lower() in ["rdv", "shane"]: + return "rdv doesn't want to hear from me, if you need something done please ask in #help." if len(query) != 2: notice_doc() return