GitXplorerGitXplorer
T

MantaTail

public
0 stars
1 forks
4 issues

Commits

List of commits on branch main.
Verified
10020512932c3cb3af8fc6a1ec20600b8f8a5c03

WHOIS support (#130)

TThePhilgrim committed 3 years ago
Verified
2c8ac9fd1b6fd4ac21f70c18b3603550a3516fe4

respond to PING sent from client (#129)

AAkuli committed 3 years ago
Verified
baa918e88b5304bc512a3bf6f68e458e4c68bb0b

fix nick change bug (#127)

AAkuli committed 3 years ago
Verified
9050c69cda0c567dfeb8eb69d7edbd04e1cb87c6

fix ping (#126)

AAkuli committed 3 years ago
Verified
b28044a64f6894d1e554bbe0765af86fbd63d827

Remove call of handle_who upon JOIN if away-notify is enabled (#123)

TThePhilgrim committed 3 years ago
Verified
87f55bc7566bceedada3d3cf88a80d07d5831794

update PING and PONG timers (#122)

kkoffeeking committed 3 years ago

README

The README file for this repository.

MantaTail

MantaTail is a sandbox IRC server developed to test IRC clients and functionality.

It is still in development and is therefore missing some central features.

Currently supported features:

  • Capability Negotiation (limited)
  • Message of the day
  • Join channel
  • Part from channel
  • Send message to channel
  • Send private message to other user
  • Set / Remove channel operator
  • Set channel topic
  • Kick user from channel
  • Ban user from channel
  • Change nick
  • Set away status
  • Quit from server

How to use Mantatail

You can connect to Mantatail via an IRC client of you choice (I recommend Mantaray) or via a network utility such as Netcat.

To start Mantatail, cd to the mantatail folder and run python3 server.py. Thereafter, you can connect to the server by connecting to localhost 6667.

For developers

If you are interested in contributing to Mantatail, thank you! You are most welcome to do so.

To start, please follow these steps:

  1. Fork the repository and git clone it to your local machine
  2. Create a virtual environment and activate it
    • Mac/Linux: python3 -m venv env -> source env/bin/activate
    • Windows: py -m venv env -> env\Scripts\activate
  3. Download the necessary dependencies for development
    • Mac/Linux/Windows pip install -r requirements-dev.txt
  4. Happy coding!

Tests

Mantatail relies on Pytest for testing. In order to run the test suite, use python3 -m pytest

Fuzzing

The fuzzer spams the server with random commands to reveal eventual errors. To run the fuzzer, make sure server.py is not running, cd to tests/fuzzer and run python3 fuzzer.py.

If you are developing a new feature, you can substitute the list words with a list containing limited amount of relevant data.

For example, if you are working with the feature of banning a user, a reasonable data set could be: words = ["MODE", "mode", "Mode", "#chan", "#%invalidchan "+", "-", "b", "B", "^", ":", "Param1", ":Param2"]

Resources

Some handy resources for developing IRC-related programs:

Pull Requests

Any pull request will automatically be checked for proper format by black, pyflakes, mypy (--strict mode), as well as by pytest

To make sure the PR will pass these checks, please use the following commands before pushing:

  • black *.py tests/*.py
  • mypy --strict *.py
  • python3 -m pytest
  • python3 -m pyflakes *.py tests/