PYPRESENCE(1) pypresence PYPRESENCE(1) نام (NAME) pypresence - مستندات pypresence نصب (INSTALLATION) نصب pypresence با pip: برای آخرین نسخه پایدار، می‌توانید از دستور زیر استفاده کنید: pip install pypresence یا برای نسخه در حال توسعه، می‌توانید از دستور زیر استفاده کنید: pip install https://github.com/qwertyquerty/pypresence/archive/master.zip پیوندها (LINKS) • سرور پشتیبانی Discord • صفحه پاترئون Qwerty (کمک مالی مایه دلگرمی خواهد بود) • مخزن گیت‌هاب pypresence اطلاعات (INFORMATION) درباره (About) کتابخانه pypresence یک پوشش (wrapper) برای Discord RPC است. می‌توانید از آن برای قابلیت Rich Presence در بازی‌های خود و همچنین سایر یکپارچه‌سازی‌های Discord استفاده کنید. شروع سریع (Quickstart) ┌──────────────────────────────────────┐ │این بخش برای زمانی است که دقیقاً │ │نمی‌دانید چه کاری باید انجام دهید یا │ │صرفاً به یک شروع سریع نیاز دارید (برای │ │Rich Presence). │ └──────────────────────────────────────┘ نخستین کاری که باید انجام دهید ساخت یک برنامه Discord RPC است. مراحل کار به شرح زیر است: • به نشانی بروید. • بر روی "Create an Application" کلیک کنید. • برنامه را مطابق میل خود پیکربندی کنید، نام دلخواه را برای آن تعیین کرده و یک تصویر مناسب به آن اختصاص دهید. • درست در زیر نام برنامه، شناسه Client ID خود را بیابید؛ در ادامه به آن نیاز خواهید داشت. • در پایان، برنامه خود را ذخیره کنید. سپس، باید pypresence را نصب کنید. لازم است Python 3.9 یا جدیدتر روی سیستم شما نصب شده باشد. مراحل به شرح زیر است: • خط فرمان (ترمینال) را باز کنید. • عبارت pip install pypresence را تایپ کرده و کلید Enter را بزنید. • در نزدیکی انتهای فرآیند، باید پیامی شبیه به "Successfully installed pypresence" نمایش داده شود. اکنون باید برنامه‌ای برای تنظیم Rich Presence خود بنویسید. ابتدا موارد مورد نیاز را بدین صورت وارد (import) می‌کنیم: from pypresence import Presence # The simple rich presence client in pypresence import time سپس باید کلاینت Rich Presence را مقداردهی اولیه کنیم. به همان Client ID مرحله قبل نیاز خواهید داشت: client_id = "ID HERE" # Put your Client ID in here RPC = Presence(client_id) # Initialize the Presence client حال باید کلاینت خود را به Discord متصل کنیم تا بتواند به‌روزرسانی‌های وضعیت را ارسال کند: RPC.connect() # Start the handshake loop اکنون باید وضعیت Rich Presence خود را عملاً تنظیم کنیم. می‌توانیم از تابع update() برای این منظور استفاده کنیم. گزینه‌های متعددی برای استفاده وجود دارد، اما برای این مورد از گزینه‌های زیر استفاده می‌کنیم: RPC.update( state="Here it is!", details="A working presence, from python!", name="Rich Presence Example", ) # Updates our presence اکنون لازم است برنامه ما پیوسته در حال اجرا بماند، بنابراین از یک حلقه while استفاده می‌کنیم. 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 اکنون وقتی برنامه خود را اجرا می‌کنید، خروجی باید چیزی شبیه به این باشد! [تصویر: Finished Presence] [image] استفاده از Activity Types و Status Display Types می‌توانید با استفاده از مقادیر شمارشی (enum) ActivityType و StatusDisplayType نحوه نمایش وضعیت خود را سفارشی‌سازی کنید. در ادامه یک مثال آورده شده است: from pypresence import Presence from pypresence.types import ActivityType, StatusDisplayType import time client_id = "ID HERE" RPC = Presence(client_id) RPC.connect() # Show as "Listening to" instead of "Playing" RPC.update( activity_type=ActivityType.LISTENING, details="My Favorite Song", state="By My Favorite Artist" ) # Or use StatusDisplayType to control what appears in the user's status RPC.update( status_display_type=StatusDisplayType.STATE, state="Building something awesome", details="Using pypresence" ) while True: time.sleep(15) انواع فعالیت‌های موجود: PLAYING (پیش‌فرض)، LISTENING، WATCHING، COMPETING انواع نمایش وضعیت موجود: NAME (پیش‌فرض - نمایش نام برنامه)، STATE، DETAILS تعاملی کردن وضعیت با استفاده از نشانی‌های اینترنتی (URLs) می‌توانید با استفاده از پارامترهای URL، متون و تصاویر را قابل کلیک کنید. هنگامی که کاربران روی این عناصر کلیک کنند، Discord نشانی URL مشخص‌شده را باز خواهد کرد: from pypresence import Presence import time client_id = "ID HERE" RPC = Presence(client_id) RPC.connect() # Make state and details clickable RPC.update( state="Playing an Awesome Game", state_url="https://example.com/game", details="In the Main Menu", details_url="https://example.com/game/menu" ) # Make images clickable RPC.update( large_image="game_logo", large_text="My Game", large_url="https://example.com/game", small_image="status_online", small_text="Online", small_url="https://example.com/status" ) while True: time.sleep(15) پارامترهای URL موجود: state_url، details_url، large_url، small_url.SS "مثال‌ها (EXAMPLES)" در اینجا فهرستی از مثال‌های استفاده از pypresence آمده است: Rich Presence پایه: import time from pypresence import Presence client_id = "717091213148160041" # 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="Here it is!", details="A working presence, from python!", name="Rich Presence Example", ) ) # 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 Rich Presence برای نمایش میزان مصرف پردازنده (CPU): import time import psutil from pypresence import Presence client_id = "64567352374564" # 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="RAM: " + str(mem_per) + "%", state="CPU: " + str(cpu_per) + "%" ) ) # Set the presence time.sleep(15) # Can only update rich presence every 15 seconds Rich Presence برای چرخش در میان نقل‌قول‌ها: import random import time from pypresence import Presence client_id = "64567352374564" # 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 = [ "If you can dream it, you can achieve it.", "Either write something worth reading or do something worth writing.", "You become what you believe.", "Fall seven times and stand up eight.", "The best revenge is massive success.", "Eighty percent of success is showing up.", "Life is what happens to you while you’re busy making other plans.", "Strive not to be a success, but rather to be of value.", "The best time to plant a tree was 20 years ago. The second best time is now.", "Everything you’ve ever wanted is on the other side of fear.", ] # The quotes to choose from while True: # The presence will stay on as long as the program is running RPC.update( details="Famous Quote:", state=random.choice(quotes) ) # Set the presence, picking a random quote time.sleep(60) # Wait a wee bit علاوه بر این، در ادامه فهرستی از مخازنی که از pypresence استفاده می‌کنند آمده است مستندات (DOCUMENTATION) Presence() class Presence(client_id, pipe=0, loop=None, handler=None) کلاینت Presence را برای استفاده آماده و ایجاد می‌کند. پارامترها • client_id (str) -- شناسه برنامه OAuth2 (قابل دریافت از ) • pipe (int) -- پایپی که باید برای اتصال به کلاینت Discord استفاده شود. پیش‌فرض 0 است، می‌تواند بین 0-9 باشد • loop (asyncio.BaseEventLoop) -- حلقه رویداد (event loop) اختصاصی شما (در صورت وجود) که PyPresence باید از آن استفاده کند. در صورت عدم ارائه، یکی ایجاد می‌شود. اطلاعات بیشتر در • handler (function) -- گرداننده استثنا که pypresence باید خطاهای ناهمگام را به آن ارسال کند. این می‌تواند یک coroutine یا تابع استاندارد باشد، به شرطی که دو آرگومان (exception، future) بپذیرد. Exception همان استثنای رخ‌داده جهت مدیریت و future نمونه‌ای از asyncio.Future خواهد بود connect() اتصال را مقداردهی اولیه می‌کند - جهت اعمال هرگونه به‌روزرسانی در Rich Presence انجام آن الزامی است. نوع بازگشتی pypresence.Response clear(pid=os.getpid()) وضعیت حضور (presence) را پاک می‌کند. پارامترها pid (int) -- شناسه فرایند (PID) بازی شما نوع بازگشتی pypresence.Response close() اتصال را می‌بندد. نوع بازگشتی pypresence.Response update(**options) وضعیت حضور (presence) کاربر را در Discord تنظیم می‌کند. پارامترها • pid (int) -- شناسه فرایند (PID) بازی شما • activity_type (ActivityType) -- نوع فعالیت (PLAYING، LISTENING، WATCHING، یا COMPETING). برای جزئیات بیشتر به ActivityType Enum مراجعه کنید. در صورت مشخص نشدن، مقدار پیش‌فرض PLAYING است. • status_display_type (StatusDisplayType) -- فیلدی که باید در وضعیت نمایش داده شود (NAME، STATE، یا DETAILS). برای جزئیات بیشتر به StatusDisplayType Enum مراجعه کنید. در صورت مشخص نشدن، مقدار پیش‌فرض NAME است. • state (str) -- وضعیت فعلی کاربر • state_url (str) -- نشانی اینترنتی (URL) برای قابل کلیک کردن متن state (هنگام کلیک روی state باز می‌شود) • details (str) -- کاری که بازیکن در حال حاضر انجام می‌دهد • details_url (str) -- نشانی اینترنتی (URL) برای قابل کلیک کردن متن details (هنگام کلیک روی details باز می‌شود) • name (str) -- تنظیم مستقیم متنی که Discord در مکان‌هایی مانند فهرست کاربران نمایش می‌دهد • start (int) -- زمان مبدأ (epoch time) برای شروع بازی (به میلی‌ثانیه) • end (int) -- زمان مبدأ (epoch time) برای پایان بازی (به میلی‌ثانیه).IP • 2 large_image (str) -- نام تصویر بارگذاری‌شده برای تصویر هنری بزرگ نمایه • large_text (str) -- متن راهنما (tooltip) برای تصویر بزرگ • large_url (str) -- نشانی اینترنتی (URL) برای قابل کلیک کردن تصویر بزرگ (هنگام کلیک روی تصویر بزرگ باز می‌شود) • small_image (str) -- نام تصویر بارگذاری‌شده برای تصویر هنری کوچک نمایه • small_text (str) -- متن راهنما (tooltip) برای تصویر کوچک • small_url (str) -- نشانی اینترنتی (URL) برای قابل کلیک کردن تصویر کوچک (هنگام کلیک روی تصویر کوچک باز می‌شود) • party_id (str) -- شناسه‌ی گروه، لابی یا دسته‌ی بازیکن • party_size (list) -- اندازه‌ی کنونی گروه، لابی یا دسته‌ی بازیکن و حداکثر آن در این قالب: [1,4] • join (str) -- رشته‌ی هش‌شده‌ی یکتا برای دعوت‌های گفتگو و درخواست پیوستن • spectate (str) -- رشته‌ی هش‌شده‌ی یکتا برای دکمه‌ی تماشا (spectate) • match (str) -- رشته‌ی هش‌شده‌ی یکتا برای تماشا و پیوستن • buttons (list) -- فهرستی از دیکشنری‌ها برای دکمه‌های روی نمایه با قالب [{"label": "My Website", "url": "https://qtqt.cf"}, ...]؛ حداکثر می‌تواند دو دکمه را فهرست کند • instance (bool) -- علامت‌گذاری بازی به عنوان یک نشست بازی با آغاز و پایان مشخص نوع بازگشتی pypresence.Response نوع شمارشی ActivityType (ActivityType Enum) نوع شمارشی ActivityType مشخص می‌کند چه نوع فعالیتی در حال نمایش است. این شمارشگر از pypresence.types وارد می‌شود. مقادیر موجود: • ActivityType.PLAYING (0) - نمایش "Playing {game name}" (پیش‌فرض) • ActivityType.LISTENING (2) - نمایش "Listening to {name}" • ActivityType.WATCHING (3) - نمایش "Watching {name}" • ActivityType.COMPETING (5) - نمایش "Competing in {name}" مثال استفاده: from pypresence import Presence from pypresence.types import ActivityType RPC = Presence(client_id) RPC.connect() RPC.update( activity_type=ActivityType.LISTENING, details="My Favorite Song", state="By My Favorite Artist" ) نکته: Discord تنها از نوع‌های فعالیت ۰، ۲، ۳ و ۵ پشتیبانی می‌کند. نوع‌های ۱ (STREAMING) و ۴ (CUSTOM) از طریق Rich Presence در دسترس نیستند. نوع شمارشی StatusDisplayType (StatusDisplayType Enum) نوع شمارشی StatusDisplayType کنترل می‌کند کدام فیلد از وضعیت حضور شما در وضعیت کاربر نمایش داده شود. این شمارشگر از pypresence.types وارد می‌شود. مقادیر موجود: • StatusDisplayType.NAME (0) - نمایش نام برنامه (پیش‌فرض) • StatusDisplayType.STATE (1) - نمایش فیلد state • StatusDisplayType.DETAILS (2) - نمایش فیلد details مثال استفاده: from pypresence import Presence from pypresence.types import StatusDisplayType RPC = Presence(client_id) RPC.connect() RPC.update( status_display_type=StatusDisplayType.STATE, state="Custom Status Message", details="What I'm doing" ) این قابلیت به شما امکان می‌دهد آنچه در نوار وضعیت دیسکورد کاربر ظاهر می‌شود را کنترل کنید، در حالی که تمام اطلاعات در نمایش کامل Rich Presence حفظ می‌شوند. نشانی‌های اینترنتی قابل کلیک (Clickable URLs) پارامترهای URL (state_url، details_url، large_url، small_url) به شما امکان می‌دهند متن و تصویر را در Rich Presence خود قابل کلیک کنید. هنگامی که کاربر بر روی عنصر مربوطه کلیک کند، Discord نشانی وب مشخص‌شده را باز خواهد کرد. پارامترهای URL موجود: • state_url - متن state را قابل کلیک می‌کند • details_url - متن details را قابل کلیک می‌کند • large_url - تصویر بزرگ را قابل کلیک می‌کند • small_url - تصویر کوچک را قابل کلیک می‌کند مثال: state و details قابل کلیک: from pypresence import Presence RPC = Presence(client_id) RPC.connect() RPC.update( state="Playing an Awesome Game", state_url="https://example.com/game", details="In the Main Menu", details_url="https://example.com/game/menu" ) مثال: تصاویر قابل کلیک: RPC.update( large_image="game_logo", large_text="My Game", large_url="https://example.com/game", small_image="status_icon", small_text="Online", small_url="https://example.com/status" ) مثال: ترکیب URLها با دکمه‌ها: RPC.update( state="Building Something Cool", state_url="https://github.com/username", details="pypresence with URL support", details_url="https://github.com/qwertyquerty/pypresence", large_image="project_logo", large_url="https://project-website.com", buttons=[ {"label": "View Project", "url": "https://github.com/username/project"}, {"label": "Documentation", "url": "https://docs.project.com"} ] ) نکات: • نشانی‌های وب به صورت مستقل عمل می‌کنند - می‌توانید حتی بدون تعیین فیلد متن یا تصویر متناظر نیز یک URL مقداردهی کنید • نشانی‌های وب باید پیوندهای معتبر HTTP/HTTPS باشند • کلیک بر روی عنصر مورد نظر، نشانی اینترنتی را در مرورگر پیش‌فرض کاربر باز خواهد کرد • این ویژگی تعامل‌پذیری را فراتر از محدودیت سنتی دکمه‌ها (حداکثر ۲ دکمه) افزایش می‌دهد class Client(client_id, pipe=0, loop=None, handler=None) کلاینت RPC را آمادهٔ استفاده ایجاد می‌کند. پارامترها • client_id (str) -- شناسهٔ برنامهٔ OAuth2 (موجود در ) • pipe (int) -- لوله‌ای (Pipe) که باید برای اتصال به کلاینت Discord استفاده شود. پیش‌فرض 0 است، می‌تواند بین 0-9 باشد • loop (asyncio.BaseEventLoop) -- حلقهٔ رویداد (event loop) اختصاصی شما (در صورت وجود) که PyPresence باید استفاده کند. در صورت ارائه نشدن، یکی ایجاد خواهد شد. اطلاعات بیشتر در • handler (function) -- گردانندهٔ استثنا (exception handler) که pypresence باید خطاهای ناهمگام را به آن بفرستد. تا زمانی که دو آرگومان (exception, future) بپذیرد، می‌تواند یک هم‌روال (coroutine) یا تابع استاندارد باشد. Exception همان استثنای مورد رسیدگی و future نمونه‌ای از asyncio.Future خواهد بود. start() اتصال را مقداردهی اولیه می‌کند - برای اجرای دستورهای RPC باید انجام شود. نوع بازگشتی pypresence.Response close() اتصال را می‌بندد. authorize(client_id, scopes, rpc_token=None, username=None) برای احراز هویت یک کلاینت جدید با برنامهٔ شما استفاده می‌شود. به‌طور پیش‌فرض، این کار یک پنجرهٔ بازشو (modal) درون‌برنامه‌ای نمایش می‌دهد که از کاربر می‌خواهد دسترسی به برنامهٔ شما را تایید کند. پارامترها • client_id (str) -- شناسهٔ برنامهٔ OAuth2 • scopes (list) -- فهرستی از دامنه‌های (scopes) دسترسی OAuth به صورت رشته • rpc_token (str) -- توکن RPC یک‌بارمصرف • username (str) -- نام کاربری برای ایجاد یک حساب مهمان در صورتی که کاربر حساب Discord نداشته باشد نوع بازگشتی pypresence.Response تمام دامنه‌های دسترسی (scopes) مختلف را می‌توان در اینجا یافت: authenticate(token) برای احراز هویت یک کلاینت موجود با برنامهٔ شما استفاده می‌شود. پارامترها token (int) -- توکن دسترسی OAuth2 نوع بازگشتی pypresence.Response get_guilds() برای دریافت فهرستی از سرورهایی (guilds) که کلاینت در آن‌ها حضور دارد استفاده می‌شود. نوع بازگشتی pypresence.Response get_channels() برای دریافت کانال‌های سروری که کلاینت در آن حضور دارد استفاده می‌شود. نوع بازگشتی pypresence.Response channel_id() برای دریافت کانالی که کلاینت در آن حضور دارد استفاده می‌شود. پارامترها channel_id (str) -- شناسهٔ کانالی که باید دریافت شود نوع بازگشتی pypresence.Response set_user_voice_settings(user_id, **options) برای دریافت کانالی که کلاینت در آن حضور دارد استفاده می‌شود. پارامترها • user_id (str) -- شناسهٔ کاربر • pan_left (float) -- تراز صدای چپ (pan) کاربر • pan_right (float) -- تراز صدای راست (pan) کاربر • volume (int) -- میزان صدای کاربر (پیش‌فرض 100، حداقل 0، حداکثر 200) • mute (bool) -- وضعیت بی‌صدا بودن (mute) کاربر نوع بازگشتی pypresence.Response select_voice_channel(channel_id) برای پیوستن به کانال‌های صوتی، پیام‌های مستقیم گروهی یا پیام‌های مستقیم و ترک آن‌ها استفاده می‌شود. پارامترها channel_id (str) -- شناسهٔ کانال برای پیوستن (یا None برای ترک کردن) نوع بازگشتی pypresence.Response get_selected_voice_channel() برای دریافت کانال صوتی کنونی کلاینت استفاده می‌شود. نوع بازگشتی pypresence.Response select_text_channel(channel_id) برای پیوستن به کانال‌های متنی، پیام‌های مستقیم گروهی یا پیام‌های مستقیم و ترک آن‌ها استفاده می‌شود. پارامترها channel_id (str) -- شناسهٔ کانال برای پیوستن (یا None برای ترک کردن) نوع بازگشتی pypresence.Response set_activity(**options) برای تنظیم فعالیتی که در نمایه و وضعیت Discord کاربران نمایش داده می‌شود استفاده می‌شود. موارد زیر را به عنوان پارامتر دریافت می‌کند. پارامترها • pid (int) -- شناسهٔ فرایند (process id) بازی شما.IP • 2 activity_type (ActivityType) -- نوع فعالیت (PLAYING، LISTENING، WATCHING یا COMPETING). برای جزئیات بیشتر به ActivityType Enum <#activity-types> مراجعه کنید. در صورت مشخص نشدن، مقدار پیش‌فرض PLAYING است. • status_display_type (StatusDisplayType) -- کدام فیلد در وضعیت نمایش داده شود (NAME، STATE یا DETAILS). برای جزئیات بیشتر به StatusDisplayType Enum <#status-display-types> مراجعه کنید. در صورت مشخص نشدن، مقدار پیش‌فرض NAME است. • state (str) -- وضعیت فعلی کاربر • state_url (str) -- نشانی URL برای کلیک‌پذیر کردن متن state (هنگام کلیک روی state باز می‌شود) • details (str) -- کاری که بازیکن در حال حاضر انجام می‌دهد • details_url (str) -- نشانی URL برای کلیک‌پذیر کردن متن details (هنگام کلیک روی details باز می‌شود) • name (str) -- تنظیم مستقیم آنچه discord در جاهایی مانند فهرست کاربران نمایش می‌دهد • start (int) -- زمان epoch برای شروع بازی (به میلی‌ثانیه) • end (int) -- زمان epoch برای پایان بازی (به میلی‌ثانیه) • large_image (str) -- نام تصویر بارگذاری‌شده برای تصویر بزرگ نمایه (profile artwork) • large_text (str) -- متن راهنما (tooltip) برای تصویر بزرگ • large_url (str) -- نشانی URL برای کلیک‌پذیر کردن تصویر بزرگ (هنگام کلیک روی تصویر بزرگ باز می‌شود) • small_image (str) -- نام تصویر بارگذاری‌شده برای تصویر کوچک نمایه (profile artwork) • small_text (str) -- متن راهنما (tooltip) برای تصویر کوچک • small_url (str) -- نشانی URL برای کلیک‌پذیر کردن تصویر کوچک (هنگام کلیک روی تصویر کوچک باز می‌شود) • party_id (str) -- شناسه (id) پارتی، لابی یا گروه بازیکن • party_size (list) -- اندازه فعلی پارتی، لابی یا گروه بازیکن، و حداکثر آن در این قالب: [1,4] • join (str) -- رشته هش‌شده یکتا برای دعوت‌های گفت‌وگو و درخواست پیوستن (ask to join) • spectate (str) -- رشته هش‌شده یکتا برای دکمه تماشا (spectate) • match (str) -- رشته هش‌شده یکتا برای تماشا و پیوستن (spectate and join) • buttons (list) -- فهرستی از dictها برای دکمه‌های نمایه شما در قالب [{"label": "My Website", "url": "https://qtqt.cf"}, ...]؛ می‌تواند حداکثر شامل دو دکمه باشد • instance (bool) -- مسابقه را به‌عنوان یک نشست بازی (game session) با شروع و پایان مشخص علامت‌گذاری می‌کند نوع بازگشتی (Return type) pypresence.Response clear_activity(pid=os.getpid()) پاک کردن فعالیت. پارامترها (Parameters) pid (int) -- شناسه فرآیند (process id) بازی شما نوع بازگشتی (Return type) pypresence.Response subscribe(event, args={}) برای اشتراک در رویدادها استفاده می‌شود. پارامترها (Parameters) • event (str) -- نام رویداد برای اشتراک در آن • args (dict) -- هر آرگومانی که همراه با رویداد ارسال می‌شود نوع بازگشتی (Return type) pypresence.Response unsubscribe(event, args={}) برای لغو اشتراک از رویدادها استفاده می‌شود. پارامترها (Parameters) • event (str) -- نام رویداد برای لغو اشتراک از آن • args (dict) -- هر آرگومانی که همراه با رویداد ارسال می‌شود نوع بازگشتی (Return type) pypresence.Response get_voice_settings() دریافت تنظیمات صوتی کاربر. نوع بازگشتی (Return type) pypresence.Response set_voice_settings(**options) تنظیم کردن تنظیمات صوتی کاربر. پارامترها (Parameters) • _input (dict) -- تنظیمات ورودی • output (dict) -- تنظیمات خروجی • mode (dict) -- تنظیمات حالت صدا • automatic_gain_control (bool) -- وضعیت کنترل خودکار بهره (automatic gain control) • echo_cancellation (bool) -- وضعیت حذف پژواک (echo cancellation) • noise_suppression (bool) -- وضعیت کاهش نویز (noise suppression) • qos (bool) -- وضعیت کیفیت خدمات (QoS) صدا • silence_warning (bool) -- وضعیت اعلان هشدار سکوت • deaf (bool) -- وضعیت ناشنواسازی خود (self-deafen) • mute (bool) -- وضعیت بی‌صدا کردن خود (self-mute) نوع بازگشتی (Return type) pypresence.Response capture_shortcut(action) برای ضبط میان‌بر صفحه‌کلید وارد شده توسط کاربر استفاده می‌شود. پارامترها (Parameters) action (string) -- عمل ضبط، یکی از مقادیر 'START' یا 'STOP' نوع بازگشتی (Return type) pypresence.Response send_activity_join_invite(user_id) برای پذیرش یک درخواست «درخواست پیوستن» (Ask to Join) استفاده می‌شود. پارامترها (Parameters) user_id (str) -- شناسه کاربر (user id) نوع بازگشتی (Return type) pypresence.Response close_activity_request(user_id) برای رد کردن یک درخواست «درخواست پیوستن» (Ask to Join) استفاده می‌شود. پارامترها (Parameters) user_id (str) -- شناسه کاربر (user id) نوع بازگشتی (Return type) pypresence.Response register_event(event, func, args={}) قلاب کردن یک رویداد به یک تابع. هر زمان که Discord آن رویداد را ارسال کند، این تابع فراخوانی خواهد شد. به‌طور خودکار در آن مشترک خواهد شد. پارامترها • event (str) -- رویدادی که باید قلاب شود • func (function) -- تابعی که باید با رویداد جفت شود • args (dict) -- آرگومان‌های اختیاری مورد استفاده در اشتراک نوع بازگشتی pypresence.Response unregister_event(event, args={}) برداشتن قلاب یک رویداد از یک تابع. به‌طور خودکار اشتراک رویداد را نیز لغو خواهد کرد. پارامترها • event (str) -- رویدادی که باید قلاب آن برداشته شود • args (dict) -- آرگومان‌های اختیاری مورد استفاده در لغو اشتراک نوع بازگشتی pypresence.Response نویسندگان (AUTHORS) qwertyquerty, LewdNeko کپی‌رایت و تکثیر (COPYRIGHT) 2025, qwertyquerty 4.6 July 11, 2026 PYPRESENCE(1)