diff --git a/locale/uk.json b/locale/uk.json index 5e3b8b8..0b99528 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -114,7 +114,9 @@ "sus_allowed": "✅ Дозвіл надано", "sus_refused": "❌ Користувача заблоковано", "reapply_yes": "✅ Прийняти", - "reapply_no": "❌ Відхилити" + "reapply_no": "❌ Відхилити", + "rules_home": "🏠 Головна", + "rules_additional": "➕ Додаткові" }, "callback": { "sub_accepted": "✅ Анкету {0} схвалено", @@ -123,7 +125,10 @@ "sub_no_russian": "🇷🇺 Анкету {0} відхилено", "sus_allowed": "✅ Доступ {0} дозволено", "sus_refused": "❌ Доступ {0} заборонено", - "nothing": "🔔 Дія вже виконана" + "nothing": "🔔 Дія вже виконана", + "rules_page": "ℹ️ Показано правило {0}", + "rules_home": "ℹ️ Показано головну правил", + "rules_additional": "ℹ️ Показано додаткові правила" }, "inline": { "forbidden": { @@ -142,10 +147,17 @@ "message_content": "{0} (@{1})\n\n**Дані анкети:**\n{2}" } }, + "rules_msg": "📢Правила можуть доповнюватись та змінюватись, залежно від потреби. У такому разі, порушення, які були вчинені до введення (змінення) правила, порушеннями вважатися не будуть. Про всі зміни в правилах, ви будете проінформовані за допомогою закріплених повідомлень. Але вони не будуть закріплені на постійній основі, тому, час від часу, перевіряйте актуальність правил у боті.\n\n🔔Якщо ви бачите, як хтось із учасників порушив правила, тегніть одного із адмінів, у відповідь на повідомлення, яке, на вашу думку, є порушенням. У дописі до тегу, вкажіть, по якому пункту ви побачили порушення. Або перешліть повідомлення до будь кого із адміністраторів у особисті повідомлення, та коротко опишіть ситуацію.\nСписок адміністраторів: @Chirkopol @Za_NerZula @Denialvapr\n\n❗️Будь-який заборонений контент, може бути відправлений до чату за допомогою бота - https://t.me/spoilerobot з повним описом контенту, що міститься під спойлером. За неправильний або некоректний опис, може бути видане попередження.\n\n‼️Видалені або змінені повідомлення, все ще є повідомленнями від вашого імені, які могли побачити учасники чату, і які можуть бути відстежені через адмінську панель.\n\n🔨 За порушення - ви отримаєте попередження. За наявності 3-х попереджень - мут на добу. За повторні порушення, ви одразу отримаєте покарання, без додаткових попереджень.", "rules": [ - "Правила чатів:\n1️⃣) \"HoloKyiv Chat\" та \"HoloUA (Hololive Ukraine) Chat\" створені виключно для українців. В них можуть знаходись тільки люди які: \n- Народились в Україні та наразі проживають у ній\n- Народились за межами України, але проживають у ній\n- Народились в Україні, але наразі не проживають у ній\n\"HoloUA (Hololive Ukraine) Chat\" відкритий для всіх українців - https://t.me/+vyCme4tmL4c1NDMy (посилання може змінюватись).\nУ \"HoloKyiv Chat\" можна потрапити тільки особисто, якщо ви проживаєте в Києві, або є близьким другом одного із учасників чату. Із приводу додавання до чату пишіть @Chirkopol у приватні повідомлення.\n🔨 Якщо у процесі спілкування виявиться, що ви не українець, вас буде видалено із чату, до моменту, поки ви їм не станете.\n2️⃣) Заборонено поширення NSFW-контенту з прямим або частково прихованим порнографічним змістом. На контенті \"еротичного характеру\" повинні бути закриті \"сумнівні\" ділянки тіл. \n❗️Будь-який заборонений контент може бути відправлений до чату лише за допомогою використання бота - https://t.me/spoilerobot з повним описом контенту, що міститься. Але за неправильний або некоректний опис може бути видане попередження.\n‼️Видалені або змінені повідомлення все ще є повідомленнями від вашого імені, які могли побачити учасники чату, і які можуть бути відстеженні через адмінську панель.\n🔨 За порушення, у вас буде відібрано можливість надсилати весь медіа контент на добу. При повторному порушенні - на двоє, і далі наростаючою.\n3️⃣) Анонімність учасників Хололайву.\nЗаборонено: \n- Фотографії\n- Імена\n- Місце проживання\n- Точний вік (наприклад: термін \"холохеґз\" не підпадає)\n- Подробиці особистого життя\n- Пости з руммейт аккаунтів чи згадка про них з конкретними даними (тобто фраза \"там на ірл каналі Каллі щось вийшло\" - можна, а \"там на *назва ірл каналу* щось вийшло\" - ні)\n- Подробиці з минулого дівчат - лише поверхнево і без конкретики (тобто \"була офісним працівником\" - ок, \"була в *компанія_нейм*\" - ні). \nВиключення - якщо дівчата самі згадували про це на архівних(!) стрімах.\n❗️Будь-який заборонений контент може бути відправлений до чату лише за допомогою використання бота - https://t.me/spoilerobot з повним описом контенту, що міститься. Але за неправильний або некоректний опис може бути видане попередження.\n‼️Видалені або змінені повідомлення все ще є повідомленнями від вашого імені, які могли побачити учасники чату, і які можуть бути відстеженні через адмінську панель.\n🔨 За порушення ви отримаєте попередження. За наявності 3-х попереджень – мут на годину. За повторне порушення - на дві, і далі наростаючою.\n4️⃣) Заборонено флуд однотипними повідомленнями, емодзі, стікерами, гіфками, тощо. Орієнтовна кількість повідомлень, які можуть отримати попередження за це правило - 5. Кожна ситуація може розглядатись окремо, але вкладайте усі свої думки в одне повідомлення.\n🔨 За порушення ви отримаєте попередження. За наявності 3-х попереджень – мут на годину. За повторне порушення - на дві, і далі наростаючою.\n5️⃣) Заборонений спам відео та аудіо-повідомленнями, які не несуть цілі передати почуте, або побачене. Якщо ви бажаєте розповісти про те, як пройшов ваш день – використовуйте магічний перетворювач войсів у текст - https://t.me/voicybot\n🔨 За порушення ви отримаєте попередження. За наявності 3-х попереджень – мут на годину. За повторне порушення - на дві, і далі наростаючою.", - "6️⃣) Заборонені образи, погрози, булінг, приниження, тролінг учасників, членів їхніх сімей, друзів та іншого кола, що є наближеними до учасника чату. Повідомлення на кшталт: \"йди на ... \" - також є образами. Якщо на вас пожаліється інший користувач, то ви отримаєте попередження. \n‼️Видалені або змінені повідомлення все ще є повідомленнями від вашого імені, які могли побачити учасники чату, і які можуть бути відстеженні через адмінську панель.\n🔨 Якщо на прохання учасника ви не зміните темп спілкування і не вибачитесь, то отримаєте попередження. За наявності 3-х попереджень – мут на добу. За повторне порушення - на дві, і далі наростаючою. \nСкоротити термін мута можна, якщо вас пробачить ображена особа.\n⚒ Якщо ваша поведінка спричинить те, що учасник покинув чат, ви будете перебувати в муті до моменту, поки не повернете учасника назад.\n\"Будь ти хоч тричі правий, але який у цьому сенс, якщо ти не вмієш подавати свої думки і вже перебуваєш у муті?\"\n7️⃣) Заборонено провокування конфліктів та розпалювання ненависті між учасниками чату.\n🔨 За порушення ви отримаєте попередження. За наявності 3-х попереджень – мут на добу. За повторне порушення - на дві, і далі наростаючою.\n8️⃣) Заборонені прояви расизму, сексизму, гомофобії та засудження за політичні та (або) релігійні упередження. Дані теми все ще можуть бути частиною діалогу, якщо не несуть у собі прямих засуджень, образ тощо.\n🔨 За порушення ви отримаєте попередження. За наявності 3-х попереджень – мут на годину. За повторне порушення - на дві, і далі наростаючою.\n9️⃣) Заборонені аватарки, нікнейми, ролі, які порушують інші правила.\n🔨 За порушення - видалення із чату до моменту зміни вами фактору, що став причиною видалення.", - "Додаткові правила, які несуть рекомендаційний характер та не мають явних покарань за порушення:\n1️⃣) У чаті немає заборони на російську мову. Ми поважаємо кожного українця і не бажаємо розпалювати мовні конфлікти.\n2️⃣) У чаті немає заборони на російськомовний контент. Проте майте на увазі, що учасники, здебільшого, не будуть зацікавлені у тому, щоб обговорювати його, і він може бути проігнорованим.\n3️⃣) Не зловживайте матами. Намагайтесь спілкуватись чистою мовою.\n4️⃣) Поважайте авторські права контентмейкерів. Якщо ви знаходите арт, анімацію, музику, тощо на офіційних ресурсах (pixiv, twitter, deviantart тощо), відправляйте на нього посилання.\nЯкщо хтось із учасників відправив арт із не офіційного ресурсу і ви бажаєте дізнатись його автора, надішліть у відповідь повідомлення із текстом `/search` (без пробілу) на повідомлення із артом.\n- - -\nПравила можуть доповнюватись та змінюватись залежно від потреби. У такому разі, порушення, які були вчинені до введення (змінення) правила, каратися не будуть. Про всі зміни в правилах ви будете проінформовані за допомогою закріплених повідомлень. Проте вони не будуть закріплені на постійній основі, тому, час від часу, перевіряйте їхню актуальність.\n- - -\nЯкщо ви бачите, що хтось із учасників щось порушив, тегніть одного із адмінів у відповідь на повідомлення, яке, на вашу думку, є порушенням. У дописі до тегу вкажіть, по якому пункту ви побачили порушення.\nСписок адміністраторів: @Chirkopol @Za_NerZula @Denialvapr", - "Загальна інформація:\nНаш Діскорд сервер, в якому ми разом дивимося топи, концерти, стріми та граємо – *посилання тимчасово скрито*\n- - -\nРолі у чаті та право модерації надаються учасникам, які оформили спонсорську підписку на будь-кого із Хололайву. Ваша роль повинна мати пряме відношення до того, на кого була оформлена підписка, та не порушувати 9 пункт правил.\nДля отримання ролі тегніть одного із адміністраторів: @Chirkopol @Za_NerZula @Denialvapr та залиште повідомлення зі скріншотом спонсорської підписки та текстом, який ви бажаєте бачити поряд із іменем (не більше 15 символів).\nМодератори мають змогу закріпляти повідомлення та керувати відео-чатами.\nПри зловживанні можливостями модератора роль залишиться закріплена за учасником чату, але без додаткових привілеїв.\n- - -\nТеги, які використовуються у групі. Їх кількість може змінюватися з часом:\n#holomixing - проекти @Denialvapr про аудіомікшинг треків Холо-дівчат\n#holotranslation - переклади на українську і російську Холо-пісень з японської від @Toxinushka\n#holosurvey - анкети учасників" - ] + "1️⃣) \"HoloKyiv Chat\" та \"HoloUA (Hololive Ukraine) Chat\" створені виключно для українців (13+). В них можуть знаходитись тільки люди які: \n- Народились в Україні, та проживають, на данний момент, у ній.\n- Народились за межами України, але проживають у ній.\n- Народились в Україні але, на даний момент, не проживають у ній.\n\"HoloUA (Hololive Ukraine) Chat\" відкритий для усіх українців. Щоб потрапити до нього, заповніть, будь ласка, анкету, та дочекайтесь, поки її схвалять адміни.\nУ \"HoloKyiv Chat\" можна потрапити тільки особисто, якщо ви проживаєте у Київі, або є близьким другом одного із учасників чату. Із приводу додавання до чату пишіть @Chirkopol у приватні повідомлення.\n🔨 Якщо у процесі спілкування виявиться, що ви не українець, вас буде видалено із чату, до моменту, поки ви їм не станете. Без образ. Ми створюємо виключно українське ком'юніті.", + "2️⃣) Заборонено поширення NSFW-контенту з прямим або частково прихованим порнографічним змістом. На контенті \"еротичного характеру\" повинні бути закриті \"сумнівні\" ділянки тіл. \nЗаборонено поширення шок-контенту з великою наявністю крові та/або фізичних пошкоджень.", + "3️⃣) Анонімність учасників Хололайв та Холостарз.\nЗаборонено: \n- Фотографії\n- Імена\n- Місце проживання\n- Точний вік (слово \"холохеґз\" не підпадає)\n- Подробиці особистого життя\n- Пости з руммейт акаунтів чи згадка про них з конкретними даними (тобто фраза \"там на ірл каналі Каллі щось вийшло\" - можна, а \"там на *назва ірл каналу* щось вийшло\" - ні)\n- Подробиці з минулого дівчат - лише поверхнево і без конкретики (тобто \"була офісним працівником\" - ок, \"була в *компанія_нейм*\" - ні).\nВиключення - якщо дівчата самі згадували про це на архівних(!) стрімах.\n❗️Це правило не стосується тих, хто вже не знаходиться у Хололайві, або ніколи і не був його частиною. Але, прохання, відноситись до особистого життя інших вітуберів із повагою, та не перебільшувати із деанонами їх особистостей.", + "4️⃣) Заборонено флуд однотипними повідомленнями, емодзі, смайликами, стікерами, гіфками тощо. Орієнтовна кількість повідомлень, які можуть отримати попередження за це правило - 5. Кожна ситуація може розглядатись окремо, але вкладайте усі свої думки в одне повідомлення.", + "5️⃣) Заборонені відео та аудіо-повідомлення, які не несуть цілі передати почуте, або побачене. Якщо ви бажаєте розповісти про те, як пройшов ваш день, але не маєте можливості друкувати повідомлення, використовуйте магічний перетворювач войсів у текст - https://t.me/voicybot", + "6️⃣) Заборонені образи, погрози, булінг, приниження, тролінг учасників, членів їхніх сімей, друзів та іншого кола, що є наближеними до учасника чату. Повідомлення на кшталт: \"йди на ... \" - також є образами. Ви можете отримати попередження, навіть, якщо це був ваш приятель. Воно буде зняте, якщо приятель підтвердить, що не ображений на вас.\n🔨 Якщо на прохання учасника або адміністратора, ви не зміните темп спілкування і не вибачитесь, то отримаєте попередження. \n⚒ Якщо ваша поведінка спричинить те, що учасник залишив чат, покарання може бути жорсткішим.", + "7️⃣) Заборонено провокування конфліктів та розпалювання ненависті між учасниками чату.", + "8️⃣) Заборонені прояви расизму, сексизму, гомофобії та засудження за політичні та (або) релігійні упередження. Дані теми все ще можуть бути частиною діалогу, якщо не несуть у собі прямих засуджень, образ тощо.", + "9️⃣) Заборонені аватарки, нікнейми, ролі, які порушують інші правила." + ], + "rules_additional": "Додаткові правила, які несуть рекомендаційний характер, та не мають явних покарань за порушення:\n1️⃣) У чаті немає заборони на російську мову. Ми поважаємо кожного українця і не бажаємо розпалювати мовні конфлікти.\n2️⃣) У чаті немає заборони на російський контент. Але, майте на увазі, що учасники, здебільшого, не будуть зацікавлені у тому, щоб обговорювати його і він може бути проігнорованим.\n3️⃣) Не зловживайте матами. Намагайтесь спілкуватись чистою мовою.\n4️⃣) Поважайте авторські права контентмейкерів. Якщо ви знаходите арт, анімацію, музику тощо, на офіційних ресурсах (pixiv, twitter, deviantart тощо), відправляйте на нього посилання.\nЯкщо хтось із учасників відправив арт із не офіційного ресурсу і ви бажаєте дізнатись його автора, відправте у відповідь повідомлення із текстом `/search` на повідомлення із артом." } \ No newline at end of file diff --git a/main.py b/main.py index 02d9a8a..eb51d99 100644 --- a/main.py +++ b/main.py @@ -63,8 +63,32 @@ async def cmd_kill(app, msg): # Rules command ============================================================================================================= @app.on_message(~ filters.scheduled & filters.private & filters.command(["rules"], prefixes=["/"])) async def cmd_rules(app, msg): - for rule_msg in locale("rules"): - await msg.reply_text(rule_msg) + await msg.reply_text(locale("rules_msg"), disable_web_page_preview=True, reply_markup=InlineKeyboardMarkup( + [ + [ + InlineKeyboardButton(locale("rules_home", "button"), callback_data="rules_home"), + InlineKeyboardButton(locale("rules_additional", "button"), callback_data="rules_additional") + ], + [ + InlineKeyboardButton("1", callback_data="rule_1"), + InlineKeyboardButton("2", callback_data="rule_2"), + InlineKeyboardButton("3", callback_data="rule_3") + ], + [ + InlineKeyboardButton("4", callback_data="rule_4"), + InlineKeyboardButton("5", callback_data="rule_5"), + InlineKeyboardButton("6", callback_data="rule_6") + ], + [ + InlineKeyboardButton("7", callback_data="rule_7"), + InlineKeyboardButton("8", callback_data="rule_8"), + InlineKeyboardButton("9", callback_data="rule_9") + ] + ] + ) + ) + # for rule_msg in locale("rules"): + # await msg.reply_text(rule_msg) # ============================================================================================================================== @@ -533,6 +557,47 @@ async def callback_query_nothing(app, clb): # ============================================================================================================================== +# Callback rule ================================================================================================================ +@app.on_callback_query(filters.regex("rule_[\s\S]*")) # type: ignore +async def callback_query_rule(app, clb): + + fullclb = clb.data.split("_") + + logWrite(f"User {clb.from_user.id} requested to check out rule {fullclb[1]}") + + try: + await clb.message.edit(text=locale("rules")[int(fullclb[1])-1], disable_web_page_preview=True, reply_markup=clb.message.reply_markup) + except bad_request_400.MessageNotModified: + pass + + await clb.answer(text=locale("rules_page", "callback").format(fullclb[1])) # type: ignore + +@app.on_callback_query(filters.regex("rules_home")) # type: ignore +async def callback_query_rules_home(app, clb): + + logWrite(f"User {clb.from_user.id} requested to check out homepage rules") + + try: + await clb.message.edit(text=locale("rules_msg"), disable_web_page_preview=True, reply_markup=clb.message.reply_markup) + except bad_request_400.MessageNotModified: + pass + + await clb.answer(text=locale("rules_home", "callback")) # type: ignore + +@app.on_callback_query(filters.regex("rules_additional")) # type: ignore +async def callback_query_rules_additional(app, clb): + + logWrite(f"User {clb.from_user.id} requested to check out additional rules") + + try: + await clb.message.edit(text=locale("rules_additional"), disable_web_page_preview=True, reply_markup=clb.message.reply_markup) + except bad_request_400.MessageNotModified: + pass + + await clb.answer(text=locale("rules_additional", "callback")) # type: ignore +# ============================================================================================================================== + + # Contact getting ============================================================================================================== @app.on_message(~ filters.scheduled & filters.contact & filters.private) async def get_contact(app, msg):