Compare commits

...

3 Commits

Author SHA1 Message Date
farazdy 4716945aab fixed config 4 months ago
farazdy e5af63dc93 added AI api to translator
added sms test
4 months ago
farazdy d300f4f9be update json 4 months ago

@ -756,7 +756,7 @@ function cardCount()
function sendSMSText($number, $content)
{
$url = 'http://rest.payamak-panel.com/api/SendSMS/SendSMS';
$url = config('app.sms_url');
$options = array(
'content-type' => 'application/x-www-form-urlencoded',
@ -788,6 +788,45 @@ function sendSMSText($number, $content)
return $result;
}
/***
* send sms
* @param string $number phone number
* @param string $content sms content
* @return bool|string
*/
function sendSMSText2($number, $content)
{
$url = config('app.sms_url');
$options = array(
'content-type' => 'application/x-www-form-urlencoded',
'cache-control' => 'no-cache'
);
$fields_string = http_build_query(array(
'user' => config('app.sms_user'),
'password' => config('app.sms_pass'),
'number' => $number,
'text' => $content,
'isflash' => 'false'
));
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
//So that curl_exec returns the contents of the cURL; rather than echoing it
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//execute post
$result = curl_exec($ch);
return json_decode($result,true);
}
/***
* remove title of html code
* @param $str

@ -6,6 +6,8 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\XlangSaveRequest;
use App\Models\Xlang;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Artisan;
use function Xmen\StarterKit\Helpers\logAdmin;
use function Xmen\StarterKit\Helpers\logAdminBatch;
@ -148,6 +150,25 @@ class XlangController extends Controller
define("TRANSLATE_FILE", PREFIX_PATH . 'resources/lang/' . $tag . '.json');
return response()->download(TRANSLATE_FILE, $tag . '.json');
}
public function ai($tag)
{
// set_time_limit(300);
define("TRANSLATE_FILE", PREFIX_PATH . 'resources/lang/' . $tag . '.json');
$file = file_get_contents(TRANSLATE_FILE);
$url = 'http://5.255.98.77:3001/json?form=en&to='.$tag;
$client = new Client([
'headers' => [ 'Content-Type' => 'application/json' ]
]);
$response = $client->post($url,
['body' => $file]
);
file_put_contents(TRANSLATE_FILE,$response->getBody());
return redirect()->back()->with(['message' => __("Translated by ai xstack service:").' '.$tag]);
}
public function upload($tag, Request $request)
{

@ -168,6 +168,7 @@
"Double click on image to change index image": "دوبار کلیک کنید تا عکس اصلی انتخاب شود",
"Double click on to remove item": "برای حذف دابل کلیک کنید",
"Double click to remove": "برای حذف دابل کلیک کنید",
"Download json file": "بارگیری فایل جی‌سان",
"Draft": "پیش‌نویس",
"Draft now": "پیش‌نویس کن",
"Drafted": "پیش‌نویس شده",
@ -239,6 +240,7 @@
"Incorrect mobile number": "شماره تماس اشتباه است",
"Index image": "تصویر شاخص",
"Information": "اطلاعات",
"Invalid json file!": "فایل جیسان معتبر نیست",
"Invalid search": "جستجوی نا معتبر",
"Invoice": "صورتحساب",
"Invoice id": "شماره صورتحساب",
@ -505,6 +507,10 @@
"Total Price": "مبلغ کل",
"Total amount": "مقدار کل",
"Tracking code": "کد رهگیری",
"Translate": "ترجمان",
"Translate updated": "ترجمه به روز شد",
"Translate with AI": "ترجمه با کمک هوش مصنوعی",
"Translated by ai xstack service:": "",
"Translates": "ترجمان",
"Transport": "روش ارسال",
"Transport method": "شیوه ارسال",
@ -520,6 +526,7 @@
"Under construction": "در دست تعمیر \/ به‌روزرسانی",
"Unit": "واحد",
"Unknown bulk action :": "یک رویداد نامتعارف جمعی",
"Upload file": "بارگزاری فایل",
"Upload images": "بارگزاری عکس",
"Upload new images": "بارگزاری عکس جدید",
"User": "کاربر",

@ -119,6 +119,7 @@
"Do": "Сделать",
"Double click on image to change index image": "Дважды щелкните на изображение, чтобы изменить индексное изображение",
"Double click on to remove item": "Дважды щелкните, чтобы удалить элемент",
"Download json file": "",
"Draft": "Черновик",
"Draft now": "Создать черновик",
"Drafted": "Создан черновик",
@ -178,6 +179,7 @@
"Incorrect mobile number": "Неправильный номер мобильного телефона",
"Index image": "Индексное изображение",
"Information": "Информация",
"Invalid json file!": "",
"Invalid search": "Недопустимый поиск",
"Invoice": "Счет",
"Invoice id": "ID счета",
@ -200,7 +202,7 @@
"Last update": "Последнее обновление",
"Link": "Связь",
"Login": "Авторизоваться",
"Login / Register": "«Войти/Зарегистрироваться»",
"Login \/ Register": "«Войти\/Зарегистрироваться»",
"Logout": "Выйти",
"Logs": "«Журналы»",
"Long text": "«Длинный текст»",
@ -317,7 +319,7 @@
"Published": "Опубликовано",
"Quantity": "Количество",
"Question": "Вопрос",
"Question / Answer": "Вопрос ответ",
"Question \/ Answer": "Вопрос ответ",
"Questions": "Вопросы",
"Question|Message": "«Вопрос|Сообщение»",
"RTL": "РТЛ",
@ -358,7 +360,7 @@
"Short text": "«Короткий текст»",
"Show": "Показывать",
"Signup or Login": "Зарегистрируйтесь или войдите под своим ником",
"Single Select \u0026 multi search": "«Единый выбор и множественный поиск»",
"Single Select & multi search": "«Единый выбор и множественный поиск»",
"Slider": "«Слайдер»",
"Slider list": "«Список слайдеров»",
"Sliders": "«Слайдеры»",
@ -383,7 +385,7 @@
"Tax": "«Налог»",
"Text": "Текст",
"Text type": "«Тип текста»",
"The first and/or second image will be index image": "«Первое и/или второе изображение будет индексным»",
"The first and\/or second image will be index image": "«Первое и\/или второе изображение будет индексным»",
"The order is duplicate please check invoices list": "«Заказ дубликат, пожалуйста, проверьте список счетов»",
"Thumbnail": "«Миниатюра»",
"Thursday": "Четверг",
@ -398,6 +400,9 @@
"Total Price": "Итоговая цена",
"Total amount": "Общая сумма",
"Tracking code": "Код отслеживания",
"Translate updated": "",
"Translate with AI": "",
"Translated by ai xstack service:": "",
"Translates": "«Переводит»",
"Transport": "Транспорт",
"Transport method": "«Транспортный метод»",
@ -412,6 +417,7 @@
"Under construction": "В разработке",
"Unit": "Единица",
"Unknown bulk action :": "«Неизвестное массовое действие:»",
"Upload file": "",
"Upload images": "Загрузить изображения",
"Upload new images": "«Загрузить новые изображения»",
"User": "Пользователь",
@ -460,7 +466,7 @@
"deleted successfully": "успешно удалено",
"id": "идентификатор",
"invoice created successfully": "счет успешно создан",
"name / email": "«имя / адрес электронной почты»",
"name \/ email": "«имя \/ адрес электронной почты»",
"not searchable": "недоступно для поиска",
"password repeat": "повторить пароль",
"phone": "телефон",

@ -28,7 +28,10 @@
{{__("Upload file")}}
</button>
</form>
<a href="{{route('admin.lang.ai',$lang->tag)}}" class="btn btn-outline-success w-100 mt-3 btn-sm">
<i class="ri-ai-generate"></i>
{{__("Translate with AI")}}
</a>
</div>
</div>
@endforeach

@ -41,6 +41,7 @@ Route::prefix(config('starter-kit.uri'))->name('admin.')->group(
Route::post('/update/{xlang}', [\App\Http\Controllers\Admin\XlangController::class,'update'])->name('update');
Route::post('bulk', [\App\Http\Controllers\Admin\XlangController::class, "bulk"])->name('bulk');
Route::get('/download/{tag}', [\App\Http\Controllers\Admin\XlangController::class,'download'])->name('download');
Route::get('/ai/{tag}', [\App\Http\Controllers\Admin\XlangController::class,'ai'])->name('ai');
Route::post('/upload/{tag}', [\App\Http\Controllers\Admin\XlangController::class,'upload'])->name('upload');
});
@ -289,6 +290,24 @@ Route::get('/resetStock', [App\Http\Controllers\WebsiteController::class, "reset
Route::get('/resetQ', [App\Http\Controllers\WebsiteController::class, "resetQuantity"])->name('resetQuantity');
Route::get('/credit/pay/{invoice}', [App\Http\Controllers\CustomerController::class, 'credit'])->name('credit');
Route::get('/test/sms',function (){
if (auth()->check()){
$result = \App\Helpers\sendSMSText2('09209517726','پیامک');
if ($result == null){
return 'fatal error';
}else{
if ($result['OK']){
return $result['Msg'];
}else{
return 'err'.$result['Code'].': '.$result['Msg'];
}
}
} else{
return abort(403);
}
});
//Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
if (\App\Helpers\getSetting('redirect') == 'yes') {
Route::get('{any}', [\App\Http\Controllers\RedirectController::class, 'check'])->where('any', '.*');

Loading…
Cancel
Save