666
Admin : فرهاد ناصری زاده @farhad_naserizadeh @farhad3412 کانال @raspberry_python @c_micro @micropython_iot @ai_dsp 🔍 قوانین گروه https://t.me/Pyapi/1246 تبادل: @kasryeskandaraaa
نمی دونم والا مهندس جان خیلی داستان داره
Читать полностью…
بفرمایید مهندس جان
import asyncioЧитать полностью…
from rubpy import Client
from random import choice
class RubikaBot:
def __init__(self, session_name: str):
""" مقداردهی اولیه با یک سشن مشخص """
self.client = Client(session_name)
async def start(self):
""" شروع اتصال """
await self.client.start()
async def stop(self):
""" قطع اتصال """
await self.client.disconnect()
async def send_message(self, user_guid: str, text: str, auto_delete: int = 30):
""" ارسال پیام متنی """
# await self.start()
await self.client.send_message(object_guid=user_guid, text=text, auto_delete=auto_delete)
# await self.stop()
async def send_video(self, user_guid: str, text: str, auto_delete: int = 30):
""" ارسال ویدیو """
await self.start()
await self.client.send_message(object_guid=user_guid, text=text, auto_delete=auto_delete)
await self.stop()
# 📌 تعریف چندین اکانت روبیکا
accounts = {
"acc1": RubikaBot("rubpy"),
"acc2": RubikaBot("rubpy1"),
}
async def main():
""" تابع اصلی برنامه """
accounts["acc1" ].start()
accounts["acc2" ].start()
for i in range(4):
a = accounts[choice(list(accounts.keys()))]
await a.send_message("u0GNswQ0aa7256168902d59109b1228b", "📩 پیام از اکانت 1")
# await accounts["acc2"].send_video("u0GNswQ0aa7256168902d59109b1228b", "🎥 ویدیو از اکانت 2")
# await accounts["acc1"].send_message("u0GNswQ0aa7256168902d59109b1228b", "📩 پیام از اکانت 3")
# await accounts["acc2"].send_video("u0GNswQ0aa7256168902d59109b1228b", "🎥 ویدیو از اکانت 4")
# اجرای برنامه
asyncio.run(main())
چون داخل متود سند مسیج دارید هی استارت و استاپ میکنید بات رو
یک بار استارت کنید کلاینت رو و استفاده کنید از instance اش
موضوع این نیست اصلا
منطق چند اکانتی رو بعدا هم میتونید اضافه کنید به کد. مهم این هست که با یک اکانت درست کار کنه کدتون.
حدس من این هست بخاطر هر دفعه استارت کردن کلاینت به این مشکل میخورید. چون توی ارور نشون داده موقع کال کردن متود استارت به ارور خورده.
متوجه نشدم. چی همون شد؟ تست کنید ببینید خروجی درست میگیرید یا نه.
Читать полностью…
یه همچین چیزی تست کن
پای سیستم نیستم با گوشی نوشتم
برای روبیکا کد نزدم تاحالا
import asyncioЧитать полностью…
from rubpy import Client
account1 = Client("token")
account2 = Client("token")
async def send_messsge(client, user, msg):
await client.send_message(user, msg)
async def main():
account1.start()
# inja send message ro test kon
await send_message(account1, "user", "test msg")
if __name__ == "__main__":
asyncio.run(main())
اولا که این ارور مربوط به کانکشن نیست
دوماً کدی که نوشتید منطقی نیست
نیاز نیست هر دفعه که میخواید متودی رو صدا بزنید بیاید کلاینت رو استارت کنید.
طبق کدی که فرستادید، هروقت که متود send_message رو کال میکنید میاد کلاینت رو استارت میکنه. اشتباه هست این متود .
نیازی به استفاده از کلاس و اینجور چیزا هم نیست.
خیلی ساده کلاینت هارو تعریف کنید و متود هارو استفاده کنید.
ولی باز اروری که فرستادید برمیگرده به کتابخونه ای که استفاده میکنید
دقیقا توی متن ارور به فارسی مینویسه "عدم اتصال به سرور" ؟
نمیشه که :)
متن ارور هم بذارید زودتر به جواب میرسید.
Читать полностью…
await
accounts["acc1" ] .send_message("u0GNswQ0aa7256168902d59109bb", " پیام از اکانت 1")
await
accounts["acc2" ] .send_message("u0GNswQ0aa7256168902d59109bb", " پیام از اکانت 1")
مهندس جان داخل مین که وقتی اینطوری می زارم ok مشکلی نداره
یعنی باید شماره تمام کاربر هارو ذخیره کنیم؟
Читать полностью…
باید کتابخونه های مشابه باشه فکر کنم
خود روبیکا کپی و فیک بقیه اپ هایی مثل تلگرامه :)
کد + خطا رو در قسمت issue که بالاتر گفتم ثبت کنید تا نویسنده کتابخونه ببینه.
Читать полностью…
باز هم میگم ممکنه از سمت شما نباشه ، از سرور های روبیکا یا کد های کتابخانه باشه.
یه سر به بخش issue های پیج گیتهاب کتابخانه بزنید ببینید کسی مشکل مشابهی داره یا نه.
یک دواکانت درست کار می کنه مهندس جان
await
accounts["acc1" ] .send_message("u0GNswQ0aa7256168902d59109bb", " پیام از اکانت 1")
await
accounts["acc2" ] .send_message("u0GNswQ0aa7256168902d59109bb", " پیام از اکانت 1")
Acc={
account1 = Client("token"),
account2 = Client("token")
account1 = Client("token")
account2 = Client("token")
من موفق نشدم به چیزی دست پیدا کنم ، یه چیزایی رو کامنت کردم و کل کد درست اجرا شد
از کمک حسام استفاده کن
الان این طوری استفاده کنم مهندس جان؟
b= Client("bot1" )
b2= Client("bot2" )
بفرمایین مهندس جان
File "f:\Yoozplus\bot\telegram\terad.py", line 100, in asyncio.run(main())
File "c:\Users\blue\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py", line 190, in runreturn runner.run(main) ^^^^^^^^^^^^^^^^
File "c:\Users\blue\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py", line 118, in runreturn self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\blue\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 654, in run_until_completereturn future.result() ^^^^^^^^^^^^^^^
File "f:\Yoozplus\bot\telegram\terad.py", line 92, in mainawait a.start()
File "f:\Yoozplus\bot\telegram\terad.py", line 63, in startawait self.client.start()
File "c:\Users\blue\AppData\Local\Programs\Python\Python311\Lib\site-packages\rubpy\methods\utilities\start.py", line 26, in startself.guid = result.user.user_guid ^^^^^^^^^^^ ^^^^^^^^^^^^^^^
File "f:\Yoozplus\bot\telegram\terad.py", line 92, in mainawait a.start()
File "f:\Yoozplus\bot\telegram\terad.py", line 63, in startawait self.client.start()
File "c:\Users\blue\AppData\Local\Programs\Python\Python311\Lib\site-packages\rubpy\methods\utilities\start.py", line 26, in startself.guid = result.user.user_guid ^^^^^^^^^^^ await self.client.start()
File "c:\Users\blue\AppData\Local\Programs\Python\Python311\Lib\site-packages\rubpy\methods\utilities\start.py", line 26, in startself.guid = result.user.user_guid ^^^^^^^^^^^ ^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'user'
PS F:\Yoozplus\bot\telegram>
به خدا که اگه بدونم!
بزار یه مدت دیگه میرم پای سیستم ، ران میگیرم ببینم چیزی به ذهنم میرسه 🤔
مطمعن نیستم به چیزی که میگم ، ولی مربوط به این نیست که یه دیکشنری دوتایی داری؟
Читать полностью…
سلام بر مهندسان واساتید گرامی
چرا این کد بعد از اینکه دوبار اجرا میشه و درست کار می کنه برای بار سوم خطای اتصال میده؟
from random import choiceЧитать полностью…
import asyncio
from rubpy import Client
class RubikaBot:
def __init__(self, session_name: str):
""" مقداردهی اولیه با یک سشن مشخص """
self.client = Client(session_name)
async def start(self):
""" شروع اتصال """
await self.client.start()
async def stop(self):
""" قطع اتصال """
await self.client.disconnect()
async def send_message(self, user_guid: str, text: str):
""" ارسال پیام متنی """
await self.start()
await self.client.send_message(object_guid=user_guid, text=text)
await self.stop()
async def send_video(self, user_guid: str, text: str):
""" ارسال ویدیو """
await self.start()
await self.client.send_message(object_guid=user_guid, text=text)
await self.stop()
# تعریف چندین اکانت روبیکا
accounts = {
"acc1": RubikaBot("rubpy"),
"acc2": RubikaBot("rubpy1"),
}
async def main():
""" تابع اصلی برنامه """
for i in range(4):
a =accounts[choice(list(accounts.keys()))]
await a.send_message("u0GNswQ0aa7256168902d59109bb", " پیام از اکانت 1")
# await accounts["acc2"].send_video("u0GNswQ0aa7256168902d59109b1228b", " ویدیو از اکانت 2")
await asyncio.sleep(20)
# اجرای برنامه
asyncio.run(main())
از طرف ربات یه درخواست میدی
خود طرف باید قبول کنه و بفرسته