Kvede Новости
Проект находится в стадии альфа-тестирования В это время использовать его может каждый абсолютно бесплатно. Для начала работы добавьте @KvedeBot в Вашу группу и назначьте администратором, выдав права на удаление сообщений и блокировку пользователей. Тонкие…
@KvedeBot - это проект по управлению группами в Telegram, борьбе со спамом при помощи ИИ, системой репутации и аналитики по чатам.
Часть функций пока ещё недоступна, но вскоре будет.
Часть функций пока ещё недоступна, но вскоре будет.
👍3
Forwarded from Kvede Новости
Большой апдрейт 🤩
За последние четыре дня код проекта несколько вырос начиная с полного рефакторинга тестов, что позволило полностью покрыть все стороны работы бота, сделав простым и прозрачным процесс "общения" с Telegram API.
Коротко о нововведениях:
- При классификации текста на предмет спама теперь учитывается не только имя пользователя, если оно было указано, но ещё и названия кнопок, если они были прикреплены к сообщению;
- В личные фиды блокировок были добавлены кнопки для взаимодействия с заблокированными пользователями. Доступно три кнопки: "спам", "не спам" и "избранные". Названия можно переименовывать для каждого канала;
- Добавлен новый модуль "Избранные пользователи". Он позволяет отмечать пользователей в чате, на которых не будет распространяться анти-спам проверка;
- Посты из каналов теперь не будут удаляться при анти-спам проверке;
- Сообщения длиной менее трёх символов не будут проходить классификацию спама;
- Исправлена ошибка инициализации системы, вследствие которой в ответ на вебхук для условного Ивана писалось сообщение "Руслан, Вы не можете это использовать", где имя "Руслан" могло рандомно меняться;
- Добавлен прогрев авторизационного токена Яндекса, что при деплое позволит сразу закэшировать его результат. До этого первый запрос к нему длился около 5-10 секунд, т.к. системе нужно было время для шифрования данных при подготовке запроса;
- Теперь для администраторов и "обычных" пользователей бот будет показывать разные наборы команд, в т.ч. на разных языках (пока что доступны русский и английский, но кнопки могут иметь прежний вид, т.к. функционал тестируется);
- Улучшили работу с колбэк функциями. Telegram не позволяет передавать данные длиной свыше 60 байт, вследствие чего для некоторых методов колбэки не срабатывали, т.к. совокупность идентификаторов чата, сообщений, пользователя и названия методов превышала допустимый объём. Теперь такого не будет;
- Исправлена ошибка при обработке плейсхолдера с частью отсутствующих данных;
- Исправлена ошибка определения идентификатора сообщения при вызове колбэков.
Далее в очереди новый модуль "Доверенные пользователи", переработка системы приветствий и команда проверки настроек чата 👷♂️
@KvedeBot | Чат поддержки: @KvedeSupport
За последние четыре дня код проекта несколько вырос начиная с полного рефакторинга тестов, что позволило полностью покрыть все стороны работы бота, сделав простым и прозрачным процесс "общения" с Telegram API.
Коротко о нововведениях:
- При классификации текста на предмет спама теперь учитывается не только имя пользователя, если оно было указано, но ещё и названия кнопок, если они были прикреплены к сообщению;
- В личные фиды блокировок были добавлены кнопки для взаимодействия с заблокированными пользователями. Доступно три кнопки: "спам", "не спам" и "избранные". Названия можно переименовывать для каждого канала;
- Добавлен новый модуль "Избранные пользователи". Он позволяет отмечать пользователей в чате, на которых не будет распространяться анти-спам проверка;
- Посты из каналов теперь не будут удаляться при анти-спам проверке;
- Сообщения длиной менее трёх символов не будут проходить классификацию спама;
- Исправлена ошибка инициализации системы, вследствие которой в ответ на вебхук для условного Ивана писалось сообщение "Руслан, Вы не можете это использовать", где имя "Руслан" могло рандомно меняться;
- Добавлен прогрев авторизационного токена Яндекса, что при деплое позволит сразу закэшировать его результат. До этого первый запрос к нему длился около 5-10 секунд, т.к. системе нужно было время для шифрования данных при подготовке запроса;
- Теперь для администраторов и "обычных" пользователей бот будет показывать разные наборы команд, в т.ч. на разных языках (пока что доступны русский и английский, но кнопки могут иметь прежний вид, т.к. функционал тестируется);
- Улучшили работу с колбэк функциями. Telegram не позволяет передавать данные длиной свыше 60 байт, вследствие чего для некоторых методов колбэки не срабатывали, т.к. совокупность идентификаторов чата, сообщений, пользователя и названия методов превышала допустимый объём. Теперь такого не будет;
- Исправлена ошибка при обработке плейсхолдера с частью отсутствующих данных;
- Исправлена ошибка определения идентификатора сообщения при вызове колбэков.
Далее в очереди новый модуль "Доверенные пользователи", переработка системы приветствий и команда проверки настроек чата 👷♂️
@KvedeBot | Чат поддержки: @KvedeSupport
Forwarded from Kvede Новости
@KvedeBot - Ваш надёжный помощник в борьбе со спамом
Хотите избавиться от спама в вашей группе или канале в Telegram? Тогда наш @KvedeBot может стать вашим надёжным помощником! Он автоматически удаляет спам и блокирует нежелательных участников, чтобы вы могли сосредоточиться на общении с друзьями и коллегами. Просто добавьте бота в свою группу или канал, назначьте его администратором и наслаждайтесь чистым и безопасным общением в Telegram!
Бот находится в стадии beta разработки и абсолютно бесплатен для использования.
@KvedeBot | Чат поддержки @KvedeSupport
Хотите избавиться от спама в вашей группе или канале в Telegram? Тогда наш @KvedeBot может стать вашим надёжным помощником! Он автоматически удаляет спам и блокирует нежелательных участников, чтобы вы могли сосредоточиться на общении с друзьями и коллегами. Просто добавьте бота в свою группу или канал, назначьте его администратором и наслаждайтесь чистым и безопасным общением в Telegram!
Бот находится в стадии beta разработки и абсолютно бесплатен для использования.
@KvedeBot | Чат поддержки @KvedeSupport
❤🔥1❤1👍1
❤3
Forwarded from Kvede Новости
📣 Встречайте обновление 0.16 beta!
Мы сделали наш продукт ещё лучше, чтобы управление группами и борьба со спамом были максимально эффективными.
Что нового?
- Отслеживание новых участников. Больше не упустите ни одного пользователя! 🥳
- Проверка настроек чата. Удобная команда
- Защита от блокировок. Спамеры больше не помешают в личных группах и избранных чатах. 🚫
- Исправление ошибок. Теперь сообщения отображаются корректно, даже если они отправлены от имени публичного канала.
И конечно же, мы внедрили несколько незаметных на первый взгляд улучшений, которые приносят большую пользу. 😎
Не упустите возможность попробовать новое обновление! Установите его прямо сейчас и убедитесь в эффективности изменений. 🚀
Мы сделали наш продукт ещё лучше, чтобы управление группами и борьба со спамом были максимально эффективными.
Что нового?
- Отслеживание новых участников. Больше не упустите ни одного пользователя! 🥳
- Проверка настроек чата. Удобная команда
/check всегда под рукой. - Защита от блокировок. Спамеры больше не помешают в личных группах и избранных чатах. 🚫
- Исправление ошибок. Теперь сообщения отображаются корректно, даже если они отправлены от имени публичного канала.
И конечно же, мы внедрили несколько незаметных на первый взгляд улучшений, которые приносят большую пользу. 😎
Не упустите возможность попробовать новое обновление! Установите его прямо сейчас и убедитесь в эффективности изменений. 🚀
5
Новая версия Laravel 11.32 принесла небольшой сюрприз тем, кто проверяет факт инициализации классов через хелпер
На первом скриншоте отображено поведение на версии 11.31 и ниже (верхний блок) и 11.32 (нижний блок).
На втором скриншоте отображено решение проблемы, во всяком случае для тестов.
app()->resolved().На первом скриншоте отображено поведение на версии 11.31 и ниже (верхний блок) и 11.32 (нижний блок).
На втором скриншоте отображено решение проблемы, во всяком случае для тестов.
Быстрое обновление данных в снапшот-тестировании
При изменении данных в снапшотах, официальная документация PEST рекомендует вызывать консольную команду
Работает она достаточно просто: удаляет содержимое папки
К сожалению, параметр
Для упрощения взаимодействия можно использовать скрипты композера:
Теперь при вызове команды
Разница в цифрах:
Пользуйтесь 😎
При изменении данных в снапшотах, официальная документация PEST рекомендует вызывать консольную команду
vendor/bin/pest --update-snapshots.Работает она достаточно просто: удаляет содержимое папки
tests/.pest и запускает тесты в "обычном" режиме и принцип работы самих тестов не менее прост: если файлов нет, они будут созданы, иначе результат выполнения будет сверяться с тем, что существует в файлах.К сожалению, параметр
--update-snapshots не работает при запуске параллельного тестирования, но есть один лайфхак - нужно всего лишь удалить вышеупомянутую папку и тогда тесты будут создавать новый дамп.Для упрощения взаимодействия можно использовать скрипты композера:
{
"scripts": {
"test:unit": [
"Composer\\Config::disableProcessTimeout",
"@php artisan test --parallel --recreate-databases --drop-databases"
],
"test:update": [
"rm -rf tests/.pest",
"@test:unit"
]
}
}Теперь при вызове команды
composer test:unit будут запущены параллельные тесты для проверки, а при вызове composer test:update будут обновлены снапшоты.Разница в цифрах:
$ composer test:update
> rm -rf tests/.pest
> @php artisan test --parallel --recreate-databases --drop-databases
...<some>...
Tests: 517 passed (2775 assertions)
Duration: 57.83s
Parallel: 16 processes
$ php artisan --compact --update-shapshots
...<some>...
Tests: 517 passed (2775 assertions)
Duration: 223.81s
Пользуйтесь 😎
🔥1
Не знаю как так получилось, но сегодня RoadRunner приказал долго жить...
В рамках одной из задач был задеплоен код следующего содержания (упрощён):
При деплое также стоял на его триггер и в консоли вывело ошибку:
И всё. Даже убрав этот участок кода, перезапустив RoadRunner с Laravel Octane и даже перезапустив сам веб-сервер, RR отказывается запускаться постоянно дополняя лог текстом:
Больше в лог ничего не пишет, но и эти надписи пишет при каждом запросе к веб-сайту.
При всём этом:
Решение, пока что, не найдено.
В рамках одной из задач был задеплоен код следующего содержания (упрощён):
try
{
// какое-то действие
return $result;
} catch (Throwable $e) {
return report(
fn () => new CustomException($e, $chat, $user, $module),
fn () => null
);
}
При деплое также стоял на его триггер и в консоли вывело ошибку:
PHP Fatal error: Maximum call stack size of 8339456 bytes
(zend.max_allowed_stack_size - zend.reserved_stack_size) reached during compilation.
Try splitting expression in .../vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 1
И всё. Даже убрав этот участок кода, перезапустив RoadRunner с Laravel Octane и даже перезапустив сам веб-сервер, RR отказывается запускаться постоянно дополняя лог текстом:
worker stopped, and will be restarted
worker stopped, and will be restarted
Больше в лог ничего не пишет, но и эти надписи пишет при каждом запросе к веб-сайту.
При всём этом:
$ art octane:status
INFO Octane server is running.
Решение, пока что, не найдено.
Проблема найдена и устранена...
Вот что значит не брать во внимание мелочи...
...и деплоить не критические изменения в час ночи...🤦🤦🤦
В дополнение, эти изменения были внесены задолго до того злосчастного деплоя. На сервере используется кэширование конфигураций и в какой-то момент почему-то подумал что так будет лучше - зашёл, обновил да и забыл... А при деплое, разумеется, и не вспомнил даже... Причину нашёл когда перебирал все логи, поднимал все выполненные за последние сутки задачи, вспоминая что делал, и только так удалось обнаружить первоисточник.
# .env
# ❌
LOG_CHANNEL=stack
LOG_STACK=stack
# ✅
LOG_CHANNEL=stack
LOG_STACK=single
Вот что значит не брать во внимание мелочи...
...и деплоить не критические изменения в час ночи...🤦🤦🤦
В дополнение, эти изменения были внесены задолго до того злосчастного деплоя. На сервере используется кэширование конфигураций и в какой-то момент почему-то подумал что так будет лучше - зашёл, обновил да и забыл... А при деплое, разумеется, и не вспомнил даже... Причину нашёл когда перебирал все логи, поднимал все выполненные за последние сутки задачи, вспоминая что делал, и только так удалось обнаружить первоисточник.
🤯6👍2
Завтра состоится релиз PHP 8.4
В нём нас ожидают:
- Хуки свойств
- Асимметричная область видимости свойств
- Атрибут
- Новые возможности ext-dom и поддержка HTML5
- Новые функции
- SQL-парсеры, специфичные для драйверов PDO
-
И немного ещё 🎉
https://www.php.net/releases/8.4/ru.php
В нём нас ожидают:
- Хуки свойств
- Асимметричная область видимости свойств
- Атрибут
#[\Deprecated]- Новые возможности ext-dom и поддержка HTML5
- Новые функции
array_*()- SQL-парсеры, специфичные для драйверов PDO
-
new MyClass()->method() без скобокИ немного ещё 🎉
https://www.php.net/releases/8.4/ru.php
www.php.net
PHP 8.4 Released
PHP 8.4 — большое обновление языка PHP. Оно содержит множество новых возможностей, таких как хуки свойств, асимметричная область видимости свойств, обновление DOM API, улучшена производительность, исправлены ошибки и многое другое.
🔥5
Forwarded from Kvede Новости
Классификаторы на базе YandexGPT в публичном доступе
С одной стороны это отличная новость, ведь Яндекс завершает этап тестирования классификаторов выводя их в продакшен 9-го декабря.
А с другой, теперь все запросы к нему будут платными. До этого момента у них были другие правила тарификации, но пробный период позволил им оценить стоимость и теперь за каждый запрос длиной до 250 токенов к нему они будут взимать по 15 копеек.
Учитывая что некоторые спам-сообщения достигают объёма в 300-400 токенов, стоимость их проверки будет варьироваться от 15 до 45 копеек, в среднем. Также стоит учесть, что классификатор проверяет абсолютно все сообщения на факт спама.
Мы уже приняли меры для сокращения данных затрат - если текст раннее был проверен классификатором, он не будет повторно проверяться.
По нашей статистике, с момента первого релиза @KvedeBot 27-го октября, было:
- подключено 28 чатов
- опубликовано 3'120 сообщений за октябрь (~624 в день)
- опубликовано 32'689 сообщений за ноябрь (~1089 в день)
- опубликовано 4'088 сообщений за декабрь (~1362 в день)
Да, с 1 по 3 декабря уже 4 тысячи сообщений было опубликовано.
Таким образом, можно предположить средний ежемесячный счёт в 5'500 рублей грубых подсчётов с учётом минимальной статистики использования.
Тем не менее, @KvedeBot продолжит работать в бесплатном режиме для всех подключенных чатов за наш счёт.
Поддержать нашу работу Вы можете как на Boosty, так и на YooMoney.
Также уведомляем о том, что при превышении объективных лимитов по списанию денежных средств за проверки запросов, мы будем вынуждены ограничивать запросы к классификатору.
С одной стороны это отличная новость, ведь Яндекс завершает этап тестирования классификаторов выводя их в продакшен 9-го декабря.
А с другой, теперь все запросы к нему будут платными. До этого момента у них были другие правила тарификации, но пробный период позволил им оценить стоимость и теперь за каждый запрос длиной до 250 токенов к нему они будут взимать по 15 копеек.
Учитывая что некоторые спам-сообщения достигают объёма в 300-400 токенов, стоимость их проверки будет варьироваться от 15 до 45 копеек, в среднем. Также стоит учесть, что классификатор проверяет абсолютно все сообщения на факт спама.
Мы уже приняли меры для сокращения данных затрат - если текст раннее был проверен классификатором, он не будет повторно проверяться.
По нашей статистике, с момента первого релиза @KvedeBot 27-го октября, было:
- подключено 28 чатов
- опубликовано 3'120 сообщений за октябрь (~624 в день)
- опубликовано 32'689 сообщений за ноябрь (~1089 в день)
- опубликовано 4'088 сообщений за декабрь (~1362 в день)
Да, с 1 по 3 декабря уже 4 тысячи сообщений было опубликовано.
Таким образом, можно предположить средний ежемесячный счёт в 5'500 рублей грубых подсчётов с учётом минимальной статистики использования.
Тем не менее, @KvedeBot продолжит работать в бесплатном режиме для всех подключенных чатов за наш счёт.
Поддержать нашу работу Вы можете как на Boosty, так и на YooMoney.
Также уведомляем о том, что при превышении объективных лимитов по списанию денежных средств за проверки запросов, мы будем вынуждены ограничивать запросы к классификатору.
boosty.to
The Dragon Code - Creating a new one package...
Hi there 👋 The Dragon Code team develops useful user-friendly and opt-in solutions for PHP developers. You can find a lot of things in our repository .
👍1
WSL не хочет работать с репозиторием при подключенном VPN, в том числе корпоративным? Решение есть!
Если Вы работаете под управлением ОС Windows с подключенным VPN и хотите взаимодействовать с git репозиторями из WSL, но постоянно получаете ошибку подключения, решение очень простое:
Перейдите внутрь WSL выполнив консольную команду
После этого выйдите из wsl и ребутните его консольной командой
Последовательность команд:
Если Вы работаете под управлением ОС Windows с подключенным VPN и хотите взаимодействовать с git репозиторями из WSL, но постоянно получаете ошибку подключения, решение очень простое:
Перейдите внутрь WSL выполнив консольную команду
wsl, далее откройте файл /etc/wsl.conf и добавьте в него параметр:[network]
generateHosts = false
После этого выйдите из wsl и ребутните его консольной командой
wsl --shutdown. Всё. После этого сеть заработает.Последовательность команд:
wsl
sudo nano /etc/wsl.conf
# insert params
# ctrl + x
# y
# enter
exit
wsl --shutdown
🔥4
Хотите запускать проекты внутри WSL без использования JetBrains Gateway? Легко!
Есть два варианта держать проекты внутри подсистемы Linux работая с ними "снаружи".
Вариант 1: при создании проекта, например, в JetBrains PhpStorm, выбрать пункт создания проекта в WSL. В этом случае Шторм зайдёт внутрь подсистемы и начнёт скачивать выбранную Вами IDE, после чего при помощи JetBrains Gateway будет с ней взаимодействовать.
Но есть вариант ещё проще:
Вариант 2: все файлы подсистемы доступны из Windows по пути
Есть два варианта держать проекты внутри подсистемы Linux работая с ними "снаружи".
Вариант 1: при создании проекта, например, в JetBrains PhpStorm, выбрать пункт создания проекта в WSL. В этом случае Шторм зайдёт внутрь подсистемы и начнёт скачивать выбранную Вами IDE, после чего при помощи JetBrains Gateway будет с ней взаимодействовать.
Но есть вариант ещё проще:
Вариант 2: все файлы подсистемы доступны из Windows по пути
\\wsl$. Да, просто открываем и всё. Дальше останется выбрать путь при создании проекта. Просто работаем с папкой как с обычной папкой. В моём случае проекты лежат по пути \\wsl.localhost\Ubuntu\home\helldar\projects\🤔3🔥2👍1
Pretty Routes 3.5.0 released
Changed
- feat: allow customization of styles by publishing vendor files
https://github.com/TheDragonCode/pretty-routes/releases/tag/3.5.0
#pretty_routes #pretty #routes
Changed
- feat: allow customization of styles by publishing vendor files
https://github.com/TheDragonCode/pretty-routes/releases/tag/3.5.0
#pretty_routes #pretty #routes
GitHub
Release 3.5.0 · TheDragonCode/pretty-routes
Changed
feat: allow customization of styles by publishing vendor files by @uwla in #77
feat: allow customization of styles by publishing vendor files by @uwla in #77
🔥2
Laravel Data Dumper 1.1.1 released
What's Changed
- The code style has been fixed
- Removed tests for minor versions of MySQL 8
- Added the ability to specify links to model classes
- Fixed tag
https://github.com/TheDragonCode/laravel-data-dumper/releases/tag/1.1.1
#laravel_data_dumper #data #dumper #laravel
What's Changed
- The code style has been fixed
- Removed tests for minor versions of MySQL 8
- Added the ability to specify links to model classes
- Fixed tag
https://github.com/TheDragonCode/laravel-data-dumper/releases/tag/1.1.1
#laravel_data_dumper #data #dumper #laravel
GitHub
Release 1.1.1 · TheDragonCode/laravel-data-dumper
Fixed
Fixed composer tag in #4
Fixed composer tag in #4
Laravel Data Dumper 1.2.0 released
Added
- Added testing of PHP 7.4 and PostgreSQL 17
- Added the ability to delete files
Changed
- Update branch
https://github.com/TheDragonCode/laravel-data-dumper/releases/tag/1.2.0
#laravel_data_dumper #data #dumper #laravel
Added
- Added testing of PHP 7.4 and PostgreSQL 17
- Added the ability to delete files
Changed
- Update branch
https://github.com/TheDragonCode/laravel-data-dumper/releases/tag/1.2.0
#laravel_data_dumper #data #dumper #laravel
GitHub
Release 1.2.0 · TheDragonCode/laravel-data-dumper
Added
Added testing of PHP 7.4 and PostgreSQL 17 by @andrey-helldar in #6
Added the ability to delete files by @andrey-helldar in #7
Changed
Update branch by @andrey-helldar in #5
Added testing of PHP 7.4 and PostgreSQL 17 by @andrey-helldar in #6
Added the ability to delete files by @andrey-helldar in #7
Changed
Update branch by @andrey-helldar in #5
Laravel Data Dumper 1.2.1 released
Fixed
- Fixed bug deleting files without extension
https://github.com/TheDragonCode/laravel-data-dumper/releases/tag/1.2.1
#laravel_data_dumper #data #dumper #laravel
Fixed
- Fixed bug deleting files without extension
https://github.com/TheDragonCode/laravel-data-dumper/releases/tag/1.2.1
#laravel_data_dumper #data #dumper #laravel
GitHub
Release 1.2.1 · TheDragonCode/laravel-data-dumper
Fixed
Fixed bug deleting files without extension by @andrey-helldar in #8
Fixed bug deleting files without extension by @andrey-helldar in #8
Laravel Data Dumper 1.2.2 released
Fixed
- Fixed file search error
https://github.com/TheDragonCode/laravel-data-dumper/releases/tag/1.2.2
#laravel_data_dumper #data #dumper #laravel
Fixed
- Fixed file search error
https://github.com/TheDragonCode/laravel-data-dumper/releases/tag/1.2.2
#laravel_data_dumper #data #dumper #laravel
GitHub
Release 1.2.2 · TheDragonCode/laravel-data-dumper
Fixed
Fixed file search error by @andrey-helldar in #9
Fixed file search error by @andrey-helldar in #9