Мессенджеры – неотъемлемая часть повседневной жизни многих людей. С их помощью мы общаемся с друзьями, родственниками, коллегами и даже неизвестными людьми по всему миру. Среди таких мессенджеров Telegram – один из наиболее популярных, который позволяет удобно общаться и передавать файлы.
Однако, в процессе общения в чате Telegram могут возникнуть неприятности, при которых необходимо заблокировать собеседника. Но что происходит в этом случае? Какие функции становятся недоступными, а какие остаются? Разберемся.
Существует несколько вариантов блокировки пользователя в Telegram, но в любом случае он становится недоступен для общения:
Блокировка через контекстное меню: если нажать на имя пользователя в чате и выбрать пункт «Заблокировать», то возможность обмениваться сообщениями будет прекращена.
Блокировка через профиль пользователя: блокировку можно осуществить и через профиль пользователя, нажав на три точки в правом верхнем углу и выбрав соответствующую опцию «Блокировать».
Обзор функций чата в Telegram
Создание группового чата
В Telegram можно создавать групповые чаты, таким образом, несколько человек могут общаться в одном диалоге. При создании группы можно задать ее название и добавить описание. Кроме того, можно настроить права доступа к группе для каждого участника, например, разрешить или запретить отправлять сообщения.
Пересылка сообщений
В Telegram можно пересылать сообщения из одного чата в другой. Для этого нужно нажать на нужное сообщение и выбрать опцию «Переслать». В появившемся окне нужно выбрать чат, в который хотите переслать сообщение, и его отправить.
Удаление сообщений
В Telegram можно удалять свои сообщения и сообщения других пользователей. Для удаления своего сообщения нужно нажать и удерживать на нем, выбрать опцию «Удалить» и подтвердить свое действие. Для удаления сообщения другого пользователя нужно нажать и удерживать на нем, выбрать опцию «Удалить для всех» и подтвердить свое действие. Удаленное сообщение останется видно только для вас и не будет доступно другим пользователям.
Блокировка пользователя
В Telegram можно заблокировать пользователя, чтобы он не мог отправлять вам сообщения и приглашать вас в группы. Для этого нужно зайти в профиль пользователя, нажать на три точки в правом верхнем углу и выбрать опцию «Заблокировать». После этого вы не будете получать сообщения от этого пользователя.
Поиск сообщений
В Telegram можно искать сообщения в чате. Для этого нужно нажать на лупу в правом верхнем углу, ввести ключевое слово и нажать на кнопку «Поиск». Telegram отобразит все сообщения, в которых есть искомое слово.
Как происходит блокировка в Telegram
Блокировка в Telegram может происходить двумя способами — пользователь может заблокировать другого участника чата или администратор чата может заблокировать участника.
Если пользователь заблокировал другого участника, то этот участник больше не сможет отправлять сообщения пользователю, который его заблокировал.
Как заблокировать пользователя в Телеграмме? / (ПК и Моб. устройства)
Если администратор блокирует участника чата, то этот участник будет исключен из чата и больше не сможет отправлять сообщения или просматривать сообщения в чате.
В обоих случаях участники не будут уведомлены о блокировке, но заблокированные пользователи смогут понять, что они были заблокированы, когда увидят, что больше не могут отправлять сообщения в чат.
Что увидит заблокированный пользователь в чате Telegram?
Не сможет отправлять сообщения:
Когда пользователь заблокирован, он не сможет отправлять сообщения в чат. Он также не сможет видеть, читает ли его сообщения другой пользователь, особенно если они защищены паролем или личной информацией.
Не сможет увидеть сообщение:
Если другой пользователь отправит сообщение заблокированному пользователю, то оно будет находиться на экране пользователя, который его отправил, но заблокированный пользователь не увидит его. Он также не увидит, что была отправлена команда /kickme, так как он не может отправлять сообщения.
Может увидеть старые сообщения:
Если заблокированный пользователь уже видел сообщение, написанное ранее, то он сможет его прочитать в любое время. Кроме того, если сообщение было отправлено до того, как другой пользователь заблокировал его страницу в Telegram, заблокированный пользователь сможет прочитать его на экране другого пользователя.
Может уйти из чата:
Если заблокированный пользователь находится в групповом чате, он может уйти из чата, чтобы больше не получать уведомлений и не видеть сообщения из этого чата. Если он решил вернуться в группу, ему нужно запросить новое приглашение или написать личное сообщение администратору группы.
Как изменяются оповещения в чате, если заблокировали собеседника?
Если один из участников чата в Telegram был заблокирован, то операции связанные с его активностью в чате будут ограничены.
В первую очередь это касается оповещений о новых сообщениях. Если заблокированный пользователь отправляет сообщение в чат, его собеседники будут получать уведомления о новом сообщении, но не увидят его текст. Вместо этого они увидят пробелы в месте, где должен был быть текст сообщения.
Кроме того, заблокированный пользователь не сможет получать уведомления о новых сообщениях в этом чате. Его иконка пользователя также не появится в списке активных участников чата.
Однако заблокированный пользователь все еще может отправлять сообщения в этом чате, но они будут просто не видны другим участникам. Также он сможет прочитать сообщения, которые были отправлены в чат до его блокировки.
Возможные действия после блокировки собеседника в Telegram
1. Удаление переписки
После блокировки собеседника в Telegram, можно удалить весь переписку с ним. Для этого нужно нажать на его профиль в списке чатов, зайти в настройки и выбрать «Удалить переписку». В результате, все сообщения и медиафайлы, отправленные в этом диалоге, будут удалены.
2. Изменение настроек приватности
Вы можете изменить настройки приватности своего аккаунта в Telegram после блокировки собеседника. Например, можно скрыть свой номер телефона или ограничить доступ к своему профилю и статусу «онлайн» только для друзей. Для этого нужно зайти в меню «Настройки» — «Конфиденциальность».
3. Создание нового чата с другими участниками
Если Вы хотите продолжать общаться в Telegram, но были вынуждены заблокировать собеседника, то можно создать новый чат с другими участниками. Например, можно создать групповой чат с друзьями или коллегами, чтобы обсуждать любые вопросы и деликатные темы.
4. Остановка нежелательных сообщений и уведомлений
После блокировки собеседника в Telegram, Вы перестанете получать нежелательные сообщения и уведомления от него. Также Вы сможете избежать общения с нежелательными или неприятных людьми, блокируя их в любое удобное время.
5. Разблокировка собеседника
Если Вы передумаете и захотите разблокировать собеседника в Telegram, то это можно сделать в любой момент. Для этого нужно зайти в его профиль, нажать «Разблокировать» и подтвердить свой выбор. После этого Вы сможете начать общаться с ним снова.
Как разблокировать собеседника в Telegram
Если вы заблокировали кого-то в приложении Telegram, но позже пожалели об этом и хотите разблокировать этого пользователя, сделать это достаточно просто.
Для начала, откройте список людей, которых вы заблокировали. Для этого, зайдите в настройки чата и выберите «Заблокированные пользователи».
Затем, найдите в списке того, кого вы хотите разблокировать, и нажмите на его имя. Откроется окно с информацией о пользователе и кнопками «Разблокировать» и «Сообщить о спаме». Выберите «Разблокировать».
После этого, вы сможете видеть сообщения этого пользователя и он сможет отправлять вам сообщения. Однако, если вы хотите, чтобы он снова стал видеть ваши сообщения и иметь доступ к вашему профилю, вам нужно добавить его в список контактов.
- Откройте чат с этим пользователем.
- Нажмите на его имя вверху экрана.
- Выберите «Добавить в контакты».
Теперь этот пользователь вернется в ваш список контактов, и вы сможете общаться с ним, как раньше.
Источник: yasoldat.ru
Как реализовать игнор заблокированных пользователей в группах Telegram?
UPD: благодаря помощи Tkachov эта статья всё-таки превратилась из просьбы о помощи в работающую инструкцию. В комментариях он дал работающий код для создания игнора в десктопном клиенте Телеграм. Я на всякий случай расположу объяснение в конце статьи. Далее статья продолжается в том же виде, в каком была написана.
UPD: Сделал «сайт» для распространения готового приложения sites.google.com/view/ignoram
Я хотел бы попросить помощи у сообщества, потому что все собственные возможности я полностью исчерпал.
Можно было бы задать вопрос на сервисе Q кроме того серый цвет на тёмных темах отлично читается.
В чат к разработчику, где я сидел какое-то время, регулярно приходят люди и просят сделать «настоящий игнор». Раньше он просто отказывался; в последние же полгода и вовсе забросил свой проект, потому что у него «нет времени». Что ж, это обычное дело для бесплатных открытых проектов.
Я упоминаю об этом проекте по двум причинам.
- Во-первых, он рекламируется именно как «клиент с функцией игнора» и его советуют люди, которые читают только описание, не зная, как на самом деле там этот «игнор» реализован. Как было сказано выше, функция эта не работает.
- Во-вторых, он является живым подтверждением того, что в клиенте Телеграма можно определить сообщение заблокированного пользователя и изменить его. То есть на самом деле игнор на стороне клиента возможен.
Лучше всего передаёт мои чувства комментарий в похожей теме на Реддите четырёхлетней давности:
If I just don’t want to read anything some user writes I should be able to do so… it’s like, one of the very basic features of every communication protocols EVER!
You could do it in the 90s with emails and newsgroups!
Причём всюду, где идёт речь о причинах отсутствия игнора, повторяются одни и те же вещи:
— Вы будете видеть не все сообщения и из-за этого не будете понимать что происходит в чате.
— Вы будете дублировать сообщения.
— Нарушится функциональность системы «ответов»
И, опять же, я использую цитату, просто чтобы показать вам — это не мои личные мысли, это наша общая позиция, людей, которые хотят ввести эту функцию:
Вот просто пример из жизни, касающийся дублирования — я сижу в нескольких телеграм-чатах и в течение дня обязательно несколько пользователей бросают в чат одну и ту же новость / смешной скриншот / свежий популярный мем. Несмотря на то, что до них это уже было. Несмотря на то, что никакого игнора не существует — они всё равно просто не читают историю чата и дублируют сообщения.
Про то, как люди не умеют пользоваться поиском на форумах, и многократно повторяют одинаковые вопросы — я даже не буду упоминать, наверняка большинство читателей с этим сталкивались. Опять же, безо всякого игнора эта проблема уже существует. И игнор её не усугубит.
Так почему же на самом деле эта функция не существует?
Ну, конспирологическая версия гласит, что основная цель Телеграма — это сбор персональных данных и графов взаимодействия пользователей. В этом смысле каждая телеграм-группа позволяет зафиксировать типовую малую группу, которую пользователь как минимум может выдержать, и которая может выдержать его. В противном случае либо его выкидывают из группы, либо он уходит сам. Введение игнора нарушит чистоту эксперимента.
Версия маркетинговая немного проще.
Когда в 1995 году Халед Мардам-Бей создал mIRC — он написал программу для людей. В смысле, для самостоятельных людей, которые знают, что они хотят, выбирают то, что считают правильным, и несут ответственность за последствия своих действий. С одной стороны это вызывало проблемы, например, со скриптовыми уязвимостями — запускаешь строку с командами и всё, ты взломан. С другой стороны — это был мессенджер, которым пользовались взрослые и ответственные люди. И они знали, как существовать в чате с игнором, где часть сообщений просто не видна.
Когда в 2013 году Паша Дуров сделал Telegram — он сделал программу «для домохозяек». Для тупого массового пользователя, которому нужен добрый опекун. Отсюда вся эта регистрация по номеру телефона, рассылка сообщений всем по телефонной книге, флажки и запреты со всех сторон. Ведь они «нажмут что-нибудь и всё исчезнет!». А потом будут писать жалобы в поддержку!
Отсюда и такие глупые оправдания — «ведь если вы включите игнор, то вы не увидите сообщений других людей». Когда делаешь массовый продукт — ты вынужден ограничивать любую функциональность. Продукт для дурака должен иметь защиту от дурака.
Тут появляется коронный аргумент, который всегда приводят в конце: «не нравится — так не пользуйся». Я не буду объяснять, что с ним не так, это этический вопрос формата «почему нельзя есть людей» — кто его задаёт, тому бессмысленно объяснять.
Но в случае с Телеграмом этот аргумент немножко видоизменяют: «не нравится — так сделай как тебе нравится, это же open source».
Попытка решения
Устав от многолетних поисков, я решил действительно попытаться что-то изменить самостоятельно. Мне показалось хорошей идеей сделать собственную сборку Телеграма. Не в смысле общедоступную сборку, с сайтом и размещением в магазине приложений, а просто собрать приложение для себя и самому им пользоваться.
В этом смысле меня бы не беспокоили ни возможные «тормоза» от скрытия сообщений, ни «проблема потери контекста в беседе», ни проблема «как же админить чат если не видишь части сообщений». Это всё меня не интересовало.
Мне казалось очевидным, что достаточно добавить строку вида:
if message.author.isBlocked == true then message.value= ‘The message from blocked user’
Извините за псевдокод, но мне кажется, что идею он передаёт верно. Я просто хотел отловить любое сообщение на самом раннем этапе, когда оно только приходит с сервера, и заменять его на строку о блокировке. Таким образом решалась бы проблема и с картинками / стикерами / гифками — они бы тоже заменялись на такое сообщение и их не было бы видно. И даже если бы кто-то отвечал на такое сообщение или цитировал его — всё равно оно бы заменялось.
Но с чего начать?
Поспрашивав у знакомых программистов, я выяснил, что есть два пути. Первый — это использовать родной клиент Телеграм, и второй — использовать сторонний клиент, который написан с помощью более новой библиотеки TDLib. Я отправился на упомянутый в начале статьи сервис вопросов и задал там вопрос. Как видите, очереди из отвечающих не выстроилось. Единственная ниточка вела к мессенджеру Котатограм.
Я пообщался с создателем этого мессенджера, и он дал мне два полезных совета.
Во-первых, он сказал, что сообщения в нативном клиенте выводятся обычным способом, а не генерируются (я, впрочем, и так это подозревал на примере Telegreat) — поэтому можно в качестве исходника использовать родной клиент.
Во-вторых, он рассказал, где искать сам вывод сообщений — в блоке history_message.
К сожалению, у него, как и у создателя Telegreat, тоже не было свободного времени, чтобы самостоятельно добавлять функцию игнора, что в свой клиент, что для меня.
Как я действовал дальше? Инструкция по сборке существует на Гитхабе, но она не отражает всех этапов работы. Я их тут опишу, на случай, если в статью придёт кто-то ещё, с программированием не особенно знакомый, но желающий сделать для себя такой же клиент с игнором:
- Я решил всё делать на виртуальной машине. Для этого я установил себе Oracle VM Virtual Box и скачал с официального сайта Microsoft их официальную виртуальную машину с предустановленными Windows 10 и Visual Studio 2019
- На втором этапе нужно расширить предустановленный Visual Studio. Как оказалось, по умолчанию в него не входит C++, поэтому нужно запустить Visual Studio Installer из главного меню. Нажать там кнопочку Modify и выбрать секцию с C++, он её докачает и установит. Ну и на всякий случай я ещё скачал и установил QT отсюда.
- Кроме того нужно установить Git c git-scm.com
- Теперь можно начать выполнять инструкцию с Гитхаба. Но будьте внимательны!
Первая остановка происходит после строки:
gyp —no-circular-check breakpad_client.gyp —format=ninja
Вторая — после четвёртой строки с конца, длинной инструкции конфигурирования QT:
configure -prefix «%LibrariesPath%Qt-5.12.5» .
Как мне подсказали знакомые, это связано с тем, что в ходе выполнения этих команд запускаются другие bat-файлы, в которых уже прописан прямой выход из процесса. В результате дальше нужно либо просто копировать и вставлять команды, либо разбить инструкцию на 3 bat файла (но в этом случае нужно не забыть, что команды следует продолжать выполнять из той же директории, в которой процесс остановился!).
Получение собственных api_id тоже описано на Гитхабе.
В конечном счёте я скомпилировал вполне рабочий exe-файл Телеграма. Всего сборка занимает около трёх часов (не считая предварительных скачиваний и установок), возможно это время зависит от мощности компьютера.
Помощь зала (и найденное решение)
И вот здесь наконец-то появляется моя просьба к хабрасообществу. Как читатели уже догадались, я не знаю, что и как менять. Мне кажется, что я нашёл место, где выводится сообщение, но я не уверен, потому что я же не знаю C++. Не говоря уж о том, что (возможно) правильно было бы что-то менять не в history_message, а где-нибудь в history_item.
«Что-то на эльфийском, не могу прочесть»
Может быть кто-нибудь здесь уже сталкивался с кодом Telegram или просто имеет очень развитый скилл и сможет написать ту самую строку с заменой любого сообщения от заблокированного пользователя, а также сказать, куда её разместить в этом коде.
Я предполагаю, что сам механизм вывода у Телеграма не будет внезапно изменяться. Так что при обновлении клиента я буду просто скачивать с гитхаба обновлённый вариант и снова добавлять эту строку с блокировкой перед компиляцией.
UPD: Как я упомянул в начале статьи, в комментариях появился работающий вариант кода. Привожу его и прямо в статье.
Первая часть кода заменяет текст на другое сообщение. Это необходимо, т.к. этот текст виден в цитатах, если другой пользователь отвечает заблокированному, или слева в окошке чата, где показываются последние сообщения в групповых чатах.
В файле History_Message.cpp мы находим функцию как раз в том самом месте, что на скриншоте выше:
HistoryMessage::HistoryMessage( not_null history, const MTPDmessage setMedia(*media); >setText(< TextUtilities::Clean(qs(data.vmessage())), Api::EntitiesFromMTP(data.ventities().value_or_empty()) >);
//UserId from = data.vfrom_id().value_or_empty(); // Это почему-то перестало работать, поэтому пришлось добавить другую строку UserId from = data.vfrom_id() ? peerFromMTP(*data.vfrom_id()) : PeerId(0); PeerData* pd = from ? history->owner().user(from) : history->peer; if (pd->isUser() pd->asUser()->isBlocked()) < setText(< TextUtilities::Clean(qs(«The message from blocked user»)), Api::EntitiesFromMTP(data.ventities().value_or_empty()) >); > else < // оригинальные строки 442-448: if (const auto media = data.vmedia()) < setMedia(*media); >setText(< TextUtilities::Clean(qs(data.vmessage())), Api::EntitiesFromMTP(data.ventities().value_or_empty()) >); >
Если использовать только этот код — старые сообщения заблокированных пользователей будут видны, но новые уже нет.
Поэтому вторая часть решения, упомянутая в этом комментарии
В файл history_view_message.cpp добавляется следующий код:
PeerData* pd = item->from(); if (pd->isUser() pd->asUser()->isBlocked()) return;
UPD: в новой версии компилятор ругается на пустой return, поэтому я добавил вывод QSize(0,0) В другом случае можно наоборот убрать его.
PeerData* pd = item->from(); if (pd->isUser() pd->asUser()->isBlocked()) return QSize(0,0);
Сразу после объявления переменной item в функциях
QSize Message::performCountOptimalSize()
и
void Message::draw(
Painter https://habr.com/ru/articles/487512/» target=»_blank»]habr.com[/mask_link]
Как заблокировать в телеграмме человека?
Вот что я сделал, чтобы заблокировать надоедливого человека в Телеграмме: Откройте чат с человеком, которого хотите заблокировать. Нажмите на иконку трех точек в правом верхнем углу экрана. Выбери «Заблокировать». Подтвердите свое желание заблокировать этого пользователя. Готово, ребята! Человек теперь заблокирован и больше не может общаться с вами.
Это правда, что заблокированный человек не сможет видеть ваши сообщения, но он сможет узнать, что вы его заблокировали. Так что не злоупотребляйте этой функцией и используйте ее только при необходимости. Но если вам особо хочется избежать назойливых людей, то могу посоветовать создать закрытый канал или чат. Тогда только вы и приглашенные вами люди смогут общаться в этом чате. Так что давайте ограничивать надоедливые беседы в Телеграмме и сохранять свою душевную гармонию!
Напиши ответ и заработай
Как создать канал в телеграмме с комментариями?
Спрашивает Ангелина
Создать канал в Telegram с возможностью комментариев можно с помощью ботов или сторонних сервисов. Вот пошаговая инструкция: Создайте канал: Откройте приложение Telegram. Нажмите на иконку «Три полоски» в верхнем левом углу. Выберите «Создать канал». Следуйте инструкциям по созданию канала . Читать далее
Источник: direct-and-seo.ru