'\" t .\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "PYPRESENCE" "1" "Jul 11, 2026" "4.6" "pypresence" .SH "نام (NAME)" pypresence \- مستندات pypresence .SH "نصب (INSTALLATION)" .sp \fBنصب pypresence با pip:\fP .sp برای آخرین نسخه پایدار، می‌توانید از دستور زیر استفاده کنید: .sp \fBpip install pypresence\fP .sp یا برای نسخه در حال توسعه، می‌توانید از دستور زیر استفاده کنید: .sp \fBpip install https://github.com/qwertyquerty/pypresence/archive/master.zip\fP .SH "پیوندها (LINKS)" .INDENT 0.0 .IP \(bu 2 سرور پشتیبانی Discord \% .IP \(bu 2 صفحه پاترئون Qwerty (کمک مالی مایه دلگرمی خواهد بود) \% .IP \(bu 2 مخزن گیت‌هاب pypresence \% .UNINDENT .SH "اطلاعات (INFORMATION)" .SS "درباره (About)" .sp کتابخانه pypresence یک پوشش (wrapper) برای Discord RPC است. می‌توانید از آن برای قابلیت Rich Presence در بازی‌های خود و همچنین سایر یکپارچه‌سازی‌های Discord استفاده کنید. .SS "شروع سریع (Quickstart)" .TS box center; l. T{ این بخش برای زمانی است که دقیقاً نمی‌دانید چه کاری باید انجام دهید یا صرفاً به یک شروع سریع نیاز دارید (برای Rich Presence). T} .TE .sp \fBنخستین کاری که باید انجام دهید ساخت یک برنامه Discord RPC است. مراحل کار به شرح زیر است:\fP .INDENT 0.0 .IP \(bu 2 به نشانی \% بروید. .IP \(bu 2 بر روی \(dqCreate an Application\(dq کلیک کنید. .IP \(bu 2 برنامه را مطابق میل خود پیکربندی کنید، نام دلخواه را برای آن تعیین کرده و یک تصویر مناسب به آن اختصاص دهید. .IP \(bu 2 درست در زیر نام برنامه، شناسه Client ID خود را بیابید؛ در ادامه به آن نیاز خواهید داشت. .IP \(bu 2 در پایان، برنامه خود را ذخیره کنید. .UNINDENT .sp \fBسپس، باید pypresence را نصب کنید. لازم است Python 3.9 یا جدیدتر روی سیستم شما نصب شده باشد. مراحل به شرح زیر است:\fP .INDENT 0.0 .IP \(bu 2 خط فرمان (ترمینال) را باز کنید. .IP \(bu 2 عبارت \fBpip install pypresence\fP را تایپ کرده و کلید Enter را بزنید. .IP \(bu 2 در نزدیکی انتهای فرآیند، باید پیامی شبیه به \fB\(dqSuccessfully installed pypresence\(dq\fP نمایش داده شود\&. .UNINDENT .sp \fBاکنون باید برنامه‌ای برای تنظیم Rich Presence خود بنویسید. ابتدا موارد مورد نیاز را بدین صورت وارد (import) می‌کنیم:\fP .INDENT 0.0 .INDENT 3.5 .sp .EX from pypresence import Presence # The simple rich presence client in pypresence import time .EE .UNINDENT .UNINDENT .sp \fBسپس باید کلاینت Rich Presence را مقداردهی اولیه کنیم. به همان Client ID مرحله قبل نیاز خواهید داشت:\fP .INDENT 0.0 .INDENT 3.5 .sp .EX client_id = \(dqID HERE\(dq # Put your Client ID in here RPC = Presence(client_id) # Initialize the Presence client .EE .UNINDENT .UNINDENT .sp \fBحال باید کلاینت خود را به Discord متصل کنیم تا بتواند به‌روزرسانی‌های وضعیت را ارسال کند:\fP .INDENT 0.0 .INDENT 3.5 .sp .EX RPC.connect() # Start the handshake loop .EE .UNINDENT .UNINDENT .sp \fBاکنون باید وضعیت Rich Presence خود را عملاً تنظیم کنیم. می‌توانیم از تابع update() برای این منظور استفاده کنیم. گزینه‌های متعددی برای استفاده وجود دارد، اما برای این مورد از گزینه‌های زیر استفاده می‌کنیم:\fP .INDENT 0.0 .INDENT 3.5 .sp .EX RPC.update( state=\(dqHere it is!\(dq, details=\(dqA working presence, from python!\(dq, name=\(dqRich Presence Example\(dq, ) # Updates our presence .EE .UNINDENT .UNINDENT .sp \fBاکنون لازم است برنامه ما پیوسته در حال اجرا بماند، بنابراین از یک حلقه while استفاده می‌کنیم.\fP .INDENT 0.0 .INDENT 3.5 .sp .EX while True: # The presence will stay on as long as the program is running time.sleep(15) # Can only update rich presence every 15 seconds .EE .UNINDENT .UNINDENT .sp \fBاکنون وقتی برنامه خود را اجرا می‌کنید، خروجی باید چیزی شبیه به این باشد!\fP .INDENT 0.0 .INDENT 2.5 [تصویر: Finished Presence] [image] .UNINDENT .UNINDENT .sp .sp \fBاستفاده از Activity Types و Status Display Types\fP .sp می‌توانید با استفاده از مقادیر شمارشی (enum) \fBActivityType\fP و \fBStatusDisplayType\fP نحوه نمایش وضعیت خود را سفارشی‌سازی کنید. در ادامه یک مثال آورده شده است: .INDENT 0.0 .INDENT 3.5 .sp .EX from pypresence import Presence from pypresence.types import ActivityType, StatusDisplayType import time client_id = \(dqID HERE\(dq RPC = Presence(client_id) RPC.connect() # Show as \(dqListening to\(dq instead of \(dqPlaying\(dq RPC.update( activity_type=ActivityType.LISTENING, details=\(dqMy Favorite Song\(dq, state=\(dqBy My Favorite Artist\(dq ) # Or use StatusDisplayType to control what appears in the user\(aqs status RPC.update( status_display_type=StatusDisplayType.STATE, state=\(dqBuilding something awesome\(dq, details=\(dqUsing pypresence\(dq ) while True: time.sleep(15) .EE .UNINDENT .UNINDENT .sp انواع فعالیت‌های موجود: \fBPLAYING\fP (پیش‌فرض)، \fBLISTENING\fP، \fBWATCHING\fP، \fBCOMPETING\fP .sp انواع نمایش وضعیت موجود: \fBNAME\fP (پیش‌فرض \- نمایش نام برنامه)، \fBSTATE\fP، \fBDETAILS\fP .sp .sp \fBتعاملی کردن وضعیت با استفاده از نشانی‌های اینترنتی (URLs)\fP .sp می‌توانید با استفاده از پارامترهای URL، متون و تصاویر را قابل کلیک کنید. هنگامی که کاربران روی این عناصر کلیک کنند، Discord نشانی URL مشخص‌شده را باز خواهد کرد: .INDENT 0.0 .INDENT 3.5 .sp .EX from pypresence import Presence import time client_id = \(dqID HERE\(dq RPC = Presence(client_id) RPC.connect() # Make state and details clickable RPC.update( state=\(dqPlaying an Awesome Game\(dq, state_url=\(dqhttps://example.com/game\(dq, details=\(dqIn the Main Menu\(dq, details_url=\(dqhttps://example.com/game/menu\(dq ) # Make images clickable RPC.update( large_image=\(dqgame_logo\(dq, large_text=\(dqMy Game\(dq, large_url=\(dqhttps://example.com/game\(dq, small_image=\(dqstatus_online\(dq, small_text=\(dqOnline\(dq, small_url=\(dqhttps://example.com/status\(dq ) while True: time.sleep(15) .EE .UNINDENT .UNINDENT .sp پارامترهای URL موجود: \fBstate_url\fP، \fBdetails_url\fP، \fBlarge_url\fP، \fBsmall_url\fP.SS "مثال‌ها (EXAMPLES)" .sp \fBدر اینجا فهرستی از مثال‌های استفاده از pypresence آمده است:\fP .sp Rich Presence پایه: .INDENT 0.0 .INDENT 3.5 .sp .EX import time from pypresence import Presence client_id = \(dq717091213148160041\(dq # Fake ID, put your real one here RPC = Presence(client_id) # Initialize the client class RPC.connect() # Start the handshake loop print( RPC.update( state=\(dqHere it is!\(dq, details=\(dqA working presence, from python!\(dq, name=\(dqRich Presence Example\(dq, ) ) # Set the presence while True: # The presence will stay on as long as the program is running time.sleep(15) # Can only update rich presence every 15 seconds .EE .UNINDENT .UNINDENT .sp .sp Rich Presence برای نمایش میزان مصرف پردازنده (CPU): .INDENT 0.0 .INDENT 3.5 .sp .EX import time import psutil from pypresence import Presence client_id = \(dq64567352374564\(dq # Fake ID, put your real one here RPC = Presence(client_id, pipe=0) # Initialize the client class RPC.connect() # Start the handshake loop while True: # The presence will stay on as long as the program is running cpu_per = round(psutil.cpu_percent(), 1) # Get CPU Usage mem = psutil.virtual_memory() mem_per = round(psutil.virtual_memory().percent, 1) print( RPC.update( details=\(dqRAM: \(dq + str(mem_per) + \(dq%\(dq, state=\(dqCPU: \(dq + str(cpu_per) + \(dq%\(dq ) ) # Set the presence time.sleep(15) # Can only update rich presence every 15 seconds .EE .UNINDENT .UNINDENT .sp .sp Rich Presence برای چرخش در میان نقل‌قول‌ها: .INDENT 0.0 .INDENT 3.5 .sp .EX import random import time from pypresence import Presence client_id = \(dq64567352374564\(dq # Put your Client ID here, this is a fake ID RPC = Presence(client_id) # Initialize the Presence class RPC.connect() # Start the handshake loop quotes = [ \(dqIf you can dream it, you can achieve it.\(dq, \(dqEither write something worth reading or do something worth writing.\(dq, \(dqYou become what you believe.\(dq, \(dqFall seven times and stand up eight.\(dq, \(dqThe best revenge is massive success.\(dq, \(dqEighty percent of success is showing up.\(dq, \(dqLife is what happens to you while you’re busy making other plans.\(dq, \(dqStrive not to be a success, but rather to be of value.\(dq, \(dqThe best time to plant a tree was 20 years ago. The second best time is now.\(dq, \(dqEverything you’ve ever wanted is on the other side of fear.\(dq, ] # The quotes to choose from while True: # The presence will stay on as long as the program is running RPC.update( details=\(dqFamous Quote:\(dq, state=random.choice(quotes) ) # Set the presence, picking a random quote time.sleep(60) # Wait a wee bit .EE .UNINDENT .UNINDENT .sp .sp \fBعلاوه بر این، در ادامه فهرستی از مخازنی که از pypresence استفاده می‌کنند آمده است\fP .SH "مستندات (DOCUMENTATION)" .SS Presence() .INDENT 0.0 .TP .B class Presence(client_id, pipe=0, loop=None, handler=None) کلاینت Presence را برای استفاده آماده و ایجاد می‌کند. .INDENT 7.0 .TP .B پارامترها .INDENT 7.0 .IP \(bu 2 \fBclient_id\fP (\fIstr\fP) \-\- شناسه برنامه OAuth2 (قابل دریافت از \%) .IP \(bu 2 \fBpipe\fP (\fIint\fP) \-\- پایپی که باید برای اتصال به کلاینت Discord استفاده شود. پیش‌فرض 0 است، می‌تواند بین 0\-9 باشد .IP \(bu 2 \fBloop\fP (\fIasyncio.BaseEventLoop\fP) \-\- حلقه رویداد (event loop) اختصاصی شما (در صورت وجود) که PyPresence باید از آن استفاده کند. در صورت عدم ارائه، یکی ایجاد می‌شود. اطلاعات بیشتر در \% .IP \(bu 2 \fBhandler\fP (\fIfunction\fP) \-\- گرداننده استثنا که pypresence باید خطاهای ناهمگام را به آن ارسال کند. این می‌تواند یک coroutine یا تابع استاندارد باشد، به شرطی که دو آرگومان (exception، future) بپذیرد. Exception همان استثنای رخ‌داده جهت مدیریت و future نمونه‌ای از asyncio.Future خواهد بود .UNINDENT .UNINDENT .UNINDENT .sp .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B connect() اتصال را مقداردهی اولیه می‌کند \- جهت اعمال هرگونه به‌روزرسانی در Rich Presence انجام آن الزامی است. .INDENT 7.0 .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B clear(pid=os.getpid()) وضعیت حضور (presence) را پاک می‌کند. .INDENT 7.0 .TP .B پارامترها \fBpid\fP (\fIint\fP) \-\- شناسه فرایند (PID) بازی شما .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B close() اتصال را می‌بندد. .INDENT 7.0 .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B update(**options) وضعیت حضور (presence) کاربر را در Discord تنظیم می‌کند. .INDENT 7.0 .TP .B پارامترها .INDENT 7.0 .IP \(bu 2 \fBpid\fP (\fIint\fP) \-\- شناسه فرایند (PID) بازی شما .IP \(bu 2 \fBactivity_type\fP (\fIActivityType\fP) \-\- نوع فعالیت (PLAYING، LISTENING، WATCHING، یا COMPETING). برای جزئیات بیشتر به ActivityType Enum مراجعه کنید. در صورت مشخص نشدن، مقدار پیش‌فرض PLAYING است. .IP \(bu 2 \fBstatus_display_type\fP (\fIStatusDisplayType\fP) \-\- فیلدی که باید در وضعیت نمایش داده شود (NAME، STATE، یا DETAILS). برای جزئیات بیشتر به StatusDisplayType Enum مراجعه کنید. در صورت مشخص نشدن، مقدار پیش‌فرض NAME است. .IP \(bu 2 \fBstate\fP (\fIstr\fP) \-\- وضعیت فعلی کاربر .IP \(bu 2 \fBstate_url\fP (\fIstr\fP) \-\- نشانی اینترنتی (URL) برای قابل کلیک کردن متن state (هنگام کلیک روی state باز می‌شود) .IP \(bu 2 \fBdetails\fP (\fIstr\fP) \-\- کاری که بازیکن در حال حاضر انجام می‌دهد .IP \(bu 2 \fBdetails_url\fP (\fIstr\fP) \-\- نشانی اینترنتی (URL) برای قابل کلیک کردن متن details (هنگام کلیک روی details باز می‌شود) .IP \(bu 2 \fBname\fP (\fIstr\fP) \-\- تنظیم مستقیم متنی که Discord در مکان‌هایی مانند فهرست کاربران نمایش می‌دهد .IP \(bu 2 \fBstart\fP (\fIint\fP) \-\- زمان مبدأ (epoch time) برای شروع بازی (به میلی‌ثانیه) .IP \(bu 2 \fBend\fP (\fIint\fP) \-\- زمان مبدأ (epoch time) برای پایان بازی (به میلی‌ثانیه).IP \(bu 2 \fBlarge_image\fP (\fIstr\fP) \-\- نام تصویر بارگذاری‌شده برای تصویر هنری بزرگ نمایه .IP \(bu 2 \fBlarge_text\fP (\fIstr\fP) \-\- متن راهنما (tooltip) برای تصویر بزرگ .IP \(bu 2 \fBlarge_url\fP (\fIstr\fP) \-\- نشانی اینترنتی (URL) برای قابل کلیک کردن تصویر بزرگ (هنگام کلیک روی تصویر بزرگ باز می‌شود) .IP \(bu 2 \fBsmall_image\fP (\fIstr\fP) \-\- نام تصویر بارگذاری‌شده برای تصویر هنری کوچک نمایه .IP \(bu 2 \fBsmall_text\fP (\fIstr\fP) \-\- متن راهنما (tooltip) برای تصویر کوچک .IP \(bu 2 \fBsmall_url\fP (\fIstr\fP) \-\- نشانی اینترنتی (URL) برای قابل کلیک کردن تصویر کوچک (هنگام کلیک روی تصویر کوچک باز می‌شود) .IP \(bu 2 \fBparty_id\fP (\fIstr\fP) \-\- شناسه‌ی گروه، لابی یا دسته‌ی بازیکن .IP \(bu 2 \fBparty_size\fP (\fIlist\fP) \-\- اندازه‌ی کنونی گروه، لابی یا دسته‌ی بازیکن و حداکثر آن در این قالب: \fB[1,4]\fP .IP \(bu 2 \fBjoin\fP (\fIstr\fP) \-\- رشته‌ی هش‌شده‌ی یکتا برای دعوت‌های گفتگو و درخواست پیوستن .IP \(bu 2 \fBspectate\fP (\fIstr\fP) \-\- رشته‌ی هش‌شده‌ی یکتا برای دکمه‌ی تماشا (spectate) .IP \(bu 2 \fBmatch\fP (\fIstr\fP) \-\- رشته‌ی هش‌شده‌ی یکتا برای تماشا و پیوستن .IP \(bu 2 \fBbuttons\fP (\fIlist\fP) \-\- فهرستی از دیکشنری‌ها برای دکمه‌های روی نمایه با قالب \fB[{\(dqlabel\(dq: \(dqMy Website\(dq, \(dqurl\(dq: \(dqhttps://qtqt.cf\(dq}, ...]\fP؛ حداکثر می‌تواند دو دکمه را فهرست کند .IP \(bu 2 \fBinstance\fP (\fIbool\fP) \-\- علامت‌گذاری بازی به عنوان یک نشست بازی با آغاز و پایان مشخص .UNINDENT .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .UNINDENT .UNINDENT .SS نوع شمارشی ActivityType (ActivityType Enum) .sp نوع شمارشی \fBActivityType\fP مشخص می‌کند چه نوع فعالیتی در حال نمایش است. این شمارشگر از \fBpypresence.types\fP وارد می‌شود. .sp مقادیر موجود: .INDENT 0.0 .IP \(bu 2 \fBActivityType.PLAYING\fP (0) \- نمایش \(dqPlaying {game name}\(dq (پیش‌فرض) .IP \(bu 2 \fBActivityType.LISTENING\fP (2) \- نمایش \(dqListening to {name}\(dq .IP \(bu 2 \fBActivityType.WATCHING\fP (3) \- نمایش \(dqWatching {name}\(dq .IP \(bu 2 \fBActivityType.COMPETING\fP (5) \- نمایش \(dqCompeting in {name}\(dq .UNINDENT .sp مثال استفاده: .INDENT 0.0 .INDENT 3.5 .sp .EX from pypresence import Presence from pypresence.types import ActivityType RPC = Presence(client_id) RPC.connect() RPC.update( activity_type=ActivityType.LISTENING, details=\(dqMy Favorite Song\(dq, state=\(dqBy My Favorite Artist\(dq ) .EE .UNINDENT .UNINDENT .sp نکته: Discord تنها از نوع‌های فعالیت ۰، ۲، ۳ و ۵ پشتیبانی می‌کند. نوع‌های ۱ (STREAMING) و ۴ (CUSTOM) از طریق Rich Presence در دسترس نیستند. .sp .SS نوع شمارشی StatusDisplayType (StatusDisplayType Enum) .sp نوع شمارشی \fBStatusDisplayType\fP کنترل می‌کند کدام فیلد از وضعیت حضور شما در وضعیت کاربر نمایش داده شود. این شمارشگر از \fBpypresence.types\fP وارد می‌شود. .sp مقادیر موجود: .INDENT 0.0 .IP \(bu 2 \fBStatusDisplayType.NAME\fP (0) \- نمایش نام برنامه (پیش‌فرض) .IP \(bu 2 \fBStatusDisplayType.STATE\fP (1) \- نمایش فیلد \fBstate\fP .IP \(bu 2 \fBStatusDisplayType.DETAILS\fP (2) \- نمایش فیلد \fBdetails\fP .UNINDENT .sp مثال استفاده: .INDENT 0.0 .INDENT 3.5 .sp .EX from pypresence import Presence from pypresence.types import StatusDisplayType RPC = Presence(client_id) RPC.connect() RPC.update( status_display_type=StatusDisplayType.STATE, state=\(dqCustom Status Message\(dq, details=\(dqWhat I\(aqm doing\(dq ) .EE .UNINDENT .UNINDENT .sp این قابلیت به شما امکان می‌دهد آنچه در نوار وضعیت دیسکورد کاربر ظاهر می‌شود را کنترل کنید، در حالی که تمام اطلاعات در نمایش کامل Rich Presence حفظ می‌شوند. .sp .SS نشانی‌های اینترنتی قابل کلیک (Clickable URLs) .sp پارامترهای URL (\fBstate_url\fP، \fBdetails_url\fP، \fBlarge_url\fP، \fBsmall_url\fP) به شما امکان می‌دهند متن و تصویر را در Rich Presence خود قابل کلیک کنید. هنگامی که کاربر بر روی عنصر مربوطه کلیک کند، Discord نشانی وب مشخص‌شده را باز خواهد کرد. .sp \fBپارامترهای URL موجود:\fP .INDENT 0.0 .IP \(bu 2 \fBstate_url\fP \- متن state را قابل کلیک می‌کند .IP \(bu 2 \fBdetails_url\fP \- متن details را قابل کلیک می‌کند .IP \(bu 2 \fBlarge_url\fP \- تصویر بزرگ را قابل کلیک می‌کند .IP \(bu 2 \fBsmall_url\fP \- تصویر کوچک را قابل کلیک می‌کند .UNINDENT .sp \fBمثال: state و details قابل کلیک\fP: .INDENT 0.0 .INDENT 3.5 .sp .EX from pypresence import Presence RPC = Presence(client_id) RPC.connect() RPC.update( state=\(dqPlaying an Awesome Game\(dq, state_url=\(dqhttps://example.com/game\(dq, details=\(dqIn the Main Menu\(dq, details_url=\(dqhttps://example.com/game/menu\(dq ) .EE .UNINDENT .UNINDENT .sp \fBمثال: تصاویر قابل کلیک\fP: .INDENT 0.0 .INDENT 3.5 .sp .EX RPC.update( large_image=\(dqgame_logo\(dq, large_text=\(dqMy Game\(dq, large_url=\(dqhttps://example.com/game\(dq, small_image=\(dqstatus_icon\(dq, small_text=\(dqOnline\(dq, small_url=\(dqhttps://example.com/status\(dq ) .EE .UNINDENT .UNINDENT .sp \fBمثال: ترکیب URLها با دکمه‌ها\fP: .INDENT 0.0 .INDENT 3.5 .sp .EX RPC.update( state=\(dqBuilding Something Cool\(dq, state_url=\(dqhttps://github.com/username\(dq, details=\(dqpypresence with URL support\(dq, details_url=\(dqhttps://github.com/qwertyquerty/pypresence\(dq, large_image=\(dqproject_logo\(dq, large_url=\(dqhttps://project\-website.com\(dq, buttons=[ {\(dqlabel\(dq: \(dqView Project\(dq, \(dqurl\(dq: \(dqhttps://github.com/username/project\(dq}, {\(dqlabel\(dq: \(dqDocumentation\(dq, \(dqurl\(dq: \(dqhttps://docs.project.com\(dq} ] ) .EE .UNINDENT .UNINDENT .sp \fBنکات:\fP .INDENT 0.0 .IP \(bu 2 نشانی‌های وب به صورت مستقل عمل می‌کنند \- می‌توانید حتی بدون تعیین فیلد متن یا تصویر متناظر نیز یک URL مقداردهی کنید .IP \(bu 2 نشانی‌های وب باید پیوندهای معتبر HTTP/HTTPS باشند .IP \(bu 2 کلیک بر روی عنصر مورد نظر، نشانی اینترنتی را در مرورگر پیش‌فرض کاربر باز خواهد کرد .IP \(bu 2 این ویژگی تعامل‌پذیری را فراتر از محدودیت سنتی دکمه‌ها (حداکثر ۲ دکمه) افزایش می‌دهد .UNINDENT .sp.SS Client() .INDENT 0.0 .TP .B class Client(client_id, pipe=0, loop=None, handler=None) کلاینت RPC را آمادهٔ استفاده ایجاد می‌کند. .INDENT 7.0 .TP .B پارامترها .INDENT 7.0 .IP \(bu 2 \fBclient_id\fP (\fIstr\fP) \-\- شناسهٔ برنامهٔ OAuth2 (موجود در \%) .IP \(bu 2 \fBpipe\fP (\fIint\fP) \-\- لوله‌ای (Pipe) که باید برای اتصال به کلاینت Discord استفاده شود. پیش‌فرض 0 است، می‌تواند بین 0\-9 باشد .IP \(bu 2 \fBloop\fP (\fIasyncio.BaseEventLoop\fP) \-\- حلقهٔ رویداد (event loop) اختصاصی شما (در صورت وجود) که PyPresence باید استفاده کند. در صورت ارائه نشدن، یکی ایجاد خواهد شد. اطلاعات بیشتر در \% .IP \(bu 2 \fBhandler\fP (\fIfunction\fP) \-\- گردانندهٔ استثنا (exception handler) که pypresence باید خطاهای ناهمگام را به آن بفرستد. تا زمانی که دو آرگومان (exception, future) بپذیرد، می‌تواند یک هم‌روال (coroutine) یا تابع استاندارد باشد. Exception همان استثنای مورد رسیدگی و future نمونه‌ای از asyncio.Future خواهد بود. .UNINDENT .UNINDENT .UNINDENT .sp .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B start() اتصال را مقداردهی اولیه می‌کند \- برای اجرای دستورهای RPC باید انجام شود. .INDENT 7.0 .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B close() اتصال را می‌بندد. .UNINDENT .sp .INDENT 0.0 .TP .B authorize(client_id, scopes, rpc_token=None, username=None) برای احراز هویت یک کلاینت جدید با برنامهٔ شما استفاده می‌شود. به‌طور پیش‌فرض، این کار یک پنجرهٔ بازشو (modal) درون‌برنامه‌ای نمایش می‌دهد که از کاربر می‌خواهد دسترسی به برنامهٔ شما را تایید کند. .INDENT 7.0 .TP .B پارامترها .INDENT 7.0 .IP \(bu 2 \fBclient_id\fP (\fIstr\fP) \-\- شناسهٔ برنامهٔ OAuth2 .IP \(bu 2 \fBscopes\fP (\fIlist\fP) \-\- فهرستی از دامنه‌های (scopes) دسترسی OAuth به صورت رشته .IP \(bu 2 \fBrpc_token\fP (\fIstr\fP) \-\- توکن RPC یک‌بارمصرف .IP \(bu 2 \fBusername\fP (\fIstr\fP) \-\- نام کاربری برای ایجاد یک حساب مهمان در صورتی که کاربر حساب Discord نداشته باشد .UNINDENT .TP .B نوع بازگشتی pypresence.Response .UNINDENT .sp تمام دامنه‌های دسترسی (scopes) مختلف را می‌توان در اینجا یافت: \% .UNINDENT .sp .INDENT 0.0 .TP .B authenticate(token) برای احراز هویت یک کلاینت موجود با برنامهٔ شما استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها \fBtoken\fP (\fIint\fP) \-\- توکن دسترسی OAuth2 .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B get_guilds() برای دریافت فهرستی از سرورهایی (guilds) که کلاینت در آن‌ها حضور دارد استفاده می‌شود. .INDENT 7.0 .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B get_channels() برای دریافت کانال‌های سروری که کلاینت در آن حضور دارد استفاده می‌شود. .INDENT 7.0 .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B channel_id() برای دریافت کانالی که کلاینت در آن حضور دارد استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها \fBchannel_id\fP (\fIstr\fP) \-\- شناسهٔ کانالی که باید دریافت شود .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B set_user_voice_settings(user_id, **options) برای دریافت کانالی که کلاینت در آن حضور دارد استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها .INDENT 7.0 .IP \(bu 2 \fBuser_id\fP (\fIstr\fP) \-\- شناسهٔ کاربر .IP \(bu 2 \fBpan_left\fP (\fIfloat\fP) \-\- تراز صدای چپ (pan) کاربر .IP \(bu 2 \fBpan_right\fP (\fIfloat\fP) \-\- تراز صدای راست (pan) کاربر .IP \(bu 2 \fBvolume\fP (\fIint\fP) \-\- میزان صدای کاربر (پیش‌فرض 100، حداقل 0، حداکثر 200) .IP \(bu 2 \fBmute\fP (\fIbool\fP) \-\- وضعیت بی‌صدا بودن (mute) کاربر .UNINDENT .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B select_voice_channel(channel_id) برای پیوستن به کانال‌های صوتی، پیام‌های مستقیم گروهی یا پیام‌های مستقیم و ترک آن‌ها استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها \fBchannel_id\fP (\fIstr\fP) \-\- شناسهٔ کانال برای پیوستن (یا \fBNone\fP برای ترک کردن) .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B get_selected_voice_channel() برای دریافت کانال صوتی کنونی کلاینت استفاده می‌شود. .INDENT 7.0 .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B select_text_channel(channel_id) برای پیوستن به کانال‌های متنی، پیام‌های مستقیم گروهی یا پیام‌های مستقیم و ترک آن‌ها استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها \fBchannel_id\fP (\fIstr\fP) \-\- شناسهٔ کانال برای پیوستن (یا \fBNone\fP برای ترک کردن) .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B set_activity(**options) برای تنظیم فعالیتی که در نمایه و وضعیت Discord کاربران نمایش داده می‌شود استفاده می‌شود. موارد زیر را به عنوان پارامتر دریافت می‌کند. .INDENT 7.0 .TP .B پارامترها .INDENT 7.0 .IP \(bu 2 \fBpid\fP (\fIint\fP) \-\- شناسهٔ فرایند (process id) بازی شما.IP \(bu 2 \fBactivity_type\fP (\fIActivityType\fP) \-\- نوع فعالیت (PLAYING، LISTENING، WATCHING یا COMPETING). برای جزئیات بیشتر به ActivityType Enum \%<#\:activity-types> مراجعه کنید. در صورت مشخص نشدن، مقدار پیش‌فرض PLAYING است. .IP \(bu 2 \fBstatus_display_type\fP (\fIStatusDisplayType\fP) \-\- کدام فیلد در وضعیت نمایش داده شود (NAME، STATE یا DETAILS). برای جزئیات بیشتر به StatusDisplayType Enum \%<#\:status-display-types> مراجعه کنید. در صورت مشخص نشدن، مقدار پیش‌فرض NAME است. .IP \(bu 2 \fBstate\fP (\fIstr\fP) \-\- وضعیت فعلی کاربر .IP \(bu 2 \fBstate_url\fP (\fIstr\fP) \-\- نشانی URL برای کلیک‌پذیر کردن متن state (هنگام کلیک روی state باز می‌شود) .IP \(bu 2 \fBdetails\fP (\fIstr\fP) \-\- کاری که بازیکن در حال حاضر انجام می‌دهد .IP \(bu 2 \fBdetails_url\fP (\fIstr\fP) \-\- نشانی URL برای کلیک‌پذیر کردن متن details (هنگام کلیک روی details باز می‌شود) .IP \(bu 2 \fBname\fP (\fIstr\fP) \-\- تنظیم مستقیم آنچه discord در جاهایی مانند فهرست کاربران نمایش می‌دهد .IP \(bu 2 \fBstart\fP (\fIint\fP) \-\- زمان epoch برای شروع بازی (به میلی‌ثانیه) .IP \(bu 2 \fBend\fP (\fIint\fP) \-\- زمان epoch برای پایان بازی (به میلی‌ثانیه) .IP \(bu 2 \fBlarge_image\fP (\fIstr\fP) \-\- نام تصویر بارگذاری‌شده برای تصویر بزرگ نمایه (profile artwork) .IP \(bu 2 \fBlarge_text\fP (\fIstr\fP) \-\- متن راهنما (tooltip) برای تصویر بزرگ .IP \(bu 2 \fBlarge_url\fP (\fIstr\fP) \-\- نشانی URL برای کلیک‌پذیر کردن تصویر بزرگ (هنگام کلیک روی تصویر بزرگ باز می‌شود) .IP \(bu 2 \fBsmall_image\fP (\fIstr\fP) \-\- نام تصویر بارگذاری‌شده برای تصویر کوچک نمایه (profile artwork) .IP \(bu 2 \fBsmall_text\fP (\fIstr\fP) \-\- متن راهنما (tooltip) برای تصویر کوچک .IP \(bu 2 \fBsmall_url\fP (\fIstr\fP) \-\- نشانی URL برای کلیک‌پذیر کردن تصویر کوچک (هنگام کلیک روی تصویر کوچک باز می‌شود) .IP \(bu 2 \fBparty_id\fP (\fIstr\fP) \-\- شناسه (id) پارتی، لابی یا گروه بازیکن .IP \(bu 2 \fBparty_size\fP (\fIlist\fP) \-\- اندازه فعلی پارتی، لابی یا گروه بازیکن، و حداکثر آن در این قالب: \fB[1,4]\fP .IP \(bu 2 \fBjoin\fP (\fIstr\fP) \-\- رشته هش‌شده یکتا برای دعوت‌های گفت‌وگو و درخواست پیوستن (ask to join) .IP \(bu 2 \fBspectate\fP (\fIstr\fP) \-\- رشته هش‌شده یکتا برای دکمه تماشا (spectate) .IP \(bu 2 \fBmatch\fP (\fIstr\fP) \-\- رشته هش‌شده یکتا برای تماشا و پیوستن (spectate and join) .IP \(bu 2 \fBbuttons\fP (\fIlist\fP) \-\- فهرستی از dictها برای دکمه‌های نمایه شما در قالب \fB[{\(dqlabel\(dq: \(dqMy Website\(dq, \(dqurl\(dq: \(dqhttps://qtqt.cf\(dq}, ...]\fP؛ می‌تواند حداکثر شامل دو دکمه باشد .IP \(bu 2 \fBinstance\fP (\fIbool\fP) \-\- مسابقه را به‌عنوان یک نشست بازی (game session) با شروع و پایان مشخص علامت‌گذاری می‌کند .UNINDENT .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B clear_activity(pid=os.getpid()) پاک کردن فعالیت. .INDENT 7.0 .TP .B پارامترها (Parameters) \fBpid\fP (\fIint\fP) \-\- شناسه فرآیند (process id) بازی شما .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B subscribe(event, args={}) برای اشتراک در رویدادها استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها (Parameters) .INDENT 7.0 .IP \(bu 2 \fBevent\fP (\fIstr\fP) \-\- نام رویداد برای اشتراک در آن .IP \(bu 2 \fBargs\fP (\fIdict\fP) \-\- هر آرگومانی که همراه با رویداد ارسال می‌شود .UNINDENT .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B unsubscribe(event, args={}) برای لغو اشتراک از رویدادها استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها (Parameters) .INDENT 7.0 .IP \(bu 2 \fBevent\fP (\fIstr\fP) \-\- نام رویداد برای لغو اشتراک از آن .IP \(bu 2 \fBargs\fP (\fIdict\fP) \-\- هر آرگومانی که همراه با رویداد ارسال می‌شود .UNINDENT .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B get_voice_settings() دریافت تنظیمات صوتی کاربر. .INDENT 7.0 .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B set_voice_settings(**options) تنظیم کردن تنظیمات صوتی کاربر. .INDENT 7.0 .TP .B پارامترها (Parameters) .INDENT 7.0 .IP \(bu 2 \fB_input\fP (\fIdict\fP) \-\- تنظیمات ورودی .IP \(bu 2 \fBoutput\fP (\fIdict\fP) \-\- تنظیمات خروجی .IP \(bu 2 \fBmode\fP (\fIdict\fP) \-\- تنظیمات حالت صدا .IP \(bu 2 \fBautomatic_gain_control\fP (\fIbool\fP) \-\- وضعیت کنترل خودکار بهره (automatic gain control) .IP \(bu 2 \fBecho_cancellation\fP (\fIbool\fP) \-\- وضعیت حذف پژواک (echo cancellation) .IP \(bu 2 \fBnoise_suppression\fP (\fIbool\fP) \-\- وضعیت کاهش نویز (noise suppression) .IP \(bu 2 \fBqos\fP (\fIbool\fP) \-\- وضعیت کیفیت خدمات (QoS) صدا .IP \(bu 2 \fBsilence_warning\fP (\fIbool\fP) \-\- وضعیت اعلان هشدار سکوت .IP \(bu 2 \fBdeaf\fP (\fIbool\fP) \-\- وضعیت ناشنواسازی خود (self\-deafen) .IP \(bu 2 \fBmute\fP (\fIbool\fP) \-\- وضعیت بی‌صدا کردن خود (self\-mute) .UNINDENT .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B capture_shortcut(action) برای ضبط میان‌بر صفحه‌کلید وارد شده توسط کاربر استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها (Parameters) \fBaction\fP (\fIstring\fP) \-\- عمل ضبط، یکی از مقادیر \fB\(aqSTART\(aq\fP یا \fB\(aqSTOP\(aq\fP .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B send_activity_join_invite(user_id) برای پذیرش یک درخواست «درخواست پیوستن» (Ask to Join) استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها (Parameters) \fBuser_id\fP (\fIstr\fP) \-\- شناسه کاربر (user id) .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B close_activity_request(user_id) برای رد کردن یک درخواست «درخواست پیوستن» (Ask to Join) استفاده می‌شود. .INDENT 7.0 .TP .B پارامترها (Parameters) \fBuser_id\fP (\fIstr\fP) \-\- شناسه کاربر (user id) .TP .B نوع بازگشتی (Return type) pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0.TP .B register_event(event, func, args={}) قلاب کردن یک رویداد به یک تابع. هر زمان که Discord آن رویداد را ارسال کند، این تابع فراخوانی خواهد شد. به‌طور خودکار در آن مشترک خواهد شد. .INDENT 7.0 .TP .B پارامترها .INDENT 7.0 .IP \(bu 2 \fBevent\fP (\fIstr\fP) \-\- رویدادی که باید قلاب شود .IP \(bu 2 \fBfunc\fP (\fIfunction\fP) \-\- تابعی که باید با رویداد جفت شود .IP \(bu 2 \fBargs\fP (\fIdict\fP) \-\- آرگومان‌های اختیاری مورد استفاده در اشتراک .UNINDENT .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .INDENT 0.0 .TP .B unregister_event(event, args={}) برداشتن قلاب یک رویداد از یک تابع. به‌طور خودکار اشتراک رویداد را نیز لغو خواهد کرد. .INDENT 7.0 .TP .B پارامترها .INDENT 7.0 .IP \(bu 2 \fBevent\fP (\fIstr\fP) \-\- رویدادی که باید قلاب آن برداشته شود .IP \(bu 2 \fBargs\fP (\fIdict\fP) \-\- آرگومان‌های اختیاری مورد استفاده در لغو اشتراک .UNINDENT .TP .B نوع بازگشتی pypresence.Response .UNINDENT .UNINDENT .sp .UNINDENT .UNINDENT .SH "نویسندگان (AUTHORS)" qwertyquerty, LewdNeko .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2025, qwertyquerty .\" End of generated man page.