diff --git a/bot.py b/bot.py index 1479430..135b4cb 100644 --- a/bot.py +++ b/bot.py @@ -14,6 +14,7 @@ import subprocess import time import urllib.request +import premiumfunctions as premium import i18n import telebot @@ -34,10 +35,12 @@ config.read(BOT_CONFIG_FILE) log_file = config["DEFAULT"]["logfile"] TOKEN = config["DEFAULT"]["TOKEN"] -WEBHOOK_URL = config["DEFAULT"]["WEBHOOK_URL"] CERT = config["DEFAULT"]["CERT"] PRIVKEY = config["DEFAULT"]["PRIVKEY"] BLOCKED = config["DEFAULT"]["BLOCKED"] +MULTIPLIER = int(config["DEFAULT"]["MULTIPLIER"]) +DEMO = int(config["DEFAULT"]["DEMO"]) +ADMIN = int(config["DEFAULT"]["ADMIN"]) db = config["SQLITE3"]["data_base"] table = config["SQLITE3"]["table"] rabbitmqcon = config["RABBITMQ"]["CONNECTION_STRING"] @@ -51,7 +54,7 @@ rabbit.queue_declare(queue='Send2KindleBotFast', durable=True) rabbit.queue_declare(queue='Send2KindleBotSlow', durable=True) -cmds = ["/start", "/send", "/info", "/help", "/email", "/donate"] +cmds = ["/start", "/send", "/info", "/help", "/email", "/donate", "/stars"] LOG_INFO_FILE = log_file logger_info = logging.getLogger("InfoLogger") logger_info.setLevel(logging.INFO) @@ -97,6 +100,8 @@ def send_mail(data, subject, lang, file_name): upd_user_last(db, table, data[1]) def check_domain(email): + if 'send.grf.xyz' in email: + return False domain = email.split('@')[-1] try: dns.resolver.resolve(domain, 'NS') @@ -203,6 +208,7 @@ def set_menus(user_id, lang='en-us'): try: bot.set_my_commands([ telebot.types.BotCommand("/start", i18n.t("bot.btn_start", locale=lang)), + telebot.types.BotCommand("/stars", i18n.t("bot.btn_stars", locale=lang)), telebot.types.BotCommand("/send", i18n.t("bot.btn_send", locale=lang)), telebot.types.BotCommand("/tos", i18n.t("bot.btn_tos", locale=lang)), telebot.types.BotCommand("/donate", i18n.t("bot.btn_donate", locale=lang)), @@ -213,8 +219,6 @@ def set_menus(user_id, lang='en-us'): pass def set_buttons(lang='en-us'): - global button - global button2 button = types.InlineKeyboardMarkup() btn1 = types.InlineKeyboardButton( i18n.t("bot.btn1", locale=lang), callback_data="/send" @@ -235,6 +239,7 @@ def set_buttons(lang='en-us'): i18n.t("bot.btn4", locale=lang), callback_data="/converted" ) button2.row(btn3, btn4) + return button, button2 @bot.message_handler(commands=["help"]) def help(message): @@ -246,6 +251,125 @@ def help(message): disable_web_page_preview=True, ) +@bot.message_handler(commands=["saldo"]) +def cmd_saldo(message): + if message.from_user.id != ADMIN: + return + try: + if len(message.text.split(' ')) == 2: + result = premium.check_premium_user( + message.text.split(' ')[1] + ) + saldo = result[0] + else: + premium.update_saldo_premium( + message.text.split(' ')[1], + message.text.split(' ')[2] + ) + saldo = message.text.split(' ')[2] + bot.reply_to( + message, + f'🪪 {message.text.split(" ")[1]}\nSaldo: {saldo} envios', + parse_mode='HTML' + ) + except: + bot.delete_message(message.chat.id, message.message_id) + +@bot.message_handler(commands=["refund"]) +def cmd_refund(message): + if message.from_user.id != ADMIN: + return + if ' ' not in message.text: + bot.send_message(ADMIN, 'Envie /refund ', parse_mode='HTML') + return + user_id = message.text.split(' ')[1] + transaction = message.text.split(' ')[2] + try: + refund = bot.refund_star_payment(user_id, transaction) + bot.send_message( + ADMIN, + f'💸 Transação cancelada\n' + + f'
\n' + + f'Usuário: {user_id}\n' + + f'ID: {transaction}\n' + + f'
', + parse_mode='HTML' + ) + except Exception as e: + bot.send_message( + ADMIN, + f'❌ Transação não encontrada\n
{e}
', + parse_mode='HTML' + ) + bot.delete_message(message.chat.id, message.message_id) + +@bot.message_handler(commands=["emails", "dados"]) +def cmd_emails(message): + if message.from_user.id != ADMIN: + return + if ' ' not in message.text: + bot.delete_message(message.from_user.id, message.message_id) + data = select_user(db, table, message.text.split(' ')[1], "*") + bot.send_message( + ADMIN, + f'🪪 {data[1]}\n
' + + f'📤 {data[2]}\n📥 {data[3]}\n\n🕐 {data[4]}\n🕹 {data[5]}' + + '
', + parse_mode='HTML' + ) + +@bot.message_handler(commands=["relatorio"]) +def cmd_relatorio(message): + if message.from_user.id != ADMIN: + return + transactions = bot.get_star_transactions().transactions + valores_recebidos = 0 + quantidade_recebidos = 0 + valores_devolvidos = 0 + quantidade_devolvidos = 0 + for transaction in transactions: + if transaction.source: + valores_recebidos = valores_recebidos + transaction.amount + quantidade_recebidos = quantidade_recebidos + 1 + elif transaction.receiver: + valores_devolvidos = valores_devolvidos + transaction.amount + quantidade_devolvidos = quantidade_devolvidos + 1 + bot.send_message( + ADMIN, + f'🗃 Relatório\n' + + f'{time.strftime("%d/%m/%Y", time.localtime(transactions[0].date))} - ' + + f'{time.strftime("%d/%m/%Y", time.localtime(transactions[-1].date))}\n\n' + + '🧮 Quantidades\n' + + '
' + + f'Recebidos: {quantidade_recebidos}\n' + + f'Devolvidos: {quantidade_devolvidos}\n' + + '
' + + f'Saldo: {quantidade_recebidos - quantidade_devolvidos}\n\n' + + '🌟 Valores\n' + + '
' + + f'Recebidos: {valores_recebidos}\n' + + f'Devolvidos: {valores_devolvidos}\n' + + '
' + + f'Saldo: {valores_recebidos - valores_devolvidos}', + parse_mode='HTML' + ) + +@bot.message_handler(commands=["lista"]) +def cmd_lista(message): + if message.from_user.id != ADMIN: + return + if ' ' not in message.text: + value = 3 + else: + value = message.text.split(' ')[1] + users_list = premium.get_premium_users(value) + size = len(users_list) + users = '' + for user in users_list: + users = f'{users}{user[1]:<12} {user[2]}\n' + text = f'Usuários com {value} ou mais estrelas:
{users}
Quantidade: {size}' + bot.reply_to(message, text, parse_mode='HTML') + @bot.message_handler(commands=["tos", "privacy"]) def tos(message): user_lang = (message.from_user.language_code or "en-us").lower() @@ -266,7 +390,7 @@ def tos(message): parse_mode="HTML", ) -@bot.message_handler(commands=["info"]) +@bot.message_handler(commands=["info", "paysupport"]) def info(message): user_lang = (message.from_user.language_code or "en-us").lower() send_message( @@ -276,20 +400,140 @@ def info(message): disable_web_page_preview=True, ) +@bot.message_handler(commands=["stars"]) +def cmd_premium(message): + user_lang = (message.from_user.language_code or "en-us").lower() + terms_btn = types.InlineKeyboardMarkup() + btn1 = types.InlineKeyboardButton( + i18n.t("bot.terms_agree", locale=user_lang), callback_data="/agree" + ) + btn2 = types.InlineKeyboardButton( + i18n.t("bot.terms_disagree", locale=user_lang), callback_data="/disagree" + ) + terms_btn.row(btn1, btn2) + is_premium = premium.check_premium_user(message.from_user.id) + if not is_premium: + send_message( + message.from_user.id, + i18n.t("bot.premium_intro", locale=user_lang).format(message.from_user.id, DEMO), + parse_mode="HTML", + reply_markup=terms_btn + ) + else: + agreed(message) + +@bot.callback_query_handler(lambda q: q.data == "/disagree") +def disagreed(call): + try: + bot.answer_callback_query(call.id) + except: + pass + try: + bot.delete_message(call.from_user.id, call.message.id) + except: + pass + start(call) + +@bot.callback_query_handler(lambda q: q.data == "/agree") +def agreed(call): + user_lang = (call.from_user.language_code or "en-us").lower() + is_premium = premium.check_premium_user(call.from_user.id) + if not is_premium: + bot.edit_message_text( + text=f'{call.message.html_text}', + chat_id=call.from_user.id, + message_id=call.message.id, + parse_mode='HTML' + ) + premium.add_premium_user(call.from_user.id, DEMO) + try: + bot.answer_callback_query(call.id) + except: + pass + + values_btn = types.InlineKeyboardMarkup() + btn5 = types.InlineKeyboardButton( + '⭐️ 5', callback_data="5" + ) + btn10 = types.InlineKeyboardButton( + '⭐️ 10', callback_data="10" + ) + btn25 = types.InlineKeyboardButton( + '⭐️ 25', callback_data="25" + ) + btn50 = types.InlineKeyboardButton( + '⭐️ 50', callback_data="50" + ) + btn75 = types.InlineKeyboardButton( + '⭐️ 75', callback_data="75" + ) + btn100 = types.InlineKeyboardButton( + '⭐️ 100', callback_data="100" + ) + btn_cancel = types.InlineKeyboardButton( + i18n.t("bot.terms_cancel", locale=user_lang), callback_data="/disagree" + ) + values_btn.row(btn5, btn10) + values_btn.row(btn25, btn50) + values_btn.row(btn75, btn100) + values_btn.row(btn_cancel) + + bot.send_message( + call.from_user.id, + i18n.t("bot.premium_agreed", locale=user_lang).format(call.from_user.id, MULTIPLIER) + + '\n
⭐️ 50 ≈ US$ 0.99
', + reply_markup=values_btn, + parse_mode='HTML' + ) + +@bot.pre_checkout_query_handler(func=lambda query: True) +def checkout(pre_checkout_query): + bot.answer_pre_checkout_query( + pre_checkout_query.id, + ok=True, + error_message='Error. Try again later' + ) + +@bot.message_handler(content_types=['successful_payment']) +def got_payment(message): + payload = int(message.successful_payment.invoice_payload) + add_value = payload*MULTIPLIER + + is_premium = premium.check_premium_user(message.from_user.id) + + if is_premium: + saldo = int(is_premium[0]) + else: + saldo = DEMO + + premium.update_saldo_premium(message.from_user.id, saldo + add_value) + msg = ( + f'#Stars {message.from_user.id}\n' + + f'Valor: 🌟{payload}\n' + + '
' + + f'Envios: {add_value}\nSaldo: {saldo+add_value}\n\n' + + f'Telegram Payment ChargeID:\n' + + f'{message.successful_payment.telegram_payment_charge_id}' + + '
' + ) + bot.send_message( + ADMIN, + msg, + parse_mode='HTML' + ) + start(message) + @bot.message_handler(commands=["start"]) def start(message): user_lang = (message.from_user.language_code or "en-us").lower() - set_buttons(user_lang) + button, button2 = set_buttons(user_lang) set_menus(message.from_user.id, user_lang) data = select_user(db, table, message.from_user.id, "*") - - logger_info.info( - str(datetime.datetime.now()) - + " START: " - + str(message.from_user.id) - + " " - + str(message.message_id) - ) + is_premium = premium.check_premium_user(message.from_user.id) + if is_premium: + saldo = int(is_premium[0]) + else: + saldo = 0 try: aux1 = data[2] @@ -307,14 +551,31 @@ def start(message): ) bot.register_next_step_handler(msg, add_email) else: + msg = ( + i18n.t( + "bot.startolduser", + locale=user_lang + ).format( + str(u"\U0001F4E4"), + data[2], + str(u"\U0001F4E5"), + data[3] + ) + ) + if saldo: + msg = f'{msg}\n{i18n.t("bot.balance", locale=user_lang)}: {saldo}' + send_message( message.from_user.id, - i18n.t("bot.startolduser", locale=user_lang).format( - str(u"\U0001F4E4"), data[2], str(u"\U0001F4E5"), data[3] - ), + msg, parse_mode="HTML", reply_markup=button, ) + try: + if 'stars' in message.text: + cmd_premium(message) + except: + pass @bot.message_handler(commands=["email"]) def ask_email(message): @@ -326,7 +587,7 @@ def ask_email(message): def add_email(message): user_lang = (message.from_user.language_code or "en-us").lower() - set_buttons(user_lang) + button, button2 = set_buttons(user_lang) if message.content_type != "text": msg = send_message( @@ -502,7 +763,7 @@ def get_file(message): ) upd_user_file(db, table, message.from_user.id, file_url) - set_buttons(user_lang) + button, button2 = set_buttons(user_lang) if '.' not in file_name: send_message( message.chat.id, @@ -659,6 +920,35 @@ def generic_file(message): message.chat.id, i18n.t("bot.filenotfound", locale=user_lang) ) +@bot.callback_query_handler(func=lambda q:True) +def value_picked(call): + try: + bot.delete_message(call.from_user.id, call.message.id) + except: + pass + try: + bot.answer_callback_query(call.id) + except: + pass + user_lang = (call.from_user.language_code or "en-us").lower() + is_premium = premium.check_premium_user(call.from_user.id) + value = int(call.data) + bot.send_invoice( + call.from_user.id, + provider_token=None, + title=i18n.t("bot.payment_title", locale=user_lang).format(value*MULTIPLIER), + description=i18n.t("bot.payment_description", locale=user_lang).format(value, value*MULTIPLIER, call.from_user.id), + currency='XTR', + prices=[ + telebot.types.LabeledPrice( + label=f'{value}', + amount=value + ) + ], + start_parameter=f'star{value}', + invoice_payload=f'{value}' + ) + @server.route(f'/{TOKEN}', methods=['POST']) def getMessage(): json_string = request.get_data().decode('utf-8') @@ -667,4 +957,5 @@ def getMessage(): return "!", 200 if __name__ == "__main__": - server.run(host="0.0.0.0", port=443, ssl_context=(f'{CERT}', f'{PRIVKEY}')) + bot.infinity_polling() + #server.run(host="0.0.0.0", port=443, ssl_context=(f'{CERT}', f'{PRIVKEY}')) diff --git a/create_premium_table.py b/create_premium_table.py new file mode 100644 index 0000000..dc5f74a --- /dev/null +++ b/create_premium_table.py @@ -0,0 +1,51 @@ +import configparser +import datetime +import logging +import logging.handlers +import sqlite3 + +if __name__ == "__main__": + config = configparser.ConfigParser() + config.sections() + BOT_CONFIG_FILE = "kindle.conf" + config.read(BOT_CONFIG_FILE) + log_file = config["DEFAULT"]["logfile"] + db = config["SQLITE3"]["data_base"] + table = 'premium' + + LOG_INFO_FILE = log_file + logger_info = logging.getLogger("InfoLogger") + logger_info.setLevel(logging.DEBUG) + handler_info = logging.handlers.RotatingFileHandler( + LOG_INFO_FILE, maxBytes=10240, backupCount=5, encoding="utf-8" + ) + logger_info.addHandler(handler_info) + + conn = sqlite3.connect(db) + + cursor = conn.cursor() + + aux = ( + """CREATE TABLE {} ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + chatid TEXT NOT NULL, + saldo TEXT); + """ + ).format(table) + + aux2 = ('''SELECT * FROM "{}"''').format(table) + + try: + cursor.execute(aux) + logger_info.info( + str(datetime.datetime.now()) + " Tabela usuarios criada" + ) + except: + cursor.execute(aux2) + usuarios = cursor.fetchall() + for user in usuarios: + print(user) + pass + + conn.commit() + conn.close() diff --git a/i18n/bot.ar.yml b/i18n/bot.ar.yml index e9fc071..a63a414 100644 --- a/i18n/bot.ar.yml +++ b/i18n/bot.ar.yml @@ -105,3 +105,36 @@ ar: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 الإرساليات المباشرة المتبقية + terms_agree: ✅ موافق + terms_disagree: ❌ غير موافق + terms_cancel: ↪️ تخطي + premium_intro: | + @Send2KindleBot + + 🤯 ادفع بنجوم تيليجرام ⭐️ وأرسل دون التحقق من البريد الإلكتروني! + + أضف العنوان أدناه كـ بريد إلكتروني معتمد لإرسال الوثائق الشخصية في حسابك على أمازون. + {}@send.grf.xyz + + ❗️ طالما لديك رصيد، سيتم استخدام البريد الإلكتروني أعلاه بشكل إلزامي للإرسال. + + 🆓 بتأكيد أدناه، سيتم توفير رصيد {} إرساليات اختبارية. + + قم بشراء المزيد من الإرساليات التي لا تتطلب التأكيد بإرسال الأمر /stars. + + ⚠️ سيعمل البوت بشكل طبيعي وسيبقى مجانيًا عندما يكون الرصيد 0. ومع ذلك، سيعود للمطالبة بالتحقق في كل إرسال. + premium: | + لإضافة + premium_agreed: | + ❗️ تذكر الاحتفاظ بالبريد الإلكتروني أدناه كمعتمد: + {}@send.grf.xyz + + كل نجمة ستتيح لك إجراء {} إرساليات. + اختر أدناه الكمية التي ترغب في شرائها. + + إذا كنت لا ترغب في الشراء الآن، انقر على تخطي. + btn_stars: أرسل بدون تحقق + payment_title: "{} يرسل" + payment_description: "دفعة بقيمة {} نجوم، تعادل {} إرسال من العنوان {}@send.grf.xyz." + diff --git a/i18n/bot.bm-ms.yml b/i18n/bot.bm-ms.yml index 5d6b2a8..7a96381 100644 --- a/i18n/bot.bm-ms.yml +++ b/i18n/bot.bm-ms.yml @@ -95,3 +95,36 @@ bm-ms: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 Penghantaran langsung yang tinggal + terms_agree: ✅ Setuju + terms_disagree: ❌ Tidak Setuju + terms_cancel: ↪️ Langkau + premium_intro: | + @Send2KindleBot + + 🤯 Bayar dengan Bintang Telegram ⭐️ dan hantar tanpa pengesahan e-mel! + + Tambahkan alamat di bawah sebagai e-mel yang diluluskan untuk menghantar dokumen peribadi dalam akaun Amazon anda. + {}@send.grf.xyz + + ❗️ Semasa anda mempunyai baki, penghantaran akan menggunakan e-mel di atas secara mandatori. + + 🆓 Dengan mengesahkan di bawah, baki {} penghantaran ujian akan tersedia. + + Beli lebih banyak penghantaran tanpa pengesahan dengan menghantar perintah /stars. + + ⚠️ Bot akan berfungsi seperti biasa dan kekal percuma apabila baki adalah 0. Walau bagaimanapun, ia akan kembali memerlukan pengesahan untuk setiap penghantaran. + premium: | + Untuk menambah + premium_agreed: | + ❗️ Ingat untuk mengekalkan e-mel di bawah sebagai diluluskan: + {}@send.grf.xyz + + Setiap bintang akan membolehkan anda membuat {} penghantaran. + Pilih di bawah jumlah yang ingin anda beli. + + Jika anda tidak mahu membeli sekarang, klik Langkau. + btn_stars: Hantar tanpa pengesahan + payment_title: "{} menghantar" + payment_description: "Pembayaran bernilai {} bintang, bersamaan dengan {} penghantaran dar + diff --git a/i18n/bot.de.yml b/i18n/bot.de.yml index 7ebe231..b199ffc 100644 --- a/i18n/bot.de.yml +++ b/i18n/bot.de.yml @@ -105,3 +105,36 @@ de: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 Verbleibende Direktversendungen + terms_agree: ✅ Zustimmen + terms_disagree: ❌ Ablehnen + terms_cancel: ↪️ Überspringen + premium_intro: | + @Send2KindleBot + + 🤯 Zahlen Sie mit Telegram-Sternen ⭐️ und senden Sie ohne E-Mail-Verifizierung! + + Fügen Sie die untenstehende Adresse als genehmigte E-Mail für das Senden persönlicher Dokumente in Ihrem Amazon-Konto hinzu. + {}@send.grf.xyz + + ❗️ Solange Sie Guthaben haben, werden die Sendungen zwingend die oben genannte E-Mail-Adresse verwenden. + + 🆓 Durch die Bestätigung unten wird ein Guthaben von {} Testsenden verfügbar gemacht. + + Kaufen Sie weitere Sendungen ohne Bestätigung durch Eingabe des Befehls /stars. + + ⚠️ Der Bot wird normal funktionieren und kostenlos bleiben, wenn das Guthaben auf 0 ist. Es wird jedoch wieder eine Verifizierung für jede Sendung erforderlich sein. + premium: | + Hinzufügen + premium_agreed: | + ❗️ Denken Sie daran, die untenstehende E-Mail genehmigt zu lassen: + {}@send.grf.xyz + + Jeder Stern ermöglicht es Ihnen, {} Sendungen durchzuführen. + Wählen Sie unten die Menge aus, die Sie kaufen möchten. + + Wenn Sie jetzt nicht kaufen möchten, klicken Sie auf Überspringen. + btn_stars: Ohne Überprüfung senden + payment_title: "{} sendet" + payment_description: "Zahlung im Wert von {} Sternen, entsprechend {} Sendungen von der Adresse {}@send.grf.xyz." + diff --git a/i18n/bot.en-in.yml b/i18n/bot.en-in.yml index 8b1d13b..9837d46 100644 --- a/i18n/bot.en-in.yml +++ b/i18n/bot.en-in.yml @@ -102,3 +102,36 @@ hi: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 शेष डायरेक्ट सेंड्स + terms_agree: ✅ सहमत + terms_disagree: ❌ असहमत + terms_cancel: ↪️ छोड़ें + premium_intro: | + @Send2KindleBot + + 🤯 टेलीग्राम स्टार्स ⭐️ से भुगतान करें और ईमेल सत्यापन के बिना भेजें! + + अपने Amazon खाते में नीचे दिए गए पते को व्यक्तिगत दस्तावेज़ भेजने के लिए अनुमोदित ईमेल के रूप में जोड़ें। + {}@send.grf.xyz + + ❗️ जब तक आपके पास बैलेंस है, तब तक भेजने के लिए उपरोक्त ईमेल का अनिवार्य रूप से उपयोग किया जाएगा। + + 🆓 नीचे पुष्टि करने पर, {} परीक्षण भेजने का बैलेंस उपलब्ध कराया जाएगा। + + बिना पुष्टि के अधिक भेजने के लिए /stars कमांड भेजें। + + ⚠️ बैलेंस 0 होने पर बॉट सामान्य रूप से कार्य करेगा और निःशुल्क रहेगा। हालांकि, यह प्रत्येक भेजने के लिए पुनः सत्यापन की आवश्यकता होगी। + premium: | + जोड़ने के लिए + premium_agreed: | + ❗️ नीचे दिए गए ईमेल को अनुमोदित रखना याद रखें: + {}@send.grf.xyz + + प्रत्येक स्टार आपको {} भेजने की अनुमति देगा। + नीचे वह मात्रा चुनें जिसे आप खरीदना चाहते हैं। + + यदि आप अभी खरीदना नहीं चाहते हैं, तो छोड़ें पर क्लिक करें। + btn_stars: सत्यापन के बिना भेजें + payment_title: "{} भेजता है" + payment_description: "भुगतान {} सितारों के मूल्य का, जो {} भेजों के बराबर है, पते {}@send.grf.xyz से।" + diff --git a/i18n/bot.en-us.yml b/i18n/bot.en-us.yml index e4a8ed3..bf80ff4 100644 --- a/i18n/bot.en-us.yml +++ b/i18n/bot.en-us.yml @@ -105,3 +105,33 @@ en-us: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 Remaining direct sends + terms_agree: ✅ Agree + terms_disagree: ❌ Disagree + terms_cancel: ↪️ Skip + premium_intro: | + @Send2KindleBot + + 🤯 Pay with Telegram Stars ⭐️ and send without email verification! + + Add the address below as an approved email address for sending personal documents in your Amazon account. + {}@send.grf.xyz + + ❗️ As long as you have a balance, sends will necessarily use the email above. + + 🆓 By confirming below, you will be granted a balance of {} test sends. + + Purchase more sends that don't require confirmation by sending the command /stars. + + ⚠️ The bot will continue to work normally and remain free when the balance is 0. However, it will revert to requiring verification for each send. + premium_agreed: | + ❗️ Remember to keep the email below approved: + {}@send.grf.xyz + + Each star will allow you to make {} sends. + Choose below the amount you want to purchase. + + If you do not want to purchase now, click Skip. + btn_stars: Send without verification + payment_title: "{} sends" + payment_description: "Payment worth {} stars, corresponding to {} sends from the address {}@send.grf.xyz." diff --git a/i18n/bot.es.yml b/i18n/bot.es.yml index f223e91..529cd68 100644 --- a/i18n/bot.es.yml +++ b/i18n/bot.es.yml @@ -103,3 +103,37 @@ es: btn_help: Ayuda y Faq btn_info: Más información btn_donate: Donar + balance: 🌟 Envíos directos restantes + terms_agree: ✅ Aceptar + terms_disagree: ❌ No aceptar + terms_cancel: ↪️ Omitir + premium_intro: | + @Send2KindleBot + + 🤯 ¡Paga con Estrellas de Telegram ⭐️ y envía sin verificación de correo electrónico! + + Añade la dirección de abajo como correo electrónico aprobado para el envío de documentos personales en tu cuenta de Amazon. + {}@send.grf.xyz + + ❗️ Mientras tengas saldo, los envíos usarán obligatoriamente el correo electrónico de arriba. + + 🆓 Al confirmar abajo, estará disponible un saldo de {} envíos de prueba. + + Compra más envíos sin confirmación enviando el comando /stars. + + ⚠️ El bot funcionará normalmente y seguirá siendo gratuito cuando el saldo sea 0. Sin embargo, volverá a requerir verificación para cada envío. + premium: | + Para agregar + premium_agreed: | + ❗️ Recuerda mantener el correo electrónico de abajo aprobado: + {}@send.grf.xyz + + Cada estrella te permitirá realizar {} envíos. + Elige abajo la cantidad que deseas comprar. + + Si no deseas comprar ahora, haz clic en Omitir. + premium_quantity: "⭐️{}" + btn_stars: Enviar sin verificación + payment_title: "{} envíos" + payment_description: "Pago por valor de {} estrellas, correspondiente a {} envíos desde la dirección {}@send.grf.xyz." + diff --git a/i18n/bot.fr.yml b/i18n/bot.fr.yml index dcbcf01..aebd329 100644 --- a/i18n/bot.fr.yml +++ b/i18n/bot.fr.yml @@ -103,3 +103,36 @@ fr: btn_help: Help and FAQ btn_info: More info btn_donate: Faire un don + balance: 🌟 Envois directs restants + terms_agree: ✅ Accepter + terms_disagree: ❌ Refuser + terms_cancel: ↪️ Passer + premium_intro: | + @Send2KindleBot + + 🤯 Payer avec des Étoiles Telegram ⭐️ et envoyer sans vérification par e-mail ! + + Ajoutez l'adresse ci-dessous comme e-mail approuvé pour l'envoi de documents personnels dans votre compte Amazon. + {}@send.grf.xyz + + ❗️ Tant que vous avez du solde, les envois utiliseront obligatoirement l'e-mail ci-dessus. + + 🆓 En confirmant ci-dessous, un solde de {} envois de test sera disponible. + + Achetez plus d'envois sans confirmation en envoyant la commande /stars. + + ⚠️ Le bot fonctionnera normalement et restera gratuit lorsque le solde est à 0. Cependant, il exigera à nouveau une vérification pour chaque envoi. + premium: | + Ajouter + premium_agreed: | + ❗️ Souvenez-vous de garder l'e-mail ci-dessous approuvé : + {}@send.grf.xyz + + Chaque étoile vous permettra de faire {} envois. + Choisissez ci-dessous la quantité que vous souhaitez acheter. + + Si vous ne souhaitez pas acheter maintenant, cliquez sur Passer. + btn_stars: Envoyer sans vérification + payment_title: "{} envoie" + payment_description: "Paiement d'une valeur de {} étoiles, correspondant à {} envois depuis l'adresse {}@send.grf.xyz." + diff --git a/i18n/bot.hi.yml b/i18n/bot.hi.yml index 07d3916..16ccd13 100644 --- a/i18n/bot.hi.yml +++ b/i18n/bot.hi.yml @@ -102,3 +102,35 @@ hi: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 शेष डायरेक्ट सेंड्स + terms_agree: ✅ सहमत + terms_disagree: ❌ असहमत + terms_cancel: ↪️ छोड़ें + premium_intro: | + @Send2KindleBot + + 🤯 टेलीग्राम स्टार्स ⭐️ के साथ भुगतान करें और ईमेल सत्यापन के बिना भेजें! + + अपने Amazon खाते में नीचे दिए गए पते को व्यक्तिगत दस्तावेज़ भेजने के लिए अनुमोदित ईमेल के रूप में जोड़ें। + {}@send.grf.xyz + + ❗️ जब तक आपके पास बैलेंस है, तब तक भेजने के लिए उपरोक्त ईमेल का अनिवार्य रूप से उपयोग किया जाएगा। + + 🆓 नीचे पुष्टि करने पर, {} परीक्षण भेजने का बैलेंस उपलब्ध कराया जाएगा। + + बिना पुष्टि के अधिक भेजने के लिए /stars कमांड भेजें। + + ⚠️ बैलेंस 0 होने पर बॉट सामान्य रूप से कार्य करेगा और निःशुल्क रहेगा। हालांकि, यह प्रत्येक भेजने के लिए पुनः सत्यापन की आवश्यकता होगी। + premium: | + जोड़ने के लिए + premium_agreed: | + ❗️ नीचे दिए गए ईमेल को अनुमोदित रखना याद रखें: + {}@send.grf.xyz + + प्रत्येक स्टार आपको {} भेजने की अनुमति देगा। + नीचे वह मात्रा चुनें जिसे आप खरीदना चाहते हैं। + + यदि आप अभी खरीदना नहीं चाहते हैं, तो छोड़ें पर क्लिक करें। + btn_stars: सत्यापन के बिना भेजें + payment_title: "{} भेजता है" + payment_description: "{} सितारों के मूल्य का भुगतान, जो {} भेजने के बराबर है, पते {}@send.grf.xyz से।" diff --git a/i18n/bot.id.yml b/i18n/bot.id.yml index 0044bd9..eabbd07 100644 --- a/i18n/bot.id.yml +++ b/i18n/bot.id.yml @@ -103,3 +103,36 @@ id: btn_help: Help and FAQ btn_info: More info btn_donate: Donasi + balance: 🌟 Kiriman langsung yang tersisa + terms_agree: ✅ Setuju + terms_disagree: ❌ Tidak setuju + terms_cancel: ↪️ Lewati + premium_intro: | + @Send2KindleBot + + 🤯 Bayar dengan Bintang Telegram ⭐️ dan kirim tanpa verifikasi email! + + Tambahkan alamat di bawah ini sebagai email yang disetujui untuk mengirim dokumen pribadi di akun Amazon Anda. + {}@send.grf.xyz + + ❗️ Selama Anda memiliki saldo, kiriman akan wajib menggunakan email di atas. + + 🆓 Dengan mengonfirmasi di bawah ini, saldo {} kiriman uji akan tersedia. + + Beli lebih banyak kiriman tanpa konfirmasi dengan mengirimkan perintah /stars. + + ⚠️ Bot akan berfungsi normal dan tetap gratis saat saldo mencapai 0. Namun, bot akan memerlukan verifikasi untuk setiap kiriman lagi. + premium: | + Untuk menambah + premium_agreed: | + ❗️ Ingat untuk menjaga email di bawah ini tetap disetujui: + {}@send.grf.xyz + + Setiap bintang akan memungkinkan Anda melakukan {} kiriman. + Pilih di bawah jumlah yang ingin Anda beli. + + Jika Anda tidak ingin membeli sekarang, klik Lewati. + btn_stars: Kirim tanpa verifikasi + payment_title: "{} mengirim" + payment_description: "Pembayaran senilai {} bintang, setara dengan {} kiriman dari alamat {}@send.grf.xyz." + diff --git a/i18n/bot.it-it.yml b/i18n/bot.it-it.yml index 241a3e0..4500992 100644 --- a/i18n/bot.it-it.yml +++ b/i18n/bot.it-it.yml @@ -95,3 +95,36 @@ it-it: btn_help: Help and FAQ btn_info: More info btn_donate: Dona + balance: 🌟 Invii diretti rimanenti + terms_agree: ✅ Accetto + terms_disagree: ❌ Non accetto + terms_cancel: ↪️ Salta + premium_intro: | + @Send2KindleBot + + 🤯 Paga con Stelle di Telegram ⭐️ e invia senza verifica dell'email! + + Aggiungi l'indirizzo sottostante come email approvata per l'invio di documenti personali nel tuo account Amazon. + {}@send.grf.xyz + + ❗️ Finché hai un saldo, gli invii utilizzeranno obbligatoriamente l'email sopra. + + 🆓 Confermando qui sotto, sarà disponibile un saldo di {} invii di prova. + + Acquista altri invii senza conferma inviando il comando /stars. + + ⚠️ Il bot funzionerà normalmente e rimarrà gratuito quando il saldo sarà a 0. Tuttavia, richiederà nuovamente la verifica per ogni invio. + premium: | + Per aggiungere + premium_agreed: | + ❗️ Ricorda di mantenere l'email sottostante approvata: + {}@send.grf.xyz + + Ogni stella ti permetterà di fare {} invii. + Scegli qui sotto la quantità che desideri acquistare. + + Se non desideri acquistare ora, fai clic su Salta. + btn_stars: Invia senza verifica + payment_title: "{} invia" + payment_description: "Pagamento del valore di {} stelle, corrispondente a {} invii dall'indirizzo {}@send.grf.xyz." + diff --git a/i18n/bot.kr.yml b/i18n/bot.kr.yml index 6d1a340..5ae76b6 100644 --- a/i18n/bot.kr.yml +++ b/i18n/bot.kr.yml @@ -104,3 +104,35 @@ kr: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 남은 직접 전송 + terms_agree: ✅ 동의 + terms_disagree: ❌ 동의하지 않음 + terms_cancel: ↪️ 건너뛰기 + premium_intro: | + @Send2KindleBot + + 🤯 텔레그램 스타 ⭐️로 결제하고 이메일 확인 없이 전송하세요! + + 아래 주소를 Amazon 계정에서 개인 문서 전송을 위한 승인된 이메일로 추가하세요. + {}@send.grf.xyz + + ❗️ 잔액이 있는 동안에는 전송 시 위 이메일을 반드시 사용해야 합니다. + + 🆓 아래에서 확인하면 {} 테스트 전송 잔액이 제공됩니다. + + /stars 명령어를 보내어 확인 없이 더 많은 전송을 구매하세요. + + ⚠️ 잔액이 0일 때 봇은 정상적으로 작동하고 무료로 유지됩니다. 그러나 각 전송 시 다시 확인이 필요합니다. + premium: | + 추가하기 + premium_agreed: | + ❗️ 아래 이메일을 승인된 상태로 유지하세요: + {}@send.grf.xyz + + 각 스타는 {} 전송을 할 수 있게 해줍니다. + 구매할 수량을 아래에서 선택하세요. + + 지금 구매하고 싶지 않다면 건너뛰기를 클릭하세요. + btn_stars: 검증 없이 보내기 + payment_title: "{} 보내기" + payment_description: "{} 별의 가치가 있는 결제, 주소 {}@send.grf.xyz에서 {} 건의 전송에 해당합니다." diff --git a/i18n/bot.ml-in.yml b/i18n/bot.ml-in.yml index d61d4ae..75a52c3 100644 --- a/i18n/bot.ml-in.yml +++ b/i18n/bot.ml-in.yml @@ -104,3 +104,37 @@ ml-in: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 ബാക്കിയുള്ള നേരിട്ടുള്ള അയക്കലുകൾ + terms_agree: ✅ സമ്മതിക്കുക + terms_disagree: ❌ സമ്മതിക്കരുത് + terms_cancel: ↪️ ഒഴിവാക്കുക + premium_intro: | + @Send2KindleBot + + 🤯 ടെലഗ്രാം സ്റ്റാറുകൾ ⭐️ ഉപയോഗിച്ച് പണമടച്ചു, ഇമെയിൽ ശേഖരണത്തിന് വിട്ടുകൊടുക്കാതെ അയക്കൂ! + + നിങ്ങളുടെ ആമ존 അക്കൗണ്ടിൽ താഴെയുള്ള വിലാസം വ്യക്തിഗത രേഖകൾ അയക്കുന്നതിന് അംഗീകൃത ഇമെയിൽ എന്ന നിലയിൽ ചേർക്കുക. + {}@send.grf.xyz + + ❗️ ബാക്കി ഉണ്ടെങ്കിലും, അയക്കലുകൾ മൗലികമായും മേൽ പറയുന്ന ഇമെയിലിനായി മാത്രം ഉപയോഗിക്കും. + + 🆓 താഴെ സ്ഥിരീകരിക്കുന്നതിന്, {} പരീക്ഷണ അയക്കലുകൾ എന്ന ബാക്കി ലഭ്യമാകും. + + /stars കമാൻഡ് അയച്ചു സ്ഥിരീകരണം ഇല്ലാതെ കൂടുതൽ അയക്കലുകൾ വാങ്ങുക. + + ⚠️ ബാക്കി 0 ആകുമ്പോൾ ബോട്ട് സാധാരണയായി പ്രവർത്തിക്കും, അതിനാൽ നല്കുന്ന സേവനം സൗജന്യമായി തുടരുന്നതാണ്. എന്നാൽ, ഓരോ അയക്കലിനും വീണ്ടും സ്ഥിരീകരണം ആവശ്യമായിരിക്കും. + premium: | + ചേർക്കാൻ + premium_agreed: | + ❗️ താഴെ പറയുന്ന ഇമെയിൽ അംഗീകൃതമായി നിലനിർത്താൻ ഓർമ്മിക്കുക: + {}@send.grf.xyz + + ഓരോ സ്റ്റാർ {} അയക്കലുകൾ നടത്താൻ അനുവദിക്കും. + താഴെ നിങ്ങൾ വാങ്ങാൻ ആഗ്രഹിക്കുന്ന അളവ് തിരഞ്ഞെടുക്കുക. + + നിങ്ങൾ ഇപ്പോൾ വാങ്ങാൻ ആഗ്രഹിക്കുന്നില്ലെങ്കിൽ, ഒഴിവാക്കുക ക്ലിക്കുചെയ്യുക. + premium_quantity: "⭐️{}" + btn_stars: സ്ഥിരീകരണത്തിൽ ഇല്ലാതെ അയക്കുക + payment_title: "{} അയയ്ക്കുന്നു" + payment_description: "{} നക്ഷത്രങ്ങളുടെ മൂല്യം ഉള്ള പണമിടപാട്, {} അയച്ചതിന്റെ സമാനമായത് {}@send.grf.xyz എന്ന വിലാസത്തിൽ നിന്നുള്ള." + diff --git a/i18n/bot.nl.yml b/i18n/bot.nl.yml index 14dd36e..ca47518 100644 --- a/i18n/bot.nl.yml +++ b/i18n/bot.nl.yml @@ -103,3 +103,39 @@ nl: btn_help: Help and FAQ btn_info: More info btn_donate: Doneer + balance: 🌟 Overige directe verzendingen + terms_agree: ✅ Akkoord + terms_disagree: ❌ Niet akkoord + terms_cancel: ↪️ Overslaan + premium_intro: | + @Send2KindleBot + + 🤯 Betaal met Telegram-sterren ⭐️ en verstuur zonder e-mailverificatie! + + Voeg het onderstaande adres toe als goedgekeurd e-mailadres voor het verzenden van persoonlijke documenten in je Amazon-account. + {}@send.grf.xyz + + ❗️ Zolang je saldo hebt, zullen de zendingen verplicht het bovenstaande e-mailadres gebruiken. + + 🆓 Door hieronder te bevestigen, wordt een saldo van {} testverzendingen beschikbaar gesteld. + + Koop meer zendingen zonder bevestiging door het commando /stars te versturen. + + ⚠️ De bot zal normaal functioneren en gratis blijven wanneer het saldo op 0 staat. Het zal echter opnieuw verificatie vereisen voor elke verzending. + premium: | + Toevoegen + premium_agreed: | + ❗️ Vergeet niet om het onderstaande e-mailadres goedgekeurd te houden: + {}@send.grf.xyz + + Elke ster stelt je in staat om {} verzendingen te doen. + Kies hieronder de hoeveelheid die je wilt kopen. + + Als je nu niet wilt kopen, klik dan op Overslaan. + premium_quantity: "⭐️{}" + payment_description: | + {} verzendingen. + btn_stars: Verzenden zonder verificatie + payment_title: "{} stuurt" + payment_description: "Betaling ter waarde van {} sterren, wat overeenkomt met {} verzendingen van het adres {}@send.grf.xyz." + diff --git a/i18n/bot.pl b/i18n/bot.pl index 2c9a893..1d0d2be 100644 --- a/i18n/bot.pl +++ b/i18n/bot.pl @@ -91,3 +91,36 @@ btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 Pozostałe bezpośrednie wysyłki + terms_agree: ✅ Zgadzam się + terms_disagree: ❌ Nie zgadzam się + terms_cancel: ↪️ Pomiń + premium_intro: | + @Send2KindleBot + + 🤯 Zapłać za pomocą Gwiazdek Telegramu ⭐️ i wysyłaj bez weryfikacji e-maila! + + Dodaj poniższy adres jako zatwierdzony e-mail do wysyłania dokumentów osobistych w swoim koncie Amazon. + {}@send.grf.xyz + + ❗️ Dopóki masz saldo, wysyłki będą obowiązkowo używać powyższego e-maila. + + 🆓 Potwierdzając poniżej, zostanie udostępnione saldo {} testowych wysyłek. + + Kup więcej wysyłek bez potwierdzenia, wysyłając polecenie /stars. + + ⚠️ Bot będzie działać normalnie i pozostanie darmowy, gdy saldo wynosi 0. Jednak ponownie będzie wymagał weryfikacji dla każdej wysyłki. + premium: | + Aby dodać + premium_agreed: | + ❗️ Pamiętaj, aby utrzymać poniższy e-mail jako zatwierdzony: + {}@send.grf.xyz + + Każda gwiazdka pozwoli ci na {} wysyłek. + Wybierz poniżej ilość, którą chcesz kupić. + + Jeśli nie chcesz kupować teraz, kliknij Pomiń. + premium_quantity: "⭐️{}" + payment_description: | + {} wysyłek. + diff --git a/i18n/bot.pt-br.yml b/i18n/bot.pt-br.yml index 8ae1fd9..60a14ed 100644 --- a/i18n/bot.pt-br.yml +++ b/i18n/bot.pt-br.yml @@ -91,22 +91,53 @@ pt-br: Documentos enviados por link são limitados a 50MB (antes da compressão). Documentos enviados diretamente ao bot são limitados a 20MB. info: | - Bot em desenvolvimento constante! + Bot em desenvolvimento constante! 🤖 Caso tenha perguntas ou sugestões, por favor, fale comigo! - Twitter: @GabRF (http://twitter.com/GabRF) - Telegram: @GabrielRF - Website: http://grf.xyz/ + Telegram: @GabrielRF + Twitter: @GabRF (http://twitter.com/GabRF) + Website: http://grf.xyz/ - Colabore com o projeto: + Colabore com o projeto: 💰 PIX send2kindlebot@gabrf.com tos: | Clique no link abaixo e leia os Termos de Serviço: https://github.com/GabrielRF/Send2KindleBot/blob/master/TermsOfService.md btn_start: Iniciar e Ver emails + btn_stars: Comprar envios diretos btn_send: Enviar arquivos btn_tos: Termos de Uso btn_help: Ajuda e FAQ btn_info: Informações btn_donate: Envie um PIX + balance: 🌟 Envios diretos restantes + terms_agree: ✅ Aceito + terms_disagree: ❌ Não aceito + terms_cancel: ↪️ Pular + premium_intro: | + @Send2KindleBot + + 🤯 Pague com Telegram Stars ⭐️ e faça envios sem a verificação por e-mail! + + Adicione o endereço abaixo como e-mail aprovado para o envio de documentos pessoais em sua conta Amazon. + {}@send.grf.xyz + + ❗️ Enquanto houver saldo, obrigatoriamente os envios usarão o e-mail acima. + + 🆓 Ao confirmar abaixo, será disponibilizado um saldo de {} envios para testes. + + Compre mais envios que não exigem confirmação enviando o comando /stars. + + ⚠️ O bot funcionará normalmente e seguirá sem custo quando o saldo estiver em 0. Porém, voltará a exigir a verificação em cada envio. + premium_agreed: | + ❗️ Lembre-se de manter o e-mail abaixo como aprovado: + {}@send.grf.xyz + + Cada estrela permitirá que você faça {} envios. + Escolha abaixo a quantidade que deseja comprar. + + Caso não queira comprar agora, clique em Pular. + premium_quantity: "⭐️{}" + payment_title: "{} envios" + payment_description: "Pagamento no valor de {} stars, correspondendo a {} envios, tendo como origem o endereço {}@send.grf.xyz." diff --git a/i18n/bot.ru.yml b/i18n/bot.ru.yml index 67eb42d..1f03566 100644 --- a/i18n/bot.ru.yml +++ b/i18n/bot.ru.yml @@ -95,3 +95,36 @@ ru: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 Остаточные прямые отправления + terms_agree: ✅ Согласен + terms_disagree: ❌ Не согласен + terms_cancel: ↪️ Пропустить + premium_intro: | + @Send2KindleBot + + 🤯 Оплатите с помощью Звезд Telegram ⭐️ и отправляйте без проверки по электронной почте! + + Добавьте указанный ниже адрес в качестве одобренного e-mail для отправки личных документов в вашем аккаунте Amazon. + {}@send.grf.xyz + + ❗️ Пока у вас есть баланс, отправления будут обязательно использовать указанный выше e-mail. + + 🆓 Подтвердив ниже, вы получите баланс в {} тестовых отправлениях. + + Купите больше отправлений без подтверждения, отправив команду /stars. + + ⚠️ Бот будет работать нормально и оставаться бесплатным, когда баланс достигнет 0. Однако, он снова потребует проверку для каждой отправки. + premium: | + Добавить + premium_agreed: | + ❗️ Не забудьте сохранить указанный ниже e-mail как одобренный: + {}@send.grf.xyz + + Каждая звезда позволит вам сделать {} отправлений. + Выберите ниже количество, которое вы хотите купить. + + Если вы не хотите покупать сейчас, нажмите Пропустить. + btn_stars: Отправить без проверки + payment_title: "{} отправляет" + payment_description: "Платёж на сумму {} звёзд, соответствующий {} отправкам с адреса {}@send.grf.xyz." + diff --git a/i18n/bot.sv-se.yml b/i18n/bot.sv-se.yml index 4e047c1..8da9726 100644 --- a/i18n/bot.sv-se.yml +++ b/i18n/bot.sv-se.yml @@ -103,3 +103,36 @@ sv-se: btn_help: Help and FAQ btn_info: More info btn_donate: Donera + balance: 🌟 Återstående direkta skickningar + terms_agree: ✅ Godkänn + terms_disagree: ❌ Avvisa + terms_cancel: ↪️ Hoppa över + premium_intro: | + @Send2KindleBot + + 🤯 Betala med Telegram-stjärnor ⭐️ och skicka utan e-postverifiering! + + Lägg till adressen nedan som godkänd e-post för att skicka personliga dokument i ditt Amazon-konto. + {}@send.grf.xyz + + ❗️ Så länge du har saldo kommer sändningar obligatoriskt använda ovanstående e-post. + + 🆓 Genom att bekräfta nedan kommer ett saldo på {} testskickningar att göras tillgängligt. + + Köp fler skickningar utan bekräftelse genom att skicka kommandot /stars. + + ⚠️ Botten kommer att fungera normalt och förbli gratis när saldot är 0. Dock kommer den att kräva verifiering för varje sändning igen. + premium: | + För att lägga till + premium_agreed: | + ❗️ Kom ihåg att hålla e-posten nedan godkänd: + {}@send.grf.xyz + + Varje stjärna gör att du kan göra {} skickningar. + Välj nedan den mängd du vill köpa. + + Om du inte vill köpa nu, klicka på Hoppa över. + btn_stars: Skicka utan verifiering + payment_title: "{} skickar" + payment_description: "Betalning motsvarande {} stjärnor, vilket motsvarar {} skick från adressen {}@send.grf.xyz." + diff --git a/i18n/bot.tr-tr.yml b/i18n/bot.tr-tr.yml index 75a8e82..e56f098 100644 --- a/i18n/bot.tr-tr.yml +++ b/i18n/bot.tr-tr.yml @@ -95,3 +95,36 @@ tr-tr: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 Kalan doğrudan gönderimler + terms_agree: ✅ Kabul ediyorum + terms_disagree: ❌ Kabul etmiyorum + terms_cancel: ↪️ Atla + premium_intro: | + @Send2KindleBot + + 🤯 Telegram Yıldızları ⭐️ ile ödeme yapın ve e-posta doğrulaması olmadan gönderin! + + Amazon hesabınızda aşağıdaki adresi kişisel belgeleri göndermek için onaylı e-posta olarak ekleyin. + {}@send.grf.xyz + + ❗️ Bakiye olduğu sürece, gönderimler yukarıdaki e-posta adresini zorunlu olarak kullanacaktır. + + 🆓 Aşağıda onaylayarak {} test gönderimi bakiyesi kullanılabilir hale gelecektir. + + Onay olmadan daha fazla gönderim satın almak için /stars komutunu gönderin. + + ⚠️ Bakiye 0 olduğunda bot normal çalışacak ve ücretsiz olarak kalacaktır. Ancak, her gönderim için yeniden doğrulama gerekecektir. + premium: | + Eklemek için + premium_agreed: | + ❗️ Aşağıdaki e-postayı onaylı olarak tutmayı unutmayın: + {}@send.grf.xyz + + Her yıldız {} gönderim yapmanıza izin verecektir. + Aşağıdan satın almak istediğiniz miktarı seçin. + + Şu anda satın almak istemiyorsanız, Atla düğmesine tıklayın. + btn_stars: Doğrulama olmadan gönder + payment_title: "{} gönderir" + payment_description: "{} yıldız değerinde ödeme, {} gönderimi karşılar, adres {}@send.grf.xyz'den." + diff --git a/i18n/bot.uk.yml b/i18n/bot.uk.yml index 1ff7bb2..fa70dd7 100644 --- a/i18n/bot.uk.yml +++ b/i18n/bot.uk.yml @@ -103,3 +103,36 @@ btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 Залишкові прямі надсилання + terms_agree: ✅ Погоджуюсь + terms_disagree: ❌ Не погоджуюсь + terms_cancel: ↪️ Пропустити + premium_intro: | + @Send2KindleBot + + 🤯 Оплатіть за допомогою Зірок Telegram ⭐️ та надсилайте без перевірки електронної пошти! + + Додайте адресу нижче як затверджену електронну пошту для надсилання особистих документів у вашому обліковому записі Amazon. + {}@send.grf.xyz + + ❗️ Поки у вас є баланс, надсилання обов'язково використовуватимуть вищезгадану електронну пошту. + + 🆓 Підтвердивши нижче, ви отримаєте баланс {} тестових надсилань. + + Купуйте більше надсилань без підтвердження, надіславши команду /stars. + + ⚠️ Бот буде працювати нормально і залишиться безкоштовним, коли баланс стане 0. Проте, він знову вимагатиме перевірки для кожного надсилання. + premium: | + Додати + premium_agreed: | + ❗️ Не забудьте залишити вказану нижче електронну пошту затвердженою: + {}@send.grf.xyz + + Кожна зірка дозволяє вам зробити {} надсилань. + Виберіть нижче кількість, яку ви хочете купити. + + Якщо ви не хочете купувати зараз, натисніть Пропустити. + btn_stars: Надіслати без перевірки + payment_title: "{} надсилає" + payment_description: "Оплата на суму {} зірок, що відповідає {} відправленням з адреси {}@send.grf.xyz." + diff --git a/i18n/bot.ur-en.yml b/i18n/bot.ur-en.yml index 6194f63..2aa83e9 100644 --- a/i18n/bot.ur-en.yml +++ b/i18n/bot.ur-en.yml @@ -120,3 +120,36 @@ ur-en: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 باقی ماندہ براہ راست بھیجنے + terms_agree: ✅ اتفاق کرتا ہوں + terms_disagree: ❌ اتفاق نہیں کرتا + terms_cancel: ↪️ چھوڑ دیں + premium_intro: | + @Send2KindleBot + + 🤯 ٹیلیگرام اسٹارز ⭐️ کے ساتھ ادائیگی کریں اور ای میل تصدیق کے بغیر بھیجیں! + + اپنے Amazon اکاؤنٹ میں ذیل میں دیے گئے ایڈریس کو ذاتی دستاویزات بھیجنے کے لیے منظور شدہ ای میل کے طور پر شامل کریں۔ + {}@send.grf.xyz + + ❗️ جب تک آپ کے پاس بیلنس ہے، بھیجنے کے لیے اوپر دی گئی ای میل کا استعمال لازمی ہوگا. + + 🆓 نیچے تصدیق کرنے پر، {} ٹیسٹ بھیجنے کا بیلنس دستیاب ہوگا۔ + + تصدیق کے بغیر مزید بھیجنے کے لیے /stars کمانڈ بھیجیں۔ + + ⚠️ جب بیلنس 0 ہوگا، تو بوٹ معمول کے مطابق کام کرے گا اور مفت رہے گا۔ تاہم، ہر بھیجنے کے لیے دوبارہ تصدیق کی ضرورت ہوگی. + premium: | + شامل کرنے کے لیے + premium_agreed: | + ❗️ یاد رکھیں کہ نیچے دی گئی ای میل کو منظور شدہ حالت میں رکھیں: + {}@send.grf.xyz + + ہر ستارہ آپ کو {} بھیجنے کی اجازت دے گا. + نیچے وہ مقدار منتخب کریں جو آپ خریدنا چاہتے ہیں۔ + + اگر آپ ابھی خریدنا نہیں چاہتے تو چھوڑ دیں پر کلک کریں۔ + btn_stars: تصدیق کے بغیر بھیجیں + payment_title: "{} بھیجتا ہے" + payment_description: "{} ستاروں کی قیمت کی ادائیگی، جو {} بھیجنے کے مساوی ہے، پتہ {}@send.grf.xyz سے۔" + diff --git a/i18n/bot.zh-hant-tw.yml b/i18n/bot.zh-hant-tw.yml index 9bead4e..57dab4e 100644 --- a/i18n/bot.zh-hant-tw.yml +++ b/i18n/bot.zh-hant-tw.yml @@ -94,3 +94,36 @@ zh-hant-tw: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 剩余直接发送 + terms_agree: ✅ 同意 + terms_disagree: ❌ 不同意 + terms_cancel: ↪️ 跳过 + premium_intro: | + @Send2KindleBot + + 🤯 使用 Telegram 星星 ⭐️ 付款,无需电子邮件验证即可发送! + + 在您的 Amazon 账户中将以下地址添加为 用于发送个人文件的批准电子邮件。 + {}@send.grf.xyz + + ❗️ 只要您的余额足够,发送将强制使用上述电子邮件。 + + 🆓 确认以下信息后,将提供 {} 测试发送 的余额。 + + 通过发送 /stars 命令购买更多无需确认的发送。 + + ⚠️ 当余额为 0 时,机器人将正常运行并保持免费。但是,它将再次要求对每个发送进行验证。 + premium: | + 添加 + premium_agreed: | + ❗️ 请记得保持以下电子邮件为批准状态: + {}@send.grf.xyz + + 每颗星星允许您进行 {} 次发送。 + 请选择下方您希望购买的数量。 + + 如果您现在不想购买,请点击 跳过。 + btn_stars: 无需验证直接发送 + payment_title: "{} 发送" + payment_description: "价值 {} 颗星的支付,相当于来自地址 {}@send.grf.xyz 的 {} 次发送。" + diff --git a/i18n/bot.zh-hant-tw.yml_old b/i18n/bot.zh-hant-tw.yml_old index bfc571c..d5d47e5 100644 --- a/i18n/bot.zh-hant-tw.yml_old +++ b/i18n/bot.zh-hant-tw.yml_old @@ -87,3 +87,36 @@ zh-hant-tw: btn_help: Help and FAQ btn_info: More info btn_donate: Donate + balance: 🌟 剩餘直接發送 + terms_agree: ✅ 同意 + terms_disagree: ❌ 不同意 + terms_cancel: ↪️ 跳過 + premium_intro: | + @Send2KindleBot + + 🤯 使用 Telegram 星星 ⭐️ 付款,並且無需電子郵件驗證即可發送! + + 在您的 Amazon 帳戶中將以下地址添加為 用於發送個人文件的批准電子郵件。 + {}@send.grf.xyz + + ❗️ 只要您有餘額,發送將強制使用上述電子郵件。 + + 🆓 確認以下信息後,將提供 {} 測試發送 的餘額。 + + 通過發送 /stars 命令購買更多無需確認的發送。 + + ⚠️ 當餘額為 0 時,機器人將正常運作並保持免費。但它會再次要求對每次發送進行驗證。 + premium: | + 添加 + premium_agreed: | + ❗️ 請記住保持以下電子郵件為批准狀態: + {}@send.grf.xyz + + 每顆星星允許您進行 {} 次發送。 + 選擇下方您希望購買的數量。 + + 如果您現在不想購買,請點擊 跳過。 + btn_stars: 無需驗證直接發送 + payment_title: "{} 發送" + payment_description: "價值 {} 顆星的支付,相當於來自地址 {}@send.grf.xyz 的 {} 次發送。" + diff --git a/kindle.conf_sample b/kindle.conf_sample index 3bbf14b..e5122cb 100644 --- a/kindle.conf_sample +++ b/kindle.conf_sample @@ -1,17 +1,20 @@ [DEFAULT] -# Bot token. Get it talking to @BotFather. -TOKEN = -# Log path. +TOKEN = +CERT = +PRIVKEY logfile = /var/log/Send2KindleBot/bot.log -# Users blocked. -BLOCKED = +MULTIPLIER=2 +DEMO=3 +ADMIN=9083329 +BLOCKED = [SQLITE3] -# Database path. -data_base = /usr/local/bin/Send2KindleBot/kindle.db -# Table name. +data_base = table = usuarios -[SENTRY] -# Sentry url. -url = +[RABBITMQ] +CONNECTION_STRING = + +[TELEGRAM] +DESTINATION = +TOPIC = diff --git a/premiumfunctions.py b/premiumfunctions.py new file mode 100644 index 0000000..a8bcf23 --- /dev/null +++ b/premiumfunctions.py @@ -0,0 +1,53 @@ +import configparser +import sqlite3 + +config = configparser.ConfigParser() +config.sections() +BOT_CONFIG_FILE = "kindle.conf" +config.read(BOT_CONFIG_FILE) +db = config["SQLITE3"]["data_base"] + +def check_premium_user(userid): + conn = sqlite3.connect(db) + cursor = conn.cursor() + aux = (f'SELECT saldo FROM "premium" WHERE chatid = {userid}') + cursor.execute(aux) + result = cursor.fetchone() + conn.commit() + conn.close() + return result + +def add_premium_user(userid, quantity): + conn = sqlite3.connect(db) + cursor = conn.cursor() + aux = (f'INSERT INTO "premium" (chatid, saldo) VALUES ({userid}, {quantity})') + cursor.execute(aux) + conn.commit() + conn.close() + +def update_saldo_premium(userid, saldo): + print(f'Atualizando {userid} com saldo {saldo}') + conn = sqlite3.connect(db) + cursor = conn.cursor() + aux = (f'UPDATE "premium" SET saldo = {saldo} WHERE chatid = {userid}') + cursor.execute(aux) + conn.commit() + conn.close() + +def delete_premium_user(userid): + conn = sqlite3.connect(db) + cursor = conn.cursor() + aux = (f'DELETE FROM "premium" WHERE chatid = {userid}') + cursor.execute(aux) + conn.commit() + conn.close() + +def get_premium_users(value): + conn = sqlite3.connect(db) + cursor = conn.cursor() + aux = (f'SELECT * FROM "premium" WHERE CAST(saldo as INTEGER) > {value} ORDER BY CAST(saldo as INTEGER) DESC') + cursor.execute(aux) + result = cursor.fetchall() + conn.commit() + conn.close() + return result diff --git a/send.py b/send.py index 8de02ed..b6180aa 100644 --- a/send.py +++ b/send.py @@ -14,6 +14,7 @@ import sys import telebot import urllib.request +import premiumfunctions as premium from ebooklib import epub from email import encoders from email.mime.base import MIMEBase @@ -132,14 +133,25 @@ def check_domain(email): def send_file(rbt, method, properties, data): rbt.basic_ack(delivery_tag=method.delivery_tag) data = json.loads(data) + msg = MIMEMultipart() try: bot.send_chat_action(data['user_id'], 'upload_document') except: pass - msg = MIMEMultipart() - msg["From"] = f"{data['from']}" + is_premium = premium.check_premium_user(data['user_id']) + + if is_premium: + saldo = int(is_premium[0]) + else: + saldo = 0 + + if saldo > 0: + msg["From"] = f'{data["user_id"]}@send.grf.xyz' + else: + msg["From"] = f"{data['from']}" + msg["To"] = f"{data['to']}" msg["Date"] = formatdate(localtime=True) msg["Subject"] = f"{data['subject']}" @@ -204,6 +216,8 @@ def send_file(rbt, method, properties, data): icon_x=u"\U0001F4EE", msg_a=i18n.t("bot.filesent", locale=data['lang']), ) + if saldo: + msg = f'{msg}\n{i18n.t("bot.balance", locale=data["lang"])}: {saldo - 1}' if 'pt-br' in data['lang']: try: anuncieaqui.send_message(TOKEN, data['user_id'], msg, random.choice(effects)) @@ -227,6 +241,8 @@ def send_file(rbt, method, properties, data): disable_web_page_preview=True, message_effect_id=random.choice(effects) ) + if saldo: + premium.update_saldo_premium(data['user_id'], saldo-1) if __name__ == "__main__": i18n.load_path.append("i18n")