политика конфиденциальности

This commit is contained in:
mihalin 2022-03-17 09:44:24 +03:00
parent 02e06863e7
commit fd3645fa52
3 changed files with 34 additions and 1 deletions

View File

@ -21,7 +21,7 @@ Olgram пересылает сообщения так, чтобы сообщен
Включите потоки в настройках бота Olgram Опции->Потоки сообщений Включите потоки в настройках бота Olgram Опции->Потоки сообщений
.. user_info: .. _user_info:
Данные пользователя Данные пользователя
------------------- -------------------
@ -36,3 +36,8 @@ Olgram пересылает сообщения так, чтобы сообщен
идентификатор #id остаётся неизменным для одного и того же аккаунта. идентификатор #id остаётся неизменным для одного и того же аккаунта.
Включить эту функцию можно в настройках бота Olgram Опции->Данные пользователя Включить эту функцию можно в настройках бота Olgram Опции->Данные пользователя
.. note::
Включение этой опции меняет текст политики конфиденциальности вашего feedback бота (команда /security_policy)
и может отпугнуть некоторых пользователей. Не включайте эту опцию без необходимости.

View File

@ -35,6 +35,24 @@ def _thread_uniqie_id(bot_id: int, chat_id: int) -> str:
return f"thread_{bot_id}_{chat_id}" return f"thread_{bot_id}_{chat_id}"
async def _on_security_policy(message: types.Message, bot):
text = "<b>Политика конфиденциальности</b>\n\n" \
"Этот бот не хранит ваши сообщения, имя пользователя и @username. При отправке сообщения (кроме команд " \
"/start и /security_policy) ваш идентификатор пользователя записывается в кеш на некоторое время и потом " \
"удаляется из кеша. Этот идентификатор используется только для общения с оператором; боты Olgram " \
"не делают массовых рассылок.\n\n"
if bot.enable_additional_info:
text += "При отправке сообщения (кроме команд /start и /security_policy) оператор <b>видит</b> ваши имя " \
"пользователя, @username и идентификатор пользователя. "
else:
text += "В зависимости от ваших настроек конфиденциальности Telegram, оператор может видеть ваш username, " \
"имя пользователя и другую информацию"
return SendMessage(chat_id=message.chat.id,
text=text,
parse_mode="HTML")
async def send_user_message(message: types.Message, super_chat_id: int, bot): async def send_user_message(message: types.Message, super_chat_id: int, bot):
"""Переслать сообщение от пользователя, добавлять к нему user info при необходимости""" """Переслать сообщение от пользователя, добавлять к нему user info при необходимости"""
if bot.enable_additional_info: if bot.enable_additional_info:
@ -149,6 +167,10 @@ async def message_handler(message: types.Message, *args, **kwargs):
return SendMessage(chat_id=message.chat.id, return SendMessage(chat_id=message.chat.id,
text=bot.start_text + ServerSettings.append_text()) text=bot.start_text + ServerSettings.append_text())
if message.text and message.text == "/security_policy":
# На команду security_policy нужно ответить, не пересылая сообщение никуда
return _on_security_policy(message, bot)
super_chat_id = await bot.super_chat_id() super_chat_id = await bot.super_chat_id()
if message.chat.id != super_chat_id: if message.chat.id != super_chat_id:

View File

@ -1,4 +1,5 @@
from aiogram import Bot as AioBot from aiogram import Bot as AioBot
from aiogram.types import BotCommand
from olgram.models.models import Bot from olgram.models.models import Bot
from aiohttp import web from aiohttp import web
from asyncio import get_event_loop from asyncio import get_event_loop
@ -35,6 +36,11 @@ async def register_token(bot: Bot) -> bool:
res = await a_bot.set_webhook(url_for_bot(bot), certificate=certificate, drop_pending_updates=True, res = await a_bot.set_webhook(url_for_bot(bot), certificate=certificate, drop_pending_updates=True,
max_connections=10) max_connections=10)
await a_bot.set_my_commands([
BotCommand("/start", "(Пере)запустить бота"),
BotCommand("/security_policy", "Политика конфиденциальности")
])
await a_bot.session.close() await a_bot.session.close()
del a_bot del a_bot
return res return res