Прога мониторинга игровых ковров Artisan
2 поста
Вот такой диалог у меня случился сегодня с техподдержкой МегаФона.
Непробиваемость первой линии поддержки, несмотря на неопровержимые факты, ими же и утверждаемые, меня совершенно поразила.
А как вообще с вами дела вести, ребята?? Плотить деньги и не п?*д%ть?
Суть коротко - у знакомого улетело трафика почти в три раза больше, чем по тарифу положено. Попросил меня пообщаться с поддержкой, как "грамотного человека". Ну... пообщался. Об стену биться и то проще.
Хорошо, что я давно уже не пользуюсь услугами этой компании. Помогал знакомому разобраться, куда трафик улетел.
Источник заголовка - РБК
На платформе сейчас просто бардак в плане согласованности продуктов для стриминга (это тот момент который меня интересовал, поэтому про него и пишу).
Есть VK - который социальная сеть.
В VK есть раздел ВИДЕО - который ведёт на сайт vkvideo.ru - это теперь отдельный продукт.
На сайте vkvideo.ru есть раздел МОИ ВИДЕО - где отображается мой видеоконтент из VK (то что я раньше загружал на VK, стримил на VK и добавлял в избранное на VK)
Также рядом с иконкой моего профиля на vkvideo.ru есть кнопка "+", которая позволяет загрузить видео/начать трансляцию.
Эта трансляция попадёт собственно в "МОИ ВИДЕО -> Мои Трансляции" на сайте vkvideo.ru
А ещё на сайте vkvideo.ru есть отдельный раздел LIVE - который ведёт на live.vkvideo.ru.
И это совершенно отдельный продукт, который никак не связан с vkvideo.ru!
live.vkvideo.ru - это стриминговая платформа. Если я заведу стрим там, он не попадёт в "Мои видео -> Мои трансляции" на vkvideo.ru, а останется в разделе "Записи" профиля на live.vkvideo.ru.
Записи стримов на live.vkvideo.ru. Которые НИКАК не связаны с трансляциями на vkvideo.ru
Уже сейчас создаётся путаница - из социальной сети через её стандарное меню я попадаю на другой сайт, где хранятся мои видео из этой соцсети. Если я на этом сайте начну трансляцию, это отразится в социальной сети: кому-то придёт какое-то уведомление о том, что я начал стрим.
Однако на этом же сайте есть второй раздел с трансляциями, где тоже можно начать трансляцию, которая вообще никак не связана с социальной сетью.
И ещё к этому добаляется сайт vkplay.ru - который интернет магазин для покупки игр.
На нём есть раздел "стримы" в котором только отображаются какие-то стримы...
В МАГАЗИНЕ ИГР, который продаёт игры, сверху на странице стримов больше половины НЕ ИГРОВЫХ стримов. Зачем?
А ещё если полазить по доменам новым и старым, можно понять, что vkplay.live = live.vkvideo.ru
VK - оставляем там социальную сеть. Личная страница, группы, всё что относится именно к соцсети.
vkvideo.ru - тут делаем видеоплатформу. Стриминг, видео, плейлисты. Всё тут.
vkplay.ru - магазин. Оставляем только магазин с играми, покупками, лаунчером.
Делаем у vkvideo.ru и vkplay.ru хороший такой api для интеграции (пусть он даже будет приватный).
Добавляем в профиль VK возможность подключить свои профили из vkvideo.ru и vkplay.ru.
Для пользователя это выглядит так: в настройках профиля VK появляются два блока, где можно настроить как VK будет себя вести при событиях происходящих на видео или плей-платформах.
Например: публиковать активность из игрового магазина в ленте (Василий первый раз запустил "Смуту"), публиковать загруженные на vkvideo.ru ролики в ленте.
Также на vkplay.ru убрать раздел со стримами и привязать стримы к играм. То есть открываешь страницу игры (или каталог с играми), а там отображается плашка - "сейчас эту игру стримят 150 человек - Смотреть".
Всё. По-моему достаточно просто и понятно.
P.S. это я ещё молчу о том, как ухудшился интерфейс публикации постов в ВК. Просто больно стало пользоваться. На телефоне давно уже приложение удалено и нет желания ставить. С компа захожу раз в неделю посмотреть пару местных пабликов, которые только в ВК публикуются.
Продолжаю программировать)
Ссылка на первую часть: https://pikabu.ru/story/monitoring_dostupnosti_geymerskikh_kovrikov_artisan_11613910
Переписал своего бота мониторинга ковров практически с нуля.
Если раньше это была обычная программа, которую раз в полчаса запускал планировщик, то теперь это служба, которая работает круглосуточно, мониторит ковры нонстоп, а также отвечает на команды подписчиков в телеге.
Новые функции:
- Команды телеграм-бота. То есть они в принципе появились и ими можно пользоваться.
- Команда /get. Основное нововведение. Если вам не нужно постоянно получать уведомления о том какие ковры появились, а какие закончились, можно отписаться от уведомлений через /stop, но при этом по команде /get получать все доступные на данный момент ковры или только интересные вам.
То есть "/get 99" вернёт только ковры у которых в коде продукта есть 99, а "/get 99 xxl" - только те у которых в коде есть и 99 и xxl.
Кстати, сегодня вышел новый ковёр (キ83) . На сайте появился, а больше нигде никаких анонсов пока нет.
- Индивидуальные фильтры уведомлений. Если лично вам не нужны уведомления о том, что в продаже появились классические ковры размера S - это можно организовать. Пока фильтр настраивается только с моей стороны.
Немного технической информации для любителей программирования:
- Это всё ещё приложение на NET8.
- Пишу и собираю всё в линуксе в VS Code.
- Для основы сервиса использовал шаблон Worker, но так как кода не особо много и он не сложный, дополнительно на микросервисы внутри ихней HostedService инфраструктуры не стал дробить. Просто в пределах одного воркера на функциональные классы поделил и всё.
- Конфиги и данные храню в JSON. Сериализую периодически в файл встроенным сериализатором (System.Text.Json.JsonSerializer)
Прочая обвязка
- Для телеграм-бота использую `Telegram.Bot`
- Для логгирования `log4net`
- Для прикручивания к линуксовому диспетчеру служб Systemd - `Microsoft.Extensions.Hosting.Systemd`
- Для отображения таблички у себя на сайте использую `DataTables` (офигенная штука). И снова планировщик cron, который с бэкенда во фронтенд копирует периодически файлик с данными.
- Для персональных фильтров изпользовал `Dynamic.Linq` - тоже классная вещь, не надо самому мутить свой контракт и парсер для него.
Вроде всё... Программа простая, но так приятно смотреть как оно всё само работает)
А вы видели, что вышла новая версия Winbox? Кроссплатформенная: Windows, Linux, MacOS. С тёмной темой.
Я уже вовсю пользуюсь и кайфую)
Для тек кто не в теме:
Winbox - фирменная программа от компании Mikrotik для управления сетевыми устройствами, работающими на их RouterOS.
Предыдущая версия выглядит так:
Помните когда-то была такая программа "Evernote", куда удобно было закидывать всё интересное из интернета, чтобы не потерять.
Когда она загнулась, я долго не мог найти альтернативы и в итоге остановился на Trello. Более-менее она подходила, но пользоваться было не так удобно.
А потом нашел Notion - офигенный сервис, в котором всё было идеально:
Визуальный редактор
Таблички
Простейшие вычисления, как в эксельке
Ссылки из одних материалов на другие
Конструирование страниц из готовых блоков
Календари
Шаблоны
Можно было расшаривать странички для публичного доступа!
И всего хватало в бесплатном плане.
Короче для меня это было именно то что нужно.
Но пару дней назад...
Печалька... что тут ещё скажешь.
Теперь придётся искать и поднимать какой-то self-hosted аналог у себя на сервере...
Подскажите, какие есть альтернативы?
А я по мере разворачивания различных вариантов буду о них писать.
Да и вообще хочется делиться наработками в плане сетевой свободы и независимости)
Может кому пригодится.
По просьбе одного хорошего человека написал программу и сделал удобную табличку с информацией о японских геймерских ковриках для мыши от компании Artisan.
Информация тянется с официального японского сайта (https://www.artisan-jp.com/) каждые полчаса. Есть возможность слать уведомления в телеграм.
Табличка выглядит так:
Уведомления — так:
Писал полностью в Linux. В качестве IDE использовал VS Code. Фреймворк — Net8.
Если интересны подробности, пишите в комментах - добавлю немного кода.
Затем закинул программу себе на сервер и добавил её периодическое выполнение в cron.
Из недостатков — для отправки уведомлений в Telegram использовал самый популярный пакет — Telegram.Bot. Так вот, в текущей версии этот пакет не поддерживает тримминг. Соответственно, собранное приложение вместо ~18МБ весит почти 100!
На сервере места достаточно, так что это не проблема. Но… 100МБ на очень скромное по функциям приложение! У моего внутреннего программиста-перфекциониска глаз дёргается от этого.