This site is developed to XHTML and CSS2 W3C standards. If you see this paragraph, your browser does not support those standards and you need to upgrade. Visit WaSP for a variety of options.

php pastebin - collaborative irc debugging view php source

Paste #729

Posted by: OWC/1
Posted on: 2026-10-03 08:09:00
Age: 13 hrs ago
Views: 3
OWC/1
---------------------------------------------------------------------

1. ПОДКЛЮЧЕНИЕ

сервер: chat.old-web.com, порт: 4225


2. ФОРМАТ СТРОК

Одна команда это одна строка текста. Строка заканчивается символом \n
(клиент отправляет только \n, принимает и \n, и \r\n).

Кодировка на проводе: UTF-8. Внутри клиент работает в cp1251, поэтому
символы, которых нет в cp1251, и эмодзи превращаются в знак "?".

Вид строки:

    КОМАНДА поле0<TAB>поле1<TAB>поле2 ...

Команда отделяется от полей первым пробелом, сами поля друг от друга
символом табуляции. Клиент читает не больше 8 полей, недостающие считает
пустыми. Названия команд пишутся заглавными буквами.

Лимиты клиента:
  буфер приема: 65535 байт (если за это время не пришел \n, буфер сбрасывается)
  длина принятой строки: до 4095 символов
  длина текста сообщения: до 1000 символов
  ники при сравнении (игнор-лист) регистр не учитывают


3. ВХОД В ЧАТ

Порядок:

    клиент:  HELLO OldWebChat<TAB>1.0
    клиент:  LOGIN ник<TAB>пароль<TAB>цвет
    сервер:  HELLO имя_сервера<TAB>версия
    сервер:  WELCOME ник<TAB>роль<TAB>название_чата<TAB>motd

Цвет это строка вида #RRGGBB, по умолчанию #000080.
Если сервер не прислал WELCOME в течение 15 секунд, клиент пишет, что
сервер говорит не по протоколу OWC/1, и сохраняет все полученные данные
в файл.

Гость: ник guest, пароль пустой. Вход гостей включается настройкой
guest_allowed.

Логин и пароль общие с почтой email.old-web.com (адрес вида
логин@old-web.com). Восстановление пароля:
http://email.old-web.com/forgot.php

После входа клиент отправляет JOIN Главная, USERS и ROOMS.


4. РЕГИСТРАЦИЯ

    клиент:  REG логин<TAB>пароль<TAB>секретный_вопрос<TAB>ответ
    сервер:  OK REG
    сервер:  ERR код<TAB>текст

Проверки на стороне клиента:
  логин 3-20 символов: латиница, цифры, точка, дефис, подчеркивание
  пароль не короче 6 символов
  секретный вопрос и ответ обязательны

Варианты секретного вопроса в клиенте: любимая книга, девичья фамилия
матери, кличка первого питомца, любимый фильм, город детства, свой вопрос.

Коды ошибок, которые различает клиент: 401, 409, 423, 503.
401 неверный логин или пароль, 409 логин или ник занят,
423 чат закрыт или доступ заблокирован, 503 сервис недоступен.


5. КОМАНДЫ КЛИЕНТА (клиент -> сервер)

MSG текст
    обычное сообщение в комнату

ME текст
    действие, команда /me

PM ник<TAB>текст
    приватное сообщение, команда /pm ник текст

JOIN комната
    войти в комнату, команда /join

CREATE комната<TAB>параметр
    создать комнату, команда /create. Назначение второго поля неизвестно,
    клиент отправляет его пустым.

STATUS текст
    сменить статус, команда /status

TOPIC текст
    сменить тему комнаты, команда /topic

KICK ник<TAB>причина
    выгнать из чата (модератор или администратор)

BAN ник<TAB>минуты<TAB>причина
    забанить на указанное число минут

UNBAN ник
    снять бан

MOD ник
UNMOD ник
    назначить или снять модератора комнаты

ROOMDEL комната
    удалить комнату, все ее участники переводятся в Главную

ROOMS
    запросить список комнат

USERS
    запросить список людей в комнате

COLOR #RRGGBB
    сменить цвет ника

PING число
    проверка связи, в число клиент кладет GetTickCount(). Сервер должен
    вернуть то же число в PONG.

QUIT причина
    выйти из чата

SETCFG ключ<TAB>значение
    изменить настройку чата (администратор), ключи в разделе 7

BANNERS
    запросить список баннеров

BANNERADD url<TAB>параметр<TAB>вес
    добавить баннер. Назначение второго поля неизвестно.

BANNERDEL номер
    удалить баннер

BANNERTOGGLE номер<TAB>0 или 1
    выключить или включить баннер

Только на стороне клиента (на сервер не отправляются):
  /ignore ник   добавить ник в игнор или убрать из него
  /clear        очистить окно
  /help         справка по командам

Список команд, который клиент показывает пользователю:
  /pm ник текст, /me текст, /join комната, /create комната, /status текст,
  /topic текст, /ignore ник, /kick ник причина, /ban ник минуты,
  /unban ник, /rooms, /clear


6. СООБЩЕНИЯ СЕРВЕРА (сервер -> клиент)

HELLO имя_сервера<TAB>версия
    ответ на приветствие, клиент пишет "Сервер: имя (версия)"

WELCOME ник<TAB>роль<TAB>название<TAB>motd
    вход выполнен. Роли: admin, модератор комнаты, обычный пользователь,
    guest.

MSG время<TAB>ник<TAB>цвет<TAB>текст
    сообщение в комнате. Время в формате ЧЧ:ММ:СС. Сообщения от ников
    из игнор-листа клиент не показывает.

PM время<TAB>от_кого<TAB>цвет<TAB>текст
    входящее приватное сообщение, показывается как [приват от ник]

PMSENT время<TAB>кому<TAB>текст
    подтверждение отправленного привата, показывается как [приват для ник]

SYS время<TAB>текст
    системное сообщение

USERLIST комната
USER ник<TAB>цвет<TAB>статус<TAB>роль
USEREND
    список людей: начало, по одной строке USER на человека, конец

JOIN ник
PART ник
    человек вошел в комнату или вышел из нее

STATUS ник<TAB>статус<TAB>текст
    смена статуса. Статусы: online, away, busy, sleep, а также
    "кушаю" и "не беспокоить".

TOPIC кто<TAB>текст
    новая тема, клиент пишет "Топик изменил кто: текст"

ROOMLIST
ROOM название<TAB>число_людей<TAB>...
ROOMEND
    список комнат: начало, по строке ROOM на комнату, конец

CFG ключ<TAB>значение
CFGEND
    настройки чата, ключи в разделе 7

BANNER url
BANNERLIST
BANNERITEM номер<TAB>url<TAB>вес<TAB>включен
BANNEREND
    текущий баннер и список баннеров для панели администратора

PONG число
    ответ на PING с тем же числом, лаг считается как разница с текущим
    временем

OK команда
    подтверждение. Команды: REG, SETCFG, BANNERADD, BANNERDEL, BANNERTOGGLE

ERR код<TAB>текст
    ошибка, клиент пишет "Ошибка код: текст"

KICKED причина
    клиента выгнали, соединение закрывается

BANNED до_какого_времени<TAB>причина
    клиент забанен, соединение закрывается

NOTICE текст
    объявление для всех, клиент пишет "ОБЪЯВЛЕНИЕ: текст"

Любая другая команда: клиент пишет "неизвестная команда сервера".


7. НАСТРОЙКИ ЧАТА (SETCFG и CFG)

chat_title          название чата
motd                приветствие при входе
color_bg            цвет фона окна чата
color_text          цвет обычного текста
color_sys           цвет системных сообщений
color_pm            цвет приватных сообщений
color_panel         цвет панели
banner_rotate_sec   как часто менять баннер, секунды
room_ttl_days       через сколько дней удаляются пустые комнаты
max_msg_len         максимальная длина сообщения
flood_sec           антифлуд, секунды между сообщениями
guest_allowed       пускать гостей
chat_closed         чат закрыт

Цвета по умолчанию: фон #FFFFFF, текст #000000, системные #008000,
приват #800080, панель #9999CC.

Панель администратора открывается для администраторов и модераторов
комнаты. Модератору доступна только модерация.


8. БАННЕРЫ

Картинку баннера клиент скачивает отдельным запросом:

    GET путь HTTP/1.0
    Host: хост
    User-Agent: OldWebChat/1.0
    Connection: close

Требования к ссылке:
  только http:// (https не поддерживается)
  редиректы 301 и 302 не обрабатываются, нужна прямая ссылка на файл
  форматы: GIF, JPG, PNG, BMP
  размер баннера в окне: 472 на 61

Download raw | Create new paste

© BitByByte, 2026.
Downgrade Counter