Уахха-ха, нифига LG гадит в эфир! Точнее без умолку и усталости сканирует доступный сервер на содержимое. Интересно, а если в сети не один медиа-сервер? Он тоже каждый вот так прошаривает, сканирует? Своеобразный робот-паук, собирающий информацию (скорее всего, для таргетированной рекламы).
За 15 минут "ничего-не-делания" он на обмене только с HMS нагенерил ~ 12 Mb трафика.
Помню у Дугласа Адамса в "Автостопом по галактике" были на одной планете супер умные лифты, которые умели сканировать подходящих людей и даже предсказывать, куда хочет поехать кто-то, чтобы подъехать на этаж ещё до этого и не надо было ждать после вызова лифта.
Прекрасные лифты. Но у них был недостаток. Иногда они начинали бастовать. Опускались на самый низ и никуда не хотели ехать, ибо понимали, что жизнь бессмыслена и всё тлен.
В общем, как я и предполагал, получения списка содержимого папки командой от телевизора при навигации от пульта и при самостоятельном сканировании - практически ничем не отличаются. Это обычные UPnP команды получения списка доступных медиа-элементов. И если медиа-элемент является каталогом - идёт запрос содержимого этого элемента.
Единственное, которое я заметил, что при автоматическом сканировании всегда идут подряд запросы
1) <BrowseFlag>BrowseMetadata</BrowseFlag>, <RequestedCount>0</RequestedCount>
2) <BrowseFlag>BrowseDirectChildren</BrowseFlag>, <RequestedCount>10</RequestedCount>
А вот анализ запросов с навигацией через пульт, показывает, что идут запросы:
1) <BrowseFlag>BrowseMetadata</BrowseFlag>, <RequestedCount>0</RequestedCount>
2) <BrowseFlag>BrowseDirectChildren</BrowseFlag>, <RequestedCount>24</RequestedCount>
Т.е. RequestedCount в одном случае 10, в другом 24.
Но в запросах при навигации с пульта также встречаются запросы один в один как и при автоматическом сканировании. Но это, я подозреваю, из-за того, что телек не перестаёт автоматическое сканирование даже при навигации с пульта. Поэтому во втором случае там запросы перемешаны и одни и другие.
RequestedCount - это количество запрашиваемых элементов (чтобы получать данные порциями). Если предположить, что при автоматическом сканировании именно у этой модели с этой прошивкой автоматические запросы делаются со свойством RequestedCount=10, то, теоретически, по этому признаку можем обрубать запросы к серверу.
Теперь вот - как отрубать. Не совсем понял предназначение встроенной переменной ProcessEventResult в скриптах обработки событий в HMS. Я не знаю какие значения туда можно заносить. Но если занести какое-либо от балды, то устройство начинает обламываться и не получает данных от сервера.
Проверял через бублик на телефоне, если в ProcessEventResult заношу какие-нибудь данные, то бублик не может получить никакие данные от HMS.
Поэтому можно попробовать следующее. Вот такой скрипт для обработки HTTP запросов "До":
///////////////////////////////////////////////////////////////////////////////
// Г Л А В Н А Я П Р О Ц Е Д У Р А //
{
if (Pos('<RequestedCount>10</RequestedCount>', HttpRequest.Content)>0) {
ProcessEventResult = 'No Pasaran!';
}
}
Все запросы, где будут встречаться "<RequestedCount>10</RequestedCount>" - будут обламываться.
Нужно проверить, не будет ли это условие рубить вполне нормальные запросы при навигации с пульта.
Sony Bravia KDL-32CX523