Movie Night chat IRCd
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
Epi Morphism b78b579985 WIP better support of nick clashes 1 miesiąc temu
private WIP better support of nick clashes 1 miesiąc temu
LICENSE add LICENSE 4 miesięcy temu
README.md tidy readme 3 miesięcy temu
api.rkt use the `define-predicate` trick 3 miesięcy temu
chat.rkt WIP better support of nick clashes 1 miesiąc temu
ircd.rkt Support multiple channels for /JOIN 1 miesiąc temu
macros.rkt typing api.rkt 3 miesięcy temu
main.rkt fix main 2 miesięcy temu
unheck-html.rkt add the STATS command 3 miesięcy temu

README.md

About

This projects aims to create a bridge for the chat programed used in MoveNight.
So far, this is work in progress.
At the moment it is a simple IRC server that relays messages back and forth.
Unfortunately, error handling is abscent, and errors from the MoveNight chat are not propagated.
But hey, it kinda works.

Basic usage

By default, the ircd binds on port 6667 on all the available addresses.
Use the command line options --port and --host to change that.

The command line option --url specifies the URL for the MovieNight chat server
(usually it is wss://movie-night-domain/ws).

To produce logs set the env variables PLTSTDOUT or PLTSTDERR to “warning” or “info”.
See the Racket docs on loggers for details.

Special commands

  • /STATS provide some basic statistics about the stream

Requirements & building

This developement is known to work on Racket v7.5 with packages:

  • rfc6455 (websockets implementation, try raco pkg install rfc6455)

Build it with raco make main.rkt and run racket main.rkt.
Or: build native with raco exe main.rkt.

Known issues

  • Nick change is not implemented in the ircd
  • Nick collisions are handled weirdly: the ircd will send you a notice
    but won’t change your nickname.
  • /me actions are not handeled
  • Bans from the MovieNight chat are not handled
  • HTML is not entierly unfucked, although this is somewhat working;
    see unheck-html.rkt.

Reading