Giter VIP home page Giter VIP logo

granota's Introduction

Granota

Coverage Status Code Health Build Status on Travis CI

A multilingual IRC bot coded in Python and based off Willie.

Configuration and dependencies

Known Granota copies

This is a list of modified copies of Granota:

If you run a modified copy of Granota and it's not listed, you can open a pull request adding it.

License & copyright

© Worldev 2015

See LICENSE file for more information

granota's People

Contributors

bitdeli-chef avatar elgatosaez avatar f4b1- avatar neomahler avatar softycat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

granota's Issues

Add separate configuration for each channel

The most important configuration parameter would be the language, because it can happen that the bot is in two channels with different languages. It would be interesting to make a separate list of admins for each channel, too.

Getting more done in GitHub with ZenHub

Hola! @NeoMahler has created a ZenHub account for the Worldev organization. ZenHub is the leading team collaboration and project management solution built for GitHub.


How do I use ZenHub?

To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.

What can ZenHub do?

ZenHub adds a series of enhancements directly inside the GitHub UI:

  • Real-time, customizable task boards for GitHub issues;
  • Burndown charts, estimates, and velocity tracking based on GitHub Milestones;
  • Personal to-do lists and task prioritization;
  • “+1” button for GitHub issues and comments;
  • Drag-and-drop file sharing;
  • Time-saving shortcuts like a quick repo switcher.

Add ZenHub to GitHub

Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @NeoMahler.

ZenHub Board

Auto-updater

It already exists for the unstable version (running from git). It should be implemented for stable versions too.

Enhancements on adminchannel.py

Specially kick, kickban... we also should add a hostmask ban. I will do it, but if somebody wants to help me, will be welcome.

Confusion between command in the help system

Log:

~ 20:13:12 ~ -@NeoMahler- ,ayuda diec
~ 20:13:13 ~ -@Granota- diec: Da un link hacia el DIEC (diccionario catalán) para la palabra especificada. | Example: ,diec àdhuc | Alias (or in other languages): diec
~ 20:13:17 ~ -@NeoMahler- ,ayuda raiseException
~ 20:13:17 ~ -@Granota- diec: Da un link hacia el DIEC (diccionario catalán) para la palabra especificada. | Example: ,diec àdhuc | Alias (or in other languages): diec

It seems that only happens with the raiseExceptions command.

Add commands to json files

.tonum and .totext commands are not in the json files, so they don't appear at the bot documentation. @JeDa could you do it (as you are the one who created the commands)?

Moderate .py function

the .py command may break the bot, disconnect it or making it do something unwanted.

.ban doesn't fully work yet

  • Granota .version output: Granota v2.9.1 (commit 4b63020)

Description of the error

When banning somebody using .ban NeoNamo*!*@*$#channel nothing happens.

Expected behaviour

Ban the nick and, when the user tries to join again, it should be redirected to #channel

When Granota is being used a lot, crashes.

Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Traceback (most recent call last):
File "C:\Python27\lib\asyncore.py", line 83, in read
obj.handle_read_event()
File "C:\Python27\lib\asyncore.py", line 449, in handle_read_event
self.handle_read()
File "C:\Python27\lib\asynchat.py", line 165, in handle_read
self.found_terminator()
File "C:\Users\Enrique\Granota\willie\irc.py", line 455, in found_terminator
self.dispatch(origin, text, args)
File "C:\Users\Enrique\Granota\willie\bot.py", line 730, in dispatch
t.start()
File "C:\Python27\lib\threading.py", line 745, in start
_start_new_thread(self.__bootstrap, ())
error: can't start new thread

[irc.pyc] Fatal error in core, please review exception log
Too many errors, can't continue

Add non-command help

Add links to wiki pages in certain help topic. For example:

-SomeUser- .help configuration
-Granota- See this page to see all configuration settings:

.calc error when using formatted numbers

  • Granota .version output: I'm Granota v2.5.2 (commit ef17f5d), on debian stretch/sid and using Python 2.7.11. I'm using the latest stable version of Granota.

Description of the error

When I perform the .calc command with a formatted number, it can throw an error:

NeoMahler: ,calc 4,953,000/110,444.314
NeoFrog: NeoMahler: Sorry, I can't calculate that with this command. I might have another one that can. Use .commands for a list.

Expected behaviour

NeoMahler: ,calc 4953000/110444.314
NeoFrog: NeoMahler: 44.8461294259

Possible solution:

trigger.group(2).replace(',', '')

Wolfram|Alpha answer is difficult to understand

[20:54:21] -NeoMahler- .wa 2+2
[20:54:22] -Granota- [WOLFRAM] <html><head><meta http-equiv="content-type" content="text/html = charset=utf-8"><title>404 Not Found</title></head><body text=#000000 bgcolor=#ffffff><h1>Error: Not Found</h1><h2>The requested URL <code>/wa/2%252B2</code> was not found on this server.</h2><h2></h2></body></html>

Bug-reporter module

Using the GitHub API, it would be nice to be able to report issues directly from IRC.

Enable banning $a:, $j:, etc.

Currently, if you ban $a:Example, the bot will ban $a:Example!*@*. Needs to be changed so if the nick starts with $ it works correctly.

Add auto-downloader and installer for dependencies

Specially for Windows users (and macOS?) installing dependencies is a hell if they are non-programmers. It should be more or less easy to download the tar.gz file, descompress it and run python setup.py install. Maybe it could be distributed in a separate repo.

Added it for v3.0; I think it's an important issue.

google search is broken

I think that Google API has changed something and now google search function doesn't work.

Bug in partido.py

There are different errors in this module. Here is the log:

[20:32:49] -mikicat- %partit CUP
[20:32:50] -Mikicatbot- KeyError: 'P102' (source unknown)
[20:33:05] -mikicat- %partido
[20:33:05] -Mikicatbot- AttributeError: 'NoneType' object has no attribute 'decode' (source unknown)

Bug in movie.py

[09:26:09] <NeoMahler> .movie Harry Potter
[09:26:13] <Granota> URLError: <urlopen error [Errno 113] No route to host> (file "/usr/lib/python2.7/urllib2.py", line 1197, in do_open)

I will check the error later, but if someboy wants to help...

Include all modules on .reload

Currently, the command only includes those in willie/modules/, but the ones inside willie/ should be included too. If not, when .update-stable is performed, the bot will say that it's using an old version until it's fully restarted.

bouncer request module?

Is there a way to have an ZNC request module?
Like for example if I have a command like .request then the bot will automatically make the ZNC user?
Is that possible?

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.