این بخش شامل نمونههای کاربردی برای کار با rubpy است. هر مثال یک فایل مجزا در نظر گرفته شده است. دقت کنید که مثال های این بخش صرفا برای استفاده از بخش rubpy.Client یا همان حساب های کاربری هستند و برای استفاده از بات ها اصلا مناسب نیستند. برای مثال های بات به صفحه مربوطه مراجعه کنید در غیر این صورت مثال ها را مطالعه کنید.
سلام دنیا¶
فایل: hello_world.py
from rubpy import Client
# Create a new Client instance
app = Client("session-name")
async def main():
# Start client
await app.start()
# Send a message, Markdown is enabled by default
await app.send_message("me", "Hi there! I'm using **Rubpy**")
# Close client
await app.disconnect()
import asyncio
asyncio.run(main())
بازتاب پیام¶
فایل: echo_bot.py
from rubpy import Client, filters
app = Client("session-name")
@app.on_message_updates(filters.text, filters.private)
async def echo(client, update):
await update.reply(update.text)
app.run() # Automatically start()
نکات¶
- کتابخانه روبپای را در دو حالت sync و async میتوان استفاده کرد.
- پس از ورود به حساب کاربری، یک نشست در حساب ایجاد میشود، پس از اتمام مراحل ورود به حساب، یک فایل با فرمت .rp در کنار فایل ربات شما ذخیره میشود. این یعنی پس از آن نیازی به ورود مجدد به حساب خود ندارید.
دریافت لیست کامل اعضا¶
فایل: get_all_members.py
from rubpy import Client
OBJECT_GUID = '' # GUID گروه یا کانال موردنظر
with Client('get_all_members') as app:
has_continue = True
next_start_id = None
total_members = 0
while has_continue:
response = app.get_members(OBJECT_GUID, start_id=next_start_id)
if not response:
break # اگر پاسخ خالی بود، حلقه متوقف شود
next_start_id = response.next_start_id
has_continue = response.has_continue
members = response.in_chat_members or []
for member in members:
# print(member)
total_members += 1
print("Total members:", total_members)
کانتکست منیجر¶
فایل: use_context_manager.py
# Use async
async with Client('my_session') as app:
print(await app.get_me())
# Use sync
with Client('my_session') as app:
print(app.get_me())
استفاده همزمان¶
فایل: no_async_rubpy.py
# استفاده از کانتکست منیجر به صورت همزمان
with Client('my_session') as app:
print(app.get_me())
# بدون کانتکست منیجر
app = Client('my_session')
app.start()
app.send_message("me", "Hello from rubpy!")
app.disconnect()