From 8d18ed212648716c2e553da4db26332c5147fb0b Mon Sep 17 00:00:00 2001 From: profitroll Date: Wed, 15 Feb 2023 11:13:07 +0100 Subject: [PATCH] This commit closes #29 --- locale/uk.json | 5 +++-- modules/callbacks/spoiler.py | 7 ++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/locale/uk.json b/locale/uk.json index 440becb..50599db 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -256,7 +256,8 @@ "sponsor_started": "ℹ️ Заповнення форми розпочато", "sponsor_accepted": "✅ Форму {0} схвалено", "sponsor_rejected": "❌ Форму {0} відхилено", - "spoiler_sent": "✅ Повідомлення надіслано в холо-чат" + "spoiler_sent": "✅ Повідомлення надіслано в холо-чат", + "spoiler_forbidden": "❌ Треба бути учасником чату" }, "inline": { "forbidden": { @@ -279,7 +280,7 @@ "description": "Надіслати цей спойлер до чату" } }, - "rules_msg": "📢Правила можуть доповнюватись та змінюватись, залежно від потреби. У такому разі, порушення, які були вчинені до введення (змінення) правила, порушеннями вважатися не будуть. Про всі зміни в правилах, ви будете проінформовані за допомогою закріплених повідомлень. Але вони не будуть закріплені на постійній основі, тому, час від часу, перевіряйте актуальність правил у боті.\n\n🔔Якщо ви бачите, як хтось із учасників порушив правила, тегніть одного із адмінів, у відповідь на повідомлення, яке, на вашу думку, є порушенням. У дописі до тегу, вкажіть, по якому пункту ви побачили порушення. Або перешліть повідомлення до будь кого із адміністраторів у особисті повідомлення, та коротко опишіть ситуацію.\nСписок адміністраторів: @Chirkopol @Za_NerZula @Denialvapr\nЗ питань функціонування бота звертайтесь до @Profitroll2281337\n\n❗️Будь-який заборонений контент, може бути відправлений за допомогою команди /spoiler у бота - з повним описом контенту, що міститься під спойлером. За неправильний або некоректний опис, може бути видане попередження.\n\n‼️Видалені або змінені повідомлення, все ще є повідомленнями від вашого імені, які могли побачити учасники чату, і які можуть бути відстежені через адмінську панель.\n\n🔨 За порушення - ви отримаєте попередження. За наявності 3-х попереджень - мут на добу. За повторні порушення, ви одразу отримаєте покарання, без додаткових попереджень.", + "rules_msg": "📢Правила можуть доповнюватись та змінюватись, залежно від потреби. У такому разі, порушення, які були вчинені до введення (змінення) правила, порушеннями вважатися не будуть. Про всі зміни в правилах, ви будете проінформовані за допомогою закріплених повідомлень. Але вони не будуть закріплені на постійній основі, тому, час від часу, перевіряйте актуальність правил у боті.\n\n🔔Якщо ви бачите, як хтось із учасників порушив правила, тегніть одного із адмінів, у відповідь на повідомлення, яке, на вашу думку, є порушенням. У дописі до тегу, вкажіть, по якому пункту ви побачили порушення. Або перешліть повідомлення до будь кого із адміністраторів у особисті повідомлення, та коротко опишіть ситуацію.\nСписок адміністраторів: @Chirkopol @Za_NerZula @Toxinushka\nЗ питань функціонування бота звертайтесь до @Profitroll2281337\n\n❗️Будь-який заборонений контент, може бути відправлений за допомогою команди /spoiler у бота - з повним описом контенту, що міститься під спойлером. За неправильний або некоректний опис, може бути видане попередження.\n\n‼️Видалені або змінені повідомлення, все ще є повідомленнями від вашого імені, які могли побачити учасники чату, і які можуть бути відстежені через адмінську панель.\n\n🔨 За порушення - ви отримаєте попередження. За наявності 3-х попереджень - мут на добу. За повторні порушення, ви одразу отримаєте покарання, без додаткових попереджень.", "rules": [ "1️⃣) \"HoloKyiv Chat\" та \"HoloUA (Hololive Ukraine) Chat\" створені виключно для українців (13+). В них можуть знаходитись тільки люди які: \n- Народились в Україні, та проживають, на данний момент, у ній.\n- Народились за межами України, але проживають у ній.\n- Народились в Україні але, на даний момент, не проживають у ній.\n\"HoloUA (Hololive Ukraine) Chat\" відкритий для усіх українців. Щоб потрапити до нього, заповніть, будь ласка, анкету, та дочекайтесь, поки її схвалять адміни.\nУ \"HoloKyiv Chat\" можна потрапити тільки особисто, якщо ви проживаєте у Київі, або є близьким другом одного із учасників чату. Із приводу додавання до чату пишіть @Chirkopol у приватні повідомлення.\n🔨 Якщо у процесі спілкування виявиться, що ви не українець, вас буде видалено із чату, до моменту, поки ви їм не станете. Без образ. Ми створюємо виключно українське ком'юніті.", "2️⃣) Заборонено поширення NSFW-контенту з прямим або частково прихованим порнографічним змістом. На контенті \"еротичного характеру\" повинні бути закриті \"сумнівні\" ділянки тіл. \nЗаборонено поширення шок-контенту з великою наявністю крові та/або фізичних пошкоджень.", diff --git a/modules/callbacks/spoiler.py b/modules/callbacks/spoiler.py index 8118a34..387658d 100644 --- a/modules/callbacks/spoiler.py +++ b/modules/callbacks/spoiler.py @@ -1,3 +1,4 @@ +from os import path from app import app from pyrogram.types import CallbackQuery, InlineKeyboardMarkup, InlineKeyboardButton from pyrogram.client import Client @@ -5,7 +6,7 @@ from pyrogram import filters from modules.database import col_spoilers from bson.objectid import ObjectId -from modules.utils import configGet, locale +from modules.utils import configGet, jsonLoad, locale # Callback sid ================================================================================================================= @app.on_callback_query(filters.regex("sid_[\s\S]*")) @@ -17,6 +18,10 @@ async def callback_query_sid(app: Client, clb: CallbackQuery): @app.on_callback_query(filters.regex("shc_[\s\S]*")) async def callback_query_shc(app: Client, clb: CallbackQuery): + if (clb.from_user.id not in jsonLoad(path.join(configGet("cache", "locations"), "group_members"))): + await clb.answer(locale("spoiler_forbidden", "callback", locale=clb.from_user), show_alert=True) + return + spoil = col_spoilers.find_one( {"_id": ObjectId(clb.data.split("_")[1])} ) if spoil["description"] == "":