Merge branch 'master' of https://git.profitroll.eu/profitroll/HoloCheckerBot
This commit is contained in:
commit
40cf3cff7c
@ -2,6 +2,7 @@
|
|||||||
"locale": "uk",
|
"locale": "uk",
|
||||||
"debug": false,
|
"debug": false,
|
||||||
"owner": 0,
|
"owner": 0,
|
||||||
|
"bot_id": 0,
|
||||||
"age_allowed": 0,
|
"age_allowed": 0,
|
||||||
"birthdays_notify": true,
|
"birthdays_notify": true,
|
||||||
"birthdays_time": "09:00",
|
"birthdays_time": "09:00",
|
||||||
@ -9,6 +10,7 @@
|
|||||||
"inline_preview_count": 7,
|
"inline_preview_count": 7,
|
||||||
"admin_group": 0,
|
"admin_group": 0,
|
||||||
"destination_group": 0,
|
"destination_group": 0,
|
||||||
|
"remove_application_time": -1,
|
||||||
"admins": [],
|
"admins": [],
|
||||||
"bot": {
|
"bot": {
|
||||||
"api_id": 0,
|
"api_id": 0,
|
||||||
|
File diff suppressed because one or more lines are too long
110
main.py
110
main.py
@ -1,3 +1,4 @@
|
|||||||
|
import asyncio
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
@ -61,14 +62,39 @@ async def cmd_kill(app, msg):
|
|||||||
|
|
||||||
|
|
||||||
# Rules command =============================================================================================================
|
# Rules command =============================================================================================================
|
||||||
|
default_rules_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")
|
||||||
|
]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
@app.on_message(~ filters.scheduled & filters.private & filters.command(["rules"], prefixes=["/"]))
|
@app.on_message(~ filters.scheduled & filters.private & filters.command(["rules"], prefixes=["/"]))
|
||||||
async def cmd_rules(app, msg):
|
async def cmd_rules(app, msg):
|
||||||
for rule_msg in locale("rules"):
|
await msg.reply_text(locale("rules_msg"), disable_web_page_preview=True, reply_markup=default_rules_markup)
|
||||||
await msg.reply_text(rule_msg)
|
# for rule_msg in locale("rules"):
|
||||||
|
# await msg.reply_text(rule_msg)
|
||||||
# ==============================================================================================================================
|
# ==============================================================================================================================
|
||||||
|
|
||||||
|
|
||||||
# Warn command =============================================================================================================
|
# Warn command =================================================================================================================
|
||||||
@app.on_message(~ filters.scheduled & filters.command(["warn"], prefixes=["/"]))
|
@app.on_message(~ filters.scheduled & filters.command(["warn"], prefixes=["/"]))
|
||||||
async def cmd_warn(app, msg):
|
async def cmd_warn(app, msg):
|
||||||
|
|
||||||
@ -533,6 +559,72 @@ 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]}")
|
||||||
|
|
||||||
|
rule_num = int(fullclb[1])
|
||||||
|
|
||||||
|
if rule_num == len(locale("rules")):
|
||||||
|
lower_buttons = [
|
||||||
|
InlineKeyboardButton(locale("rules_prev", "button"), callback_data=f"rule_{rule_num-1}")
|
||||||
|
]
|
||||||
|
elif rule_num == 1:
|
||||||
|
lower_buttons = [
|
||||||
|
InlineKeyboardButton(locale("rules_next", "button"), callback_data=f"rule_{rule_num+1}")
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
lower_buttons = [
|
||||||
|
InlineKeyboardButton(locale("rules_prev", "button"), callback_data=f"rule_{rule_num-1}"),
|
||||||
|
InlineKeyboardButton(locale("rules_next", "button"), callback_data=f"rule_{rule_num+1}")
|
||||||
|
]
|
||||||
|
|
||||||
|
try:
|
||||||
|
await clb.message.edit(text=locale("rules")[rule_num-1], 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")
|
||||||
|
],
|
||||||
|
lower_buttons
|
||||||
|
]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
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=default_rules_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=default_rules_markup)
|
||||||
|
except bad_request_400.MessageNotModified:
|
||||||
|
pass
|
||||||
|
|
||||||
|
await clb.answer(text=locale("rules_additional", "callback")) # type: ignore
|
||||||
|
# ==============================================================================================================================
|
||||||
|
|
||||||
|
|
||||||
# Contact getting ==============================================================================================================
|
# Contact getting ==============================================================================================================
|
||||||
@app.on_message(~ filters.scheduled & filters.contact & filters.private)
|
@app.on_message(~ filters.scheduled & filters.contact & filters.private)
|
||||||
async def get_contact(app, msg):
|
async def get_contact(app, msg):
|
||||||
@ -579,7 +671,7 @@ async def get_contact(app, msg):
|
|||||||
@app.on_message(~ filters.scheduled & filters.private)
|
@app.on_message(~ filters.scheduled & filters.private)
|
||||||
async def any_stage(app, msg):
|
async def any_stage(app, msg):
|
||||||
|
|
||||||
if msg.via_bot == None:
|
if msg.via_bot is None:
|
||||||
|
|
||||||
user_stage = configGet("stage", file=str(msg.from_user.id))
|
user_stage = configGet("stage", file=str(msg.from_user.id))
|
||||||
|
|
||||||
@ -638,6 +730,16 @@ async def any_stage(app, msg):
|
|||||||
else:
|
else:
|
||||||
if not configGet("approved", file=str(msg.from_user.id)) and not configGet("refused", file=str(msg.from_user.id)):
|
if not configGet("approved", file=str(msg.from_user.id)) and not configGet("refused", file=str(msg.from_user.id)):
|
||||||
await msg.reply_text(locale("already_sent", "message"))
|
await msg.reply_text(locale("already_sent", "message"))
|
||||||
|
|
||||||
|
@app.on_message(~ filters.scheduled & filters.group)
|
||||||
|
async def message_in_group(app, msg):
|
||||||
|
if (msg.chat is not None) and (msg.via_bot is not None):
|
||||||
|
if (msg.via_bot.id == configGet("bot_id")) and (msg.chat.id == configGet("destination_group")):
|
||||||
|
if configGet("remove_application_time") > 0:
|
||||||
|
logWrite(f"User {msg.from_user.id} requested application in destination group, removing in {configGet('remove_application_time')} minutes")
|
||||||
|
await asyncio.sleep(configGet("remove_application_time")*60)
|
||||||
|
await msg.delete()
|
||||||
|
logWrite(f"Removed application requested by {msg.from_user.id} in destination group")
|
||||||
# ==============================================================================================================================
|
# ==============================================================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ from modules.utils import configGet, jsonLoad, locale
|
|||||||
@app.on_inline_query()
|
@app.on_inline_query()
|
||||||
async def inline_answer(client, inline_query):
|
async def inline_answer(client, inline_query):
|
||||||
|
|
||||||
if inline_query.chat_type not in [ChatType.BOT, ChatType.PRIVATE]:
|
if inline_query.chat_type in [ChatType.CHANNEL]:
|
||||||
await inline_query.answer(
|
await inline_query.answer(
|
||||||
results=[
|
results=[
|
||||||
InlineQueryResultArticle(
|
InlineQueryResultArticle(
|
||||||
|
Reference in New Issue
Block a user