├── .gitignore ├── README.md ├── config.ini ├── main.py └── strings.py /.gitignore: -------------------------------------------------------------------------------- 1 | venv 2 | .idea 3 | config.ini 4 | *session 5 | *journal 6 | __pycache__ 7 | 8 | users.json 9 | uses.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # WhatsApp API Bot 4 | 5 | ### Telegram bot to create direct links with pre-filled text for WhatsApp Chats 6 | 7 | > You can check our bot [here](https://t.me/WhatsAppAPIbot). 8 | 9 | The bot is based on the API [provided](https://faq.whatsapp.com/general/chats/how-to-use-click-to-chat/) by WhatsApp. 10 | 11 | ## Translation Contributions 12 | You can add your language to the bot by editing the [strings.py](/strings.py) file and adding a translation in the appropriate format: 13 | ```python 14 | strings = { 15 | "example1": { 16 | "en": "This string represents message exmple1", 17 | "he": "המחרוזת הזו מייצגת הודעת דוגמה 1", 18 | "ru": "Эта строка представляет сообщение exmple1" 19 | }, 20 | "example2": { 21 | "en": "This string represents message exmple2", 22 | "he": "המחרוזת הזו מייצגת הודעת דוגמה 2", 23 | "ru": "Эта строка представляет сообщение exmple2" 24 | } 25 | } 26 | ``` 27 | - Add your language code as key, the lang-code should be in `IETF language tag` format. 28 | - Try to stick to the format and translate from the English language available in the file. 29 | - Maintain the position of the special characters (emojis, `.*,-/\{}`). 30 | - When you done, open a __pull request__ or send us the file to [our](https://t.me/RobotTrickSupport) Telegram. 31 | 32 | 33 | 34 | ## Run the bot by yourself 35 | 36 | - Clone this reposetory: 37 | ``` 38 | git clone https://github.com/RobotTrick/WhatsApp-API-Bot.git 39 | ``` 40 | - Install requirements (``pyrogram, tgcrypto``): 41 | ``` 42 | pip3 install -U pyrogram tgcrypto 43 | ``` 44 | - Edit and insert the folowing values into the [config](/config.ini) file: 45 | ``` 46 | [pyrogram] 47 | api_id = XXXXXXXXXXX 48 | api_hash = XXXXXXXXXXXXXXXXXXXXXXXXXX 49 | bot_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 50 | ``` 51 | * ``api_id`` & ``api_hash`` You can get from [my.telegram.org](https://my.telegram.org). 52 | * ``bot_token`` you can get by create new bot on [BotFather](https://t.me/BotFather). 53 | - Run the bot: 54 | ``` 55 | python3 main.py 56 | ``` 57 | 58 | ## Supported languages 59 | - [x] English 60 | - [x] Hebrew 61 | - [x] Italian (By [@seba7193](https://t.me/SebaBio)) 62 | - [x] Deutsch (By [@TLGRM_Support](https://t.me/TLGRM_Support)) 63 | - [x] Spanish (By [@Dylan_22](https://t.me/Dylan_22)) 64 | 65 | ## TODO's 66 | - [x] Send message to specific phone number. 67 | - [ ] Open chat with specific number. 68 | - [ ] Create link with pre-filled message to pick chat. 69 | --- 70 | Created with ❤️ by [David Lev](https://t.me/davidlev) & [Yehuda By](https://yeudaby.com) 71 | -------------------------------------------------------------------------------- /config.ini: -------------------------------------------------------------------------------- 1 | [pyrogram] 2 | api_id = xxxxx 3 | api_hash = xxxxxxxxxxxxxxxxxxxxxxxxx 4 | bot_token = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 5 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from urllib import parse 2 | import json 3 | from pyrogram import Client, filters, types 4 | import configparser 5 | from re import search, sub 6 | from strings import strings 7 | from typing import Union 8 | from pyrogram.types import Message, InlineQuery 9 | 10 | config = configparser.ConfigParser() 11 | config.read('config.ini') 12 | 13 | app = Client("WA") 14 | 15 | 16 | # Return message depend on the client language: 17 | def lang_msg(msg_obj: Union[Message, InlineQuery], msg_to_rpl: str) -> Union[str, bool]: 18 | msg = strings.get(msg_to_rpl) 19 | if not msg: 20 | return False 21 | lang_client = msg_obj.from_user.language_code 22 | if msg.get(lang_client): 23 | return msg[lang_client] 24 | else: 25 | return msg["en"] 26 | 27 | 28 | # Return encoded url 29 | def create_url(phone: str, text: str) -> str: 30 | format_url = "https://wa.me/{}?text={}" 31 | phone = phone.replace("+", "") 32 | if phone.startswith("05"): 33 | phone = phone.replace("0", "972", 1) 34 | return format_url.format(phone, parse.quote(text)) 35 | 36 | 37 | def save_user(uid: int, save_use: bool = True): 38 | """ save user/chat id to DB """ 39 | if save_use: 40 | save_uses() 41 | ids_file = "users.json" 42 | try: 43 | with open(ids_file, "r") as oFile: 44 | users: list = json.load(oFile) 45 | except FileNotFoundError: 46 | users = [] 47 | 48 | if uid not in users: 49 | users.append(uid) 50 | 51 | with open(ids_file, "w") as nFile: 52 | json.dump(users, nFile, indent=4) 53 | 54 | 55 | def save_uses(): 56 | """ save count of uses to DB """ 57 | uses_file = "uses.txt" 58 | try: 59 | with open(uses_file) as usesO: 60 | uses = int(usesO.read()) 61 | except FileNotFoundError: 62 | with open(uses_file, "w") as usesO: 63 | usesO.write("0") 64 | with open(uses_file) as usesO: 65 | uses = int(usesO.read()) 66 | uses += 1 67 | with open(uses_file, "w") as usesO: 68 | usesO.write(str(uses)) 69 | 70 | 71 | # Ask replay on messages with phone number 72 | @app.on_message(filters.regex(r"^[0-9+].*$")) 73 | def number_case(_, message: types.Message): 74 | message.reply(lang_msg(message, "ask_replay"), quote=True) 75 | 76 | 77 | @app.on_message(filters.reply & filters.create( 78 | lambda _, __, m: m.reply_to_message.text != lang_msg(m, "ask_replay"))) 79 | def replay_url(_, message: types.Message): 80 | number = message.reply_to_message.text 81 | number = sub(r"[^0-9+]", "", number) 82 | ex = search(r'[0-9+].*', number) 83 | 84 | if not ex: # check if phone number invalid 85 | message.reply(lang_msg(message, "number_invalid")) 86 | return 87 | 88 | if len(number) > 15 or len(number) < 10: # check if is legal length number 89 | message.reply(lang_msg(message, "invalid_length")) 90 | return 91 | 92 | url = create_url(number, message.text) 93 | # send message with the url 94 | message.reply(lang_msg(message, "replay_url").format(f"`{url}`"), 95 | reply_markup=types.InlineKeyboardMarkup([[ 96 | types.InlineKeyboardButton(lang_msg(message, "url_btn"), url=url), 97 | types.InlineKeyboardButton(lang_msg(message, "share_btn"), 98 | switch_inline_query=f"{number} {message.text}") 99 | ]])) 100 | save_user(message.from_user.id) 101 | 102 | 103 | valid_re = r"^(?P[0-9+]{10,16}) (?P.*)" 104 | 105 | 106 | # handle inline queries 107 | @app.on_inline_query(filters.regex(valid_re)) 108 | def inline(_, query: types.InlineQuery): 109 | match = query.matches[0].groupdict() 110 | url = create_url(match['number'], match['text']) 111 | 112 | query.answer([types.InlineQueryResultArticle( 113 | title=f"{match['number']} • {match['text']}", 114 | 115 | input_message_content=types.InputTextMessageContent( 116 | lang_msg(query, "replay_url").format(f"`{url}`") 117 | ), 118 | 119 | reply_markup=types.InlineKeyboardMarkup([[ 120 | types.InlineKeyboardButton(lang_msg(query, "url_btn"), url=url), 121 | types.InlineKeyboardButton(lang_msg(query, "share_btn"), 122 | switch_inline_query=f"{match['number']} {match['text']}") 123 | ]]), 124 | 125 | description=lang_msg(query, "replay_url").format(url), 126 | 127 | thumb_url="https://user-images.githubusercontent.com/42866208/129119407-17ea2432-7057-4501-8015-119c6da33bad.png" 128 | )]) 129 | save_user(query.from_user.id) 130 | 131 | 132 | @app.on_inline_query(~filters.regex(valid_re)) 133 | def valid_re(_, query: types.InlineQuery): 134 | query.answer([] 135 | , switch_pm_text=lang_msg(query, "input_sug"), switch_pm_parameter="help") 136 | 137 | 138 | # When user replay to replay msg instead of phone-num msg 139 | @app.on_message(filters.reply & filters.create( 140 | lambda _, __, m: m.reply_to_message.text == lang_msg(m, "ask_replay"))) 141 | def do_not_replay_to_ask(_, message: types.Message): 142 | message.reply(lang_msg(message, "do_not_replay_to_ask")) 143 | 144 | 145 | # start command 146 | @app.on_message(filters.command(["start", "help", "translate"]) & filters.private) 147 | def start(_, message: types.Message): 148 | if message.command == ["start"]: 149 | txt = lang_msg(message, "start_msg").format( 150 | message.from_user.mention, 151 | "https://t.me/davidlev", 152 | "https://t.me/m100achuzBots", 153 | "https://t.me/robot_trick_channel" 154 | ) 155 | message.reply(txt, disable_web_page_preview=True, 156 | reply_markup=types.InlineKeyboardMarkup([[ 157 | types.InlineKeyboardButton(lang_msg(message, "repo"), 158 | url=lang_msg(message, "url_repo")), 159 | types.InlineKeyboardButton(lang_msg(message, "inline_btn"), 160 | switch_inline_query_current_chat="") 161 | ]])) 162 | elif "help" in message.command: 163 | message.reply(lang_msg(message, "help_msg"), 164 | reply_markup=types.InlineKeyboardMarkup([[ 165 | types.InlineKeyboardButton(lang_msg(message, "inline_btn"), 166 | switch_inline_query_current_chat="") 167 | ]])) 168 | elif "translate" in message.command: 169 | message.reply(lang_msg(message, "translate"), 170 | reply_markup=types.InlineKeyboardMarkup([[ 171 | types.InlineKeyboardButton(lang_msg(message, "repo"), 172 | url=f"{lang_msg(message, 'url_repo')}/blob/main/strings.py"), 173 | types.InlineKeyboardButton(lang_msg(message, "support"), 174 | url="https://t.me/RobotTrickSupport") 175 | ]])) 176 | 177 | save_user(message.from_user.id, False) 178 | 179 | 180 | app.run() 181 | -------------------------------------------------------------------------------- /strings.py: -------------------------------------------------------------------------------- 1 | # Here you can add your language strings. just add on every dict new key with your language code and insert the value. 2 | # keep you're mind that languages are displayed accordingly to your client (app, software) lang. 3 | 4 | strings = { 5 | "ask_replay": { 6 | "en": "✍️ Reply to the phone-number-message with your text", 7 | "it": "✍️ Rispondi al messaggio del numero di telefono con il tuo testo", 8 | "he": "✍️ הגיבו להודעה שבה שלחתם את מספר הטלפון עם הטקסט שתרצו", 9 | "de": "✍️ Antworte zur Telefonnummer-Nachricht mit deinem Text", 10 | "es": "✍️ Responder al mensaje del número de teléfono con tu texto" 11 | }, 12 | "number_invalid": { 13 | "en": "☎️ You can only reply on messages that contains phone number", 14 | "it": "☎️ Puoi rispondere solo a messaggi che contengono un numero di telefono", 15 | "he": "☎ ️ ניתן להגיב עם טקסט רק על הודעות שמכילות מספר טלפון", 16 | "de": "☎️ Du kannst nur Nachrichten wiedergeben, die eine Telefonnummer enthalten", 17 | "es": "☎️ Solo se puede responder a mensajes que contengan número de teléfono" 18 | }, 19 | "invalid_length": { 20 | "en": "❌ Please input correct number (International format, for example +97212345678)", 21 | "it": "❌ Inserisci un numero corretto (formato internazionale, ad esempio +39123456789)", 22 | "he": "❌ הזינו מספר טלפון תקין בפורמט בינלאומי", 23 | "de": "❌ Bitte korrekte Nummer eingeben (Internationales Format, z.B. +491731234567)", 24 | "es": "❌ Por favor ingresa un número correcto (Formato internacional, por ejemplo: +97212345678)" 25 | }, 26 | "replay_url": { 27 | "en": "Click here to get/copy your link: {}", 28 | "it": "Clicca qui per ottenere/copiare il link: {}", 29 | "he": "לחץ כאן כדי לקבל/להעתיק את הקישור: {}", 30 | "de": "Klicke hier, um deinen Link zu erhalten/kopieren: {}", 31 | "es": "Haz clic para obtener/copiar tu enlace: {}" 32 | }, 33 | "url_btn": { 34 | "en": "🔗 Url", 35 | "it": "🔗 Link", 36 | "he": "🔗 לינק", 37 | "de": "🔗 Url", 38 | "es": "🔗 Enlace" 39 | }, 40 | "share_btn": { 41 | "en": "♻️ Share", 42 | "it": "♻️ Condividi", 43 | "he": "♻️ שיתוף", 44 | "de": "♻️ Teilen", 45 | "es": "♻ Compartir" 46 | }, 47 | "do_not_replay_to_ask": { 48 | "en": "💬 Please reply to message with phone number", 49 | "it": "💬 Rispondi al messaggio con il numero di teefono", 50 | "he": "💬 אנא הגב על הודעה שבה מופיע מספר טלפון", 51 | "de": "💬 Bitte wiederhole die Nachricht mit Telefonnummer", 52 | "es": "💬 Por favor responde al mensaje con número de teléfono" 53 | }, 54 | "inline_btn": { 55 | "en": "🔁 Try inline!", 56 | "it": "🔁 Prova inline!", 57 | "he": "🔁 נסו באינליין!", 58 | "de": "🔁 Versuche es Inline!", 59 | "es": "🔁 Prueba el modo inline!" 60 | }, 61 | "start_msg": { 62 | "en": "Hi {} 👋\n\n" 63 | "you can send me a phone number and text and I will return you a link that by clicking on it " 64 | "will " 65 | "be transferred to WhatsApp chat with the same number and with the text ready to send!\n" 66 | "You can also use me Inline! Type in the bot user followed by the phone number and text.\n" 67 | "\n- For help send /help" 68 | "\n- We need your help translating the bot! For more information send /translate" 69 | "\n\n- This bot made with ❤️ by [David Lev]({}) & [Yehuda By]({}) from [RobotTrick]({}) team.", 70 | "it": "Ciao {} 👋\n\n" 71 | "puoi inviarmi un numero di telefono e un messaggio e ti invierò un link che cliccandoci sopra " 72 | "verrai " 73 | "mandato su WhatsApp del numero e con il testo pronto per l'invio!\n" 74 | "Puoi anche usarmi Inline! Digita lo username del bot seguito dal numero di telefono e dal testo.\n " 75 | "\n- Per altro invia /help" 76 | "\n- Abbiamo bisogno del tuo aiuto per tradurre il bot! Per maggiori informazioni invia /translate" 77 | "\n\n- Questo bot è realizzato con il ❤️ da [David Lev]({}) e [Yehuda By]({}) dal team [RobotTrick]({}).", 78 | "he": "היי {} 👋\n\n" 79 | "תוכל לשלוח לי מספר טלפון וטקסט ואני אחזיר קישור שבלחיצה עליו תועבר לצ'אט וואטסאפ עם " 80 | "אותו " 81 | "המספר ועם הטקסט מוכן לשליחה.\n" 82 | "ניתן להשתמש בי גם באינליין! הקלד את יוזר הבוט ולאחריו את מספר הטלפון והטקסט." 83 | "\n\n- לעזרה שלחו /help" 84 | "\n- אנו זקוקים לעזרתכם בתרגום הבוט! למידע נוסף שלחו /translate" 85 | "\n\n- הבוט נוצר על ידי [David Lev]({}) & [Yehuda By]({}) מצוות [רובוטריק]({}).", 86 | "de": "Hallo {} 👋!\n\n" 87 | "Du kannst mir eine Telefonnummer und einen Text geben und ich werde dir einen Link senden, der beim anklicken " 88 | "in den WhatsApp-Chat mit der gleichen Nummer und dem fertigen Text übertragen wird!\n" 89 | "Du kannst mich auch Inline nutzen! Gib den Bot-Namen, gefolgt von der Telefonnummer und dem Text ein.\n" 90 | "\n- Für Hilfe sende /help" 91 | "\n- Wir brauchen deine Hilfe beim Übersetzen des Bots. Für mehr Informationen sende /translate!" 92 | "\n\n- Dieser Bot wurde mit ❤️ von [David Lev]({}) & [Yehuda By]({}) vom [RobotTrick]({}) Team erstellt", 93 | "es": "Hola {} 👋\n\n" 94 | "puedes enviarme un número de teléfono y un texto y te devolveré un enlace que al abrirlo " 95 | "te dirigirá " 96 | "a un chat de WhatsApp con ese número de teléfono y con el texto listo para enviar!\n" 97 | "Además puedes usarme Inline! Escribe el nombre de usuario del bot seguido del teléfono y el texto.\n" 98 | "\n- Por ayuda envía /help" 99 | "\n- Necesitamos tu ayuda para traducir el bot! Para más información envía /translate" 100 | "\n\n- Este bot fue hecho con ❤️ por [David Lev]({}) y [Yehuda By]({}) del equipo [RobotTrick]({})." 101 | }, 102 | "repo": { 103 | "en": "🛠 GitHub", 104 | "it": "🛠 GitHub", 105 | "he": "🛠 גיטהאב", 106 | "de": "🛠 GitHub", 107 | "es": "🛠 GitHub" 108 | }, 109 | "url_repo": { 110 | "en": "https://github.com/RobotTrick/WhatsApp-API-Bot" 111 | }, 112 | "support": { 113 | "en": "👤 Support", 114 | "it": "👤 Supporto", 115 | "he": "👤 תמיכה", 116 | "de": "👤 Hilfe", 117 | "es": "👤 Soporte" 118 | }, 119 | "input_sug": { 120 | "en": "Enter input like +97212345678 Hello from Telegram", 121 | "it": "Inserisci un input come +39123456789 Ciao da Telegram", 122 | "he": "הזינו טלפון וטקסט: 97212345678+ טקסט", 123 | "de": "Gib eine Nachricht wie z.B. +491731234567 Hello from Telegram ein.", 124 | "es": "Ingresa algo como: +97212345678 Hola desde Telegram" 125 | }, 126 | "help_msg": { 127 | "en": "This bot allows you to create direct links to WhatsApp chats with text ready to send." 128 | "\n\nhere are two ways to use this bot:" 129 | "\n1. --Messages and Replies:--" 130 | "\n- Send the phone number." 131 | "\n- Reply on the **number message** with text to send." 132 | "\n- Get a link ready to click and to copy.\n" 133 | "\n\n2. --Using Inline:--" 134 | "\n- Type the bot username in any chat." 135 | "\n- After that type a phone number and immediately after it a text to send." 136 | "\n- Click on the result that will be displayed and you will get the link ready to click and to copy.", 137 | "it": "Questo bot ti consente di creare collegamenti diretti alle chat di WhatsApp con testo pronto per l'invio." 138 | "\n\necco due modi per usare questo bot:" 139 | "\n1. --Messaggi e risposte:--" 140 | "\n- Invia il numero di telefono." 141 | "\n- Rispondi al **messaggio numerico** con il testo da inviare." 142 | "\n- Ricevi un link da cliccare e copiare." 143 | "\n\n2. --Uso Inline:--" 144 | "\n- Digita lo username del bot in qualsiasi chat." 145 | "\n- Dopodiché digita un numero di telefono e subito dopo un messaggio da inviare." 146 | "\n- Fai clic sul risultato che verrà visualizzato e otterrai il collegamento pronto per fare clic e copiare.", 147 | "he": "רובוט זה מאפשר יצירת קישורים ישירים לצ'אט וואטסאפ עם טקסט מוכן לשליחה.\n" 148 | "קיימות שתי צורות שימוש בבוט:\n\n" 149 | "1. --הודעות ותגובות:--\n" 150 | "- שלחו את מספר הטלפון.\n" 151 | "- הגיבו על **המספר** עם טקסט לשליחה.\n" 152 | "- קבלו קישור מוכן להקלקה ולהעתקה.\n\n" 153 | "2. --שימוש באינליין:--\n" 154 | "- הקלידו את יוזר הבוט בכל צ'אט שתרצו.\n" 155 | "- לאחריו הקלידו מספר טלפון ומיד לאחריו טקסט לשליחה.\n" 156 | "- הקליקו על התוצאה שתוצג ותקבלו את הקישור.", 157 | "de": "Dieser Bot ermöglicht es dir, direkte Links zu WhatsApp Chats mit versandfertigem Text zu erstellen." 158 | "Es gibt zwei Möglichkeiten, diesen Bot zu nutzen:" 159 | "\n1. --Nachrichten und Wiederholungen:--" 160 | "\n- Sende die Telefonnummer." 161 | "\n- Antworte auf die **Nummernnachricht** mit Text zum Senden." 162 | "\n- Bereite einen Link zum Klicken und Kopieren vor.\n" 163 | "\n\n2. --Inline-Nutzung:--" 164 | "\n- Gib den Bot-Benutzernamen in einen beliebigen Chat ein." 165 | "\n- Tippe anschließend eine Telefonnummer und direkt einen Text zum senden ein." 166 | "\n- Klicke auf das Ergebnis, das angezeigt wird und du bekommst den Link zum Anklicken und Kopieren.", 167 | "es": "Este bot te permitirá crear links directos a chats de WhatsApp con texto listo para enviar." 168 | "\n\nhay dos formas de usar este bot:" 169 | "\n1. --Mensajes y Respuestas:--" 170 | "\n- Enviar el número de telefono (al que se desea enviar)." 171 | "\n- Responder al **mensaje con el número telefónico** con el texto a enviar." 172 | "\n- Obtener un enlace listo para tocar y copiar.\n" 173 | "\n\n2. --Usando Inline:--" 174 | "\n- Escribe el nombre de usuario del bot en cualquier chat (comenzando con @)." 175 | "\n- Después de eso escribir el número e inmediatamente después el texto a enviar." 176 | "\n- Toca en el resultado que se mostrará y ya tendrás el enlace listo para tocar y copiar." 177 | }, 178 | "translate": { 179 | "en": "**🔡 We need your help translating the bot!**" 180 | "\n\nIf you are interested in translating the bot into your language or to another language, go to the " 181 | "strings file in GitHub, download it or edit it online and add the strings to the file according to the " 182 | "existing format. " 183 | "\n- Got tangled up, need help? Contact our support user.", 184 | "it": "**🔡 Abbiamo bisogno del tuo aiuto per tradurre il bot!**" 185 | "\n\nSe sei interessato a tradurre il bot nella tua lingua o in un'altra lingua, vai alle " 186 | "stringhe su GitHub, scaricalo o modificalo online e aggiungi le stringhe al file in base al " 187 | "formato esistente" 188 | "\n- Ti sei impasticciato, hai bisogno di aiuto? Contatta il nostro utente dell'assistenza." 189 | "\n\n㊗️Translate by @SebaBio", 190 | "he": "**🔡 אנו צריכים את עזרתכם בתרגום הבוט!**" 191 | "\n\nאם הנכם מעוניינים לתרגם את הבוט לשפתכם או לשפה אחרת, עברו לקובץ ההודעות בגיטהאב, הורידו אותו או " 192 | "ערכו " 193 | "באונליין והוסיפו את המחרוזות לקובץ על פי הפורמט הקיים. \n\n- הסתבכתם, זקוקים לעזרה? פנו למשתמש התמיכה " 194 | "שלנו. ", 195 | "de": "**🔡 Wir brauchen deine Hilfe bei der Übersetzung des Bots!**" 196 | "\n\nWenn du daran interessiert bist, den Bot in deine Sprache oder in eine andere Sprache zu " 197 | "übersetzen, gehe zu der " 198 | "Strings-Datei auf GitHub, lade sie herunter oder bearbeite sie online und füge die Strings gemäß dem " 199 | " bestehenden Format ein." 200 | " Hast du dich verirrt und brauchst Hilfe? Kontaktiere unseren Support." 201 | "\n\n㊗️Translate by @TLGRM_Support", 202 | "es": "**🔡 Necesitamos tu ayuda con la traducción del bot!**" 203 | "\n\nSi estás interesado/a en traducir el bot a tu idioma u otro, ve al " 204 | "archivo strings.py en GitHub, descargalo o editalo online y agrega las cadenas de texto siguiendo el " 205 | "formato existente. " 206 | "\n- Te perdiste, necesitas ayuda? Contacta a nuestro soporte." 207 | "\n\n㊗ Translate by @Dylan_22" 208 | } 209 | } 210 | --------------------------------------------------------------------------------