Giter VIP home page Giter VIP logo

foxeye's Introduction

What is FoxEye?
    FoxEye is an IRC bot that is compatible (I meant:) with Eggdrop bot. Ones
  have alike commands and Tcl interface but FoxEye has it as module. But this
  isn't all about FoxEye because it has possibilities above and beyond ones
  of Eggdrop...

Catched signals and actions:
SIGABRT	shutdowns the bot
SIGBUS	shutdowns the bot
SIGFPE	shutdowns the bot
SIGHUP	flushes files/connections
SIGILL	shutdowns the bot
SIGINT	restarts the bot
SIGPOLL	used by sockets API
SIGPIPE	ignored
SIGQUIT	shutdowns the bot
SIGSEGV	shutdowns the bot
SIGSYS	shutdowns the bot
SIGTERM	shutdowns the bot
SIGUSR1	ignored
SIGUSR2	ignored

Return codes:
0	all went OK
1	command line error
2	out of memory
3	init error
4	cannot create console interface
5	cannot fork
6	bot already running
7	interface locking error
8	internal unrecoverable error

The bot is multithreaded but created threads may run with limitations:
1) If thread have a bot interface then IFRequest() and IFSignal() are NOT
    DETACHED part of it, so thread cannot call these functions itself.
2) If thread want to call any API that using interface address or any data
    of bot interface structure, thread must call Set_Iface() or Find_Iface()
    before that and call Unset_Iface() after.

Undocumented options.
    There is one option switch to foxeye executable: '-D'. If you add this
  to command line then it'll create new file 'foxeye.debug' where any debug
  messages will be stored in slightly modified format. This option does not
  require '-d' option. Meaningful only for developers. There also is some
  undocumended macro DBG(fmt,...) that writes debug only into this file (in
  difference with dprint() this one is async-safe, i.e. can be called any
  time and anywhere).

Version control.
    Any version A.BCxxx must be compatible. It means if something was changed
  in the core headers then it must be subject for version change.
    Note: since the version 0.10 versions with release number equal to 0 (i.e.
  such as 0.10.0.1 and so on) are 'developer' versions and are not subject for
  this version control as protocol/arrays may be changed with any build number
  change so should be not used for making any release package.

Why I may need iconv?
    Iconv is a library which can do conversion from one charset to another.
  You may need it if you have a number of different character sets in your
  botnet.

Color codes and smile codes.
    Due to historical reasons text coloring codes scheme is one from mIRC.
  Smiles are GUI-only feature so there is no smile codes scheme in FoxEye.

What is in the core?
    Core has the code which is common or used by many modules, so it's
  vital for the bot or can avoid duplicate the code:
    - init stuff (init.c)
    - telnet/dcc login manager with little chat-like subsystem (direct.c)
    - intermodule transfer/communication manager (dispatcher.c)
    - helpfiles manager (help.c)
    - bindings manager (init.c)
    - config and formats files support (init.c)
    - common functions (lib.c)
    - terminal console driver (see -c switch) (main.c)
    - modules manager (modules.c)
    - timers API (sheduler.c)
    - sockets API (socket.c)
    - listfile manager (list.c)
    - eventsfile manager (wtmp.c)
    - base character transcoding API (conversion.c)
    - connection chains API (connchain.c)

What modules have to care about in interaction with "ui" module?
    As soon as module "ui" is loaded it have to get not only text that
  comes into logs but also it should be informed about each client status
  change, i.e. each service opening, each client connection, each client
  disconnection (such as joining or parting channels) and each changing
  of status. That should be done either by sending signal S_FLUSH from
  interface of service or client that got the change or by sending a
  message with name of client and appropriate flag (if that status change
  was for client on some service not for service itself) to module "ui".

Which modules are available?
    Currently available modules are:
   logs		- customisable saving and rotating of log files.
   autolog	- automatic saving of private and public conversations.
   lua		- support for scripts in Lua language.
   irc		- common support of connection to IRC network.
   irc-channel	- basic support for channels of IRC network.
   irc-ctcp	- implementation of some IRC commands including few DCC.
   modes	- implementation of commands +ban, -ban, and others
   tcl		- support for scripts in Tcl language
   ircd		- standard (RFC2813) IRC server
   ziplink	- support for compressed connections
   ssl		- support for SSL/TLS on every connection
   syslog	- support for logging some messages to syslog
   ircd-rusnet	- RusNet ircd IRC server extensions
   ircd-capab	- CAPAB server protocol command
    Were planned to implement some other modules but they are either pending
    or unrequested. Feel free to write them or ask someone to implement:
   botnet	- implementation of network of bots
   db		- unified interface (bindtables) to database.
   dcc-new	- chat subsystem access for any unregistered user
   eggdropnet	- implementation of eggdrop's botnet protocol
   expirehosts	- deletes hosts and users not seen for too long time
   forth	- support for scripts in Forth language
   fserv	- file downloading service
   getops	- automatic getting privileges from other bots
   icq		- client for ICQ network
   irc-protection - antiflood, antispam and other
   ircd-console - "consolecmd" command for IRC operators
   ircd-tkserv	- "temporary kill" support for ircd
   jabber	- client for Jabber network
   login	- "login", "logoff", and "cron" scripts for each chat user
   md5		- support for md5 encryption
   news		- service for storing news and notifying people about them
   notes	- service for storing notes from people to other people
   perl		- support for scripting in Perl language
   python	- support for scrypting in Python language
   seen		- implementation of commands whois, find, and seen
   su		- enables change of user on chat subsystem
   ui		- support for generic user interface (text or GUI)
   upnp		- support for UPnP listening port forwarding

foxeye's People

Contributors

comradekingu avatar lstranger avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

weblate

foxeye's Issues

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.