alirezax5 / xuiapi

It is a web service project to manage the x-ui panel
MIT License
66 stars 20 forks source link

عدم سازگاری با پنل های جدید #8

Closed asadace1 closed 1 year ago

asadace1 commented 1 year ago

سلام کار عالیه فقط اینکه با پنلهای جدید سارگاز نیست و الان کسی دیگه از پنلهای قدیمی استفاده نمیکنه الان همه از پنلهای مولتی یوزر با یک پورت استفاده میکنن شما نوشتین با پنل NidukaAkalanka هم کار میکنه در حالیکه این پنل مولتی یورز هست و این وب سرویس برای این نوع پنل ها نیس شما تو فانکشنهای NidukaAkalanka نوشیتن addInbound این پنل اینجوری کار نمیکنه بازم ممنون از شما

alirezax5 commented 1 year ago

سلام اکثر پنل هایی که ایرانی ها استفاده میکنن از HexaSoftwareTech یا اسدی سابق فورک شدن که اطلاعات کلایمت ها داخل ارایه settings ارسال میشه

alirezax5 commented 1 year ago

حالا اگه جدیدا تغییراتی داده باشن که با سورس مچ باشه توی بروزرسانی بعدی میزارم

alirezax5 commented 1 year ago

سلام کار عالیه فقط اینکه با پنلهای جدید سارگاز نیست و الان کسی دیگه از پنلهای قدیمی استفاده نمیکنه الان همه از پنلهای مولتی یوزر با یک پورت استفاده میکنن شما نوشتین با پنل NidukaAkalanka هم کار میکنه در حالیکه این پنل مولتی یورز هست و این وب سرویس برای این نوع پنل ها نیس شما تو فانکشنهای NidukaAkalanka نوشیتن addInbound این پنل اینجوری کار نمیکنه بازم ممنون از شما

فردا پس فردا پنل ثنایی و علیرضا اضافه میشه. تغییرات خوبی دادن

asadace1 commented 1 year ago

سلام اکثر پنل هایی که ایرانی ها استفاده میکنن از HexaSoftwareTech یا اسدی سابق فورک شدن که اطلاعات کلایمت ها داخل ارایه settings ارسال میشه

دقیقا بعله ولی تو فانکشنهای HexaSoftwareTech که شما نوشته بودین نمیشه با کلاینتها کار کرد مثلا نمیشه یه کلاینت رو اضافه یا ادیت کرد باید اول json کلاینت به setting اضافه بشه بعد کل ستینگ رو به اینباند اضافه کنیم ک کار من نیست ادد کردن یا پیدا کردن کلاینت از اون json خفن تو setting ممنون بازم

asadace1 commented 1 year ago

سلام کار عالیه فقط اینکه با پنلهای جدید سارگاز نیست و الان کسی دیگه از پنلهای قدیمی استفاده نمیکنه الان همه از پنلهای مولتی یوزر با یک پورت استفاده میکنن شما نوشتین با پنل NidukaAkalanka هم کار میکنه در حالیکه این پنل مولتی یورز هست و این وب سرویس برای این نوع پنل ها نیس شما تو فانکشنهای NidukaAkalanka نوشیتن addInbound این پنل اینجوری کار نمیکنه بازم ممنون از شما

فردا پس فردا پنل ثنایی و علیرضا اضافه میشه. تغییرات خوبی دادن

مرسی

alirezax5 commented 1 year ago

سلام کار عالیه فقط اینکه با پنلهای جدید سارگاز نیست و الان کسی دیگه از پنلهای قدیمی استفاده نمیکنه الان همه از پنلهای مولتی یوزر با یک پورت استفاده میکنن شما نوشتین با پنل NidukaAkalanka هم کار میکنه در حالیکه این پنل مولتی یورز هست و این وب سرویس برای این نوع پنل ها نیس شما تو فانکشنهای NidukaAkalanka نوشیتن addInbound این پنل اینجوری کار نمیکنه بازم ممنون از شما

فردا پس فردا پنل ثنایی و علیرضا اضافه میشه. تغییرات خوبی دادن

مرسی

اضافه شد اما addClient اون چیزی نیست که فکرشو بکنیم این هم اول لیست رو میگیره و بعد باید اضافش کنیم. اگه به توسعه دهندش دسترسی دارید پیشنهاد کنید api برای پنل آماده سازی کنه , این سورس فقط به مسیرهایی که ادم عادی دسترسی داره اطلاعات میفرسته.

asadace1 commented 1 year ago

اضافه شد اما addClient اون چیزی نیست که فکرشو بکنیم این هم اول لیست رو میگیره و بعد باید اضافش کنیم. اگه به توسعه دهندش دسترسی دارید پیشنهاد کنید api برای پنل آماده سازی کنه , این سورس فقط به مسیرهایی که ادم عادی دسترسی داره اطلاعات میفرسته.

درسته، بعله پیشنهاد رو میدم بهشون و اگر api برای پنلشون آماده کنن بهتون اطلاع میدم

alirezax5 commented 1 year ago

من یه سرچ کردم تو گیتهاب یه نفر یه کلاسی نوشته که addClient هم داره ولی من نتونستم تست کنم https://github.com/mobinjavari/v2ray-api-php

اومده لیست رو دریافت کرده و بهش اضافه میکنه گذاشتنش کاری نداره

asadace1 commented 1 year ago

درسته، برای شما راحته نه برای من مبتدی، به هرحال ممنونم فقط من یه مشکلی دارم من با استفاده از سورس شما نمیتونم listInbound() رو بخونم یعنی فقط ستینگ پنل و status() کار میکنه ولی listInbound() و هر فانکشنی که مسیر /xui/inbound رو داره فقط ارایه خالی {} رو برمیگردونه

alirezax5 commented 1 year ago

درسته، برای شما راحته نه برای من مبتدی، به هرحال ممنونم فقط من یه مشکلی دارم من با استفاده از سورس شما نمیتونم listInbound() رو بخونم یعنی فقط ستینگ پنل و status() کار میکنه ولی listInbound() و هر فانکشنی که مسیر /xui/inbound رو داره فقط ارایه خالی {} رو برمیگردونه

کدوم پنل

asadace1 commented 1 year ago

کدوم پنل

همه اشون. من از ثنایی استفاده میکنم ولی همه رو تست کردم بازم فرقی نکرد

alirezax5 commented 1 year ago

کدوم پنل

همه اشون. من از ثنایی استفاده میکنم ولی همه رو تست کردم بازم فرقی نکرد

تستش کردم اوک بود

asadace1 commented 1 year ago

مشکل چی میتونه باشه؟ هم با ssl هم بدون ssl تست کردم فرقی نکرد، آخه استاتوس یا ستینگ کار میکنه ولی اینباندها نه

alirezax5 commented 1 year ago

مشکل چی میتونه باشه؟ هم با ssl هم بدون ssl تست کردم فرقی نکرد، آخه استاتوس یا ستینگ کار میکنه ولی اینباندها نه

نمیدونم سورسو دسکاری نکردی؟

asadace1 commented 1 year ago

مشکل چی میتونه باشه؟ هم با ssl هم بدون ssl تست کردم فرقی نکرد، آخه استاتوس یا ستینگ کار میکنه ولی اینباندها نه

نمیدونم سورسو دسکاری نکردی؟

نه، ثتایی دو روز پیش آپدیت داده برای پنلش. منم آپدیت کردم پنل رو، شما روی آخرین آپدیتش تست کردین؟ ورژن v1.1.2

alirezax5 commented 1 year ago

مشکل چی میتونه باشه؟ هم با ssl هم بدون ssl تست کردم فرقی نکرد، آخه استاتوس یا ستینگ کار میکنه ولی اینباندها نه

نمیدونم سورسو دسکاری نکردی؟

نه، ثتایی دو روز پیش آپدیت داده برای پنلش. منم آپدیت کردم پنل رو، شما روی آخرین آپدیتش تست کردین؟ ورژن v1.1.2

اره

asadace1 commented 1 year ago

اوکی شد تونستم اینباند و حتی ستینگ رو بگیرم. مممونم

ali-khan-v21 commented 1 year ago

سلام و درود .اگر لطف کنید بگید برای پنل ثنایی متد addClient برای id , $setting$ دقیقا چجوری داده بفرستیم و با چه فرمتی؟json قسمت ستینگ باید چه چیز هایی رو توش بنویسم؟

alirezax5 commented 1 year ago

سلام اطلاعات کلاینت ها مثل :

$settings = [
    'clients' => [
        [
            'id' => '4',
            'email' => '4',
            'alterId' => '0',
        ]
    ],
    'disableInsecureEncryption' => false
];

و id هم ایدی ورودی یا همون inbound دقت کنید مثل قبل باید تمام اطلاعات کلاینت هارو دریافت کنید بعد کلاینت جدید رو اضافه کنید. بزودی یکم بهترش میکنم که کار با کلاینت ها یکم ساده بشه

ali-khan-v21 commented 1 year ago

یعنی با listInbounds بیام از inbound قسمت ستینگ رو بردارم و و به لیست clients یدونه ارایه دیگه اضافه کنم بعد کل settings اولیه مربوط به inbound رو بدم به این متد؟ اره ممنون میشم واقعا سورس خفنی شده

alirezax5 commented 1 year ago

یعنی با listInbounds بیام از inbound قسمت ستینگ رو بردارم و و به لیست clients یدونه ارایه دیگه اضافه کنم بعد کل settings اولیه مربوط به inbound رو بدم به این متد؟ اره ممنون میشم واقعا سورس خفنی شده

اره اقای ثنایی میتونستند سکت بک اند گار اضافه کردن کلاینت انجام بدن حالا اینجوری نوشتنش

ali-khan-v21 commented 1 year ago

واقعا ممنون بابت پاسخگوییتون هیچکدوم از پنل ها api مستقیم برا addclient داره؟ لینک اتصال vless رو هم بر اساس vless://guid@host.... بدم بعدش؟ یا خود پنل api داره که لینک رو برگردونه؟

alirezax5 commented 1 year ago

واقعا ممنون بابت پاسخگوییتون هیچکدوم از پنل ها api مستقیم برا addclient داره؟ لینک اتصال vless رو هم بر اساس vless://guid@host.... بدم بعدش؟ یا خود پنل api داره که لینک رو برگردونه؟

نه خوذ پنل برنمیگردونه

ali-khan-v21 commented 1 year ago

الان اسکریپت رو نوشتم و از کامپیوتر خودم به راحتی وصل میشه و کلاینت اضاف میکنه ولی همین اسکریپت رو گذاشتم توی همون سرور پنل که با ربات کار کنه لاگین نمیشه.حتی url رو هم کردم localhost:panelPort ولی جواب نمیده

asadace1 commented 1 year ago

یعنی با listInbounds بیام از inbound قسمت ستینگ رو بردارم و و به لیست clients یدونه ارایه دیگه اضافه کنم بعد کل settings اولیه مربوط به inbound رو بدم به این متد؟ اره ممنون میشم واقعا سورس خفنی شده

$xui = base('https://'ip':'port', 'user', 'pass'); $xui->setCookie(DIR .'/cookies/cookie.txt'); $xui->login($force = true); $inboundList = $xui->listInbound(); $inboundId = $inboundList["obj"][0]["id"]; // 0 is inbound 1 and 1 is inbound2 $settingsList = json_decode($inboundList["obj"][0]["settings"], true); // 0 is inbound 1 and 1 is inbound2

//add clients to selected inbound $data =json_decode('{ "id": "4d70b5d8-f980-4fc4-b8e3-4b4919040064", "alterId": 0, "email": "test", "limitIp": 0, "totalGB": 2147483648, "expiryTime": 1673788732494 }', true); $data['id'] = $id; $data['email'] = $email; $data['totalGB'] = $totalGB; $data['expiryTime'] = $expiryTime; array_push($settingsList['clients'], $data); $xui->addClient($inboundId, $settingsList);

asadace1 commented 1 year ago

منتها برای تمدید کلاینت جواب نمیده و اون داستان داره

alirezax5 commented 1 year ago

الان اسکریپت رو نوشتم و از کامپیوتر خودم به راحتی وصل میشه و کلاینت اضاف میکنه ولی همین اسکریپت رو گذاشتم توی همون سرور پنل که با ربات کار کنه لاگین نمیشه.حتی url رو هم کردم localhost:panelPort ولی جواب نمیده

اگه روی سرور رانش کردی با فایل کوکی رو دسترسی بهش بدی

alirezax5 commented 1 year ago

منتها برای تمدید کلاینت جواب نمیده و اون داستان داره

حجم هارو توی کلاینت وارد میکنین بروز نمیشه؟

asadace1 commented 1 year ago

حجم هارو توی کلاینت وارد میکنین بروز نمیشه؟

کار نمیکنه update client دستی هم کلاینت هارو میگیرم و حجم جدید و تایم جدید میدم و با ستینگ و اینباند میفرستم که اینجوری هم کلاینت فقط تو ستینگ بروز میشه تو client list که همون clinet status هست بروز نمیشه و درواقع ترافیک مصرفی نمیندازه دیگه

alirezax5 commented 1 year ago

حجم هارو توی کلاینت وارد میکنین بروز نمیشه؟

کار نمیکنه update client دستی هم کلاینت هارو میگیرم و حجم جدید و تایم جدید میدم و با ستینگ و اینباند میفرستم که اینجوری هم کلاینت فقط تو ستینگ بروز میشه تو client list که همون clinet status هست بروز نمیشه و درواقع ترافیک مصرفی نمیندازه دیگه

توی سورسی که گذاشتم باید اندیس کلاینته رو به عنوان کلاینت پاس بدی

در کل json شامل ایناس :

id=1&settings={ "clients": [ { "id": "f9ce5973-ac37-420d-f98c-c5644a9518b9", "flow": "", "email": "i2gqckp", "limitIp": 0, "totalGB": 0, "expiryTime": "" }, { "id": "1e12e6ce-3b5c-49d3-8a26-8ca04bd85fef", "flow": "", "email": "1vu3s5y", "limitIp": 0, "totalGB": 0, "expiryTime": "" } ], "decryption": "none", "fallbacks": [] }

وقت کنم فانکشن جدا مینویسم تا حدی ساده تر شه

asadace1 commented 1 year ago

درسته آره روش کار میکنم مرسی ازت. منتظر آپدیت جدید هستیم

ali-khan-v21 commented 1 year ago

الان اسکریپت رو نوشتم و از کامپیوتر خودم به راحتی وصل میشه و کلاینت اضاف میکنه ولی همین اسکریپت رو گذاشتم توی همون سرور پنل که با ربات کار کنه لاگین نمیشه.حتی url رو هم کردم localhost:panelPort ولی جواب نمیده

اگه روی سرور رانش کردی با فایل کوکی رو دسترسی بهش بدی

متوجه نمیشم. یعنی فایل کوکی رو با chmod دسترسیش رو تغییر بدم؟

alirezax5 commented 1 year ago

الان اسکریپت رو نوشتم و از کامپیوتر خودم به راحتی وصل میشه و کلاینت اضاف میکنه ولی همین اسکریپت رو گذاشتم توی همون سرور پنل که با ربات کار کنه لاگین نمیشه.حتی url رو هم کردم localhost:panelPort ولی جواب نمیده

اگه روی سرور رانش کردی با فایل کوکی رو دسترسی بهش بدی

متوجه نمیشم. یعنی فایل کوکی رو با chmod دسترسیش رو تغییر بدم؟

اره

asadace1 commented 1 year ago

البته اینم بگم کلا پنل ثتایی خوب نیست و همه سورسها باهاش مشکل دارن https://github.com/MrCenTury/xXx-UI این پنل هیچ مشکلی نداره در حالی که پنل ثتایی یکی در میون باگ میخوره

ali-khan-v21 commented 1 year ago

الان متد های که نوشتین مثل addClient من بر اساس همون اسکریپت نوشتم روی این پنل هم کار میکنه؟

alirezax5 commented 1 year ago

الان متد های که نوشتین مثل addClient من بر اساس همون اسکریپت نوشتم روی این پنل هم کار میکنه؟

mecen? نمیدونم جدیده و تاحالا تست نکردم.

asadace1 commented 1 year ago

الان متد های که نوشتین مثل addClient من بر اساس همون اسکریپت نوشتم روی این پنل هم کار میکنه؟

آره من تست کردم مال ثنایی باگ داره این نداره

ali-khan-v21 commented 1 year ago

الان متد های که نوشتین مثل addClient من بر اساس همون اسکریپت نوشتم روی این پنل هم کار میکنه؟

آره من تست کردم مال ثنایی باگ داره این نداره

شما که تست کردی با این سورس میشه بهش متصل شد؟اگه اره ممنون میشم اسکریپت رو ببینم

asadace1 commented 1 year ago

شما که تست کردی با این سورس میشه بهش متصل شد؟اگه اره ممنون میشم اسکریپت رو ببینم

ببین منظورت از اسکریپ نمیدونم چیه ولی اون کدهایی که بالا نوشتم جواب میده. خیلی ساده اس همونطور که استاد alirezax5 گفتن باید اینباند رو بگیری و ستینگ رو بگیری و بعد یه کلایت به صورت ارایه بهش اضافه کنی و بعد با ادد کلاینت بفرستی بره همین الانم با پنل علیرضا تست کردم بهتر از همه پنل ها هستش . کاملا سازگاره

ali-khan-v21 commented 1 year ago

تا الان همه چیز روی پنل ثنایی پیاده کردم جواب داده فقط این مسئله آپدیت کردن کانفیگ چی؟الان یه کانفیگ هم توی settings->clients وجود داره و هم inbound['clientStats'] الان من بخوام زمانش رو اضافه کنم و up , down رو هم صفر کنم از همون clientStats برم ؟

alirezax5 commented 1 year ago

@asadace1 @ali-khan-v21 آپدیترو تست کنید

ali-khan-v21 commented 1 year ago

متد آپدیت ؟کدوم متد؟آرگومان بهش چی بدم؟

alirezax5 commented 1 year ago

متد آپدیت ؟کدوم متد؟آرگومان بهش چی بدم؟

داخل ide اگه بنویسی ورودی هاشون میاد و از پوشه src میتونی نگاه کنی فانکشن هارو و چندتا فانکشن برای حذف و اضافه کردن کلاینت اضافه کردم

asadace1 commented 1 year ago

@asadace1 @ali-khan-v21 آپدیترو تست کنید

سلام تست کردم عالیه کار راحت شده بسیار ممنوم

asadace1 commented 1 year ago

تا الان همه چیز روی پنل ثنایی پیاده کردم جواب داده فقط این مسئله آپدیت کردن کانفیگ چی؟الان یه کانفیگ هم توی settings->clients وجود داره و هم inbound['clientStats'] الان من بخوام زمانش رو اضافه کنم و up , down رو هم صفر کنم از همون clientStats برم ؟

کلاینت استاتس اطلاعات کلاینت هارو نشون میده اون برای گرفتن اطلاعات اکانت هست برای آپدیت کلاینت هم با استفاده از متد جدید، تاریخ یا حجم کلاینت رو آپدیت کنید و بعد با ریست کلاینت همون کلاین رو ریست ترافیک کنید

asadace1 commented 1 year ago

البته ریست ترافیک کلاینت کار نمیکنه مسیر curl درست نبود،درست کردم بازم ریست نمیشه کلاینت {"success":true,"msg":"traffic reseted\u6210\u529f","obj":null} خروجی اینه ولی انگار انجام نشده

alirezax5 commented 1 year ago

البته ریست ترافیک کلاینت کار نمیکنه مسیر curl درست نبود،درست کردم بازم ریست نمیشه کلاینت {"success":true,"msg":"traffic reseted\u6210\u529f","obj":null} خروجی اینه ولی انگار انجام نشده

ادرسشون اشتباس ، درستش میکنم

asadace1 commented 1 year ago

همین فقط ریست کلاینت مورد داره . بقیه فانکشن ها موری ندیدم . و ادیت بای ایمیل عالی بود. البته من خودم یه کدی نوشته بودم براش ولی این بهتره سریعتر و سیمپلتر

asadace1 commented 1 year ago

میدونید مشکل اینه که دیتابیس پنل دوتا قسمت اصلی داره یکی اینباندها و یکی کلاینتها حالا ما تو ادد یا ادیت اینباند مشکلی نداریم همه کد ها کار میکنه و به راحتی با ادد کلاینت میتونیم کلاینت جدید اضافه کنیم

مشکل تو آپدیت حجم یا expiryTime در یک کلاینت هست که چه با متد اصلی ادد کلایت و چه با متد اصلی ادیت اینباند انجام بدیم بخش کلاینت ها در دیتابیس چیزی اعمال نمیشه و تغییرات فقط تو ستینگ اینباد اعمال میشه برای همینه که بعد از انجام تو پنل بازم disable میزنه کلاینت رو

alirezax5 commented 1 year ago

میدونید مشکل اینه که دیتابیس پنل دوتا قسمت اصلی داره یکی اینباندها و یکی کلاینتها حالا ما تو ادد یا ادیت اینباند مشکلی نداریم همه کد ها کار میکنه و به راحتی با ادد کلاینت میتونیم کلاینت جدید اضافه کنیم

مشکل تو آپدیت حجم یا expiryTime در یک کلاینت هست که چه با متد اصلی ادد کلایت و چه با متد اصلی ادیت اینباند انجام بدیم بخش کلاینت ها در دیتابیس چیزی اعمال نمیشه و تغییرات فقط تو ستینگ اینباد اعمال میشه برای همینه که بعد از انجام تو پنل بازم disable میزنه کلاینت رو

ریست حجم رو تست نکردم و فکر نکنم مشکلش اون باشه احتمالا اشتباه داده میفرستیم

و برای ویرایش زمان و ترافیک از متد جدیدا استفاده کن فقط ترافیکش برحسب گیگ بفرس