# * _ __ __ _ _ # * / \ _ _ _ __ ___ _ __ __ _| \/ | ___ __| |_ _| | ___ ___ # * / _ \| | | | '__/ _ \| '__/ _` | |\/| |/ _ \ / _` | | | | |/ _ \/ __| # * / ___ \ |_| | | | (_) | | | (_| | | | | (_) | (_| | |_| | | __/\__ \ # * /_/ \_\__,_|_| \___/|_| \__,_|_| |_|\___/ \__,_|\__,_|_|\___||___/ # * # * © 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"))