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")