Skip to content

Sheinxy/TinIRC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinIRC

What is TinIRC?

TinIRC ("Teenee RC") is a simple, minimalist, TUI IRC Client made in Haskell.

Why Haskell?

It's fun and I like it :3c

How to run?

Simply install Cabal and execute cabal run exes -- config.yaml

The config.yaml file should look like this:

server:
  hostname: irc.awesome.cool
  port: 443
  use_tls: true
  check_certificates: true
  channels:
    - "#general"
    - '#off-topic'
user:
  username: Isidore
  mode: 0
  realname: Isidore Beautrelet

client:
  sent_history_length: 65536
  channel_history_length: 65536

Project overview:

.
|- app
  |- IrcParsing -> Everything related to the parsing of IRC messages
    |- Parsing.hs -> Code for parsing IRC messages
    |- Types.hs -> Structure for parsed IRC messages
  |- UserInterface -> Everything related to the User Interface (including inputs and outputs)
    |- Events.hs -> Event handling (i.e: displaying received messages, sending messages when enter is pressed, changing and joining channels etc.)
    |- JoinDialog.hs -> DialogBox for joining a new channel or entering a DM
    |- Main.hs -> The main entrypoint for the UserInterface. This is where the App is defined as well as the draw function
    |- MessageHandling.hs -> Everything related to handling of newly received messages (calling the parser and putting the messages at the right place)
    |- PartDialog.hs -> DialogBox for leaving a channel or a DM
    |- Types.hs -> Types for the App (Form and State, as well as channels) and utility functions on these types
    |- Widgets.hs -> Widget creation for the App
  |- Client.hs -> Client handling the networking
  |- Config.hs -> Parsing of the configuration file
  |- Main.hs -> The entrypoint, connecting to TCP/TLS and creating the client and UI App.
|- config/example.yaml -> There's no better documentation than an example :3
|- .gitignore
|- CHANGELOG.md
|- LICENSE
|- README.md
|- TinIRC.cabal

Was this written by AI?

No. 100% of the code was handwritten!

This is a side project that I made for fun. I don't find using AI fun. I like having to think hard about the code I write. I like learning new things, making mistakes, and understanding what I do. I enjoy spending time looking for documentation and trying to understand it. It's fun, it's fulfilling.

If my goal was to have an IRC client, I would just download one!

So, I'm proud to say: for the better or for worse, this project was made with no AI! :3c

No AI stamp from https://www.deviantart.com/triangle-mom/art/F2U-Anti-AI-Stamp-Alternate-colors-941484651

About

A tiny, minimalist, (useless), TUI IRC Client made in Haskell

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors