گاهی وقتها با خودتون فکر میکنید: “چقدر خوب میشد اگه یه ربات تلگرام داشتم که خیلی از کارهامو خودش انجام بده!”
خبر خوب اینه که نه تنها این کار ممکنه، بلکه خیلی هم سادهست! رباتهای تلگرام ابزارهای قدرتمندی هستن که میتونید ازشون برای مدیریت گروهها و کانالها، پاسخگویی خودکار به کاربران، و حتی اجرای ایدههای خلاقانه استفاده کنید.
در این مقاله، به شما نشون میدیم چطور ربات تلگرام خودتون رو روی یه سرور اوبونتو راهاندازی کنید. همینطور 34 ایده خلاقانه برای رباتهای تلگرام ارائه میکنیم که میتونید الهام بگیرید و بسازید. پس اگه دنبال یه پروژه جالب هستید، این مقاله مخصوص شماست!
ربات های سلف چیه؟
رباتهای سلف (Self-Bots) نوعی از رباتهای تلگرام هستند که به جای اجرا شدن با توکن یک ربات، از حساب کاربری واقعی یک فرد استفاده میکنند. این رباتها با کمک شماره تلفن و رمز عبور (یا کد تأیید دو مرحلهای) به تلگرام متصل میشوند و به جای یک ربات معمولی، عملیات را از طرف خود حساب کاربری شخصی شما انجام میدهند.
ویژگیها و کاربردهای رباتهای سلف
- کنترل کامل حساب کاربری شخصی:
ربات سلف میتواند پیام بفرستد، پیامها را ویرایش یا حذف کند، فایل ارسال کند، یا حتی در کانالها و گروهها فعالیت داشته باشد، درست مثل خودتان. - مدیریت سریعتر:
اگر در گروهها یا کانالهای زیادی فعالیت دارید، ربات سلف میتواند کارهایی مثل حذف پیامهای قدیمی، پین کردن پیامها، یا پاسخ خودکار به پیامها را برایتان انجام دهد. - خودکارسازی وظایف روزانه:
به عنوان مثال، ربات میتواند پیامهای روزانه خاصی را به گروهها یا دوستانتان ارسال کند یا حتی یادآوریهای شخصی برای شما تنظیم کند. - بدون نیاز به مجوز اضافی:
چون ربات از حساب کاربری شما استفاده میکند، نیازی به گرفتن دسترسی یا اضافه شدن به گروهها و کانالها به صورت ربات جداگانه نیست.
توصیه نهایی
استفاده از رباتهای سلف بیشتر برای اهداف شخصی و در محیطهای محدود توصیه میشود. برای پروژههای حرفهای یا عمومی، بهتر است از رباتهای رسمی تلگرام استفاده کنید که ایمنتر و مطابق قوانین تلگرام هستند.
چرا استفاده از ربات سلف ریسک دارد؟
رباتهای سلف برخلاف رباتهای رسمی تلگرام (که با Bot Token کار میکنند)، از API و حساب کاربری شما استفاده میکنند. به همین دلیل، تلگرام استفاده از رباتهای سلف را برخلاف قوانین خود میداند.
ریسکها شامل:
- مسدود شدن حساب کاربری:
اگر تلگرام متوجه شود که از ربات سلف استفاده میکنید، ممکن است حساب شما را به طور موقت یا دائم مسدود کند. - امنیت پایین:
شما باید اطلاعات حساب خود (مثل شماره تلفن یا کد تأیید) را در اختیار ربات قرار دهید. اگر کد شما به دست افراد ناشناس برسد، ممکن است حسابتان هک شود.
پس سعی کنید از یک اکانت فرعی برای تست و استفاده ربات سلفتون استفاده کنید یا برای پروژه های تجاری تر مستقیما برید سراغ ربات های تلگرام که با botfather ساخته میشن.
🚀 شروع کار: پیشنیازها و نصب ابزارها
برای ساخت ربات تلگرام روی سرور اوبونتو، شما به چند ابزار اصلی نیاز دارید:
- سرور اوبونتو: با دسترسی SSH
- Python 3.8 یا جدیدتر: زبان برنامهنویسی برای اجرای ربات
- کتابخانه Telethon: برای ارتباط راحت با API تلگرام
- Bot Token یا شماره تلفن: برای اتصال به تلگرام
حالا همه این موارد رو با یک دستور نصب میکنیم! وارد سرورتون بشید و دستور زیر رو اجرا کنید:
sudo apt update && sudo apt upgrade -y && sudo apt install -y python3 python3-pip git && pip3 install telethon
این دستور سرور رو بهروز میکنه، پایتون و ابزارهای موردنیاز رو نصب میکنه، و کتابخانه Telethon رو هم آماده استفاده میکنه. حالا میتونید ربات تلگرامتون رو بنویسید و اجرا کنید!
🛠️ ایجاد و اجرای کد ربات تلگرام
- یه فایل پایتون جدید ایجاد کنید. بهعنوان مثال:
nano my_telegram_bot.py
- کد رباتتون رو توی فایل وارد کنید (در ادامه نمونه کد رو معرفی میکنیم).
- برای اجرای ربات، از دستور زیر استفاده کنید:
python3 my_telegram_bot.py
💡 نکته: اگه میخواید ربات برای مدت طولانی روی سرور فعال بمونه، از ابزارهایی مثل screen یا tmux استفاده کنید:
screen -S telegram_bot
python3 my_telegram_bot.py
با این کار، حتی اگه از سرور خارج بشید، ربات شما همچنان به کارش ادامه میده.
در ادامه، برای هر یک از ایدههای مطرح شده، نمونه کدی آورده شده است. این کدها با استفاده از کتابخانه Telethon نوشته شدهاند و برای اجرا در سرور اوبونتو مناسب هستند.
1. ربات ارسال پیام انبوه به کاربران
این کد پیام مشخصی را به لیست کاربران موجود در یک فایل ارسال میکند:
from telethon import TelegramClient, functions
import time
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
message = "سلام! این یک پیام تستی از ربات تلگرام است."
users_file = 'users.txt'
client = TelegramClient('mass_message_bot', api_id, api_hash)
async def send_messages():
async with client:
with open(users_file, 'r') as file:
users = file.readlines()
for user in users:
try:
await client.send_message(user.strip(), message)
print(f"پیام با موفقیت به {user.strip()} ارسال شد.")
time.sleep(2) # جلوگیری از محدودیت API
except Exception as e:
print(f"خطا در ارسال پیام به {user.strip()}: {e}")
client.loop.run_until_complete(send_messages())
2. ربات انتقال کاربران بین گروهها
این کد اعضای یک گروه را گرفته و به گروه دیگر اضافه میکند:
from telethon import TelegramClient, functions, types
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
source_group = 'SOURCE_GROUP_ID_OR_USERNAME'
target_group = 'TARGET_GROUP_ID_OR_USERNAME'
client = TelegramClient('transfer_members', api_id, api_hash)
async def transfer_members():
async with client:
source = await client.get_entity(source_group)
target = await client.get_entity(target_group)
async for user in client.iter_participants(source):
try:
await client(functions.channels.InviteToChannelRequest(
channel=target,
users=[user.id]
))
print(f"{user.first_name} به گروه جدید اضافه شد.")
except Exception as e:
print(f"خطا در اضافه کردن {user.first_name}: {e}")
client.loop.run_until_complete(transfer_members())
3. ربات خروج از کانالهای خاص
این ربات از کانالهایی که در یک فایل لیست شدهاند خارج میشود:
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
channels_file = 'channels_to_leave.txt'
client = TelegramClient('leave_channels_bot', api_id, api_hash)
async def leave_channels():
async with client:
with open(channels_file, 'r') as file:
channels = file.readlines()
for channel in channels:
try:
entity = await client.get_entity(channel.strip())
await client.leave_channel(entity)
print(f"از کانال {channel.strip()} خارج شد.")
except Exception as e:
print(f"خطا در خروج از کانال {channel.strip()}: {e}")
client.loop.run_until_complete(leave_channels())
4. ربات خوشآمدگویی
این کد پیام خوشآمدگویی را به اعضای جدید گروه ارسال میکند:
from telethon import TelegramClient, events
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('welcome_bot', api_id, api_hash)
@client.on(events.ChatAction)
async def welcome(event):
if event.user_added or event.user_joined:
for user in event.users:
await client.send_message(
group_id,
f"خوش آمدی {user.first_name} به گروه ما!"
)
client.start()
client.run_until_disconnected()
5. ربات ضد لینک و اسپم
این کد پیامهای حاوی لینک را حذف میکند:
from telethon import TelegramClient, events
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('anti_spam_bot', api_id, api_hash)
@client.on(events.NewMessage(chats=group_id))
async def delete_links(event):
if 'http' in event.message.text or 'www' in event.message.text:
await event.delete()
print("پیام حاوی لینک حذف شد.")
client.start()
client.run_until_disconnected()
6. ربات فوروارد پیامها
این کد پیامهای یک کانال را به کانال دیگر ارسال میکند:
from telethon import TelegramClient, events
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
source_channel = 'SOURCE_CHANNEL_ID_OR_USERNAME'
target_channel = 'TARGET_CHANNEL_ID_OR_USERNAME'
client = TelegramClient('forward_bot', api_id, api_hash)
@client.on(events.NewMessage(chats=source_channel))
async def forward(event):
await event.message.forward_to(target_channel)
client.start()
client.run_until_disconnected()
7. ربات زمانبندی پیامها
این کد پیامها را در زمان مشخص ارسال میکند:
import asyncio
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
message = "این یک پیام زمانبندی شده است."
client = TelegramClient('scheduled_bot', api_id, api_hash)
async def send_scheduled_message():
while True:
await client.send_message(group_id, message)
print("پیام ارسال شد.")
await asyncio.sleep(3600) # ارسال هر یک ساعت
client.loop.run_until_complete(send_scheduled_message())
8. ربات نظرسنجی
این کد یک نظرسنجی ساده ایجاد میکند:
from telethon import TelegramClient, functions
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
question = "کدام زبان برنامهنویسی بهتر است؟"
options = ["Python", "JavaScript", "C++", "Java"]
client = TelegramClient('poll_bot', api_id, api_hash)
async def create_poll():
async with client:
await client(functions.messages.SendPollRequest(
peer=group_id,
question=question,
options=[option.encode('utf-8') for option in options],
is_quiz=False
))
print("نظرسنجی ارسال شد.")
client.loop.run_until_complete(create_poll())
9. ربات پاسخ خودکار
این ربات به پیامهای خاص پاسخ خودکار میدهد.
from telethon import TelegramClient, events
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
client = TelegramClient('auto_reply_bot', api_id, api_hash)
@client.on(events.NewMessage(pattern='سلام'))
async def handler(event):
await event.reply('سلام! چطور میتونم کمکتون کنم؟')
client.start()
client.run_until_disconnected()
10. ربات حذف پیامها بعد از مدتی
این ربات پیامهای جدید را بعد از مدت مشخصی حذف میکند.
import asyncio
from telethon import TelegramClient, events
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
delete_after = 30 # زمان حذف پیام (به ثانیه)
client = TelegramClient('delete_messages_bot', api_id, api_hash)
@client.on(events.NewMessage(chats=group_id))
async def delete_message(event):
await asyncio.sleep(delete_after)
await event.delete()
print("پیام حذف شد.")
client.start()
client.run_until_disconnected()
11. ربات استخراج اعضای گروه و ذخیره در فایل
این کد اعضای گروه را استخراج کرده و در فایل ذخیره میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
output_file = 'members.txt'
client = TelegramClient('extract_members_bot', api_id, api_hash)
async def save_members():
async with client:
with open(output_file, 'w', encoding='utf-8') as file:
async for member in client.iter_participants(group_id):
file.write(f"{member.id}, {member.first_name}, {member.username}\n")
print(f"اعضا در فایل {output_file} ذخیره شدند.")
client.loop.run_until_complete(save_members())
12. ربات ارسال فایل به گروه
این ربات فایل مشخصی را به گروه ارسال میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
file_path = 'example.pdf'
client = TelegramClient('send_file_bot', api_id, api_hash)
async def send_file():
async with client:
await client.send_file(group_id, file_path)
print("فایل ارسال شد.")
client.loop.run_until_complete(send_file())
13. ربات ارسال پیام شخصی به اعضای گروه
این ربات به اعضای گروه پیام شخصی ارسال میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
message = "سلام! این یک پیام خصوصی است."
client = TelegramClient('dm_group_members_bot', api_id, api_hash)
async def dm_members():
async with client:
async for member in client.iter_participants(group_id):
try:
await client.send_message(member.id, message)
print(f"پیام ارسال شد به: {member.first_name}")
except Exception as e:
print(f"خطا برای {member.first_name}: {e}")
client.loop.run_until_complete(dm_members())
14. ربات تشخیص لینک و گزارش آن
این کد پیامهای حاوی لینک را به ادمین گزارش میدهد.
from telethon import TelegramClient, events
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
admin_id = 'ADMIN_USER_ID'
client = TelegramClient('link_report_bot', api_id, api_hash)
@client.on(events.NewMessage(chats=group_id))
async def report_links(event):
if 'http' in event.message.text:
await client.send_message(admin_id, f"پیام مشکوک: {event.message.text}")
client.start()
client.run_until_disconnected()
15. ربات انتقال پیامها از گروهی به گروه دیگر
این ربات پیامهای یک گروه را به گروه دیگری ارسال میکند.
from telethon import TelegramClient, events
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
source_group = 'SOURCE_GROUP_ID_OR_USERNAME'
target_group = 'TARGET_GROUP_ID_OR_USERNAME'
client = TelegramClient('message_transfer_bot', api_id, api_hash)
@client.on(events.NewMessage(chats=source_group))
async def transfer_message(event):
await client.send_message(target_group, event.message.text)
client.start()
client.run_until_disconnected()
16. ربات جمعآوری پیامهای پینشده
این ربات پیامهای پینشده را جمعآوری و در فایل ذخیره میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
output_file = 'pinned_messages.txt'
client = TelegramClient('pinned_messages_bot', api_id, api_hash)
async def save_pinned():
async with client:
with open(output_file, 'w', encoding='utf-8') as file:
async for message in client.iter_messages(group_id, pinned_only=True):
file.write(f"{message.text}\n")
print(f"پیامهای پینشده ذخیره شدند.")
client.loop.run_until_complete(save_pinned())
17. ربات ارسال عکس از آدرس URL
این کد تصویری را از یک URL دانلود کرده و به گروه ارسال میکند.
import requests
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
image_url = 'IMAGE_URL'
client = TelegramClient('send_image_bot', api_id, api_hash)
async def send_image():
response = requests.get(image_url)
with open('temp_image.jpg', 'wb') as file:
file.write(response.content)
async with client:
await client.send_file(group_id, 'temp_image.jpg')
print("تصویر ارسال شد.")
client.loop.run_until_complete(send_image())
18. ربات حذف اعضای غیرفعال از گروه
این ربات اعضایی را که مدتی در گروه فعال نبودهاند شناسایی کرده و حذف میکند.
from telethon import TelegramClient
from datetime import datetime, timedelta
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
inactive_days = 30 # تعداد روزهایی که کاربر غیر فعال بوده است
client = TelegramClient('remove_inactive_users_bot', api_id, api_hash)
async def remove_inactive_users():
async with client:
cutoff_date = datetime.now() - timedelta(days=inactive_days)
async for member in client.iter_participants(group_id):
if member.status and hasattr(member.status, 'was_online') and member.status.was_online < cutoff_date:
try:
await client.kick_participant(group_id, member.id)
print(f"کاربر {member.first_name} حذف شد.")
except Exception as e:
print(f"خطا در حذف {member.first_name}: {e}")
client.loop.run_until_complete(remove_inactive_users())
19. ربات ارسال پیام تصادفی از لیست به گروه
این ربات پیامهای تصادفی از یک فایل متنی را به گروه ارسال میکند.
import random
from telethon import TelegramClient
import asyncio
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
message_file = 'messages.txt'
client = TelegramClient('random_message_bot', api_id, api_hash)
async def send_random_message():
async with client:
with open(message_file, 'r', encoding='utf-8') as file:
messages = file.readlines()
while True:
message = random.choice(messages).strip()
await client.send_message(group_id, message)
print(f"پیام ارسال شد: {message}")
await asyncio.sleep(3600) # ارسال پیام هر ساعت
client.loop.run_until_complete(send_random_message())
20. ربات ترک کردن خودکار کانالهای مشخص
این ربات از کانالهای خاصی که نام آنها در یک فایل مشخص است لفت میدهد.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
channels_file = 'channels_to_leave.txt'
client = TelegramClient('auto_leave_channels_bot', api_id, api_hash)
async def leave_channels():
async with client:
with open(channels_file, 'r') as file:
channels = file.read().splitlines()
for channel in channels:
try:
await client(LeaveChannelRequest(channel))
print(f"از کانال {channel} خارج شدیم.")
except Exception as e:
print(f"خطا برای کانال {channel}: {e}")
client.loop.run_until_complete(leave_channels())
21. ربات گزارش فعالیت کاربران گروه به ادمین
این ربات گزارشی از تعداد پیامهای ارسالشده توسط کاربران گروه را به ادمین ارسال میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
admin_id = 'ADMIN_USER_ID'
client = TelegramClient('activity_report_bot', api_id, api_hash)
async def generate_report():
async with client:
user_activity = {}
async for message in client.iter_messages(group_id):
user_id = message.sender_id
user_activity[user_id] = user_activity.get(user_id, 0) + 1
report = "گزارش فعالیت کاربران:\n"
for user_id, count in user_activity.items():
report += f"کاربر {user_id}: {count} پیام\n"
await client.send_message(admin_id, report)
print("گزارش ارسال شد.")
client.loop.run_until_complete(generate_report())
22. ربات ارسال پیام یادآوری
این ربات در زمانهای مشخص پیام یادآوری به گروه ارسال میکند.
from telethon import TelegramClient
import asyncio
from datetime import datetime
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
reminders = [
{"time": "09:00", "message": "صبح بخیر! وقت شروع کار."},
{"time": "13:00", "message": "ناهار یادت نره!"},
{"time": "18:00", "message": "وقت استراحت عصرانه است."}
]
client = TelegramClient('reminder_bot', api_id, api_hash)
async def send_reminders():
async with client:
while True:
now = datetime.now().strftime("%H:%M")
for reminder in reminders:
if reminder["time"] == now:
await client.send_message(group_id, reminder["message"])
print(f"یادآوری ارسال شد: {reminder['message']}")
await asyncio.sleep(60) # چک کردن هر دقیقه
client.loop.run_until_complete(send_reminders())
23. ربات ارسال پیام روزانه به گروه
این ربات هر روز یک پیام مشخص را به گروه ارسال میکند.
from telethon import TelegramClient
import asyncio
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
daily_message = "پیام روزانه شما اینجاست! امیدوارم روز خوبی داشته باشید. 🌞"
client = TelegramClient('daily_message_bot', api_id, api_hash)
async def send_daily_message():
async with client:
while True:
await client.send_message(group_id, daily_message)
print("پیام روزانه ارسال شد.")
await asyncio.sleep(86400) # ارسال هر 24 ساعت
client.loop.run_until_complete(send_daily_message())
24. ربات نمایش آمار گروه
این ربات تعداد کاربران، پیامها و سایر اطلاعات گروه را در پاسخ به یک فرمان نمایش میدهد.
from telethon import TelegramClient, events
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('group_stats_bot', api_id, api_hash)
@client.on(events.NewMessage(pattern='/stats'))
async def send_stats(event):
if event.chat_id == group_id:
member_count = await client.get_participants(group_id).total
message_count = 0
async for _ in client.iter_messages(group_id):
message_count += 1
await event.reply(f"👥 تعداد اعضا: {member_count}\n💬 تعداد پیامها: {message_count}")
client.start()
client.run_until_disconnected()
25. ربات زمانبندی ارسال پیام
این ربات به شما امکان میدهد پیامهای زمانبندیشده را در گروه یا کانال ارسال کنید.
from telethon import TelegramClient
import asyncio
from datetime import datetime, timedelta
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
message = "این پیام زمانبندی شده است."
client = TelegramClient('schedule_message_bot', api_id, api_hash)
async def schedule_message():
async with client:
target_time = datetime.now() + timedelta(minutes=1) # تنظیم زمان برای 1 دقیقه بعد
while True:
now = datetime.now()
if now >= target_time:
await client.send_message(group_id, message)
print("پیام زمانبندی شده ارسال شد.")
break
await asyncio.sleep(10) # بررسی هر 10 ثانیه
client.loop.run_until_complete(schedule_message())
26. ربات بررسی آنلاین بودن کاربران
این ربات وضعیت آنلاین بودن کاربران گروه را بررسی میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('online_status_bot', api_id, api_hash)
async def check_online_users():
async with client:
async for user in client.iter_participants(group_id):
if user.status and hasattr(user.status, 'was_online'):
print(f"{user.first_name} آخرین آنلاین: {user.status.was_online}")
elif user.status:
print(f"{user.first_name} آنلاین است!")
client.loop.run_until_complete(check_online_users())
27. ربات ترجمه پیامها در گروه
این ربات پیامهای ارسالشده را ترجمه میکند.
from telethon import TelegramClient, events
from googletrans import Translator
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('translate_bot', api_id, api_hash)
translator = Translator()
@client.on(events.NewMessage(chats=group_id))
async def translate_message(event):
translated = translator.translate(event.message.message, dest='en').text
await event.reply(f"ترجمه: {translated}")
client.start()
client.run_until_disconnected()
28. ربات حذف پیامهای قدیمی گروه
این ربات پیامهایی که بیشتر از یک هفته قدمت دارند را حذف میکند.
from telethon import TelegramClient
from datetime import datetime, timedelta
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('delete_old_messages_bot', api_id, api_hash)
async def delete_old_messages():
async with client:
cutoff_date = datetime.now() - timedelta(days=7)
async for message in client.iter_messages(group_id):
if message.date < cutoff_date:
await message.delete()
print(f"پیام قدیمی حذف شد: {message.id}")
client.loop.run_until_complete(delete_old_messages())
29. ربات مدیریت کانالهای متصلشده
این ربات وضعیت و تعداد اعضای کانالهای متصلشده را گزارش میدهد.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
client = TelegramClient('channel_manager_bot', api_id, api_hash)
async def get_channel_stats():
async with client:
async for dialog in client.iter_dialogs():
if dialog.is_channel:
channel = dialog.entity
print(f"📢 کانال: {channel.title} - تعداد اعضا: {channel.participants_count}")
client.loop.run_until_complete(get_channel_stats())
30. ربات خاموش و روشن کردن گروه
این ربات امکان ارسال پیام در گروه را بر اساس زمان فعال یا غیرفعال میکند.
from telethon import TelegramClient, functions
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('mute_group_bot', api_id, api_hash)
async def mute_group():
async with client:
await client(functions.messages.EditChatDefaultBannedRightsRequest(
group_id,
banned_rights=types.ChatBannedRights(until_date=None, send_messages=True)
))
print("گروه بیصدا شد.")
client.loop.run_until_complete(mute_group())
31. ربات ذخیره اطلاعات کاربران گروه
این ربات نام، نام کاربری و شناسه کاربران گروه را در فایل ذخیره میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('user_data_logger_bot', api_id, api_hash)
async def save_user_data():
async with client:
with open('user_data.txt', 'w', encoding='utf-8') as file:
async for user in client.iter_participants(group_id):
file.write(f"{user.id}, {user.first_name}, {user.username}\n")
print(f"اطلاعات ذخیره شد: {user.first_name}")
client.loop.run_until_complete(save_user_data())
32. ربات گزارش کاربران بینام
این ربات لیستی از کاربران بدون نام کاربری ایجاد میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('anonymous_report_bot', api_id, api_hash)
async def report_anonymous_users():
async with client:
print("کاربران بدون نام کاربری:")
async for user in client.iter_participants(group_id):
if not user.username:
print(f"{user.id} - {user.first_name}")
client.loop.run_until_complete(report_anonymous_users())
33. ربات ارسال خودکار پست به کانالها
این ربات پیامهایی را در کانالهای مختلف ارسال میکند.
from telethon import TelegramClient
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
channel_ids = ['CHANNEL_1_ID', 'CHANNEL_2_ID']
message = "این یک پیام خودکار است."
client = TelegramClient('auto_post_bot', api_id, api_hash)
async def post_to_channels():
async with client:
for channel_id in channel_ids:
await client.send_message(channel_id, message)
print(f"پیام ارسال شد به کانال {channel_id}")
client.loop.run_until_complete(post_to_channels())
34. ربات تبدیل پیامهای صوتی به متن
این ربات پیامهای صوتی گروه را به متن تبدیل میکند.
from telethon import TelegramClient, events
from vosk import Model, KaldiRecognizer
import wave
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
group_id = 'GROUP_ID_OR_USERNAME'
client = TelegramClient('voice_to_text_bot', api_id, api_hash)
@client.on(events.NewMessage(chats=group_id))
async def voice_to_text(event):
if event.message.voice:
file_path = await client.download_media(event.message)
wf = wave.open(file_path, "rb")
model = Model("model")
rec = KaldiRecognizer(model, wf.getframerate())
text = ""
while True:
data = wf.readframes(4000)
if len(data) == 0:
break
if rec.AcceptWaveform(data):
text += rec.Result()
await event.reply(f"متن تبدیلشده: {text}")
client.start()
client.run_until_disconnected()
این ایدهها برای استفاده در پروژههای مختلف طراحی شدهاند و قابلیت گسترش نیز دارند. اگر ایده جدیدی دارید، در کامنتها با ما در میان بگذارید!
با توجه به اینکه تلگرام بیزنس در نسخه پریمیوم تلگرام الان میتونه به خوبی خیلی از کار هارو انجام بده تلگرام به شما api هایی هم ارائه میده که بتونید کنترل دقیق تری روی اکانتتون و بیزنس آنلاینتون در نسخه پریمیوم داشته باشید و ربات مخصوص تلگرام بیزنس داشته باشید. جهت خرید تلگرام پریمیوم میتونید به سایت موبو امبی مراجعه کنید همچنین نت کلیک به شما خدمات طراحی ربات اختصاصی تلگرام رو ارائه میده…