/nearby, subscriptions check, geocoding #2
@ -1,5 +1,5 @@
|
||||
from datetime import datetime
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from pyrogram.enums.parse_mode import ParseMode
|
||||
from pyrogram.types import Message
|
||||
@ -9,13 +9,12 @@ from classes.holo_user import HoloUser, UserNotFoundError
|
||||
from modules.utils import logWrite, locale, should_quote
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from modules.database import col_applications
|
||||
from modules import custom_filters
|
||||
|
||||
# Applications command =========================================================================================================
|
||||
@app.on_message(~ filters.scheduled & filters.command(["application"], prefixes=["/"]))
|
||||
@app.on_message(~ filters.scheduled & custom_filters.admin & filters.command(["application"], prefixes=["/"]))
|
||||
async def cmd_application(app: Client, msg: Message):
|
||||
|
||||
if await isAnAdmin(msg.from_user.id) is True:
|
||||
|
||||
try:
|
||||
|
||||
try:
|
||||
|
@ -1,6 +1,6 @@
|
||||
from os import sep, makedirs, remove
|
||||
from uuid import uuid1
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import Message
|
||||
from pyrogram.client import Client
|
||||
@ -8,12 +8,12 @@ from pyrogram.enums.chat_action import ChatAction
|
||||
from modules.logging import logWrite
|
||||
from modules.utils import should_quote, jsonSave
|
||||
from modules.database import col_applications
|
||||
from modules import custom_filters
|
||||
|
||||
# Applications command =========================================================================================================
|
||||
@app.on_message(~ filters.scheduled & filters.command(["applications"], prefixes=["/"]))
|
||||
@app.on_message(~ filters.scheduled & custom_filters.admin & filters.command(["applications"], prefixes=["/"]))
|
||||
async def cmd_applications(app: Client, msg: Message):
|
||||
|
||||
if await isAnAdmin(msg.from_user.id) is True:
|
||||
logWrite(f"Admin {msg.from_user.id} requested export of a database")
|
||||
await app.send_chat_action(msg.chat.id, ChatAction.UPLOAD_DOCUMENT)
|
||||
filename = uuid1()
|
||||
|
@ -1,15 +1,14 @@
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import Message
|
||||
from pyrogram.client import Client
|
||||
from modules.utils import locale, should_quote, find_user
|
||||
from classes.holo_user import HoloUser, LabelTooLongError
|
||||
from modules import custom_filters
|
||||
|
||||
@app.on_message(~ filters.scheduled & filters.private & filters.command(["label"], prefixes=["/"]))
|
||||
@app.on_message(~ filters.scheduled & custom_filters.admin & filters.private & filters.command(["label"], prefixes=["/"]))
|
||||
async def cmd_label(app: Client, msg: Message):
|
||||
|
||||
if await isAnAdmin(msg.from_user.id) is True:
|
||||
|
||||
if len(msg.command) < 3:
|
||||
await msg.reply_text("Invalid syntax:\n`/label USER LABEL`")
|
||||
return
|
||||
|
@ -1,16 +1,15 @@
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import Message
|
||||
from pyrogram.client import Client
|
||||
from classes.holo_user import HoloUser
|
||||
from modules.utils import logWrite, locale, should_quote
|
||||
from modules import custom_filters
|
||||
|
||||
# Message command ==============================================================================================================
|
||||
@app.on_message(~ filters.scheduled & filters.command(["message"], prefixes=["/"]))
|
||||
@app.on_message(~ filters.scheduled & custom_filters.admin & filters.command(["message"], prefixes=["/"]))
|
||||
async def cmd_message(app: Client, msg: Message):
|
||||
|
||||
if await isAnAdmin(msg.from_user.id) is True:
|
||||
|
||||
try:
|
||||
|
||||
try:
|
||||
|
@ -1,4 +1,4 @@
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from os import getpid
|
||||
from sys import exit
|
||||
from pyrogram import filters
|
||||
@ -6,14 +6,14 @@ from pyrogram.types import Message
|
||||
from pyrogram.client import Client
|
||||
from modules.utils import locale, logWrite, should_quote
|
||||
from modules.scheduled import scheduler
|
||||
from modules import custom_filters
|
||||
|
||||
pid = getpid()
|
||||
|
||||
# Shutdown command =============================================================================================================
|
||||
@app.on_message(~ filters.scheduled & filters.private & filters.command(["kill", "die", "reboot"], prefixes=["/"]))
|
||||
@app.on_message(~ filters.scheduled & custom_filters.admin & filters.private & filters.command(["kill", "die", "reboot"], prefixes=["/"]))
|
||||
async def cmd_kill(app: Client, msg: Message):
|
||||
|
||||
if await isAnAdmin(msg.from_user.id) is True:
|
||||
logWrite(f"Shutting down bot with pid {pid}")
|
||||
await msg.reply_text(locale("shutdown", "message", locale=msg.from_user).format(pid), quote=should_quote(msg))
|
||||
scheduler.shutdown()
|
||||
|
@ -1,19 +1,19 @@
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, Message
|
||||
from pyrogram.client import Client
|
||||
from classes.holo_user import HoloUser
|
||||
from modules import custom_filters
|
||||
from modules.utils import locale, should_quote
|
||||
from modules.database import col_applications
|
||||
|
||||
# Sponsorship command ==========================================================================================================
|
||||
@app.on_message(~ filters.scheduled & filters.command(["sponsorship"], prefixes=["/"]))
|
||||
@app.on_message(~ filters.scheduled & (custom_filters.allowed | custom_filters.admin) & filters.command(["sponsorship"], prefixes=["/"]))
|
||||
async def cmd_sponsorship(app: Client, msg: Message):
|
||||
if (await isAnAdmin(msg) is True) or (col_applications.find_one({"user": msg.from_user.id}) is not None):
|
||||
if HoloUser(msg.from_user).application_state()[0] == "fill":
|
||||
await msg.reply_text(locale("finish_application", "message"), quote=should_quote(msg))
|
||||
return
|
||||
await msg.reply_text(locale("sponsorship_apply", "message"), reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton(text=str(locale("sponsor_apply", "button")), callback_data=f"sponsor_apply_{msg.from_user.id}")]]), quote=should_quote(msg))
|
||||
else:
|
||||
await msg.reply_text(locale("sponsorship_application_empty", "message"))
|
||||
# else:
|
||||
# await msg.reply_text(locale("sponsorship_application_empty", "message"))
|
||||
# ==============================================================================================================================
|
@ -1,18 +1,18 @@
|
||||
from datetime import datetime
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import Message
|
||||
from pyrogram.client import Client
|
||||
from modules.utils import configGet, locale
|
||||
from modules.database import col_warnings
|
||||
from modules import custom_filters
|
||||
|
||||
# Warn command =================================================================================================================
|
||||
@app.on_message(~ filters.scheduled & filters.command(["warn"], prefixes=["/"]))
|
||||
@app.on_message(~ filters.scheduled & custom_filters.admin & filters.command(["warn"], prefixes=["/"]))
|
||||
async def cmd_warn(app: Client, msg: Message):
|
||||
|
||||
if msg.chat.id == configGet("destination_group"):
|
||||
if msg.reply_to_message_id != None:
|
||||
if await isAnAdmin(msg.from_user.id) is True:
|
||||
message = " ".join(msg.command[1:]) if len(msg.command) > 1 else ""
|
||||
col_warnings.insert_one({"user": msg.reply_to_message.from_user.id, "admin": msg.from_user.id, "date": datetime.now(), "reason": message})
|
||||
if message == "":
|
||||
|
@ -1,17 +1,16 @@
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import Message
|
||||
from pyrogram.client import Client
|
||||
from pyrogram.enums.chat_members_filter import ChatMembersFilter
|
||||
from modules.utils import configGet, locale, should_quote
|
||||
from modules.database import col_users, col_warnings
|
||||
from modules import custom_filters
|
||||
|
||||
# Warnings command =============================================================================================================
|
||||
@app.on_message(~ filters.scheduled & filters.command(["warnings"], prefixes=["/"]))
|
||||
@app.on_message(~ filters.scheduled & custom_filters.admin & filters.command(["warnings"], prefixes=["/"]))
|
||||
async def cmd_warnings(app: Client, msg: Message):
|
||||
|
||||
if await isAnAdmin(msg.from_user.id) is True:
|
||||
|
||||
if len(msg.command) <= 1:
|
||||
await msg.reply_text(locale("syntax_warnings", "message", locale=msg.from_user), quote=should_quote(msg))
|
||||
return
|
||||
|
12
modules/custom_filters.py
Normal file
12
modules/custom_filters.py
Normal file
@ -0,0 +1,12 @@
|
||||
from app import isAnAdmin
|
||||
from modules.database import col_applications
|
||||
from pyrogram import filters
|
||||
|
||||
async def admin_func(_, __, msg):
|
||||
return await isAnAdmin(msg)
|
||||
|
||||
async def allowed_func(_, __, msg):
|
||||
return True if (col_applications.find_one({"user": msg.from_user.id}) is not None) else False
|
||||
|
||||
admin = filters.create(admin_func)
|
||||
allowed = filters.create(allowed_func)
|
@ -1,21 +1,20 @@
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from datetime import datetime
|
||||
from app import app, isAnAdmin
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import Message
|
||||
from pyrogram.client import Client
|
||||
from modules.utils import locale, logWrite
|
||||
from modules.database import col_applications
|
||||
from classes.holo_user import HoloUser
|
||||
from modules import custom_filters
|
||||
|
||||
# Contact getting ==============================================================================================================
|
||||
@app.on_message(~ filters.scheduled & filters.contact & filters.private)
|
||||
@app.on_message(~ filters.scheduled & (custom_filters.allowed | custom_filters.admin) & filters.contact & filters.private)
|
||||
async def get_contact(app: Client, msg: Message):
|
||||
|
||||
holo_user = HoloUser(msg.from_user)
|
||||
|
||||
if holo_user.application_approved() or (await isAnAdmin(holo_user.id) is True):
|
||||
|
||||
if msg.contact.user_id != None:
|
||||
|
||||
application = col_applications.find_one({"user": msg.contact.user_id})
|
||||
|
@ -1,7 +1,8 @@
|
||||
from datetime import datetime
|
||||
from os import path, sep
|
||||
from app import app, isAnAdmin
|
||||
from pyrogram.types import InlineQueryResultArticle, InputTextMessageContent
|
||||
from pyrogram.types import InlineQueryResultArticle, InputTextMessageContent, InlineQuery
|
||||
from pyrogram.client import Client
|
||||
from pyrogram.enums.chat_type import ChatType
|
||||
from pyrogram.enums.chat_members_filter import ChatMembersFilter
|
||||
from dateutil.relativedelta import relativedelta
|
||||
@ -10,7 +11,7 @@ from modules.utils import configGet, locale
|
||||
from modules.database import col_applications
|
||||
|
||||
@app.on_inline_query()
|
||||
async def inline_answer(client, inline_query):
|
||||
async def inline_answer(client: Client, inline_query: InlineQuery):
|
||||
|
||||
if inline_query.chat_type in [ChatType.CHANNEL]:
|
||||
await inline_query.answer(
|
||||
|
Reference in New Issue
Block a user