Jump to content

coders-irc_Bot

Administrators
  • Posts

    427
  • Joined

  • Last visited

  • Days Won

    7

Files posted by coders-irc_Bot

  1. Limnoria

    Limnoria is a multipurpose Python IRC bot, designed for flexibility and robustness, while being easy to install, set up, and maintain.
    It aims to be an adequate replacement for most existing IRC bots. It includes a very flexible and powerful ACL system for controlling access to commands, an equality powerful configuration system to customize your bot, as well as more than 60 builtin plugins providing around 400 actual commands.
    There are also dozens of third-party plugins written by dozens of independent developers, and it is very easy to write your own with only basic knowledge of Python.
    It is the successor of Supybot since 2010 and provides many new features, but keeps full compatibility with existing configurations and plugins.
    Support
    Documentation
    If this is your first install, there is an install guide. You will probably be pointed to it if you ask on IRC how to install Limnoria. TL;DR version:
    sudo apt-get install python3 python3-pip python3-wheel pip3 install --user limnoria # You might need to add $HOME/.local/bin to your PATH supybot-wizard There is extensive documentation at docs.limnoria.net and at Gribble wiki. We took the time to write it; you should take the time to read it.
    IRC channels
    In English
    If you have any trouble, feel free to swing by #limnoria on Libera.Chat and ask questions. We'll be happy to help wherever we can. And by all means, if you find anything hard to understand or think you know of a better way to do something, please post it on the issue tracker so we can improve the bot!
    In Other languages
    Only in French at the moment, located at #limnoria-fr on Libera.Chat.

    0 downloads

       (0 reviews)

    0 comments

    Submitted

  2. tenyks

    Tenyks is a computer program designed to relay messages between connections to IRC networks and custom built services written in any number of languages. More detailed, Tenyks is a service oriented IRC bot rewritten in Go. Service/core communication is handled by ZeroMQ 4 PubSub via json payloads.
    The core acts like a relay between IRC channels and remote services. When a message comes in from IRC, that message is turned into a json data structure, then sent over the pipe on a Pub/Sub channel that services can subscribe to. Services then parse or pattern match the message, and possibly respond back via the same method.
    This design, while not anything new, is very flexible because one can write their service in any number of languages. The current service implementation used for proof of concept is written in Python. You can find that here. It's also beneficial because you can take down or bring up services without the need to restart the bot or implement a complicated hot pluggable core. Services that crash also don't run the risk of taking everything else down with it.
    Installation and whatnot
    Building
    Current supported Go version is 1.7. All packages are vendored with Godep and stored in the repository. I update these occasionally. Make sure you have a functioning Go 1.7 environment.
    Install ZeroMQ4 (reference your OSs package install documentation) and make sure libzmq exists on the system. go get github.com/kyleterry/tenyks cd ${GOPATH}/src/github.com/kyleterry/tenyks make - this will run tests and build sudo make install - otherwise you can find it in ./bin/tenyks cp config.json.example config.json Edit config.json to your liking. Uninstall
    Why would you ever want to do that?
    cd ${GOPATH}/src/github.com/kyleterry/tenyks sudo make uninstall Docker
    There is a Docker image on Docker hub called kyleterry/tenyks. No configuration is available in the image so you need to use it as a base image. You can pass your own configuration in like so:
    FROM kyleterry/tenyks:latest COPY my-config.json /etc/tenyks/config.json Then you can build your image: docker build -t myuser/tenyks . and run it with: docker run -d -P --name tenyks myuser/tenyks.
    Binary Release
    You can find binary builds on bintray.
    I cross compile for Linux {arm,386,amd64} and Darwin {386,amd64}.
    Configuration
    Configuration is just json. The included example contains everything you need to get started. You just need to swap out the server information.
    cp config.json.example ${HOME}/tenyks-config.json Running
    tenyks ${HOME}/tenyks-config.json
    If a config file is excluded when running, Tenyks will look for configuration in /etc/tenyks/config.json first, then ${HOME}/.config/tenyks/config.json then it will give up. These are defined in tenyks/tenyks.go and added with ConfigSearch.AddPath(). If you feel more paths should be searched, please feel free to add it and submit a pull request.
    Vagrant
    If you want to play right fucking now, you can just use vagrant: vagrant up and then vagrant ssh. Tenyks should be built and available in your $PATH. There is also an IRC server running you can connect to server on 192.168.33.66 with your IRC client.
    Just run tenyks & && disown from the vagrant box and start playing.
    Testing
    I'm a horrible person. There aren't tests yet. I'll get right on this.... There are only a few tests.
    Builtins
    Tenyks comes with very few commands that the core responds to directly. You can get a list of services and get help for those services.
    tenyks: !services will list services that have registered with the bot through the service registration API..
    tenyks: !help will show a quick help menu of all the commands available to tenyks.
    tenyks: !help servicename will ask the service to sent their help message to the user.
    Services
    Libraries
    tenyksservice (Python) quasar (Go) To Services
    Example JSON payload sent to services:
    { "target":"#tenyks", "command":"PRIVMSG", "mask":"unaffiliated/vhost-", "direct":true, "nick":"vhost-", "host":"unaffiliated/vhost-", "full_message":":vhost-!~vhost@unaffiliated/vhost- PRIVMSG #tenyks :tenyks-demo: weather 97217", "user":"~vhost", "from_channel":true, "connection":"freenode", "payload":"weather 97217", "meta":{ "name":"Tenyks", "version":"1.0" } } To Tenyks for IRC
    Example JSON response from a service to Tenyks destined for IRC
    { "target":"#tenyks", "command":"PRIVMSG", "from_channel":true, "connection":"freenode", "payload":"Portland, OR is 63.4 F (17.4 C) and Overcast; windchill is NA; winds are Calm", "meta":{ "name":"TenyksWunderground", "version":"1.1" } } Service Registration
    Registering your service with the bot will let people ask Tenyks which services are online and available for use. Registering is not requires; anything listening on the pubsub channel can respond without registration.
    Each service should have a unique UUID set in it's REGISTER message. An example of a valid register message is below:
    { "command":"REGISTER", "meta":{ "name":"TenyksWunderground", "version":"1.1", "UUID": "uuid4 here", "description": "Fetched weather for someone who asks" } } Service going offline
    If the service is shutting down, you should send a BYE message so Tenyks doesn't have to timeout the service after PINGs go unresponsive:
    { "command":"BYE", "meta":{ "name":"TenyksWunderground", "version":"1.1", "UUID": "uuid4 here", "description": "Fetched weather for someone who asks" } } Commands for registration that go to services
    Services can register with Tenyks. This will allow you to list the services currently online from the bot. This is not persistent. If you shut down the bot, then all the service UUIDs that were registered go away.
    The commands sent to services are:
    { "command": "HELLO", "payload": "!tenyks" } HELLO will tell services that Tenyks has come online and they can register if they want to.
    { "command": "PING", "payload": "!tenyks" } PING will expect services to respond with PONG.
    List and Help commands are coming soon.
    Lets make a service!
    This service is in python and uses the tenyks-service package. You can install that with pip: pip install tenyksservice.
    from tenyksservice import TenyksService, run_service, FilterChain class Hello(TenyksService): irc_message_filters = { 'hello': FilterChain([r"^(?i)(hi|hello|sup|hey), I'm (?P<name>(.*))$"], direct_only=False), # This is will respond to /msg tenyks this is private 'private': FilterChain([r"^this is private$"], private_only=True) } def handle_hello(self, data, match): name = match.groupdict()['name'] self.logger.debug('Saying hello to {name}'.format(name=name)) self.send('How are you {name}?!'.format(name=name), data) def handle_private(self, data, match): self.send('Hello, private message sender', data) def main(): run_service(Hello) if __name__ == '__main__': main() Okay, we need to generate some settings for our new service.
    tenyks-service-mkconfig hello >> hello_settings.py Now lets run it: python main.py hello_settings.py
    If you now join the channel that tenyks is in and say "tenyks: hello, I'm Alice" then tenyks should respond with "How are you Alice?!".
    More Examples
    There is a repository with some services on my Github called tenyks-contrib. These are all using the older tenyksclient class and will probably work out of the box with Tenyks. I'm going to work on moving them to the newer tenyks-service class.
    A good example of something more dynamic is the Weather service.

    0 downloads

       (0 reviews)

    0 comments

    Submitted

  3. irc3

    A pluggable irc client library based on python's asyncio.

    Requires python 3.5+
    Python 2 is no longer supported, but if you don't have a choice you can use an older version:
    $ pip install "irc3<0.9" Source: https://github.com/gawel/irc3/
    Docs: https://irc3.readthedocs.io/
    Irc: irc://irc.freenode.net/irc3 (www)
    I've spent hours writing this software, with love. Please consider tipping if you like it:
    BTC: 1PruQAwByDndFZ7vTeJhyWefAghaZx9RZg
    ETH: 0xb6418036d8E06c60C4D91c17d72Df6e1e5b15CE6
    LTC: LY6CdZcDbxnBX9GFBJ45TqVj8NykBBqsmT

    0 downloads

       (0 reviews)

    0 comments

    Submitted

  4. bitbot

    BitBot
    Python3 event-driven modular IRC bot!
    Setup
    Requirements
    $ pip3 install --user -r requirements.txt
    Config
    See docs/help/config.md.
    Backups
    If you wish to create backups of your BitBot instance (which you should, borgbackup is a good option), I advise backing up the entirety of ~/.bitbot - where BitBot by-default keeps config files, database files and rotated log files.
    Github, Gitea and GitLab web hooks
    I run BitBot as-a-service on most popular networks (willing to add more networks!) and offer github/gitea/gitlab webhook to IRC notifications for free to FOSS projects. Contact me for more information!

    0 downloads

       (0 reviews)

    0 comments

    Submitted

  5. sopel

    Introduction
    Sopel is a simple, lightweight, open source, easy-to-use IRC Utility bot, written in Python. It's designed to be easy to use, run and extend.

    Installation

    Latest stable release
    On most systems where you can run Python, the best way to install Sopel is to install pip and then pip install sopel.
    Arch users can install the sopel package from the [community] repository, though new versions might take slightly longer to become available.
    Failing both of those options, you can grab the latest tarball from GitHub and follow the steps for installing from the latest source below.

    Latest source
    First, either clone the repository with git clone git://github.com/sopel-irc/sopel.git or download a tarball from GitHub.
    Note: Sopel requires Python 3.7+ to run.
    In the source directory (whether cloned or from the tarball) run pip install -e .. You can then run sopel to configure and start the bot.

    Database support
    Sopel leverages SQLAlchemy to support the following database types: SQLite, MySQL, PostgreSQL, MSSQL, Oracle, Firebird, and Sybase. By default Sopel will use a SQLite database in the current configuration directory, but alternative databases can be configured with the following config options: db_type, db_filename (SQLite only), db_driver, db_user, db_pass, db_host, db_port, and db_name. You will need to manually install any packages (system or pip) needed to make your chosen database work.
    Note: Plugins not updated since Sopel 7.0 was released might have problems with database types other than SQLite (but many will work just fine).

    Adding plugins
    The easiest place to put new plugins is in ~/.sopel/plugins. Some newer plugins are installable as packages; search PyPI for these. Many more plugins written by other users can be found using your favorite search engine.
    Some older, unmaintained plugins are available in the sopel-extras repository, but of course you can also write your own. A tutorial for creating new plugins is available on Sopel's website. API documentation can be found online at https://sopel.chat/docs/, or you can create a local version by running make docs.

    Further documentation
    The official website includes such valuable information as a full listing of built-in commands, tutorials, API documentation, and other usage information.

    Questions?
    Join us in #sopel on Libera Chat.

    Donations
    We're thrilled that you want to support the project!
    You can sponsor Sopel here on GitHub or donate through Open Collective.
    Any donations received will be used to cover infrastructure costs, such as our domain name and hosting services. Our main project site is easily hosted by Netlify, but we are considering building a few new features that would require more than static hosting. All project-related expenses are tracked on our Open Collective profile, for transparency.

    0 downloads

       (0 reviews)

    0 comments

    Submitted

  6. Kaguya

    Kaguya
    A small but powerful IRC bot
    Installation
    Add kaguya to your list of dependencies in mix.exs: def deps do [{:kaguya, "~> x.y.z"}] end Run mix deps.get
    Ensure kaguya is started before your application:
    def application do [applications: [:kaguya]] end Configure kaguya in config.exs: config :kaguya, server: "my.irc.server", port: 6666, bot_name: "kaguya", channels: ["#kaguya"] Usage
    By default Kaguya won't do much. This is an example of a module which will perform a few simple commands:
    defmodule Kaguya.Module.Simple do use Kaguya.Module, "simple" handle "PRIVMSG" do match ["!ping", "!p"], :pingHandler match "hi", :hiHandler match "!say ~message", :sayHandler end defh pingHandler, do: reply "pong!" defh hiHandler(%{user: %{nick: nick}}), do: reply "hi #{nick}!" defh sayHandler(%{"message" => response}), do: reply response end This module defines four commands to be handled:
    !ping and !p are aliased to the same handler, which has the bot respond pong!. hi will cause the bot to reply saying "hi" with the persons' nick !say [some message] will have the bot echo the message the user gave. The handler macro can accept up to two different parameters, a map which destructures a message struct, and a map which destructures a match from a command.
    You can find a more full featured example in example/basic.ex.
    Configuration
    server - Hostname or IP address to connect with. String. server_ip_type - IP version to use. Can be either inet or inet6 port - Port to connect on. Integer. bot_name - Name to use by bot. String. channels - List of channels to join. Format: #<name>. List help_cmd - Specifies command to act as help. Defaults to .help. String use_ssl - Specifies whether to use SSL or not. Boolean reconnect_interval - Interval for reconnection in ms. Integer. Not used. server_timeout - Timeout(ms) that determines when server gets disconnected. Integer. When omitted Kaguya does not verifies connectivity with server. It is recommended to set at least few minutes.

    0 downloads

       (0 reviews)

    0 comments

    Submitted

  7. Spambot

    Bot che cerca se ci sono Spammers nel canale e li punisce.

    1 download

    Submitted

×
×
  • Create New...