Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d021246
первая загрузка файлов тсм ака сновдроп
Forbirdden Jun 26, 2025
918ff8e
русский <- инглиш
Forbirdden Jun 26, 2025
25aa7a1
Update chat.js
Forbirdden Jun 26, 2025
d04442a
Merge branch 'dev' of https://github.com/Forbirdden/Snowdrop into dev
Forbirdden Jun 26, 2025
7834d9f
Update README.md
Forbirdden Jun 27, 2025
a788bb7
Сильное обновление
Forbirdden Jun 27, 2025
fff8a70
Merge branch 'dev' of https://github.com/Forbirdden/Snowdrop into dev
Forbirdden Jun 27, 2025
fb18799
Update README.md
Forbirdden Jun 27, 2025
4f1bad3
Update README.md
Forbirdden Jun 27, 2025
bfb66c9
dragon drop серверов (перемещение)
Forbirdden Jun 27, 2025
e7b1117
ИКОНКИ
Forbirdden Jun 27, 2025
b9f572c
Merge branch 'dev' of https://github.com/Forbirdden/Snowdrop into dev
Forbirdden Jun 27, 2025
007e926
Update README.md
Forbirdden Jun 27, 2025
5c0a4b7
Всякие вариации логотипа
Forbirdden Jun 28, 2025
12ce0a6
Merge branch 'dev' of https://github.com/Forbirdden/Snowdrop into dev
Forbirdden Jun 28, 2025
88b8d46
Update README.md
Forbirdden Jun 28, 2025
0e9415e
Create README_EN.md
Forbirdden Jun 28, 2025
7ebc309
Иконка
Forbirdden Jun 28, 2025
e8e1f7a
фавикон
Forbirdden Jun 28, 2025
c565463
Merge branch 'dev' of https://github.com/Forbirdden/Snowdrop into dev
Forbirdden Jun 28, 2025
373c79d
немного меньше мусора
Forbirdden Jun 28, 2025
cbedf8e
Регистрация, реорг-ия некоторых частей кода
Forbirdden Jun 29, 2025
49add09
Update README.md
Forbirdden Jun 29, 2025
b9a6a9e
Update README_EN.md
Forbirdden Jun 29, 2025
eca0968
Поддержка маркдауна
Forbirdden Jun 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 30 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,30 @@
# The Snowdrop Messenger
Roadmap:

- [x] WRAC(S) support
- [x] User Agents
- [x] Server list Management
- [ ] Notifications
- [ ] Settings
- [x] Authentication
- [ ] GitHub repository
- [ ] Web version
- [ ] Mobile UI
- [ ] Mobile version
- [ ] Proxy for RAC(S)
- [ ] RAC(S) support
- [ ] Desktop Version
[English](README_EN.md)

<img src=assets/lftl.png style="align=center"></img>

<img src=https://github.com/user-attachments/assets/27fe4c1e-0835-440e-a7e2-807c983cf9b6 style="align=center"></img>

# Что такое Snowdrop?

***Snowdrop Messenger*** - это красивый, современный, многофункциональный и кроссплатформенный мессенджер на базе протокола обмена сообщениями RAC, а также его новейших дополнений

# Какие преемущества у Snowdrop среди других RAC клиентов?

В ***TSM*** есть уникальные функции, использовать которые можно через удобный графический интерфейс, также ***Snowdrop*** имеет очень малый вес, потому-что написан на чистом JavaScript с использованием своих библиотек и технологий - ВЕСЬ код, что есть в мессенджере СОВЕРШЕННО ТОЧНО используется, никакие строчки не лежат без дела занимая место
Также присутствует ПОЛНЫЙ ПЕРЕВОД на русский и английский

# Какие различия у разных версий Snowdrop?

| TSM | Web | Desktop | Mobile |
|---|---|---|---|
| Нужен выход в интернет | ✅ | ❌ | ❌ |
| Нужно скачивать | ❌ | ✅ | ✅ |
| Поддержка WRAC протокола | ✅ | ✅ | ✅ |
| Поддержка RAC протокола | ❌ | ✅ | ❌ |
| Поддержка SSL/TLS | ✅ | ✅ | ✅ |
| Авто-обновление | ❌ | ✅ | ❌ |
| Бесплатно и открытый код | ✅ | ✅ | ✅ |

# А где скачать?

Пока-что доступна только Web версия, вскоре выйдет Mobile (Android и iOS) и Desktop (ПК)
28 changes: 28 additions & 0 deletions README_EN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<img src=assets/lftl.png style="align=center"></img>

<img src=https://github.com/user-attachments/assets/27fe4c1e-0835-440e-a7e2-807c983cf9b6 style="align=center"></img>

# What is Snowdrop?

***Snowdrop Messenger*** is a beautiful, modern, multifunctional and cross-platform messenger based on the RAC messaging protocol, as well as its latest additions

# What are the advantages of Snowdrop among other RAC clients?

***TSM*** has unique functions that can be used through a convenient graphical interface, also ***Snowdrop*** has a very small weight, because it is written in pure JavaScript using its own libraries and technologies - ALL the code that is in the messenger is ABSOLUTELY EXACTLY used, no lines lie idle taking up space
Also there is a FULL TRANSLATION into Russian and English

# What are the differences between the different versions of Snowdrop?

| TSM | Web | Desktop | Mobile |
|---|---|---|---|
| Internet access required | ✅ | ❌ | ❌ |
| Need to download | ❌ | ✅ | ✅ |
| WRAC protocol support | ✅ | ✅ | ✅ |
| RAC protocol support | ❌ | ✅ | ❌ |
| SSL/TLS support | ✅ | ✅ | ✅ |
| Auto-update | ❌ | ✅ | ❌ |
| Free and open source | ✅ | ✅ | ✅ |

# Where to download?

So far, only the Web version is available, Mobile (Android and iOS) and Desktop (PC) will be released soon
Binary file added assets/lft.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/lftl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/lfwb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/lfwbl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/lmt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/lmtl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/lmwb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/lmwbl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added favicon.ico
Binary file not shown.
119 changes: 119 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Snowdrop Messenger</title>
<link rel="stylesheet" href="themes/styles.css">
</head>
<body>
<div id="app-container">
<div id="channel-list">
<div id="channel-list-header">
<img src="assets/lmtl.png" height="32px" width="32px" alt="Logo">
<span id="app-title">Snowdrop</span>
<button id="header-settings-btn" class="header-settings-btn" title="Настройки">
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill-rule="evenodd" clip-rule="evenodd" d="M14.2788 2.15224C13.9085 2 13.439 2 12.5 2C11.561 2 11.0915 2 10.7212 2.15224C10.2274 2.35523 9.83509 2.74458 9.63056 3.23463C9.53719 3.45834 9.50065 3.7185 9.48635 4.09799C9.46534 4.65568 9.17716 5.17189 8.69017 5.45093C8.20318 5.72996 7.60864 5.71954 7.11149 5.45876C6.77318 5.2813 6.52789 5.18262 6.28599 5.15102C5.75609 5.08178 5.22018 5.22429 4.79616 5.5472C4.47814 5.78938 4.24339 6.1929 3.7739 6.99993C3.30441 7.80697 3.06967 8.21048 3.01735 8.60491C2.94758 9.1308 3.09118 9.66266 3.41655 10.0835C3.56506 10.2756 3.77377 10.437 4.0977 10.639C4.57391 10.936 4.88032 11.4419 4.88029 12C4.88026 12.5581 4.57386 13.0639 4.0977 13.3608C3.77372 13.5629 3.56497 13.7244 3.41645 13.9165C3.09108 14.3373 2.94749 14.8691 3.01725 15.395C3.06957 15.7894 3.30432 16.193 3.7738 17C4.24329 17.807 4.47804 18.2106 4.79606 18.4527C5.22008 18.7756 5.75599 18.9181 6.28589 18.8489C6.52778 18.8173 6.77305 18.7186 7.11133 18.5412C7.60852 18.2804 8.2031 18.27 8.69012 18.549C9.17714 18.8281 9.46533 19.3443 9.48635 19.9021C9.50065 20.2815 9.53719 20.5417 9.63056 20.7654C9.83509 21.2554 10.2274 21.6448 10.7212 21.8478C11.0915 22 11.561 22 12.5 22C13.439 22 13.9085 22 14.2788 21.8478C14.7726 21.6448 15.1649 21.2554 15.3694 20.7654C15.4628 20.5417 15.4994 20.2815 15.5137 19.902C15.5347 19.3443 15.8228 18.8281 16.3098 18.549C16.7968 18.2699 17.3914 18.2804 17.8886 18.5412C18.2269 18.7186 18.4721 18.8172 18.714 18.8488C19.2439 18.9181 19.7798 18.7756 20.2038 18.4527C20.5219 18.2105 20.7566 17.807 21.2261 16.9999C21.6956 16.1929 21.9303 15.7894 21.9827 15.395C22.0524 14.8691 21.9088 14.3372 21.5835 13.9164C21.4349 13.7243 21.2262 13.5628 20.9022 13.3608C20.4261 13.0639 20.1197 12.558 20.1197 11.9999C20.1197 11.4418 20.4261 10.9361 20.9022 10.6392C21.2263 10.4371 21.435 10.2757 21.5836 10.0835C21.9089 9.66273 22.0525 9.13087 21.9828 8.60497C21.9304 8.21055 21.6957 7.80703 21.2262 7C20.7567 6.19297 20.522 5.78945 20.2039 5.54727C19.7799 5.22436 19.244 5.08185 18.7141 5.15109C18.4722 5.18269 18.2269 5.28136 17.8887 5.4588C17.3915 5.71959 16.7969 5.73002 16.3099 5.45096C15.8229 5.17191 15.5347 4.65566 15.5136 4.09794C15.4993 3.71848 15.4628 3.45833 15.3694 3.23463C15.1649 2.74458 14.7726 2.35523 14.2788 2.15224ZM12.5 15C14.1695 15 15.5228 13.6569 15.5228 12C15.5228 10.3431 14.1695 9 12.5 9C10.8305 9 9.47716 10.3431 9.47716 12C9.47716 13.6569 10.8305 15 12.5 15Z" fill="#9e9e9e"></path> </g></svg>
</button>
</div>
<div id="channels"></div>
<button id="add-server-btn">+ Добавить сервер</button>
<div id="sidebar-footer" style="text-align:center; margin: 18px 0 0 0; font-size: 0.99em; color: #999;">
<div>Made by Forbirdden © 2025</div>
<a href="https://github.com/Forbirdden/Snowdrop" target="_blank" style="color: #5b8fbd; text-decoration: none;">Source code</a>
</div>
</div>
<div id="main">
<div id="chat-area"></div>
<div id="chat-input-area">
<div id="chat-input-row">
<input id="chat-input" type="text" autocomplete="off" placeholder="Написать сообщение...">
<button id="send-btn" title="Отправить">
<svg fill="#000000" viewBox="0 0 24 24" id="send" data-name="Flat Line" xmlns="http://www.w3.org/2000/svg" class="icon flat-line"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path id="secondary" d="M5.44,4.15l14.65,7a1,1,0,0,1,0,1.8l-14.65,7A1,1,0,0,1,4.1,18.54l2.72-6.13a1.06,1.06,0,0,0,0-.82L4.1,5.46A1,1,0,0,1,5.44,4.15Z" style="fill: #ffffff; stroke-width: 2;"></path><path id="primary" d="M7,12h4M4.1,5.46l2.72,6.13a1.06,1.06,0,0,1,0,.82L4.1,18.54a1,1,0,0,0,1.34,1.31l14.65-7a1,1,0,0,0,0-1.8L5.44,4.15A1,1,0,0,0,4.1,5.46Z" style="fill: none; stroke: #ffffff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2;"></path></g></svg>
</button>
</div>
</div>
</div>
</div>
<div id="server-modal-bg">
<form id="server-modal" onsubmit="return false;">
<label for="modal-server-title" id="label-server-title">Название сервера</label>
<input id="modal-server-title" maxlength="32" required autocomplete="off" placeholder="Название">
<div class="small-row">
<div>
<label for="modal-server-address" id="label-server-address">IP/домен</label>
<input id="modal-server-address" maxlength="128" required autocomplete="off" placeholder="0.0.0.0">
</div>
<div>
<label for="modal-server-port" id="label-server-port">Порт</label>
<input id="modal-server-port" maxlength="6" required autocomplete="off" placeholder="42666" type="number" min="1" max="65535">
</div>
</div>
<label for="modal-server-proto" id="label-server-proto">Протокол</label>
<select id="modal-server-proto" required>
<option value="wRACs">wRACs</option>
<option value="wRAC">wRAC (open snowdrop using http://)</option>
<option value="RACs">RACs (WIP)</option>
<option value="RAC">RAC (WIP)</option>
</select>
<div class="small-row">
<div>
<label for="modal-server-username" id="label-server-username">Имя пользователя (необязательно)</label>
<input id="modal-server-username" maxlength="64" autocomplete="off" placeholder="username">
</div>
<div>
<label for="modal-server-password" id="label-server-password">Пароль (необязательно)</label>
<input id="modal-server-password" maxlength="128" type="password" autocomplete="off" placeholder="password">
</div>
</div>
<div id="server-modal-error"></div>
<div id="server-software-info" style="font-size:0.95em;color:#aaa;margin-top:-8px;margin-bottom:3px;display:none"></div>
<div id="proto-version-info" style="font-size:0.95em;color:#aaa;margin-top:1px;margin-bottom:3px;display:none"></div>
<div id="server-modal-btns">
<button id="register-server-btn" type="button">Регистрация</button>
<button id="save-server-btn" type="button">Сохранить</button>
<button id="cancel-server-btn" type="button">Отмена</button>
</div>
</form>
</div>
<div id="settings-modal-bg">
<form id="settings-modal" onsubmit="return false;">
<label id="settings-label-lang">Language / Язык</label>
<div id="settings-modal-lang-row">
<select id="settings-lang-select">
<option value="en">English</option>
<option value="ru">Русский</option>
</select>
</div>
<label id="settings-label-theme">Тема / Theme</label>
<div id="settings-modal-theme-row">
<select id="settings-theme-select">
<option value="dark">Dark</option>
<option value="light">Light</option>
</select>
</div>
<label id="settings-label-format">Message format</label>
<input id="settings-format-input" autocomplete="off" maxlength="128">
<div class="settings-format-presets">
<button type="button" class="settings-format-preset-btn preset-snowdrop" data-format="ඞ&lt;{name}&gt; {text}" data-id="snowdrop">Snowdrop</button>
<button type="button" class="settings-format-preset-btn preset-brac" data-format="리㹰&lt;{name}&gt; {text}" data-id="brac">bRAC</button>
<button type="button" class="settings-format-preset-btn preset-crab" data-format="═══&lt;{name}&gt; {text}" data-id="crab">CRAB</button>
<button type="button" class="settings-format-preset-btn preset-mefidroniy" data-format="°ʘ&lt;{name}&gt; {text}" data-id="mefidroniy">Mefidroniy</button>
<button type="button" class="settings-format-preset-btn preset-crack" data-format="⁂&lt;{name}&gt; {text}" data-id="crack">cRACk</button>
<button type="button" class="settings-format-preset-btn preset-default" data-format="&lt;{name}&gt; {text}" data-id="default">Default (clRAC)</button>
</div>
<div id="settings-modal-error"></div>
<div id="settings-modal-btns">
<button id="save-settings-btn" type="button">Сохранить</button>
<button id="cancel-settings-btn" type="button">Отмена</button>
</div>
</form>
</div>
<script src="src/translations.js"></script>
<script src="proto/wrac.js"></script>
<script src="proto/rac.js"></script>
<script src="src/settings.js"></script>
<script src="src/panel.js"></script>
<script src="lib/marked.min.js"></script>
<script src="src/chat.js"></script>
</body>
</html>
Loading