GithubHelp home page GithubHelp logo

guacbot's Introduction

guacbot

Asynchronous IRC bot written in Javascript

guacbot's People

Contributors

gbelo avatar peed avatar

Stargazers

Angus H. avatar NinjaBanjo avatar  avatar Sugeng Tigefa avatar

Watchers

Butterscotch Stallion avatar  avatar James Cloos avatar

Forkers

gbelo peed

guacbot's Issues

SA plugin

Use SA account to obtain more detailed page titles when forum pages are linked

Refactor YesNo

Refactor the functionality of Yes/No into Arbiter. I think that Arbiter should contain all of the "pick one" type functionality.

Many notes! Handle it!

If lots of messages occur in a short period of time, it is possible for the bot to deliver notes multiple times

Possibly fixable by keeping a local cache of read notifications

Note

Should not be able to send notes to the bot

Improve Titler selector

use .first() for selector to eliminate the unlikely possibility that there is more than one title tag. maybe it will make it faster, who knows!

quiet mode

Quiet mode plugin would disable the listeners temporarily on command

  • Admin only
  • Optional duration

Youtube links cannot be distinguished from videos

If a user links something like youtube.com/user/johndoe then it is interpreted as a video, so it tries to parse out the video ID.

Perhaps if it is unable to parse the video ID, it can fall back to a regular page title

Undefined in Quote plugin

15:58:13 @chillulum guacamole: last quote IcebergSlim
15:58:15 @guacamole Oct 10 2013 04:35:09PM undefinedmundefinedeundefineddundefinediundefinedtundefinedaundefinedtundefinediundefinedoundefinednundefined undefinedaundefinednundefineddundefined
undefinedsundefinedtundefineduundefinedfundefinedfundefined undefinedaundefinednundefineddundefined
undefinedmundefinedeundefineddundefinediundefinedtundefinedaundefinedtundefinediundefinedoun

Fix by only replacing search query when it is present

Refactor Logger

Use a different algorithm to improve performance e.g. not order by rand()

Sending notes to yourself

Because I didn't lowercase the destination nick, it is possible to circumvent that validation by using uppercase characters.

Example:

19:14:57 @chillulum guacamole: note chiLLulum hi
19:14:59 @guacamole Message for chiLLulum saved!
19:15:02 @chillulum hi
19:15:04 @guacamole ATTN chillulum: hi (chillulum a few seconds ago)

Tube Sleuth

Reformat URL to be like this:

youtube.com/?v=videoID instead of youtube.com/v/videoID

IRC error logger

Centralize the sending of messages so that it is possible to get the last message sent, which would allow us to see what message caused the error message

Invalid recipient

06:38:01 paige> n note skeleton_wheels
06:38:02 n> Invalid recipient
06:38:04 paige> o
06:38:07 paige> o k
06:38:12 paige> n note skeleton_wheels n
06:38:13 n: Message for skeleton_wheels saved!
06:38:35 paige: OH SO NOW HES A VALID RECIPIENT

!crankowned

Make a plugin to respond to this command

  • perhaps only make it respond to ops?

Titler speedup

Maybe it is possible to split the HTML up before having it parsed to decrease processing time when it is parsed

Random selections of numbers or ideas

Same vein as "n apples or oranges or pretzels" => "[ ] apples [ ] oranges [โœ“] pretzels".

Ideas, in rough priority order, include:

  • Random integer. "[n1] to [n2]" (or "[n1]-[n2]" if it doesn't interfere with some subtraction routine). e.g. 1 to 10, 1-100, 4-5.
  • Dice. "[n1]d[n2]{+[n3]}." e.g. 3d2, 4d10+1, 1d6. Rolls n1 dice with n2 sides, then adds n3 to the total amount.
  • Randomize a list. "shuffle [item1] [item2] [item3] ... [item_n]" returns the items in shuffled order.

Echo

Randomly repeat someone optionally with quotes around the message

  • Configurable chance to trigger

Argus

Implement Argus, a module for keeping track of which nicks are in which channels. This would eliminate the need to perform a whois in many cases. It could also make it feasible to have plugins perform actions which require a hostmask immediately rather than performing a series of costly whois queries.

Examples:

  • Squire
  • CLS enhancements

Github plugin enhancements

  • Add a command to show the last commit, unread or not
  • Add a limit to show multiple commits, e.g. "github last 5"

Squire batch modes

Instead of making changes every ten seconds, create a queue and apply modes as many as possible at once

Github push notifications plugin

Plugin to announce pushes to a repository

  • Requires endpoint for webhook to hit
  • Stores incoming JSON and request info in db
  • Plugin periodically checks database for new commits that are not marked read
  • Use Handlebars templates for announcement message
  • After successfully retrieving, mark it as read

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.