-
Notifications
You must be signed in to change notification settings - Fork 3
Description
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
import random, time
Kullanıcı bakiyeleri ve isimlerini saklamak için sözlükler
users = {} # {user_id: bakiye}
user_names = {} # {user_id: isim}
bonus_times = {} # {user_id: son bonus zamanı}
Kullanıcı bakiyesini al
def get_balance(user_id):
return users.get(user_id, 0)
Bakiyeye ekle
def add_balance(user_id, amount):
users[user_id] = get_balance(user_id) + amount
Bakiyeden düş
def reduce_balance(user_id, amount):
if get_balance(user_id) >= amount:
users[user_id] -= amount
return True
return False
Yetersiz bakiye durumunda otomatik bonus ekle
def check_bonus(user_id):
if get_balance(user_id) <= 0:
users[user_id] = 5000
return True
return False
Kayıp mesajı ve bonus kontrolü
def loss_message(user_id, lost_amount):
if check_bonus(user_id):
return f"💀 Tüm paranı kaybettin ama 🎁 5.000 coin bonus eklendi! Yeni bakiyen: {get_balance(user_id)}"
return f"❌ Kaybettin... -{lost_amount}\nÜzülme, bir dahaki sefere şans seninle! 💪\n💳 Yeni bakiyen: {get_balance(user_id)}"
/start komutu
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_name = update.effective_user.first_name or "Anonim"
user_names[user_id] = user_name
if user_id not in users:
users[user_id] = 20000
await update.message.reply_text(
f"🎉 Şans Arenasına Hoş Geldin, {user_name}!\n🎁 20.000 coin hesabına eklendi!\n"
"🎲 /slot [miktar]\n🎯 /rulet [kırmızı/siyah] [miktar]\n⚡ /risk [miktar]\n🪙 /yazitura [miktar]\n"
"🎁 /gunlukbonus\n💳 /bakiye\n📖 /yardim\n💰 /zenginlik\n🆔 /id\n💸 /paragonder [ID] [miktar]"
)
else:
await update.message.reply_text(f"Hoş geldin tekrar, {user_name}! 🎰")
/bakiye komutu
async def bakiye(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_names[user_id] = update.effective_user.first_name or "Anonim"
await update.message.reply_text(f"💳 Bakiyen: {get_balance(user_id)}")
/slot komutu
async def slot(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_names[user_id] = update.effective_user.first_name or "Anonim"
if len(context.args) != 1 or not context.args[0].isdigit():
await update.message.reply_text("Kullanım: /slot [miktar]")
return
miktar = int(context.args[0])
if get_balance(user_id) < miktar:
add_balance(user_id, 5000)
await update.message.reply_text(f"⚠️ Yetersiz bakiye! 🎁 5.000 coin eklendi. Yeni bakiyen: {get_balance(user_id)}")
return
if random.random() < 0.7:
add_balance(user_id, miktar)
await update.message.reply_text(f"🎉 Şans senden yana! +{miktar}\n💳 Yeni bakiyen: {get_balance(user_id)}")
else:
reduce_balance(user_id, miktar)
await update.message.reply_text(loss_message(user_id, miktar))
/rulet komutu
async def rulet(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_names[user_id] = update.effective_user.first_name or "Anonim"
if len(context.args) != 2:
await update.message.reply_text("Kullanım: /rulet [kırmızı/siyah] [miktar]")
return
renk = context.args[0].lower()
miktar = int(context.args[1]) if context.args[1].isdigit() else 0
if get_balance(user_id) < miktar:
add_balance(user_id, 5000)
await update.message.reply_text(f"⚠️ Yetersiz bakiye! 🎁 5.000 coin eklendi. Yeni bakiyen: {get_balance(user_id)}")
return
if renk not in ["kırmızı", "siyah"] or miktar <= 0:
await update.message.reply_text("Geçerli bir renk ve miktar gir!")
return
secilen = random.choice(["kırmızı", "siyah"])
if random.random() < 0.7:
add_balance(user_id, miktar)
await update.message.reply_text(f"🎯 Tebrikler! {secilen} geldi, +{miktar}\n💳 Yeni bakiyen: {get_balance(user_id)}")
else:
reduce_balance(user_id, miktar)
await update.message.reply_text(loss_message(user_id, miktar))
/risk komutu
async def risk(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_names[user_id] = update.effective_user.first_name or "Anonim"
if len(context.args) != 1 or not context.args[0].isdigit():
await update.message.reply_text("Kullanım: /risk [miktar]")
return
miktar = int(context.args[0])
if get_balance(user_id) < miktar:
add_balance(user_id, 5000)
await update.message.reply_text(f"⚠️ Yetersiz bakiye! 🎁 5.000 coin eklendi. Yeni bakiyen: {get_balance(user_id)}")
return
if random.random() < 0.7:
add_balance(user_id, miktar*2)
await update.message.reply_text(f"⚡ Risk işe yaradı! {miktar*2} kazandın!\n💳 Yeni bakiyen: {get_balance(user_id)}")
else:
reduce_balance(user_id, miktar)
await update.message.reply_text(loss_message(user_id, miktar))
🪙 /yazitura komutu
async def yazitura(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_names[user_id] = update.effective_user.first_name or "Anonim"
if len(context.args) != 1 or not context.args[0].isdigit():
await update.message.reply_text("Kullanım: /yazitura [miktar]")
return
miktar = int(context.args[0])
if get_balance(user_id) < miktar:
add_balance(user_id, 5000)
await update.message.reply_text(f"⚠️ Yetersiz bakiye! 🎁 5.000 coin eklendi. Yeni bakiyen: {get_balance(user_id)}")
return
sonuc = random.choice(["yazı", "tura"])
if random.random() < 0.7:
kazanc = int(miktar * 1.5)
add_balance(user_id, kazanc)
await update.message.reply_text(f"🪙 {sonuc.upper()} geldi! +{kazanc} 💰\n💳 Yeni bakiyen: {get_balance(user_id)}")
else:
reduce_balance(user_id, miktar)
await update.message.reply_text(loss_message(user_id, miktar))
🎁 /gunlukbonus komutu
async def gunlukbonus(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_names[user_id] = update.effective_user.first_name or "Anonim"
now = time.time()
if user_id in bonus_times and now - bonus_times[user_id] < 86400:
kalan = int(86400 - (now - bonus_times[user_id]))
saat = kalan // 3600
dakika = (kalan % 3600) // 60
await update.message.reply_text(f"🕒 Günlük bonusunu zaten aldın!\nTekrar alabilmek için {saat} saat {dakika} dakika bekle.")
return
miktar = random.randint(1000, 5000)
add_balance(user_id, miktar)
bonus_times[user_id] = now
await update.message.reply_text(f"🎁 Günlük bonus: +{miktar} coin!\n💳 Yeni bakiyen: {get_balance(user_id)}")
/yardim komutu
async def yardim(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(
"🎰 Komut Listesi:\n"
"💰 /bakiye — Bakiyeni gösterir.\n"
"🎲 /slot [miktar] — Slot çevir.\n"
"🎯 /rulet [kırmızı/siyah] [miktar] — Renk seç.\n"
"⚡ /risk [miktar] — Risk al ve katla.\n"
"🪙 /yazitura [miktar] — Yazı tura oyna.\n"
"🎁 /gunlukbonus — Günlük rastgele bonus al.\n"
"💰 /zenginlik — En zengin 10 kişiyi gösterir.\n"
"🆔 /id — Kendi ID’ni gösterir.\n"
"💸 /paragonder [ID] [miktar] — Başkasına para gönder."
)
/zenginlik komutu
async def zenginlik(update: Update, context: ContextTypes.DEFAULT_TYPE):
if not users:
await update.message.reply_text("💸 Henüz hiç kimse yok!")
return
sorted_users = sorted(users.items(), key=lambda x: x[1], reverse=True)[:10]
mesaj = "🏆 En Zengin 10 Kişi:\n"
for i, (uid, bakiye) in enumerate(sorted_users, 1):
user_name = user_names.get(uid, "Anonim")
mesaj += f"{i}. {user_name} — {bakiye} coin\n"
await update.message.reply_text(mesaj)
/id komutu
async def id(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_names[user_id] = update.effective_user.first_name or "Anonim"
await update.message.reply_text(f"🆔 ID’n: {user_id}")
/paragonder komutu
async def paragonder(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_names[user_id] = update.effective_user.first_name or "Anonim"
if len(context.args) != 2 or not context.args[1].isdigit():
await update.message.reply_text("Kullanım: /paragonder [ID] [miktar]")
return
hedef_id = int(context.args[0])
miktar = int(context.args[1])
if get_balance(user_id) < miktar:
add_balance(user_id, 5000)
await update.message.reply_text(f"⚠️ Yetersiz bakiye! 🎁 5.000 coin eklendi. Yeni bakiyen: {get_balance(user_id)}")
return
if hedef_id not in users:
users[hedef_id] = 0
reduce_balance(user_id, miktar)
add_balance(hedef_id, miktar)
await update.message.reply_text(f"💸 {miktar} coin gönderildi! 💳 Yeni bakiyen: {get_balance(user_id)}")
Bot tokenini buraya yaz
TOKEN = "7894184329:AAHLGKqvuc20obdB2AFvZRcoHmmWEJCZZC8"
Botu başlat
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("bakiye", bakiye))
app.add_handler(CommandHandler("slot", slot))
app.add_handler(CommandHandler("rulet", rulet))
app.add_handler(CommandHandler("risk", risk))
app.add_handler(CommandHandler("yazitura", yazitura))
app.add_handler(CommandHandler("gunlukbonus", gunlukbonus))
app.add_handler(CommandHandler("yardim", yardim))
app.add_handler(CommandHandler("zenginlik", zenginlik))
app.add_handler(CommandHandler("id", id))
app.add_handler(CommandHandler("paragonder", paragonder))
print("🤖 Bot çalışıyor...")
app.run_polling(poll_interval=1, stop_signals=[])