Наша библиотека вновь обновлена, посему продолжим учиться создавать Телеграм-ботов. В сегодняшней статье поговорим о реализации системы мута пользователей.
Для понимания принципа работы нашей задумки — пройдёмся по изменениям в библиотеке и её новым возможностям. Изменения коснулись по сути только класса Bot. Итак, начинаем разбирать:
- Метод deleteMessage( $chat_id, $message_id ) — удаляет указанное сообщение
- $chat_id — айди чата
- $message_id — айди сообщения
public function deleteMessage( int $chat_id, int $message_id ) : void < $this->request( ‘deleteMessage’, [ ‘chat_id’ => $chat_id, ‘message_id’ => $message_id ] ); >
- Метод memberStatus( $chat_id, $user_id ) — возвращает роль пользователя в чате (может вернуть следующие значения: creator — создатель, left — админ, false — пользователь, null — пользователя нет в чате)
- $chat_id — айди чата
- $user_id — айди пользователя
public function memberStatus( int $chat_id, int $user_id ) : string|false|null < $member_info = $this->request( ‘getChatMember’, [ ‘chat_id’ => $chat_id, ‘user_id’ => $user_id ] ); return ( $member_info[‘result’] ? ( $member_info[‘result’][‘status’] == ‘creator’ ) ? ‘creator’ : ( $member_info[‘result’][‘status’] == ‘left’ ? ‘left’ : false ) : null ); >
- Метод mute( $chat_id, $user_id, $unit, $value, $reason ) — мутит пользователя в чате на определённый срок, либо навсегда при неуказании времени
- $chat_id — айди чата
- $user_id — айди пользователя
- $unit — единица измерения времени — дни, часы, минуты, секунды (необязательный параметр)
- $value — срок мута в указанных единицах измерения времени (необязательный параметр)
- $reason — причина (необязательный параметр)
public function mute( int $chat_id, int $user_id, string $unit = », int $value = 0, string $reason = » ) : void < [ $arr, $mutes_file ] = $this->blacklistCache( ‘mutes’ ); $arr[$chat_id . ‘_’ . $user_id] = [ ‘duration’ => $this->durationCount( $unit, $value ), ‘reason’ => $reason, ]; $this->record( $arr, $mutes_file ); >
- Метод unMute( $chat_id, $user_id ) — размучивает пользователя в групповом чате
- $chat_id — айди чата
- $user_id — айди пользователя
public function unMute( int $chat_id, int $user_id ) : void < [ $arr ] = $this->blacklistCache( ‘mutes’ ); unset( $arr[$chat_id . ‘_’ . $user_id] ); >
- Метод isMuted( $chat_id, $user_id ) — проверяет, замучен ли пользователь (true — замучен, false- не замучен)
- $chat_id — айди чата
- $user_id — айди пользователя
public function isMuted( int $chat_id, int $user_id ) : bool < [ $arr ] = $this->blacklistCache( ‘mutes’ ); if ( isset( $arr[$chat_id . ‘_’ . $user_id] ) and $arr[$chat_id . ‘_’ . $user_id][‘duration’] >= time() ) return true; return false; >
- Метод blacklistCache( $type )— возвращает чёрный список пользователей (в нашем случае чёрным списком является список мутов, однако можно реализовать, к примеру, и баны)
- $type — тип чёрного списка (мы рассматриваем муты, поэтому в $type передавать будем строку ‘mutes’)
private function blacklistCache( string $type ) : array < if ( !is_dir( self::$cache_dir ) ) mkdir( self::$cache_dir ); $bans_file = self::$cache_dir . ‘/’ . $type . ‘.php’; $arr = file_exists( $bans_file ) ? require $bans_file : []; return [ $arr, $bans_file ]; >
- Метод durationCount( $unit, $value ) — высчитывает срок пребывания в чёрном списке (в муте) в зависимости от заданной единицы измерения времени (определяется по первой букве: д/d — дни, ч/h — часы, м/m — минуты, с/s- секунды)
- $unit — единица измерения времени — дни, часы, минуты, секунды
- $value — срок мута в указанных единицах измерения времени
private function durationCount( string $unit = », int $value = 0 ) : int
- Метод record( $arr ) — перекочевал из класса Storage в класс Bot. Принцип работы не изменился, добавился второй аргумент (теперь путь к файлу можно указать вручную)
- $arr — массив для записи в кэш
protected function record( array $arr, string $path ) : false|int
Теперь переходим непосредственно к написанию бота. Создаём php-файл, подключаем библиотеку, создаём экземпляр класса Bot и инициализируем необходимые перменные:
initData( $data ) ->initChatId( $chat_id ) // Инициализируем айди чата, из которого поступают боту сообщения (например, это может быть айди пользователя, написавшего боту) ->initUserId( $user_id ) // Инициализация ID пользователя ->initMessage( $message ); // Инициализируем текст сообщения, которе было отправлено боту
Google объявила об удалении неактивных аккаунтов пользователей
Компания будет высылать персональные уведомления об удалении данных владельцам аккаунтов, которые не пользовались ими более двух лет. Как отмечают эксперты, подавляющего числа пользователей это не коснется — достаточно пользоваться лишь одним из сервисов Google, чтобы аккаунт считался активным
—>
Корпорация Google будет удалять учетные записи пользователей, которые неактивны в течение двух лет. Как рассказал вице-президент компании Рут Кричели, с декабря этого года компания намерена регулярно удалять все данные неактивных пользователей из всех своих сервисов. В Google добавили, что будут высылать уведомления перед удалением данных.
Стоит ли обычным пользователям волноваться за свои данные и как избежать их удаления? Комментирует генеральный директор аналитического агентства TelecomDaily Денис Кусков:
— Компания Google, как и отечественные, «Яндекс», это некие экосистемы, которые включают массу сервисов, которыми можно пользоваться. Это и почтовые сервисы, YouTube, сервисы, связанные с картами и так далее и тому подобное. Поэтому в случае, если человек использует какой-то один сервис, то он является все равно активным пользователем. Если по всем, скажем так, срезам нет активности у человека, то, естественно, такой аккаунт считается уже не работающим и подлежит устранению. Борьба с «неживыми» пользователями нормальна для любой площадки. Говорить о том, что у нас один миллиард зарегистрированных пользователей, когда пользуются, к примеру, 100 тысяч, бессмысленно. И в данном контексте у них много учетных записей, которые просто являются нерабочим, и такая чистка мне кажется вполне логичной. Экономия там, конечно, тоже есть, конечно, не глобальная, это больше, наверное, с моей точки зрения, частота соизмерения возможностей, которые предлагают компании, и сколько реально пользуются людей. С другой стороны, конечно же, если мы берем определенный объем информации, который есть по каждой учетной записи, то, конечно же, высвобождаются места, сервера, это деньги и так далее.
— Условно, если я на YouTube посмотрю какой-то ролик раз в два года, то все в порядке?
— Пока сказать сложно, нужно ли волноваться или нет, но на сегодняшний момент, да, если вы заходите под своим собственным аккаунтом и смотрите на YouTube, конечно, такое происходит. Если уведомление пришло, надо читать, возможность обратной связи, сразу могу сказать, что, конечно же, обратная связь с Google это не самое легкое мероприятие, это все-таки не списаться с «ВКонтакте» или с «Яндексом», попробовать можно, но доля того, что это будет сделано, весьма низка.
В Google Workspace входят такие сервисы как Gmail, Google Docs, Drive, Meet, Calendar, а также YouTube и Google Photo.
Источник: www.bfm.ru
Telegram удалил адреса неактивных каналов
В середине августа мессенджер удалил все неактивные публичные адреса, привязанные к каналам. В основном это были пустые каналы без контента или такие, где в течение последнего года не было новых постов. В будущем эти адреса станут доступны для использования другими людьми. Об этом рассказал Павел Дуров в своем Telegram-канале.
«Мертвые» имена загромождали поиск в Telegram и мешали активным пользователям выбрать себе подходящий юзернейм. Основатель мессенджера сообщил, что таковых адресов было около 70% на платформе.
В Telegram планируют сделать 99% освободившихся адресов доступными другим пользователям. Правда, теперь начнут действовать ограничения по геолокации и алгоритмические, а самые ценные имена можно будет получить на аукционах.
Однако такое решение мессенджера вызвало негативную реакцию пользователей Telegram. Например, на канале Telegram Info была создана петиция о возврате отозванных адресов:
Зачастую каналы используются как личные визитные карточки, каталоги, энциклопедии и публичные архивы и не всегда нуждаются в новых постах, но на них ведут ссылки на разных сайтах.
Напомним, ранее Павел Дуров высказал мысль о создании маркетплейса юзернеймов в Telegram с использованием технологий блокчейна.
Источник: timeweb.com