# * _ __ __ _ _
# * / \ _ _ _ __ ___ _ __ __ _| \/ | ___ __| |_ _| | ___ ___
# * / _ \| | | | '__/ _ \| '__/ _` | |\/| |/ _ \ / _` | | | | |/ _ \/ __|
# * / ___ \ |_| | | | (_) | | | (_| | | | | (_) | (_| | |_| | | __/\__ \
# * /_/ \_\__,_|_| \___/|_| \__,_|_| |_|\___/ \__,_|\__,_|_|\___||___/
# *
# * © Copyright 2024
# *
# * https://t.me/AuroraModules
# *
# * 🔒 Code is licensed under GNU AGPLv3
# * 🌐 https://www.gnu.org/licenses/agpl-3.0.html
# * ⛔️ You CANNOT edit this file without direct permission from the author.
# * ⛔️ You CANNOT distribute this file if you have modified it without the direct permission of the author.
# Name: MyDebtors
# Author: dend1yya | Felix?
# Commands:
# .dadd | .dinfo | .ddel | .dlist | .ddelall
# scope: hikka_only
# meta developer: @AuroraModules
# meta pic: https://i.postimg.cc/Hx3Zm8rB/logo.png
# meta banner: https://te.legra.ph/file/7d7a4c3ff3711e0e1ee88.jpg
__version__ = (1, 1, 0)
from telethon.tl.types import Message # type: ignore
from .. import loader, utils
@loader.tds
class MyDebtorsMod(loader.Module):
"""Module for managing, adding, and deleting your debtors."""
strings = {
"name": "MyDebtors",
"saved": "💾 Debtor added:\n{} - Amount: {}",
"no_reply": "🚫 Reply with debtor name and amount.",
"no_name": "🚫 Specify debtor's name and amount.",
"no_debtor": "🚫 Debtor not found.",
"available_debtors": "💾 Current debtors:\n",
"no_debtors": "😔 You have no debtors yet.",
"deleted": "🙂 Debtor removed: {}",
"all_deleted": "🙂 All debtors have been removed.",
"changed": "🔄 Debtor's debt changed: {} - New amount: {}",
}
strings_ru = {
"saved":"💾 Должник добавлен: \n{} - Сумма: {}",
"no_reply": "🚫 Требуется реплай на контент должника, и суммы.",
"no_name": "🚫 Укажите имя должника, и сумму.",
"no_debtor": "🚫 Должник не найден.",
"available_debtors": "💾 Текущие должники:\n",
"no_debtors": "😔 У вас нету должников.",
"deleted": "🙂 Должник удален: {}",
"all_deleted": "🙂 Все ваши должники были удалены.",
"changed": "🔄 Долг должника изменен: {} - Новая сумма: {}",
}
strings_uz = {
"saved":"💾 Qarzdor qo'shildi:\n{} - Summa: {}",
"no_reply": "🚫 Qarzdor nomi va miqdorini javob bering.",
"no_name": "🚫 Qarzdor nomini va miqdorini kiriting.",
"no_debtor": "🚫 Qarzdor topilmadi.",
"available_debtors": "💾 Hoziroq qarz beruvchilar:\n",
"no_debtors": "😔 Sizda hozircha qarzdorlar yo'q.",
"deleted": "🙂 Qarzdor o'chirildi: {}",
"all_deleted": "🙂 Barcha qarzdorlar o'chirildi.",
"changed": "🔄 Qarzdor qarzi o'zgartirildi: {} - Yangi miqdor: {}",
}
strings_de = {
"saved":"💾 Schuldner hinzugefügt:\n{} - Betrag: {}",
"no_reply": "🚫 Antworten Sie mit dem Namen des Schuldners und dem Betrag.",
"no_name": "🚫 Geben Sie den Namen und den Betrag des Schuldners an.",
"no_debtor": "🚫 Schuldner nicht gefunden.",
"available_debtors": "💾 Aktuelle Schuldner:\n",
"no_debtors": "😔 Sie haben noch keine Schuldner.",
"deleted": "🙂 Schuldner entfernt: {}",
"all_deleted": "🙂 Alle Schuldner wurden entfernt.",
"changed": "🔄 Schulden des Schuldners geändert: {} - Neuer Betrag: {}",
}
strings_es = {
"saved":"💾 Deudor agregado:\n{} - Monto: {}",
"no_reply": "🚫 Responder con el nombre del deudor y el monto.",
"no_name": "🚫 Especifique el nombre y el monto del deudor.",
"no_debtor": "🚫 Deudor no encontrado.",
"available_debtors": "💾 Deudores actuales:\n",
"no_debtors": "😔 No tienes deudores aún.",
"deleted": "🙂 Deudor eliminado: {}",
"all_deleted": "🙂 Se han eliminado todos los deudores.",
"changed": "🔄 Deuda del deudor cambiada: {} - Nuevo monto: {}",
}
async def client_ready(self):
self._debtors = self.get("debtors", {})
@loader.command(
ru_doc=" - Добавить должника",
uz_doc=" - Qarzdor qo'shish",
de_doc=" - Schuldner hinzufügen",
es_doc=" - Agregar un deudor",
)
async def dadd(self, message: Message):
""" - add a debtor"""
args = utils.get_args_raw(message)
if not args:
await utils.answer(message, self.strings("no_reply"))
return
debtor_name, amount = args.split(maxsplit=1)
if not (debtor_name and amount):
await utils.answer(message, self.strings("no_name"))
return
amount = int(amount)
if debtor_name not in self._debtors:
self._debtors[debtor_name] = 0
self._debtors[debtor_name] += amount
self.set("debtors", self._debtors)
await utils.answer(message, self.strings("saved").format(debtor_name, amount))
def _get_debtor(self, name):
return self._debtors.get(name)
def _del_debtor(self, name):
if name in self._debtors:
del self._debtors[name]
self.set("debtors", self._debtors)
return True
return False
@loader.command(
ru_doc=" - Узнать информацию о должнике",
uz_doc=" - Qarzdor haqida ma'lumot olish",
de_doc=" - Informationen über den Schuldner erhalten",
es_doc=" - Obtener información sobre el deudor",
)
async def dinfo(self, message: Message):
""" - Find out information about the debtor"""
debtor_name = utils.get_args_raw(message)
if not debtor_name:
await utils.answer(message, self.strings("no_name"))
return
amount = self._get_debtor(debtor_name)
if amount is not None:
await utils.answer(message, f"💸 {debtor_name} долг: {amount}")
else:
await utils.answer(message, self.strings("no_debtor"))
@loader.command(
ru_doc=" - Удалить должника",
uz_doc=" - Qarzdorni olib tashlash",
de_doc=" - Schuldner entfernen",
es_doc=" - Eliminar al deudor",
)
async def ddel(self, message: Message):
""" - Remove the debtor"""
debtor_name = utils.get_args_raw(message)
if not debtor_name:
await utils.answer(message, self.strings("no_name"))
return
if self._del_debtor(debtor_name):
await utils.answer(message, self.strings("deleted").format(debtor_name))
else:
await utils.answer(message, self.strings("no_debtor"))
@loader.command(
ru_doc="Список всех ваших должников",
uz_doc="Sizning qarz berganlar ro'yxati",
de_doc="Liste aller Ihrer Schuldner",
es_doc="Lista de todos sus deudores",
)
async def dlist(self, message: Message):
"""List of all your debtors"""
result = self.strings("available_debtors")
if not self._debtors:
await utils.answer(message, self.strings("no_debtors"))
return
for debtor_name, amount in self._debtors.items():
result += f"\n💸 {debtor_name}: {amount}"
await utils.answer(message, result)
@loader.command(
ru_doc="Удалить всех ваших должников",
uz_doc="Sizning barcha qarz berganlaringizni olib tashlash",
de_doc="Alle Ihre Schuldner entfernen",
es_doc="Eliminar a todos sus deudores",
)
async def ddelall(self, message: Message):
"""Remove all your debtors"""
self._debtors = {}
self.set("debtors", self._debtors)
await utils.answer(message, self.strings("all_deleted"))
@loader.command(
ru_doc=" - Изменить долг",
uz_doc=" - Qarzni o'zgartirish",
de_doc=" - Schulden ändern",
es_doc=" - Cambiar la deuda",
)
async def dset(self, message: Message):
""" - Change the debt"""
args = utils.get_args_raw(message)
if not args:
await utils.answer(message, self.strings("no_reply"))
return
debtor_name, new_amount = args.split(maxsplit=1)
if not (debtor_name and new_amount):
await utils.answer(message, self.strings("no_name"))
return
new_amount = int(new_amount)
if debtor_name in self._debtors:
self._debtors[debtor_name] = new_amount
self.set("debtors", self._debtors)
await utils.answer(message, self.strings("changed").format(debtor_name, new_amount))
else:
await utils.answer(message, self.strings("no_debtor"))