Recent Posts

Pages: 1 ... 4 5 [6] 7 8 ... 10
51
Разработка / Re: Протокол Telegram
« Last post by dartraiden on 18 10 2025, 22:51:29 »
TG работает совсем иначе. Вот как выглядит отдельное событие (пост в канале "Коммерсант FM (Эфиры)")

Code: [Select]
    message {
      id = 7525629952
      sender_id = messageSenderChat {
        chat_id = -1002401255574
      }
      chat_id = -1002401255574
      sending_state = null
      scheduling_state = null
      is_outgoing = false
      is_pinned = false
      is_from_offline = false
      can_be_saved = true
      has_timestamped_media = true
      is_channel_post = true
      contains_unread_mention = false
      date = 1759788667
      edit_date = 0
      forward_info = null
      import_info = null
      interaction_info = messageInteractionInfo {
        view_count = 13
        forward_count = 0
        reply_info = null
        reactions = null
      }
      unread_reactions = vector[0] {
      }
      fact_check = null
      reply_to = null
      message_thread_id = 0
      topic_id = null
      self_destruct_type = null
      self_destruct_in = 0.000000
      auto_delete_in = 0.000000
      via_bot_user_id = 0
      sender_business_bot_user_id = 0
      sender_boost_count = 0
      paid_message_star_count = 0
      author_signature = ""
      media_album_id = 0
      effect_id = 0
      has_sensitive_content = false
      restriction_reason = ""
      content = messageAudio {
        audio = audio {
          duration = 3594
          title = "00:00 мск - 07.10.2025"
          performer = "Коммерсант FM"
          file_name = "00-00.mp3"
          mime_type = "audio/mpeg"
          album_cover_minithumbnail = minithumbnail {
            width = 40
            height = 40
            data = bytes [838] { FF D8 FF E0 00 10 4A 46 49 46 00 01 01 00 00 01 00 01 00 00 FF DB 00 43 00 28 1C 1E 23 1E 19 28 23 21 23 2D 2B 28 30 3C 64 41 3C 37 37 3C 7B 58 5D 49 64 91 80 99 96 8F 80 8C 8A A0 B4 E6 C3 A0 ...}
          }
          album_cover_thumbnail = thumbnail {
            format = thumbnailFormatJpeg {
            }
            width = 320
            height = 320
            file = file {
              id = 2407
              size = 13351
              expected_size = 13351
              local = localFile {
                path = ""
                can_be_downloaded = true
                can_be_deleted = false
                is_downloading_active = false
                is_downloading_completed = false
                download_offset = 0
                downloaded_prefix_size = 0
                downloaded_size = 0
              }
              remote = remoteFile {
                id = "AAMCAgADIQUABI8gQJYAAhwJaPQbGpaA0my6kVMKN8b8nl6qlQkAAsJ-AAI0NiBLq_Tjxbm4bAwBAAdtAAM2BA"
                unique_id = "AQADwn4AAjQ2IEty"
                is_uploading_active = false
                is_uploading_completed = true
                uploaded_size = 13351
              }
            }
          }
          external_album_covers = vector[2] {
            thumbnail {
              format = thumbnailFormatJpeg {
              }
              width = 100
              height = 100
              file = file {
                id = 2409
                size = 0
                expected_size = 0
                local = localFile {
                  path = ""
                  can_be_downloaded = true
                  can_be_deleted = false
                  is_downloading_active = false
                  is_downloading_completed = false
                  download_offset = 0
                  downloaded_prefix_size = 0
                  downloaded_size = 0
                }
                remote = remoteFile {
                  id = "AAg9I2F1ZGlvX3QjMDA6MDAg0LzRgdC6IC0gMDcuMTAuMjAyNSPQmtC-0LzQvNC10YDRgdCw0L3RgiBGTSMxIwACAw"
                  unique_id = "_wAIPSNhdWRpb190IzAwOjAwINC80YHQuiAtIDA3LjEwLjIwMjUj0JrQvtC80LzQtdGA0YHQsNC90YIgRk0jMSMAAg"
                  is_uploading_active = false
                  is_uploading_completed = true
                  uploaded_size = 0
                }
              }
            }
            thumbnail {
              format = thumbnailFormatJpeg {
              }
              width = 600
              height = 600
              file = file {
                id = 2410
                size = 0
                expected_size = 0
                local = localFile {
                  path = ""
                  can_be_downloaded = true
                  can_be_deleted = false
                  is_downloading_active = false
                  is_downloading_completed = false
                  download_offset = 0
                  downloaded_prefix_size = 0
                  downloaded_size = 0
                }
                remote = remoteFile {
                  id = "AAg9I2F1ZGlvX3QjMDA6MDAg0LzRgdC6IC0gMDcuMTAuMjAyNSPQmtC-0LzQvNC10YDRgdCw0L3RgiBGTSMwIwACAw"
                  unique_id = "_wAIPSNhdWRpb190IzAwOjAwINC80YHQuiAtIDA3LjEwLjIwMjUj0JrQvtC80LzQtdGA0YHQsNC90YIgRk0jMCMAAg"
                  is_uploading_active = false
                  is_uploading_completed = true
                  uploaded_size = 0
                }
              }
            }
          }
          audio = file {
            id = 2408
            size = 57503744
            expected_size = 57503744
            local = localFile {
              path = ""
              can_be_downloaded = true
              can_be_deleted = false
              is_downloading_active = false
              is_downloading_completed = false
              download_offset = 0
              downloaded_prefix_size = 0
              downloaded_size = 0
            }
            remote = remoteFile {
              id = "CQACAgIAAyEFAASPIECWAAIcCWj0GxqWgNJsupFTCjfG_J5eqpUJAALCfgACNDYgS6v048W5uGwMNgQ"
              unique_id = "AgADwn4AAjQ2IEs"
              is_uploading_active = false
              is_uploading_completed = true
              uploaded_size = 57503744
            }
          }
        }
        caption = formattedText {
          text = "🕙 Не удалось найти плейлист за этот час. Навигация по дате, времени. Клик по хештегу отсортирует записи по этому каналу или всем чатам:
Навигация по дате, времени. Клик по хештегу отсортирует записи по этому каналу или всем чатам: #д07102025 #ч00 @recradio"
          entities = vector[5] {
            textEntity {
              offset = 78
              length = 7
              type = textEntityTypeBold {
              }
            }
            textEntity {
              offset = 174
              length = 7
              type = textEntityTypeBold {
              }
            }
            textEntity {
              offset = 233
              length = 10
              type = textEntityTypeHashtag {
              }
            }
            textEntity {
              offset = 244
              length = 4
              type = textEntityTypeHashtag {
              }
            }
            textEntity {
              offset = 249
              length = 9
              type = textEntityTypeMention {
              }
            }
          }
        }
      }
      reply_markup = replyMarkupInlineKeyboard {
        rows = vector[3] {
          vector[1] {
            inlineKeyboardButton {
              text = "Список Радиостанций"
              type = inlineKeyboardButtonTypeUrl {
                url = "https://t.me/recradio"
              }
            }
          }
          vector[1] {
            inlineKeyboardButton {
              text = "СЛУШАТЬ ПРЯМОЙ ЭФИР"
              type = inlineKeyboardButtonTypeUrl {
                url = "https://volna.top/radio-kommersant?tlg"
              }
            }
          }
          vector[1] {
            inlineKeyboardButton {
              text = "Поддержать"
              type = inlineKeyboardButtonTypeUrl {
                url = "https://t.me/recradio/4"
              }
            }
          }
        }
      }
    }

Оно состоит из отдельных элементов: текст, превьюшка, прикреплённый файл и т.д. Нас интересует файл:

Code: [Select]
          audio = file {
            id = 2408
            size = 57503744
            expected_size = 57503744
            local = localFile {
              path = ""
              can_be_downloaded = true
              can_be_deleted = false
              is_downloading_active = false
              is_downloading_completed = false
              download_offset = 0
              downloaded_prefix_size = 0
              downloaded_size = 0
            }
            remote = remoteFile {
              id = "CQACAgIAAyEFAASPIECWAAIcCWj0GxqWgNJsupFTCjfG_J5eqpUJAALCfgACNDYgS6v048W5uGwMNgQ"
              unique_id = "AgADwn4AAjQ2IEs"
              is_uploading_active = false
              is_uploading_completed = true
              uploaded_size = 57503744
            }
          }

Как видно, никаких ссылок никто никому не присылает. Приходит лишь идентификатор файла. Когда Миранда скачивает файл (автоматически или по запросу пользователя), она отправляет на сервер запрос "а дай мне файл с вот таким идентификатором" и в ответ получает файл.

Сейчас я запросил историю этого канала. Завтра попробую скачать какие-нибудь из этих эфиров. Также, попробую очистить и заново закачать историю и мы увидим на примере вон того события, поменяется ли хоть что-то в нём (вдруг идентификаторы протухают каким-то образом? тогда через несколько часов загрузка этого события с сервера будет содержать иные идентификаторы).
52
Разработка / Re: Протокол Telegram
« Last post by Alex79 on 18 10 2025, 09:52:11 »
Повторюсь: в стабильной версии очень старая tdlib.

В версии в разработке этот баг есть?

В предыдущем посте же все написано. Ссылки на скачку файлов формируются при запросе конкретного сообщения от клиента к серверу и их срок жизни около 2 часов (наверное это настройка в боте выдающем файлы, либо канала с архивами эфиров), чтобы они качались всегда, в миранде нужно добавить в механизм обработки события загрузки - если она не начинается, значит ссылка устарела и требуется повторно загрузить в историю миранды (с сервера) то сообщение, которое содержит загружаемый файл с обновленной ссылкой.
53
Разработка / Re: Протокол Telegram
« Last post by dartraiden on 18 10 2025, 07:26:16 »
Повторюсь: в стабильной версии очень старая tdlib.

В версии в разработке этот баг есть?
54
Разработка / Re: Протокол Telegram
« Last post by Alex79 on 17 10 2025, 18:21:36 »
В стабильной версии:
-очистил историю и загрузил заново - качает старые файлы. Перезапустил миранду - тоже качает.
-не очищая историю обновился до версии в разработке - качает.
-сменил язык и перезапустил - качает.
-открыл историю другого чата (не очищал и не перекачивал) и попробовал скачать старые файлы из нее - не качает.
-Новые файлы (не старше ~2-3 часов) из этого же чата качает.

По-видимому ссылки на скачку файлов в телеграм временные на 2-3 часа и обновляются когда сообщение с файлом подгружается/отображается в официальном клиенте (либо скачивается в историю через миранду).
55
Разработка / Re: Протокол Telegram
« Last post by dartraiden on 17 10 2025, 15:54:41 »
История формат не меняет. Файлы не хранятся в базе.

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

В принципе, девелоперская версия скоро будет залита в стабильный канал. Осталось лишь вацап добить и можно релизить.
56
Разработка / Re: Протокол Telegram
« Last post by Alex79 on 17 10 2025, 11:39:53 »
В общем все работало. Перешел обратно на обычную версию, потом загрузил русский языковой пакет и попробовал снова скачать из истории старые файлы - не работает.
Вернул версию в разработке - все равно нет, откатил язык на английский - тоже нет. Всё с перезапусками. На этот раз визуально в истории не отличаются записи с которых качается и нет - название контакта одинаковое.
Получается, история меняет свой формат во время перехода с версии в разработке на обычную без восстановления нужной скрытой информации?
Или смена языка повлияла на историю - например есть контакт телеграмма "Saved Messages", который автоматически переименовывается в "Избранное" если стоит русский язык.
57
Разработка / Re: Протокол Telegram
« Last post by dartraiden on 17 10 2025, 08:43:52 »
popup об окончании загрузки истории срабатывает сразу после старта загрузки, а не по ее окончанию.
Уже известно

Quote
Вроде старый баг - всегда автоматически создается пустая группа Chat Rooms если в контактах есть чаты.
Не имеет отношения к TG и это не баг. Это группа, которая указана в настройках плагина сообщений (Беседы -> Чаты).
Туда автоматически закидываются групчаты, если в настройках протокола указана пустая группа (или у протокола вообще нет опции "Группа", как у Jabber).

На практике некоторые протоколы пока ещё некорректно работают, если у них поле "Группа" в настройках протокола оставить пустым.

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

Quote
когда в обычном клиенте срабатывает сразу (хотя это и нужно сделать 1 раз).
Миранда и официальный клиент устроены фундаментально по-разному (оф. клиент создавался во времена, когда доступ в интернет воспринимается как нечто постоянное и неизменное). Официальный клиент кэширует лишь кусочек истории, без интернета вы по всей истории искать не сможете. Миранда засасывает всё и дальше история доступна даже при отсутствии сети.

К тому же, идеология Миранды - модульность, каждый плагин делает лишь свою работу. Просмотрщик истории ничего про сеть не знает, его задача - запросить у драйвера базы историю и показать. Драйвер базы в свою очередь ничего про сеть тоже не знает, его задача - прочитать локальную базу, куда историю уложил протокольный плагин, который уже как раз и работает с сетью.

Quote
Контакты в контакт-листе выделяются только по одному, с ctrl никакой разницы.
Для массовых операций с контактами существует плагин QuickSearch. Добавление в Clist_modern множественного выделения, по словам разработчика, "абсолютно исключено".
58
Разработка / Re: Протокол Telegram
« Last post by Alex79 on 17 10 2025, 07:07:03 »
Поставил версию в разработке - результат не изменился. Очистил и загрузил историю - заработало. До этого напротив каждого старого сообщения в истории у контакта стояло "Chat Rooms" вместо правильного "<название станции> (эфиры)".

Как было в обычной версии миранды:
- после добавления учетной записи телеграм у чата с эфирами было название Chat Rooms (Nick - Chat Rooms, Display Name - "<название станции> (эфиры)". Вручную переименовал чтобы совпадало). Чат был добавлен в андроид клиенте до добавления учетки в миранде. Миранда после этих действий не перезапускалась и "неправильная" история видмо была загружена до переименования вручную.

Баги в версии в разработке:
-popup об окончании загрузки истории срабатывает сразу после старта загрузки, а не по ее окончанию.
-Вроде старый баг - всегда автоматически создается пустая группа Chat Rooms если в контактах есть чаты. Если туда перенести чат-контакты (телеграмма из группы для протокола Telegram) и перезапустить - она пустая. После удаления появляется снова. Скорее всего связано с установкой группы по умолчанию для контактов протокола.
-Контакты в контакт-листе выделяются только по одному, с ctrl никакой разницы.
 
Также показалось, что скачка истории не кэшируется перед записью на диск и пишется непрерывно.
Для чатов не очень удобно загружать тысячи сообщений по N минут чтобы что-то найти / скачать, когда в обычном клиенте срабатывает сразу (хотя это и нужно сделать 1 раз).
59
Разработка / Re: Протокол Telegram
« Last post by dartraiden on 16 10 2025, 23:55:02 »
Нет, увы, не удаётся повторить это.

Окно сообщений даже не открывал.
Оно вгрузило 7 с лишним тысяч событий. Мотнул на май 2025 и сделал дабклик. Пошло скачивание, что видно по красной полоске прогресса.

Если что, я тестирую на версии в разработке.
60
Разработка / Re: Протокол Telegram
« Last post by Alex79 on 16 10 2025, 19:56:38 »
VersionInfo
Quote
CPU: AMD FX(tm)-8320 Eight-Core Processor  [AMD64 Family 21 Model 2 Stepping 0] [DEP Enabled] [8 CPUs]
Installed RAM: 32668 MBytes
Microsoft Windows 7 Ultimate Edition, 64-bit Service Pack 1 (build 7601)
Internet Explorer: 9.11.9600.20139 (build 99600)
Administrator privileges: Yes
OS Languages: (UI | Locale (User/System)) : Russian/Russian | Russian/Russian
Free disk space on Miranda partition: 30074 MBytes

Miranda NG Version: 0.96.6 build #4487 (f3100d9) x64
Build time: 22 августа 2025 г. 17:50:02
Profile: I:\Disk E\COMP\Download\Files\Programs\Talk\Free\Miranda\miranda-ng\Profiles\Home\Home.dat
Database driver: SQLite database driver
Database encryption mode: default
Profile size: 7987200 Bytes
Profile creation date: 1 июля 2024 г. 10:48:06
Language pack: No language pack installed
Service Mode: No
SRMM Log Viewer: built-in
SRMM Groupchat Log Viewer: built-in

Active Plugins (40):
¤ AuthState.dll v.0.0.2.2 [7 апреля 2025 г. 20:21:00] - Authorization state
¤ AvatarHistory.dll v.0.1.0.2 [13 апреля 2025 г. 17:07:20] - Avatar history
¤ AVS.dll v.0.98.1.6 [22 августа 2025 г. 17:50:10] - Avatar service
¤ ClientChangeNotify.dll v.0.1.1.4 [13 мая 2025 г. 15:06:28] - Client change notify
¤ Clist_modern.dll v.0.9.1.12 [22 августа 2025 г. 17:50:52] - Modern contact list
¤ CrashDumper.dll v.0.2.0.3 [19 августа 2025 г. 16:35:56] - Crash dumper
¤ CryptoPP.dll v.1.0.4.8 [13 мая 2025 г. 15:08:12] - Crypto++
¤ CSList.dll v.0.1.1.0 [7 апреля 2025 г. 20:21:10] - Custom status list
¤ Db_autobackups.dll v.0.1.0.7 [22 августа 2025 г. 17:50:24] - Db autobackuper
¤ DbChecker.dll v.0.96.4.1 [22 августа 2025 г. 17:52:42] - Database checker
¤ DbEditorPP.dll v.4.1.0.4 [19 августа 2025 г. 16:35:50] - Database editor++
¤ Dbx_sqlite.dll v.0.96.4.1 [22 августа 2025 г. 17:52:30] - Miranda NG SQLite database driver
¤ Dummy.dll v.0.2.0.2 [22 августа 2025 г. 17:51:52] - Dummy protocol
¤ Fingerprint.dll v.0.2.1.1 [13 мая 2025 г. 15:07:02] - Fingerprint NG
¤ Flags.dll v.0.1.0.4 [7 апреля 2025 г. 20:21:08] - Country flags
¤ IgnoreState.dll v.0.0.3.0 [7 апреля 2025 г. 20:21:16] - Ignore state
¤ Import.dll v.0.96.3.1 [22 августа 2025 г. 17:50:38] - Import contacts and messages
¤ Jabber.dll v.0.95.11.1 [19 августа 2025 г. 16:35:50] - Jabber protocol
¤ Jingle.dll v.0.1.0.2 [8 августа 2025 г. 17:48:46] - Jingle
¤ LinkList.dll v.0.0.0.2 [7 апреля 2025 г. 20:21:14] - History linklist plus
¤ MagneticWindows.dll v.0.0.3.2 [7 апреля 2025 г. 20:23:04] - Magnetic Windows
¤ MenuEx.dll v.1.3.2.0 [7 апреля 2025 г. 20:21:18] - Menu item ext
¤ MessageState.dll v.0.1.0.2 [7 апреля 2025 г. 20:22:44] - Message state
¤ MobileState.dll v.0.0.1.6 [7 апреля 2025 г. 20:21:58] - Mobile state
¤ mRadio.dll v.0.0.2.4 [22 августа 2025 г. 17:58:22] - mRadio Mod
¤ NewStory.dll v.0.2.0.3 [19 августа 2025 г. 16:42:20] - NewStory
¤ PluginUpdater.dll v.0.3.1.1 [15 сентября 2025 г. 12:30:02] - Plugin updater
¤ SeenPlugin.dll v.5.0.5.6 [13 мая 2025 г. 15:06:20] - Last seen
¤ SmileyAdd.dll v.0.3.3.1 [13 апреля 2025 г. 17:06:30] - SmileyAdd
¤ StatusManager.dll v.1.2.0.7 [19 августа 2025 г. 16:37:00] - Status manager
¤ TabSRMM.dll v.3.6.2.6 [13 мая 2025 г. 15:06:08] - TabSRMM
¤ Telegram.dll v.0.96.6.1 [15 сентября 2025 г. 12:39:16] - Telegram protocol
¤ Tipper.dll v.2.1.0.8 [13 мая 2025 г. 15:06:24] - Tipper
¤ TopToolBar.dll v.0.8.0.5 [13 мая 2025 г. 15:06:32] - TopToolBar
¤ UInfoEx.dll v.0.9.0.3 [19 августа 2025 г. 16:35:40] - User info ext
¤ VoiceService.dll v.0.1.3.2 [8 августа 2025 г. 17:48:40] - Voice Service
¤ Watrack.dll v.0.0.6.12 [22 августа 2025 г. 17:58:24] - Winamp Track
¤ Weather.dll v.1.1.0.1 [13 мая 2025 г. 15:07:02] - Weather
¤ WhenWasIt.dll v.0.4.0.2 [19 августа 2025 г. 16:35:34] - Birthday reminder
¤ XSoundNotify.dll v.1.2.0.1 [7 апреля 2025 г. 20:22:18] - XSoundNotify

Weather ini files:
-------------------------------------------------------------------------------
 gismeteo_com.ini v.2023.05.24 [8 июня 2023 г. 21:10:20] - GisMeteo.com
 gismeteo_ru.ini v.2023.05.24 [28 июля 2024 г. 12:23:46] - GisMeteo.ru
 msn.ini v.2021-04-21 [5 сентября 2022 г. 11:47:26] - MSN Weather (New Layout)

Protocols and Accounts:
-------------------------------------------------------------------------------
JABBER                   2 - Enabled 0 - Disabled  Loaded
Telegram                 1 - Enabled 0 - Disabled  Loaded
Weather                  1 - Enabled 0 - Disabled  Loaded

Icon Packs:
-------------------------------------------------------------------------------
 Flags_icons.dll [20 декабря 2024 г. 14:07:28]
 Fp_icons.dll [13 мая 2025 г. 15:13:02]
 HistoryPP_icons.dll [15 сентября 2025 г. 12:39:30]
 Proto_CurrencyRates.dll [19 декабря 2023 г. 21:05:10]
 Proto_Dummy.dll [22 августа 2025 г. 17:58:20]
 Proto_Em_Lan_Proto.dll [13 мая 2025 г. 15:13:04]
 Proto_Facebook.dll [13 апреля 2025 г. 17:14:18]
 Proto_GG.dll [8 августа 2025 г. 17:53:32]
 Proto_ICQ.dll [13 мая 2025 г. 15:13:04]
 Proto_IRC.dll [13 мая 2025 г. 15:13:02]
 Proto_Jabber.dll [19 августа 2025 г. 16:42:22]
 Proto_MetaContacts.dll [22 августа 2025 г. 17:58:20]
 Proto_MinecraftDynmap.dll [13 апреля 2025 г. 17:14:16]
 Proto_MRA.dll [28 июля 2024 г. 12:38:56]
 Proto_mRadio.dll [22 августа 2025 г. 17:58:20]
 Proto_NewsAggregator.dll [19 декабря 2023 г. 21:05:10]
 Proto_Sametime.dll [13 мая 2025 г. 15:13:02]
 Proto_Skype.dll [13 апреля 2025 г. 17:14:16]
 Proto_Steam.dll [28 мая 2025 г. 14:54:36]
 Proto_Telegram.dll [15 сентября 2025 г. 12:39:30]
 Proto_Tox.dll [8 августа 2025 г. 17:53:34]
 Proto_Twitter.dll [19 декабря 2023 г. 21:05:10]
 Proto_VKontakte.dll [22 августа 2025 г. 17:58:20]
 Proto_Weather.dll [13 мая 2025 г. 15:13:02]
 Proto_WhatsApp.dll [19 декабря 2023 г. 21:05:10]
 Proto_YAMN.dll [19 августа 2025 г. 16:42:22]
 SecureIM_icons.dll [13 мая 2025 г. 15:13:02]
 TabSRMM_icons.dll [13 мая 2025 г. 15:13:04]
 Toolbar_icons.dll [22 августа 2025 г. 17:58:18]
 UInfoEx_icons.dll [19 августа 2025 г. 16:42:22]
 Watrack_buttons.dll [22 августа 2025 г. 17:58:24]
 Watrack_icons.dll [22 августа 2025 г. 17:58:24]
 xStatus_Jabber.dll [19 августа 2025 г. 16:42:22]
[close]
Pages: 1 ... 4 5 [6] 7 8 ... 10