LINUX.ORG.RU

Сообщалка: программа для общения в команде

 , , , ,


1

3

Так как меня не устраивали существующие мессенджеры для локальной сети, я написал свой. Если у кого-то ещё сходные требования, можете пользоваться.

Что умеет Сообщалка:

  • общий список всех сообщений от всех собеседников;
  • отбор сообщений по собеседнику или группе собеседников (группы добавляются и редактируются администратором);
  • отправка сообщений собеседнику или группе;
  • поиск по регулярному выражению;
  • просмотр сообщений за указанную дату или несколько дней перед датой;
  • позволяет отметить факт ознакомления с сообщением одним щелчком;
  • позволяет вставлять в сообщение изображения в любое место (как принято в письмах и как нет в мессенджерах);
  • позволяет цитировать сообщения (в том числе несколько в одном сообщении) и по щелчку переходить к процитированному;
  • позволяет редактировать отправленное сегодня сообщение и хранит историю;
  • серверная часть хранит сообщения в каталоге в виде читаемых файлов, изображения в одном экземпляре;
  • полностью переносима в рамках Windows/Linux/MacOS, работает на любой архитектуре процессора;
  • не имеет внешних зависимостей, кроме языка программирования Racket.

Что не умеет и вряд ли будет:

  • шифрование канала: если надо, можно ставить stunnel;
  • много пользователей: интерфейс на данный момент не предполагает прокрутку списка пользователей, но за счёт этого все данные на сервере в памяти и работает очень быстро;
  • вложение файлов: я считаю, что если файл нужен, то его надо выкладывать на файловый сервер и давать ссылку, а не превращать средство общения в хранилище файлов;
  • видео и аудио: если надо позвонить, логичнее кинуть ссылку на jitsi или что в команде принято.

>>> Исходники

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)
Ответ на: комментарий от monk

она почти все на свете умеет :о) (из разговоров и выкусов в инете, втч на хабре)
сам я пользуюсь только 4 и 7й версией (старой)

sunjob ★★★★★
()
Ответ на: комментарий от jo_b1ack

Видел. Написал в поиске «sup.*or», получил «super» и не получил «support».

Если бы допиливал, то его.

monk ★★★★★
() автор топика
Ответ на: комментарий от sunjob

Старой я тоже пользовался. Кстати, чуть ли не самый простой способ написать приложение, которое запустится на любом Линуксе — написать на старом Delphi и запускать через Wine. Всё остальное упирается в наличие библиотек, графических протоколов и прочего.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

это тоже да, старая великолепно работает под вайном (как раз старые свои проекты так и крутил, пока не «шарахнуло» - «доколе, давай переписывай на лазаря») :о)

sunjob ★★★★★
()
Ответ на: комментарий от CrX

Думал, там подпункты, а из них уже действия.

Там одно меню, в нём действия. Я лучше добавлю каноничные Правка и Справка, чтобы панель меню была оправдана.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

По данным top RES 378МБ, VIRT 1144.

чего-та много для чатика

Можно просто поставить большое количество дней просмотра и скопировать через Ctrl-C.

Форматирование и прочие картинки сохранится по Ctrl-C? Опять же выделять много сообщений неудобно.

А зачем? Если резервную копию, то логичнее на сервере. Импорт этой истории ведь никуда не сделать

ну типовая же ситуация - обсудили с коллегой некий нетривиальный технический вопрос (с табличками, кусками кода и т.п.). Потом в ход этого обсуждения нужно посвятить другого коллегу (средствами IM), и ещё другого коллегу но уже по e-mail, а также приложить дискуссию к воркайтему в системе управления проектами. Само собой без потери информативности и чтобы читалось стандартным средствами.

А как определять, когда этот файл удалять? А если этот файл получатель потом ещё раз перешлёт, то на сервере их уже два будет? А если пользователь многогигабайтный архив отправить, он тоже на сервер надолго ляжет? Или как в почте ставить ограничение на 10 мегабайт?

Поэтому у меня в итоге отдельно сообщалка и отдельно сетевое хранилище файлов.

ты не понял, файлы хранятся не на сервере твоей сообщалки, а на том самом сетевом хранилище данных. IM клиент просто выкладывает файл в личную директорию пользователя и вставляет гиперссылку в переписку.

MirandaUser2 ★★
()
Ответ на: комментарий от MirandaUser2

чего-та много для чатика

Так лисп. Компилятор является неотъемлемой частью приложения.

Форматирование и прочие картинки сохранится по Ctrl-C?

Да. Но вставлять надо в сообщалку или текстовый редактор Racket.

Опять же выделять много сообщений неудобно.

Поставил курсор в начало, промотал в конец, зажал Shift и щёлкнул.

ну типовая же ситуация - обсудили с коллегой некий нетривиальный технический вопрос (с табличками, кусками кода и т.п.). Потом в ход этого обсуждения нужно посвятить другого коллегу (средствами IM)

Если разово, то копирую. Если предполагается длительное общение и возможно подключение кого-то ещё, то создаю группу и дальше пишем в получателя-группу. Если кого-то подключаешь к группе, он видит все сообщения в группу.

IM клиент просто выкладывает файл в личную директорию пользователя и вставляет гиперссылку в переписку.

Предлагаешь в IM интегрировать Samba/NFS/FTP/SFTP/Yandex-диск/диск-о/…? Можно, но надо придумать, как это достаточно удобно сделать. Сейчас мне быстрее скопировать по отдельному ярлыку на столе. К тому же, если скопировал по отдельному ярлыку, то после подтверждения получения его легко удалить. А так в IM ещё и кнопку для удаления файла делать? А если это каталог (например, дистрибутив), то как? Делать в IM переключатель «выбрать файл»/«выбрать каталог»?

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

monk ★★★★★
() автор топика

Определённо нужно.

Но и передача файлов тоже нужна, и возможно даже с явным разделением «через сервер» и «напрямую».

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Догадка тут одна, но она воистину ужасна: современные ИТ прокляты.

ugoday ★★★★★
()
Ответ на: комментарий от kirill_rrr

Да с Максом тоже понятно. Если Сообщалка за собой компилятор тащит, то Макс за собой браузер тащит вместе с компилятором JavaScipt. Вот и получается ещё больше.

monk ★★★★★
() автор топика
Ответ на: комментарий от kirill_rrr

Я всё-таки придерживаюсь идеи, что каждая программа должна делать что-то одно.

В том же Телеграм/Макс из-за «передачи файлов» многие используют его как ущербный файлообменник (без каталогов, возможности переименования/удаления, без поиска по содержимому).

А прикручивать к программе для общения полноценный FTP-клиент как-то странно. Как раньше шутили «В споре, кто раньше напишет свою операционную систему, ACDSee или Nero победили Google и Firefox».

Тоже ведь была всего лишь «программа для просмотра гипертекста», а чем закончилось.

monk ★★★★★
() автор топика

Вопрос - а зачем тебе такие сложности с UI? Сделал бы на websockets + PWA который ставится на комп и получил бы поддержку широкую девайсов сразу.

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

Не хочу браузер в зависимости.

И мне проще написать UI на

  поле-ввода = объект поле-редактора%
    родитель главная-панель
    редактор текст-ввода
    растягивается-ширина истина
    стиль '(авто-горизонтальная-прокрутка авто-вертикальная-прокрутка)
  текст-ввода{поле поле-ввода}
  вызвать-метод текст-ввода установить-обработчик-отправки отправить-текущее-сообщение

чем бороться с тем, что в PWA вместо текстового редактора.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

Так лисп. Компилятор является неотъемлемой частью приложения.

Ну тогда это все-таки прототип, который нужно переписать (транслировать/скомпилировать?) во что-то более легковесное.
Как ведет себя потребление памяти с ростом числа открытых чатов?

Да. Но вставлять надо в сообщалку или текстовый редактор Racket.

OK. А редактором уже можно сохранить в распространенный формат?

Поставил курсор в начало, промотал в конец, зажал Shift и щёлкнул.

Предположим, хотя я бы предочел что-то типа чекбоксов.
Метаданные (кто/кому/когда/в рамках какой переписки) при этом тоже скопируются?

Предлагаешь в IM интегрировать Samba/NFS/FTP/SFTP/Yandex-диск/диск-о/…?

Если оно предназначено для работы только в корп. сети, то никаких яндекс-дисков и пр.
Я просто приводил пример как эта задача решена в MS Teams - там IM и файловый сервер (sharepoint) входят в состав одной подписки Office365. Автоматического удаления там не предусмотрено: подразумевается, что файлы - часть истории. Но удалить конечно можно (и кнопкой в IM, и непосредственно на файлосервере).

MirandaUser2 ★★
()
Ответ на: комментарий от MirandaUser2

Ну тогда это все-таки прототип, который нужно переписать (транслировать/скомпилировать?) во что-то более легковесное.

Меньше 10% ОЗУ. Зачем? Браузер жрёт на порядок больше, но шансов заменить его на NetSurf нет.

Как ведет себя потребление памяти с ростом числа открытых чатов?

Практически не меняется. Растёт пропорционально просмотренным сообщениям (текст в памяти кэшируется). Но надо очень много просмотреть, чтобы стало заметно.

OK. А редактором уже можно сохранить в распространенный формат?

В предыдущей версии сообщалки есть экспорт в Markdown и HTML. В этой пока нет. А зачем? Мне ни разу не требовалось. Когда будет версия для мобилок, там можно в HTML сохранить.

Редактор только во внутренний формат файлы с изображениями сохраняет.

Метаданные (кто/кому/когда/в рамках какой переписки) при этом тоже скопируются?

Нет. Изображения и текст. Примерно, как если страницу с ЛОР скопировать и вставить. То есть, шапка сообщения есть, а кода (ссылки) на процитированное нет.

Если вдруг надо такое, можно с сервера взять. Там всё есть.

Я просто приводил пример как эта задача решена в MS Teams - там IM и файловый сервер (sharepoint) входят в состав одной подписки Office365.

Там один файловый сервер. Заставить его класть для конкретного пользователя на \fileserver\public<username> или на ftp://fileserver/public почти нереально.

monk ★★★★★
() автор топика
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от MirandaUser2

Кстати, а в каком-то мессенджере можно сохранить десяток сообщений в файл, например? Из Макс сейчас попробовал через копировать/вставить, сохраняет только текст. Так моя Сообщалка текст тоже в любое место копирует.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

Но задача «общаться» сейчас предполагает что кроме текста в сообщении может быть что то ещё. ФТП тут лишнее, но вот протокол разбора файла на блоки и теги для упаковки их в сообщения и чтобы потом собрать обратно - это же совсем не сервер.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

ФТП тут лишнее, но вот протокол разбора файла на блоки и теги для упаковки их в сообщения

Слишком много нюансов, особенно если файл большой. То есть, можно сделать как в почте ограничение 10МБ и вложение в сообщение, но сейчас я из-за этого предпочитаю по почте отправлять ссылки, чтобы не проверять размер файла и не рубить на куски по 10МБ.

Изображения нужны, потому что они именно в тексте и к ним может быть пояснение (и именно эту функцию в современных мессенджерах порезали).

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

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

А зачем может быть нужен файл в сообщении, который нельзя выложить на файловый сервер

Например чтобы не поднимать файловый сервер, не учиться им пользоваться, не проверять соединение, не совмещать работу инструментов между собой, и ещё там серьёзные проблемы с авторизацией, хз зачем фтп и самбу прибили гвозядми к системным пользователям.

kirill_rrr ★★★★★
()
Ответ на: комментарий от monk

Меньше 10% ОЗУ. Зачем?

Чатик это мелкая вспомогательная утилита, типа блокнота или калькулятора.
Представь, что на ПК можно запустить только 10 мелких утилит (ну пусть 20 с учетом свопа)
Это ж не дело.

Браузер жрёт на порядок больше, но шансов заменить его на NetSurf нет.

Чтобы на порядок больше в нем нужно наоткрывать кучу вкладок с «тяжелыми» веб-сайтами.
Совоременный веб-браузер это комбайн, который реализует кучу стандартов, JS рантайм, проигрывание аудио и видео.
А твой IM ближе к NetSurf на мой взгляд.

В предыдущей версии сообщалки есть экспорт в Markdown и HTML. В этой пока нет. А зачем? Мне ни разу не требовалось. Когда будет версия для мобилок, там можно в HTML сохранить.

Ну я ж писал уже. В организациях/командах обычно используются разные средства коммуникаций и документооборота. Если в какую-то систему можно положить информацию, но нельзя вытащить обратно без плясок с бубном, то это естественным образом сужает ее область применения до обмена несущественной информацией.

Редактор только во внутренний формат файлы с изображениями сохраняет.

а как же интероперабельность?

Нет. Изображения и текст. Примерно, как если страницу с ЛОР скопировать и вставить. То есть, шапка сообщения есть, а кода (ссылки) на процитированное нет.

Это минус.

Если вдруг надо такое, можно с сервера взять. Там всё есть.

Т.е. только через админа сервера. Нехорошо.

Кстати, а в каком-то мессенджере можно сохранить десяток сообщений в файл, например? Из Макс сейчас попробовал через копировать/вставить, сохраняет только текст. Так моя Сообщалка текст тоже в любое место копирует.

Чисто технически - в любом. Это же очень простая фича. То что её нет в офф. клиентах - ну так обычно офф. клиенты и не отличались особым удобством и функциональностью.
Ведь ты позиционируешь продвинутый редактор сообщений как одну из ключевых фичей Сообщалки. Продвинутый редактор продразумевает нетривиальный контент, имеющий ценность сам по себе (вне контекста переписки в конкретном IM).

MirandaUser2 ★★
()
Ответ на: комментарий от kirill_rrr

Например чтобы не поднимать файловый сервер

Ну да. Для этого напишем свой.

не совмещать работу инструментов между собой

Копировать в окне браузера и файлового менеджера и вставить в инструмент общения намного проще, чем пытаться заставить MS Teams положить данные на NFS.

ещё там серьёзные проблемы с авторизацией, хз зачем фтп и самбу прибили гвозядми к системным пользователям

А как ещё права на файлы хранить? Отдельно в приложении файлового сервера?

monk ★★★★★
() автор топика
Ответ на: комментарий от MirandaUser2

Чатик это мелкая вспомогательная утилита, типа блокнота или калькулятора. Представь, что на ПК можно запустить только 10 мелких утилит (ну пусть 20 с учетом свопа)

Так и есть. Блокнот, умеющий картинки (OpenOffice) или чатик (Макс или Слак) требуют ресурсов гораздо больше, чем Сообщалка. И суммарно примерно 10 таких утилит и получается.

Просмотр гипертекста тоже мелкая вспомогательная утилита, но используют Firefox (который хочет пару гигабайт), а не Netsurf (которых хочет пару десятков мегабайт).

В организациях/командах обычно используются разные средства коммуникаций и документооборота. Если в какую-то систему можно положить информацию, но нельзя вытащить обратно без плясок с бубном, то это естественным образом сужает ее область применения до обмена несущественной информацией.

Тривиально делается через чтение файлов сообщений с сервера.

а как же интероперабельность?

Так если сохранять в какой-то XML с метаданными, всё равно со второй стороны программу чтения надо писать. А если нужно то, что вставляется в блокнот, так и буфера обмена хватает.

Т.е. только через админа сервера. Нехорошо.

В организациях/командах нормально. Для публичного сервера было бы нехорошо.

Ведь ты позиционируешь продвинутый редактор сообщений как одну из ключевых фичей Сообщалки. Продвинутый редактор продразумевает нетривиальный контент, имеющий ценность сам по себе (вне контекста переписки в конкретном IM).

В Outlook тоже продвинутый редактор сообщений. Но сохраняет он только в свой формат. В Сообщалке (предыдущую версию уже пару лет используем) тоже копировать-вставить всегда хватало. Что-то ценное - это всегда одно-два сообщений, а не лента за месяц.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

Ну да. Для этого напишем свой.

Зачем? У тебя уже организован канал передачи. Осталось сделать чтобы по нему не только текст передавался.

Копировать в окне браузера и файлового менеджера и вставить в инструмент общения

Может не работать по вине пятых-десятых лиц. Например файервола на роутере.

А как ещё права на файлы хранить?

Ну, допустим. Но тогда почему юзеры сервера и юзеры системы не сопоставляются автоматически и приходится создавать одних, создавать других, сопоставлять их а потом разбираться почему это не работает.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Зачем? У тебя уже организован канал передачи. Осталось сделать чтобы по нему не только текст передавался.

По нему и так не только текст передаётся. Но для того, чтобы хранить файлы, нужно место, квоты, права, блочная дедупликация. Канал передачи тоже нужен хотя бы в стиле wget/reget, а не в стиле команды cp (то есть с докачкой, фоновой загрузкой/выгрузкой, каким-то индикатором). Фактически, это файловый сервер и клиент к нему. Но если существующие мессенджеры меня не устраивают, то samba и ftp вполне нормально работают.

И если сейчас сообщалка спокойно работает на диске в 40ГБ, то если разрешить туда складывать файлы, его засрут за неделю.

Например файервола на роутере.

Так и сообщалка от этого же может не работать. Мы же вроде про контролируемую среду говорим, там и файловый сервер и сообщалка в локалке. Но на разных компьютерах. Сообщалка где-то рядом с DNS, почтовым, сервером latex и доской объявлений, а файловый на каком нибудь NAS, где ОЗУ почти нет, зато 8 дисков.

Но тогда почему юзеры сервера и юзеры системы не сопоставляются автоматически

???

В случае ftp и nfs юзеры файлового сервера и есть юзеры системы. В случае samba можно вообще доменных туда ставить через ldap.

потом разбираться почему это не работает.

Наверное, надо прочитать документацию.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

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

Всё это лишнее. Нужны dd, cat и md5summ и то по 2-3 функции из каждой утилиты.

И если сейчас сообщалка спокойно работает на диске в 40ГБ, то если разрешить туда складывать файлы, его засрут за неделю.

Не надо ничего никуда складывать! Гуглоподход большой индексируемой помойки не единственный и даже не самый удобный. «Вася отправляет файл отчёт.пдф размером 30Мб. Принять? Да/Нет. Куда сохранить?». Всё.

Наверное, надо прочитать документацию.

Наверное я делал именно так как там написано, с той только поправкой что я не читал ВСЮ документацию. Предполагается что настройки прав пользователей не описаны где нибудь в разделе проброса принтеров или кодировки имён или что мне не требуется читать майкрософтские доки по виндовым воркгруппам.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

«Вася отправляет файл отчёт.пдф размером 30Мб. Принять? Да/Нет. Куда сохранить?». Всё.

Я отправляю очень важную и нужную презентацию в группу из 15 человек, у некоторых из них два устройства, а у одного даже три. Что при этом должно произойти, все должны вручную принять отчёт.пдф на всех компах?

ugoday ★★★★★
()
Ответ на: комментарий от kirill_rrr

Вася отправляет файл отчёт.пдф размером 30Мб. Принять?

В смысле, если в группе 10 человек и Вася отправил туда 2гигабайтовый дистрибутив, то Васе придётся его отправлять 10 раз?

Куда сохранить?

И опять получаем, что сообщалка должна уметь как минимум все протоколы из GnomeVFS.

Нужны dd, cat

Вот разве что. Сделать в пару к сообщалке бинарник «получить», который будет выводить содержимое выбранного к получению файла (а уже куда стандартный вывод перенаправить — дело пользователя).

Только асинхронную передачу всё равно надо делать. Благодарю за интересную идею.

monk ★★★★★
() автор топика
Ответ на: комментарий от Norgat

он же и так у юзера стоит если Desktop окружение есть

PWA, который одинаково хорошо работает в MS Edge, Yandex browser и Firefox, включая все их будущие версии?

monk ★★★★★
() автор топика
Ответ на: комментарий от ugoday

С этим как раз нормально. Получают только те, кто хотят видеть отчёт (хотят — сохраняют, не хотят — сохранится в tmp и откроется просмотр). Отчёт доступен до тех пор, пока его не убрал у себя отправитель. Как замена отправки ссылок не работает, как дополнение идея хорошая.

Но надо реализовать многопоточный файловый сервер в клиенте сообщалки.

monk ★★★★★
() автор топика
Последнее исправление: monk (всего исправлений: 2)
Ответ на: комментарий от ugoday

Интересный вопрос. Значит нужна поддержка общих чатов и нужен другая логика начала передачи.

Допустим клиент отправителя подключается и показывает что онлайн. Потом отправляет сообщение о отправке файла, файл соответственно лежит на диске отправителя и доступен клиенту. Сообщение появляется в общем чате и предполагается что пока файл лежит у отправителя и пока он онлайн - любой кликнувший по нему его получит. Да, трафик х15-30, но мы же в локалке, а прикручивать пиринговый протокол сложно. Вероятно нужен отдельный статус о доступности файла для скачивания именно в групповом чате. Вероятно нуно какое то ограничение файлов на отдачу о одного человека, ну чтобы не ддосить и не перегружать канал потоком статусов. Возможно (совершенно не обязательно!!!) что имеет смысл для группового чата сделать отдельное поле (рамку, или всплывающее окошко) где будет список всех доступных в данный момент файлов.

А если у нас есть сервер с достаточно ёмким диском - довольно многое может быть доступно оттуда и большей части сложностей нету. Сколько нужно лимитов чтобы админ мог настроить работу? 2-3 штуки?

все должны вручную принять отчёт.пдф на всех компах

Думаю вполне приемлимо если кажому из группы придётся вручную запросить файл из чата для каждого из его устройств. В худшем слчае напишет кому нибудь лично чтобы отправил копию. Речь ведь не идёт о том чтобы сделать ухудшенную локальную копию гула+телеграмма, речь вроде бы идёт об улучшенной локальной версии аськи.

В конце концов в реальности мы не требуем чтобы отправитель положил копию своего отчёта каждому сотруднику отдела на стол и потом ещё пробежался по домам и оставил по копии там. Для начала было бы неплохо при общении лицом к лицу дать возможность передать этот самый файлик.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 3)
Ответ на: комментарий от monk

В смысле, если в группе 10 человек и Вася отправил туда 2гигабайтовый дистрибутив

А с какой вероятностью чатик будет использован вместо файлового сервера? И почему он должен хорошо работать в таком режиме? И разве самба-сервер не отправляет 2-гиговый дистрибутив 10 раз каждому запросившему?

И опять получаем, что сообщалка должна уметь как минимум все протоколы из GnomeVFS.

Все ли? Вроде бы прикрутить стандартный файловый диалог тулкита не сложно. Ну, точнее должно быть проще организации сетевого протокола.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

И разве самба-сервер не отправляет 2-гиговый дистрибутив 10 раз каждому запросившему?

Отправляет. Но он для этого предназначен. А Вася может быть не готов к тому, что у него файлы из сети начнут ужасно тормозить и видеоконференция отвалится.

Вроде бы прикрутить стандартный файловый диалог тулкита не сложно.

Файловый диалог возвращает путь к файлу. А потом с этим путём что-то надо делать. В Windows более-менее нормально, там fopen может открыть всё, что получено из стандартного диалога. В Linux хуже: можно получить smb:// или ftp://, которые fopen не понимает. Хотя можно считать, что это проблемы пользователя. Скопирует во временный каталог, а уже потом куда надо.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

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

Вот! С вероятностью в 99,999% кидаться будет файлик из нормальной примонтированной ФС, а если там уже самба или фтп - тогда можно сделать это ссылкой.

Кстати... Для типовых случаев «ftp://» можно сразу добавить исключение чтобы вместо ошибки «не могу взять файл» в сообщение вставлялась ссылка.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)

Мне тут ЛОР подкинул в «похожих темах» Мания общения

Блин, как же это круто сделано по сравнению с 2026 годом...

kirill_rrr ★★★★★
()
Ответ на: комментарий от monk

Так и есть. Блокнот, умеющий картинки (OpenOffice) или чатик (Макс или Слак) требуют ресурсов гораздо больше, чем Сообщалка. И суммарно примерно 10 таких утилит и получается.

Макс, Slack или MS Teams - это как раз тот софт, в котором оптимизацией пожертвовали в пользу быстрой разработки полнофункционального кросплатформенного клиента.
LibreOffice съел около 300MB при просмотре веб-страницы с картинками (сохраненная копия этого). А вот например atril только 100MB при просмотре той же страницы сохраненной в PDF.

Просмотр гипертекста тоже мелкая вспомогательная утилита, но используют Firefox (который хочет пару гигабайт), а не Netsurf (которых хочет пару десятков мегабайт).

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

Если в чатике Сообщалки содержится только plain текст, то оно будет потреблять меньше ресурсов?

Тривиально делается через чтение файлов сообщений с сервера.

ну так ведь не сделано (в клиенте) на данный момент, как я понимаю.

Так если сохранять в какой-то XML с метаданными, всё равно со второй стороны программу чтения надо писать. А если нужно то, что вставляется в блокнот, так и буфера обмена хватает.

XML - когда нужен машиночитаемый формат
Для людей - HTML. И программу не надо писать ;-)

Т.е. только через админа сервера. Нехорошо.

В организациях/командах нормально. Для публичного сервера было бы нехорошо.

Не. Открывать тикет в ТП, просто чтобы скопировать/экспортировать кусочек истории, это никак не годно.
Это не мелкий недочет, а прямо таки шоустоппер.

В Outlook тоже продвинутый редактор сообщений. Но сохраняет он только в свой формат.

Я не знаю про какую именно версию MS Outlook ты говоришь.
Outlook из состава MS Office 2010-2016, которыми я пользовался, умел сохранять в eml (RFC821), а также умел копировать письма между Exchange/IMAP серверами.

В Сообщалке (предыдущую версию уже пару лет используем) тоже копировать-вставить всегда хватало. Что-то ценное - это всегда одно-два сообщений, а не лента за месяц.

Гм, а чем занимается ваша команда/организация, и как вы используете inline картинки?

MirandaUser2 ★★
()
Ответ на: комментарий от kirill_rrr

Для типовых случаев «ftp://» можно сразу добавить исключение чтобы вместо ошибки «не могу взять файл» в сообщение вставлялась ссылка.

Я писал не про отправку, а про получение с выбором, куда сохранить. С отправкой как раз чуть проще: на Линуксе можно тупо gnomevfs-cat запустить.

monk ★★★★★
() автор топика
Ответ на: комментарий от MirandaUser2

Если в чатике Сообщалки содержится только plain текст, то оно будет потреблять меньше ресурсов?

Если в OpenOffice в открываемом документе содержится только plain текст, то он будет потреблять меньше ресурсов?

Задачи оптимизировать потребление до минимума не стояло. По ресурсам было ограничение и для клиента и для сервера, чтобы влазило в 1ГБ ОЗУ.

ну так ведь не сделано (в клиенте) на данный момент, как я понимаю.

Потому что при эксплуатации предыдущей версии ни разу не потребовалось. Впрочем, пишите в https://gitflic.ru/project/kalimehtar/messenger/issue, сделаю.

Для людей - HTML. И программу не надо писать ;-)

Тогда метаданных всё также нет, в HTML нет тега со смыслом «процитировать сообщение с кодом ХХ». И смысл?

Открывать тикет в ТП, просто чтобы скопировать/экспортировать кусочек истории, это никак не годно.

Ну не тикет, а сообщение написать админу в той же сообщалке.

Outlook из состава MS Office 2010-2016, которыми я пользовался, умел сохранять в eml (RFC821)

И каким приложением под Windows кроме Outlook его можно прочитать? А в .doc он не сохранял.

Гм, а чем занимается ваша команда/организация, и как вы используете inline картинки?

Разработка и поддержка программного обеспечения. Картинки - это обычно снимки ошибок. Иногда инструкция для установки чего-либо. Иногда снимок редактора кода, чтобы был виден не только код, но и в каком месте проекта он находится.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

PWA, который одинаково хорошо работает в MS Edge, Yandex browser и Firefox, включая все их будущие версии?

Сколько ошибок в слове Google Chrome =)

Но вообще - у тебя из технологий web sockets только. Так что это вообще на изи можно поддерживать. По факту, проблемы будут разве что в Web Views на мобилах + извратах Firefox на iOS. И то, когда захочется микрофон включать и что-то немного специфичное.

Norgat ★★★★★
()

Объясни мне, человек, почему это всё не скомпилировано в Wasm, для того, чтобы работать в браузере?

Saakx
()
Ответ на: комментарий от Norgat

Сколько ошибок в слове Google Chrome =)

Он уже есть у всех пользователей и в дистрибутивах Линукса? Вот я и пишу, что если PWA, то в состав программы надо положить целый Google Chrome (Electron).

Но вообще - у тебя из технологий web sockets только.

В смысле? Если PWA, то интерфейс на HTML + JS. Который каждый браузер толкует слегка по-своему. Я как раз когда сайт делал для предыдущей версии Сообщалки, то надписи Имя и Пароль, оформленные в виде <div class="input-field col s12"><label>Имя</label><input name="input_0" type="text"/></div>, в нормальном браузере были над строкой, а на некоторых мобилках писались прямо поверх строки ввода.

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

Адина (русскоязычный Racket)

Ну это надо же, какая говорящая фамилия.

Nervous ★★★★★
()
Ответ на: комментарий от monk

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

input-field col s12

Возьми другой css framework. Это прикол чисто от него.

Вот я и пишу, что если PWA, то в состав программы надо положить целый Google Chrome (Electron).

Нет, ты путаешь десктопные программы сделанные на Electron/Tauri и PWA. PWA работают на дефолтном системном браузере, в хроме для них есть механизм install который делает иконку страницы и превращает ее в открываемое приложение. Это все тот же хром, просто без куска UI, без вшивания зависимостей.

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

он же и так у юзера стоит если Desktop окружение есть.

Сколько ошибок в слове Google Chrome =)

У нормальных юзеров этот зонд не стоит.

firkax ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.