Recent Posts

Pages: 1 [2] 3 4 ... 10
11
Разработка / Re: Протокол VKontakte
« Last post by dartraiden on 21 04 2024, 07:01:48 »
Т.е. юзер решает вгрузить историю чатика за 10 лет и получает минус много гигов памяти, потому что все картинки будут сложены в памяти? А при каждом рестарте надо тратить столько же гигов трафика и перезагружать все эти картинки за 10 лет с сервака?

А если не перезагружать, то как быть, когда юзеру приспичит отмотать историю на N дней/месяцев/лет назад? Грузить с сервака по мере погружения в историю? Это уже не Миранда, а какой-то веб-клиент, который без доступа к сети не работоспособен (главный козырь Миранды - история, которая доступна локально всегда, вне зависимости от доступа к сети). И это если картинка на серваке в принципе есть. А если это протокол без серверной истории?

Умножим это на количество чатиков. Никакой памяти не хватит.

Такой патч можно даже не присылать, потому что это бред.

Quote
если это не p2p переданный файл
У протоколов с историей на сервере (ICQ, TG, VK) нет никакого P2P. Файл при отправке сохраняется на сервере, как и любое другое событие, например, текстовое сообщение. Оттуда его стягивает другая сторона. Нет разницы, в привате это событие произошло или в чате.

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

Кроме того NS умеет подгружать события в журнал из истории по мере скроллинга в прошлое. Т.е. его "журнал" это отчасти и "история".
12
Разработка / Re: Протокол VKontakte
« Last post by Elzor on 21 04 2024, 06:24:26 »
С выполнением shell кода ещё не эксперементировал, но теоретически если изощериться думаю это вполне реально.
Не стану отметать вероятность. img тег сам по себе безопасен, с помощью url мне удалось запустить cmd.exe, но передать что-то в него параметром - нет, и зная детали реализации, у меня есть некоторые основания думать что это невозможно.  Но мало ли. В любом случае вопрос требует более подробного изучения. Возможно на уровне протокола закрою возможность получения url=file:// извне.

Всмысле избыточно? Всего одну строчку в коде изменить чтобы картинка сохранялась не в файл на диске а в массив в ОЗУ и оттуда выводилась при обращении к ней.
Мы принимаем патчи. Текущее состояние меня лично устраивает на 98%

В url локальная ссылка на файл вместо исходной ссылки на картинку на сервере
Да, так задумано. Подменять ссылку аттачмента на его локальную копию - это одно. Подменять присланную ссылку на другую ссылку по недокументированному правилу - это другое и реализовываться не будет.
13
Разработка / Re: Протокол VKontakte
« Last post by MIR on 21 04 2024, 03:33:23 »
Обнаружил критическую уязвимость в NewStory!
Плагин обрабатывает BB коды в входящих и исходящих сообщениях, при этом имея доступ к файлам находящихся за пределами папки загрузки.
Code: [Select]
Достаточно отправить подобное сообщение на миранду или с неё:
[img=file://C:/111.jpg]Фото[/img]
[url=file://C:/111.jpg]Ссылка[/url]

С выполнением shell кода ещё не эксперементировал, но теоретически если изощериться думаю это вполне реально.

============================

которые не умеют рисовать напрямую из веба. Тащить дополнительно какую-то библиотеку которая это "умеет" - избыточно.
Всмысле избыточно? Всего одну строчку в коде изменить чтобы картинка сохранялась не в файл на диске а в массив в ОЗУ и оттуда выводилась при обращении к ней. Причём это актуально только для окна чата, а в отображении картинок в окне истории вобще не вижу смысла если это не p2p переданный файл который кроме как локально негде хранить.
Подменять путь можно было бы, если б этот момент был задокументировал и гарантировалось, что в понедельник в 16:48 это вдруг не перестанет работать.
Во-вторых, опять же, конечная цель какая? При наличии NS и соответствующей настройки, картинки вообще локально скачиваются, даже если на сервере ее совсем удалят, она останется доступной.
Если и перестанет работать то очень не скоро, а если и перестанет то помимо этого полюбому в API ВК внесут ещё кучю изменений и тебе в любом случяе придётся переделывать плагин.
Целью является получение прямой ссылки на картинку в окне чата и в окне истории, чтобы можно было скопировать эту ссылку и переслать как в ВК так и на другие мессенджеры и сайты, т.к. некоторые мессенджеры при отправки в них ссылки на картинку загружают эту картинку и отображают как положено если ссылка заканчивается на .jpg, .png и т.д. однако с новыми ссылками ВК такое не везде прокатывает т.к. они заканчиваются на ?size=640x542&quality=95&sign=24e30b5 и т.д.

Сейчяс там вот такая херня в NewStory
Code: [Select]
[img=file://C:/Users/User1/Мои документы/Принятые файлы/239/FQGwyDN1pRI.jpg]Фото (1145x644)[/img]
[url=file://C:/Users/User1/Мои документы/Принятые файлы/239/FQGwyDN1pRI.jpg]Фото (1145x644)[/url]

В url локальная ссылка на файл вместо исходной ссылки на картинку на сервере
14
Разработка / Re: Протокол VKontakte
« Last post by dartraiden on 20 04 2024, 14:05:53 »
как отправляю я картинку — и вижу только её кусок
Потому что сначала формируется событие и отрисовывается во всю свою небольшую высоту, а затем туда вставляется превью и высота увеличивается. Но автоматически докручивать журнал пока непонятно как - если изображений больше одного, то журнал начнёт колбасить,
15
Разработка / Re: Протокол VKontakte
« Last post by Wave on 20 04 2024, 12:11:39 »
Quote
В самом IEView ничего не менялось вообще, так что если что-то поменялось, то вопросы к протоколу VK.
Не менялось. Имеется в виду вот что. В настройках протокола вк можно снять галочку совместимости bb с newstory. И тогда в качестве просмотрщика в tabsrmm использовать иевью. Показываются превьюшки из сети, всё классно. Но нет возможности отвечать на реплику с её цитированием (указателем на неё). Т.е. тут всё по-старому.
Либо новый вариант — поставить галочку и использовать newstory. В ней есть возможность отвечать на реплики и можно организовать превьюшки, но не из сети, как для ieview, а каждая такая картинка скачивается на диск и показывается с диска.
Так что есть два варианта, надо решить, какой выбрать. У ieview+facebook.ivt красивей внешний вид, а newstory сыровата и ощутимо подглюкивает то со скроллингом, то например с такими вещами, как отправляю я картинку — и вижу только её кусок, а чтобы увидеть целиком, нужно отправить или получить ещё одну реплику. Но зато у newstory есть ответы на сообщения.

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

Quote
используются системные апи, которые не умеют рисовать напрямую из веба
Вот, я услышал то, что мне объяснило, в чём причина именно такого поведения. Больше вопросов не имею и только сам для себя могу решить, какой вариант мне удобней и нравится больше.
16
Разработка / Re: Протокол VKontakte
« Last post by Elzor on 20 04 2024, 04:40:16 »
1. Все есть файл. Так или иначе.
2. Протокол совершенно не волнует, где этот файл находится: на диске, в раме, в облаке, на альфе-центавре или еще где то. Лишь бы он был доступен через функции системного апи и ядра миранды. Он файлы качает, чтобы NewStory было что рисовать, следовательно все вопросы опять не по адресу. Но тем не менее:
3. NewStory использует litehtml - движок, который полноценным браузером не является и самостоятельно html элементы рисовать не умеет. Он лишь правильно размещает отрисованные элементы на странице. Чтобы отрисовать картинку, во-первых, используются системные апи, которые не умеют рисовать напрямую из веба. Тащить дополнительно какую-то библиотеку которая это "умеет" - избыточно. Только не надо заводить песни про браузеры которые умеют без кэша. Кому хочется браузер в мессенжере может смело отправляться на что-то на базе электрона, например. Отсюда во-вторых: картинку надо где-то иметь, то есть так или иначе скачать. Просто качать в оперативу и там бросать, в надежде что модуль журнала ее когда-то отрисует - идея плохая. Сохранять в файл куда перспективнее: этот файл прочитается и через неделю и через год, если пользователю захочется вновь на нее посмотреть.
4. Меня лично вообще не заботит ни место на диске, ни объем траффика. Это вообще в современном мире не критичные ресурсы. ВК - заведомо "дорогой" с этой точки зрения протокол. Разумно уменьшить потребление если есть возможность - я всегда за, но не в ущерб функционалу.
5. Кому хочется сохранять на рамдрайв - пусть сохраняет на рамдрайв. Я, например, принципиально не запрещаю никому спать стоя в гамаке, или, к примеру, использовать много лет назад протухшую ос. Но вешать кому-то гамак - чтобы что? Конечная цель какая?

Насчёт ссылок на картинки - их подправить бы не мешало
Опять-таки, во-первых, что с сервера пришло, то и используем. Подменять путь можно было бы, если б этот момент был задокументировал и гарантировалось, что в понедельник в 16:48 это вдруг не перестанет работать.
Во-вторых, опять же, конечная цель какая? При наличии NS и соответствующей настройки, картинки вообще локально скачиваются, даже если на сервере ее совсем удалят, она останется доступной.
17
Разработка / Re: Протокол VKontakte
« Last post by MIR on 20 04 2024, 03:58:07 »
Браузер точно так же "засирает винт", просто у него это называется "кэш" и робко спрятано в %LocalAppData%, отчего и создаётся ощущение, что винт не засирается. Чтобы что-то вам показать, это что-то нужно скачать.
У древних браузеров такое было, щяс давно уже всё в ОЗУ качяется и частично на диск, причём кэширование на диск можно полностью отключить в настройках браузера.
А в чём проблема на миранде загружать картинки в ОЗУ причём только те которые видны при просмотре окна чата? Ещё по 3-5 штук предыдущих и последующих чтобы при пролистывании окна чата не ждать когда они загрузятся. При закрытии окна чата они будут удаляться чтобы не засирать ОЗУ.
Скорее всего, нельзя, т.к. для этого нужен JavaScript, который в litehtml, используемом NS, отсутствует.
На крайняк Ram хранилище создать с выводом переменной внутри миранды к примеру %RamCache%
Настройки-События-Передача файлов нужно указать действительную папку, на запись в которую есть права.
А тут в таком случяе указать вместо C:\Users\User1\Мои документы\Принятые файлы\%userid%\ переменную RAM диска %RamCache%\%userid%\
Если запрашиваемый файл уже был удалён из кэша миранда заново его скачяет по ссылке из истории.

P.S. Насчёт ссылок на картинки - их подправить бы не мешало, т.к ВК изменил их адрес чтобы картинки качались не напрямую а обрабатывались скриптами на сервере, чтобы в случяе удаления картинки в сообщении её невозможно было бы просмотреть по ссылке, хотя на сервере эти картинки не удаляются и их можно просматривать по старым ссылкам, пример:

Ссылка нового образца, с обработкой на сервере
https://sun9-79.userapi.com/impg/VFMnjiNJ6btBJnpH1TBpTE11C2Etgnk6f8ZW3g/Ul6wLaB9hYk.jpg?size=640x542&quality=95&sign=24e30b50da7f18ac04438603b6ea3293&c_uniq_tag=x8CZwI4XB9tl6sAfh_GCnBWzEFPobxvo7PRe1Zyrlnc&type=album

Прямая ссылка, старого образца
https://sun9-79.userapi.com/VFMnjiNJ6btBJnpH1TBpTE11C2Etgnk6f8ZW3g/Ul6wLaB9hYk.jpg

Обе ссылки на одну и туже картинку, только вторая стабильная и картинка по ней не может быть удалена или заблокирована на сервере
18
Общие разговоры о Miranda NG / Re: Баги
« Last post by dartraiden on 19 04 2024, 19:25:12 »
А по какому протоколу файлы "попадают все кучей"?

Потому что у меня в TG и VK с путём "C:\Users\user\Documents\Принятые файлы\%nick%\" всё падает куда надо.
19
Разработка / Re: Протокол VKontakte
« Last post by dartraiden on 19 04 2024, 19:09:23 »
Скорее всего, нельзя, т.к. для этого нужен JavaScript, который в litehtml, используемом NS, отсутствует.
https://github.com/miranda-ng/miranda-ng/issues/4351

Но NewStory зато умеет делать превью для файлотрансферов, чего не умеет IEView.
(и перспектив научить этому IEView не просматривается, @ghazan опасается, что это будет крайне сложно)

В самом IEView ничего не менялось вообще, так что если что-то поменялось, то вопросы к протоколу VK.
20
Разработка / Re: Протокол VKontakte
« Last post by Wave on 19 04 2024, 17:32:25 »
А чем плоха предыдущая реализация, где картинки показывались из сети? Я даже в общем-то любопытства ради спрашиваю, а не то чтобы критикую. Это нельзя реализовать для NewStory? Не успели реализовать? Или я чего-то не понял и можно настроить как-то так, чтобы NewStory показывала так же, как IEView? Честно говоря, не могу придумать правдоподобного объяснения, поэтому не стану гадать.
P.s. Возможно, этого нельзя реализовать для телеграма с джаббером. Тут никаких вопросов.
Pages: 1 [2] 3 4 ... 10