Giter Club home page Giter Club logo

qbot's People

Contributors

dependabot[bot] avatar dopefishh avatar kdercksen avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

pieterwolfert

qbot's Issues

Concise plugin help commands

Other than the current ~help, there should be some individual help commands per plugin. For example, take the karma plugin; something like the following should also be possible:

user | ~help karma
qbot | <string>++ / <string>-- | Use ~karma <string> to check karma for string.

This type of help string should take precedence over the general ~help.

Handle multiple channels

Currently only one channel is allowed, but this should be extendable to multiple channels/servers fairly easily. Perhaps using some of the new async features in Python 3.6? ๐Ÿ˜ธ

TROUT SLAP

user | ~trout otheruser
---> | qbot slaps otheruser around a bit with a large trout

Include user issuing command to the plugin functions

Right now, plugin commands only receive the message part of PRIVMSG lines. For example with the karma command:

user | something++

The plus_karma function only receives 'something' but doesn't know from what user that command came. Now for the karma plugin this isn't really relevant, but for future plugins (for example the ~tell proposed in #6) it is necessary that this information is available.

I propose that the standard arguments for every plugin function change from (self, match) to (self, user, match) so the user info is available might it be needed.

Make log filepath configurable

Fairly easy implementation, just add another section/variable in the config file. If #11 gets implemented first for some reason, this should of course be taken into account!

Adding quotes associated with certain words/strings

This would be a pretty cool addition. Imagine the following:

user | ~qadd topic=What do you think about QuotePlugin?
qbot | [quote] quote added to 'topic'
user | ~qshow topic
qbot | [quote] topic: What do you think about QuotePlugin?
user | ~qrm topic=What do you think about QuotePlugin?
qbot | [quote] quote removed from 'topic'
user | ~qsearch topic=QuotePlugin
qbot | [quote] topic (quoteplugin): What do you think about QuotePlugin? [1 result]

This could be implemented in the same basic way as the karma plugin using the shelve module.

A basic API with those four functions would be sufficient I think. There are some implementation details that are discussable though:

  • Should the qrm function also work with partial quotes (i.e. deleting the best match for the quote entered by the user)?
  • I think the quote keys ('topic' in this example) should be case-insensitive, any disadvantages?
  • qsearch queries should probably be case-insensitive too for ease of use. Imagine typing ~qsearch topic=quoteplugin and not getting results because the quotes say 'QuotePlugin' instead of 'quoteplugin', I would think that to be pretty annoying.

Extendable configuration for use in plugins

Currently only the IRC settings are acquired through a config file. Ideally I'd also like to make plugin parameters (like for example the filepath for the karma database) configurable through the same file.

Leave message for offline user

Should be limited to one message per user? Or one message from one user to another maybe?

user | ~tell offlineuser read the Github issues when you get back here
qbot | [tell] I will relay your message to offlineuser when they join this channel
...
---> | offlineuser joined channel
qbot | [tell] user left this message for offlineuser: read the Github iussues when you get back here

Add user management plugin

Commands such as quieting users for x minutes, banning users, etc.

Bot will need OP mode for this; maybe make this configurable or something?

Multiple servers

This is related to #4, I'd also like to be able to handle multiple servers. Separate sockets will be needed for each server, so this is a little bit harder than just supporting multiple channels on one server.

Add support for weather request

Please add support for a weather request, for example:

~weather london

qbot: min 14 max 18 degrees celsius, 70% chance of rain

Respond to queries in PM

Response in a channel works just fine, but when PMing qbot there is no response in the buffer (however the requested action is executed as shown in the logs). Should be an easy fix

Flood protection

Limit identical commands to once per n seconds? Limit pace of parser?

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.