Code Monkey home page Code Monkey logo

bennubot's People

Contributors

titegtnodi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

bennubot's Issues

Remove Channel From Joined List When Kicked (or Cannot Join) in IRC

This is kind of a feature request, and kind of a minor issue. It doesn't currently cause any issues but right now if BennuBot is kicked, or simply cannot join a channel (for whatever reason), the channel remains in current channel list for the IRC server. It should be removed.

XMPP Disconnects Sometimes

XMPP needs to be more stabilized. I think the keep-alive is fine, there just needs to be a check to ensure the connection is actually alive and if not, reestablish.

global.py Errors When XMPP is Disconnected

Technically XMPP should be handling that so it's almost an xmpp.py issue. This could still be accounted for and handled in global.py because it only errors because it uses "xmpp_roster[ii].getItems()".

This issue is related to #6.

Remote Update

It would be nice to be able to do something like ".update" and have BennuBot upgrade to the latest version. The only remotely challenging part will be supporting "main.py" updates. That's not critical though.

This will be easy to implement when #16 and #5 are finished.

Make IRC Record New Channels it Receives Messages From

Right now when BennuBot receives a message from a channel it doesn't think it's in, it doesn't think anything of it. It handles the message normally, and maybe even replies to the channel. BennuBot should record the new channel and register it as a channel it's joined to.

Coroutine Support

Coroutine support requires Python 3.4+ support. This will likely deprecate almost everything. Considering every up-to-date mainstream Linux distro seems to have a Python 3.4 package, this shouldn't be too big of an issue. I have no interest in supporting Python 2.7 anymore.

Make protocols/irc.py Use Settings

The protocol was made before the database existed. It hasn't been updated for the database. It shouldn't take long, it will also allow for more features (rejoin all channels on restart for example). This will also allow for commands like ";irc connect irc.freenode.net" and maybe ";irc disconnect ".

Document Global main.py Variables

Currently most / all variables are not documented. Fixing this issue would encourage new developers and ease the startup for new users and developers.

"Global" Message Plugin

It would be nice to be able to do ".global" to send cross-protocol/cross-server messages. Maybe options to specify protocol like ".global irc" and it will only message IRC channels BennuBot is joined to.

Beginner's Tutorial

There should be a tutorial for newcomers. This should help at least Linux and Windows users get BennuBot up and running on their preferred IRC network, and register the user as an admin.

This should be marked as complete when the features of plugins/remote.py are documented as well.

Skype May Not Support Nicks At All

If a nick is unicode, BennuBot handles it as "". Check if this is a Skype4Py bug, or a BennuBot issue, and proceed from there I guess.

LastFM Plugin

It would be nice to at least have a basic lookup for either the user's nick or accept a parameter to see the user's currently playing / last played song on LastFM.

BennuBot May Allow Multiple Entries of the Same Admin

In main.py on the line that contains:

admins = dict(admins.items() + plugAdmins.items())

Seems to imply that if a plugin is reloaded, that there will be multiple entries of the same admins. This could be remedied by removing the entry added by the protocol, (del admins['irc'] ?). I'm not sure if this even an issue but this is something that should be looked at and confirmed if it's an issue or not.

BennuBot Setup Utility

Some sort of simple database generator / editor. Maybe also make BennuBot only enter the main loop on "init", that would simplify things. This should be user-friendly enough for end-users.

XMPP Protocol Plugin

BennuBot needs to expand it's horizons. This will demonstrate the cross-protocol abilities of BennuBot as well as test them in the real world.

Furcadia "Bartender" Plugin

Just a plugin to demonstrate how BennuBot could be used to actively interact with players in the game. It must support the following:

  • The ability to walk along a path and face a direction at the end of the path
  • The ability to randomly exclaim things
  • The ability to serve a drink
  • The ability to subtract money using the dream's currency system

It might also be nice to see two plugins. One which just has Furcadia functions, and one that demonstrates how they could be used for a bartender.

A Status Plugin

A quick summary of the connected networks and servers would be handy.

Restructure Protocol Message Sending

A thread is certainly not needed for every protocol trying to send a message. To maintain a certain level of responsiveness, coroutines could be utilized (See #23). Maybe have them check the queue, and exit immediately afterwards, or check the queue before the coroutine is called, then sort+call the send functions as needed. This could be included in the new coroutine setup which will be used for plugins (and replace all threads, basically).

IRC Allows Duplicate Channels

If you try to join the same channel twice, BennuBot will think it's in the same channel twice. This isn't acceptable and should be fixed.

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.