Coder Social home page Coder Social logo

irc's Introduction

header

An Internet Relay Chat server in C++ 98 based on rfc1459 standard.
Сервер на базе IRC протокола для обмена сообщениями.

channel

Supported clients :

  • Netcat nc localhost [port]
  • LimeChat
  • Adium

How to run

Use make rule to compile the program. Run it with port and password

make && ./ircserv [port] [password]

Bot running

cd Sources/bot && make
./bot 0.0.0.0 [port] [password]

Useful links

irc's People

Contributors

atorys avatar wtandoor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

irc's Issues

ping / pong

  • новая команда пинг и новый реплай понг

join

  • придется добавить много реплаев в postman и проверить их
  • что бы еще тут сделать

Channel no2

  • переделать в топике функцию на nickname
  • сделать отправку КАЖДОМУ пользователю уведомления, что зашел новый юзер (adium)
  • НАДО сделать рассылку топика новым участникам канала(возможно но не точно)
  • NAMES
  • сделать функцию для проверки состоит ли пользователь в канале
  • я устала

Operator commands

Channel changes

  • operator list
  • channel modes
  • MODE command
  • INVITE
  • MODE channel
  • NOTICE for silence
  • WALLOPS new command
  • ISON for invisibility

nick

  • не проверяется никнейм на (Каждый пользователь имеет никнейм длиной не больше девяти (9) символов. Доступные символы в нике: a-z, A-Z, 0-9 и спец. символы -, [, ], , ^, {, })

Список команд

На каждую команду желательно нужна одна ветка, после - merge в main

внизу на команду своя задача с подзадачами, где можно написать идеи и если чтото не работает, подсказать.
я сделала папку в проекте для команд тк они плодятся и становится неудобно видеть так много кода в сервайсе

предлагаю такой план :

  1. обновить по списку команд методы в UsersService
  2. обновить реплаи для нужных команд в postman
  3. по мере выполнения команды делать для нее ветку, файл в папке commands
  4. тестить че как работает и мерджить
  5. радоваться жизни и кайфовать какие мы деловые прогеры таски в гите заводим

Каналы #

  • #10
  • #14
  • list
  • ison
  • names ?
  • topic (TOPIC #channel :New topic)

Пользователи

privmsg

  • добавить несколько получателей (канал)
  • не отправляется больше одного слова
  • не понятно вставлять в сообщение ник или юзер
  • Команда AWAY устанавливает автоматический ответ на сообщение типа PRIVMSG (добавить проверку получателя на is_away() и если так оно и есть отправлять автоматический ответ RPL_AWAY)

Channel

  • вынести из хедера всю дич в файл
  • User * get_user_by_username(std::string nickname); ??? а по юзеру ли нам искать надо
    и вообще если мы не будем реализовывать закрытые каналы, то можно убрать все лишнее из шанеля
  • НАДО дописать removeUser() в сервайсе, чтоб он удалял юзера из каналов
  • а еще если канал пустой то его удалять(помним что каналы лежат в виде указателя и возможны лики, если просто сделать erase)
  • НАДО добавить рассылку КАЖДОМУ участнику канала, что вошел новый юзер
  • НАДО

notice

то же самое что PRIVMSG только не учитывается AWAY автоматический ответ на сообщение

user

  • надо добавить RPL_WELCOME(nickname) тк регистрация выглядит так(PASS->NICK->USER)

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.