مرجع API¶
در این بخش مستندات کامل API کتابخانه SPlusthon آورده شده است.
کلاس SoroushClient¶
کلاس اصلی کتابخانه برای تعامل با سروشپلاس.
سازنده¶
SoroushClient(session=None, api_id=None, api_hash=None,
connection_retries=None, timeout=timedelta(seconds=60),
request_retries=None, connection=None,
proxy=None, local_addr=None)
پارامترها¶
| پارامتر | نوع | پیشفرض | توضیحات |
|---|---|---|---|
| session | str/Session | None | نام session یا شیء Session |
| api_id | int | None | شناسه API از my.telegram.org |
| api_hash | str | None | هش API از my.telegram.org |
| connection_retries | int | None | تعداد تلاشهای اتصال مجدد |
| timeout | timedelta | 60 ثانیه | زمان انتظار برای درخواستها |
| request_retries | int | None | تعداد تلاشهای درخواست مجدد |
| connection | class | None | نوع اتصال |
| proxy | dict | None | تنظیمات پروکسی |
| local_addr | tuple | None | آدرس محلی |
متدهای ارسال پیام¶
send_message¶
async def send_message(entity, message=None, *, parse_mode=None,
link_preview=None, file=None, force_document=None,
clear_draft=None, background=None,
supports_streaming=None, schedule=None,
noforwards=None, comment_to=None,
reply_to=None, top_msg_id=None)
پارامترها:
entity: مقصد پیام (یوزرنیم، شماره تلفن، شناسه چت)message: متن پیامparse_mode: حالت تجزیه (markdown/html)link_preview: نمایش پیشنمایش لینکfile: فایل برای ارسالreply_to: پاسخ به پیام خاص
مثال:
await client.send_message('username', 'سلام!')
await client.send_message('me', 'پیام با **بولد**')
await client.send_message('me', 'https://example.com', link_preview=False)
send_file¶
async def send_file(entity, file, *, caption=None,
force_document=None, thumb=None,
voice_note=None, video_note=None,
attributes=None, supports_streaming=None,
schedule=None, noforwards=None,
reply_to=None, top_msg_id=None,
comment_to=None, parse_mode=(),
buttons=None, silent=None,
background=None, clear_draft=None,
video_start_ts=None, duration=None,
title=None, performer=None,
force_file=None, file_size=None,
chunk_size=None, file_names=None,
workers=1, api_hash=None)
پارامترها:
entity: مقصد فایلfile: مسیر فایل یا آبجکت filecaption: توضیحات فایل
مثال:
await client.send_file('me', '/path/to/photo.jpg')
await client.send_file('me', '/path/to/file.pdf', caption='فایل مهم')
متدهای دریافت پیام¶
get_messages¶
async def get_messages(entity, limit=None, *, offset_date=None,
offset_id=None, add_offset=None,
search=None, from_user=None,
ids=None, reverse=None,
wait_time=None)
پارامترها:
entity: منبع پیامهاlimit: تعداد پیامهاsearch: عبارت جستجوids: شناسههای پیامها
مثال:
messages = await client.get_messages('me', limit=10)
messages = await client.get_messages('me', search='کلمه جستجو')
message = await client.get_messages('me', ids=123)
iter_messages¶
def iter_messages(entity, limit=None, *, offset_date=None,
offset_id=None, add_offset=None,
search=None, from_user=None,
ids=None, reverse=None,
wait_time=None)
مثال:
متدهای ویرایش پیام¶
edit_message¶
async def edit_message(entity=None, message=None, *,
text=None, parse_mode=None,
link_preview=None, file=None,
video_start_ts=None,
force_document=None,
schedule=None, noforwards=None)
مثال:
delete_messages¶
مثال:
متدهای کار با Entity¶
get_entity¶
مثال:
user = await client.get_entity('username')
user = await client.get_entity('+989123456789')
user = await client.get_entity(123456)
get_input_entity¶
مثال:
متدهای رسانه¶
download_profile_photo¶
مثال:
upload_file¶
مثال:
رویدادها (Events)¶
NewMessage¶
پارامترهای NewMessage¶
| پارامتر | نوع | توضیحات |
|---|---|---|
| incoming | bool | پیامهای ورودی |
| outgoing | bool | پیامهای خروجی |
| pattern | str | regex برای فیلتر |
| chats | list | چتهای خاص |
| blacklist_chats | bool | لیست سیاه چتها |
MessageEdited¶
MessageDeleted¶
CallbackQuery¶
@client.on(events.CallbackQuery)
async def handler(event):
print('کلیک روی دکمه:', event.data)
await event.answer('پاسخ')
ChatAction¶
@client.on(events.ChatAction)
async def handler(event):
if event.user_joined:
print('عضو جدید وارد شد')
if event.user_left:
print('عضو خارج شد')
خطاها¶
RPCError¶
خطای اصلی API سروشپلاس.
FloodWaitError¶
خطای انتظار اجباری.
from splusthon.errors import FloodWaitError
try:
await client.send_message('username', 'سلام!')
except FloodWaitError as e:
print(f'صبر کنید {e.seconds} ثانیه')
PeerFloodError¶
خطای محدودیت ارسال پیام.
from splusthon.errors import PeerFloodError
try:
await client.send_message('username', 'سلام!')
except PeerFloodError:
print('محدودیت ارسال پیام')
Session¶
StringSession¶
from splusthon.sessions import StringSession
# ایجاد StringSession
session = StringSession()
# استفاده از StringSession
client = SoroushClient(StringSession(string), api_id, api_hash)
# ذخیره StringSession
string = client.session.save()