/
home
/
suroeste
/
public_html
/
gorbus.transportessuroeste.com
/
suroeste
/
_lib
/
prod
/
lib
/
php
/
/home/suroeste/public_html/gorbus.transportessuroeste.com/suroeste/_lib/prod/lib/php
mkdir
upload
Name
Size
Mode
Actions
api/
-
0755
rm
devel/
-
0755
rm
sql/
-
0755
rm
build.dat
1
0644
edit
dl
rm
crypt.inc.php
17448
0644
edit
dl
rm
fix.php
595
0644
edit
dl
rm
help.en-us.php
2731
0644
edit
dl
rm
help.es-es.php
2731
0644
edit
dl
rm
help.pt-br.php
2813
0644
edit
dl
rm
index.html
4725
0644
edit
dl
rm
index.php
46
0644
edit
dl
rm
lang.en-us.php
15779
0644
edit
dl
rm
lang.es-es.php
17359
0644
edit
dl
rm
lang.pt-br.php
17408
0644
edit
dl
rm
msg_perfil.tpl.php
1520
0644
edit
dl
rm
nm_api.php
71103
0644
edit
dl
rm
nm_check_mobile.php
83352
0644
edit
dl
rm
nm_codbarra.php
49735
0644
edit
dl
rm
nm_config_graf.php
9564
0644
edit
dl
rm
nm_config_pdf.php
8394
0644
edit
dl
rm
nm_conv_dados.php
17789
0644
edit
dl
rm
nm_ctrl_app_name.php
2364
0644
edit
dl
rm
nm_data.class.php
47922
0644
edit
dl
rm
nm_edit.php
17779
0644
edit
dl
rm
nm_erro.php
1019
0644
edit
dl
rm
nm_extenso.php
12067
0644
edit
dl
rm
nm_font_tcpdf.php
3585
0644
edit
dl
rm
nm_functions.php
41830
0644
edit
dl
rm
nm_gc.php
3448
0644
edit
dl
rm
nm_gp_limpa.php
2064
0644
edit
dl
rm
nm_ini_lib.php
21141
0644
edit
dl
rm
nm_ini_manager2.php
134609
0644
edit
dl
rm
nm_ini_manager3.php
99580
0644
edit
dl
rm
nm_ini_perfil.php
118168
0644
edit
dl
rm
nm_saida.php
298
0644
edit
dl
rm
nm_sec_prod.php
10066
0644
edit
dl
rm
nm_serialize.php
5583
0644
edit
dl
rm
nm_session.php
22067
0644
edit
dl
rm
nm_trata_img.php
12362
0644
edit
dl
rm
nm_trata_saida.php
2036
0644
edit
dl
rm
nm_utf8.php
21320
0644
edit
dl
rm
nm_valida.php
42251
0644
edit
dl
rm
prod.dat
7
0644
edit
dl
rm
ver.dat
8
0644
edit
dl
rm
Edit:
/home/suroeste/public_html/gorbus.transportessuroeste.com/suroeste/_lib/prod/lib/php/nm_api.php
(71103B)
<?php global $bol_api_prod; if(!isset($bol_api_prod)) { $bol_api_prod = false; } function nm_get_api_gateways($api = '') { $arr_all = nm_get_api_gateways_deep($api); $flatten = []; foreach($arr_all as $scope => $scope_data) { if (!isset($flatten[$scope])) { $flatten[$scope] = []; } foreach ($scope_data as $field => $field_data) { $k_f = strval($field); if (!isset($flatten[$scope][$k_f])) { $flatten[$scope][$k_f] = []; } $field_flat = []; foreach ($field_data as $cols) { foreach ($cols as $key => $val) { $field_flat[$key] = $val; } } $flatten[$scope][$k_f] = $field_flat; } } return $flatten; } function nm_get_api_gateways_deep($api = '') { $arr_apis = ['email' => [], 'sms' => [], 'payment' => []]; $aws_region = [ 'us-east-1' => 'Leste dos EUA (Norte da Virgínia)', 'us-east-2' => 'Leste dos EUA (Ohio)', 'us-west-1' => 'Oeste dos EUA (Norte da Califórnia)', 'us-west-2' => 'Oeste dos EUA (Oregon)', 'af-south-1' => 'África (Cidade do Cabo)', 'ap-east-1' => 'Ásia-Pacífico (Hong Kong)', 'ap-south-1' => 'Ásia-Pacífico (Mumbai)', 'ap-northeast-2' => 'Ásia-Pacífico (Seul)', 'ap-southeast-1' => 'Ásia-Pacífico (Cingapura)', 'ap-southeast-2' => 'Ásia-Pacífico (Sydney)', 'ap-northeast-1' => 'Ásia-Pacífico (Tóquio)', 'ca-central-1' => 'Canadá (Central)', 'eu-central-1' => 'Europa (Frankfurt)', 'eu-west-1' => 'Europa (Irlanda)', 'eu-west-2' => 'Europa (Londres)', 'eu-south-1' => 'Europa (Milão)', 'eu-west-3' => 'Europa (Paris)', 'eu-north-1' => 'Europa (Estocolmo)', 'me-south-1' => 'Oriente Médio (Bahrein)', 'sa-east-1' => 'América do Sul (São Paulo)', ]; $arr_apis['email']['smtp'] = [ [ 'smtp_server' => ['placeholder' => 'smtp.example.com'], 'smtp_port' => ['placeholder' => '465', 'type' => 'number'], 'smtp_protocol' => ['options' => ['', 'SSL', 'TLS'], 'type' => 'select'] ], [ 'smtp_user' => ['placeholder' => 'default@example.com'], 'smtp_password' => ['placeholder' => '********', 'type' => 'password'] ], [ 'from_email' => ['placeholder' => 'default@example.com'], 'from_name' => ['placeholder' => 'default'] ], ]; $arr_apis['email']['mandrill'] = [ [ 'from_email' => ['placeholder' => 'default@example.com'], 'from_name' => ['placeholder' => 'default'], ], [ 'api_key' => ['placeholder' => 'Your API'] ] ]; $arr_apis['email']['SES'] = [ [ 'api_key' => ['placeholder' => 'Your Key API'], 'api_secret' => ['placeholder' => 'Your Secret API'], ], [ 'from_email' => ['placeholder' => 'default@example.com'], 'from_name' => ['placeholder' => 'default'], ], [ 'region' => ['type' => 'select', 'options' => $aws_region, 'use_key' => true, 'use_lang' => true], ] ]; $arr_apis['sms']['twilio'] = [ [ 'auth_id' => ['placeholder' => 'Your Auth ID'], 'auth_token' => ['placeholder' => 'Your Auth Token'], ], [ 'from' => ['placeholder' => 'Default number to send SMS'], ] ]; $arr_apis['sms']['plivo'] = [ [ 'auth_id' => ['placeholder' => 'Your Auth ID'], 'auth_token' => ['placeholder' => 'Your Auth Token'], ], [ 'from' => ['placeholder' => 'Default number to send SMS'], ] ]; $arr_apis['sms']['clickatell'] = [ [ 'auth_token' => ['placeholder' => 'Your Auth Token'], ] ]; $arr_apis['payment']['pagseguro'] = [ [ 'environment' => ['placeholder' => 'Sandbox or Production'], 'charset' => ['options' => ['UTF-8', 'ISO-8859-1'], 'type' => 'select'], ], [ 'auth_email' => ['placeholder' => 'Email to auth in API'], 'auth_token' => ['placeholder' => 'Your Auth token'], ], [ 'auth_appId' => ['placeholder' => 'AppID to connect in pagseguro by app'], 'auth_appKey' => ['placeholder' => 'AppKey to connect in pagseguro by app'], ] ]; $arr_apis['payment']['paypal_express'] = [ [ 'username' => ['placeholder' => 'Username'], 'password' => ['placeholder' => 'Password'], ], [ 'signature' => ['placeholder' => 'Signature'], 'testMode' => ['options' => ['FALSE', 'TRUE'], 'type' => 'select'], ] ]; $arr_apis['payment']['paypal_express_incontext'] = [ [ 'username' => ['placeholder' => 'Username'], 'password' => ['placeholder' => 'Password'], ], [ 'signature' => ['placeholder' => 'Signature'], 'testMode' => ['options' => ['FALSE', 'TRUE'], 'type' => 'select'], ] ]; $arr_apis['payment']['paypal_pro'] = [ [ 'username' => ['placeholder' => 'Username'], 'password' => ['placeholder' => 'Password'], ], [ 'signature' => ['placeholder' => 'Signature'], 'testMode' => ['options' => ['FALSE', 'TRUE'], 'type' => 'select'], ] ]; $arr_apis['payment']['paypal_rest'] = [ [ 'clientId' => ['placeholder' => 'Your Auth ClientId'], 'secret' => ['placeholder' => 'Your Auth Secret'], ], [ // 'token' => ['placeholder' => 'Your Auth token', 'type' => 'paypal_auth_code'], 'testMode' => ['options' => ['FALSE', 'TRUE'], 'type' => 'select'], ] ]; if(PHP_MAJOR_VERSION >7 || (PHP_MAJOR_VERSION ==7 && PHP_MINOR_VERSION >= 3) ) { $arr_apis['payment']['braintree'] = [ [ 'privateKey' => ['placeholder' => 'Your privateKey'], 'publicKey' => ['placeholder' => 'Your publicKey'], ], [ 'merchantId' => ['placeholder' => 'Your merchantId'], 'testMode' => ['options' => ['FALSE', 'TRUE'], 'type' => 'select'], ] ]; $arr_apis['payment']['mercadopago'] = [ [ 'token' => ['placeholder' => 'Your Auth token'], ] ]; } $arr_apis['payment']['stripe'] = [ [ 'apiKey' => ['placeholder' => 'Your apiKey'], ] ]; /* $arr_apis['whatsapp']['waboxapp'] = [ 'token' => ['placeholder' => 'Your token'], 'uid' => ['placeholder' => 'Your UID'], 'testMode' => ['options' => ['FALSE','TRUE'], 'type' => 'select'], ];*/ /* $arr_apis['whatsapp']['chatapi'] = [ 'url' => ['placeholder' => 'Your Url'], 'token' => ['placeholder' => 'Your token'], ];*/ $arr_apis['storage']['S3'] = [ [ 'api_key' => ['placeholder' => 'Your Key API'], 'api_secret' => ['placeholder' => 'Your Secret API'], ], [ 'region' => ['type' => 'select', 'options' => $aws_region, 'use_key' => true, 'use_lang' => true], 'bucket' => ['placeholder' => 'Your Bucket'], ] ]; $arr_apis['storage']['dropbox'] = [ [ "api_key" => ['placeholder' => 'Your App Key'], "api_secret" => ['placeholder' => 'Your App Secret'], "access_token" => ['placeholder' => 'Your Access Token'], ] ]; $arr_apis['storage']['google_drive'] = [ [ "app_name" => ['placeholder' => 'Your App Name'], "auth_code" => ['placeholder' => 'Click in button and insert Auth Code generated', 'type' => 'gd_auth_code'], ], [ "json_oauth" => ['placeholder' => 'Your Json Oauth', 'type' => 'textarea'], ] ]; /* $arr_apis['storage']['onedrive'] = [ 'api_key' => ['placeholder' => 'Your App Key'], 'api_secret' => ['placeholder' => 'Your App Secret'], "auth_code" => ['placeholder' => 'Click in button and insert Auth Code generated', 'type' => 'od_auth_code'], ];*/ $arr_apis['auth']['google_authenticator'] = [ [ // 'salt' => ['placeholder' => 'Salt'], 'domain' => ['placeholder' => 'Domain'], ] ]; $arr_apis['reporting']['google_sheets'] = [ [ "dir_name" => ['placeholder' => 'Folder name'], "dir_id" => ['placeholder' => 'Folder id', 'type' => 'hidden'], "app_name" => ['placeholder' => 'Your App Name'], "auth_code" => ['placeholder' => 'Click in button and insert Auth Code generated', 'type' => 'gd_auth_code'], ], [ "json_oauth" => ['placeholder' => 'Your Json Oauth', 'type' => 'textarea'], ] ]; if (!empty($api)) return $arr_apis[$api]; return $arr_apis; } function nm_list_apis($type = '') { global $bol_api_prod; if($bol_api_prod) { $file = nm_get_prod_path() . "../conf/profile_api.conf.php"; if(!is_file($file) && is_file(__DIR__ . "/../../profile_api.conf.php")) { $file = __DIR__ . "/../../profile_api.conf.php"; } } else { $file = __DIR__ . "/../../profile_api.conf.php"; } if (!file_exists($file)) { return false; } $str_content = strtr(file_get_contents($file), array("<?php" => '', "?>" => '')); $arr_content = unserialize(trim($str_content), ['allowed_classes' => false]); $arr_return = []; foreach($arr_content as $k => $data){ if(!empty($type) && $type != $data['type']){ continue; } $arr_return[$k] = $data; } return $arr_return; } function nm_load_profile($profile) { global $bol_api_prod; if($bol_api_prod) { $file = nm_get_prod_path() . "../conf/profile_api.conf.php"; if(!is_file($file) && is_file(__DIR__ . "/../../profile_api.conf.php")) { $file = __DIR__ . "/../../profile_api.conf.php"; } } else { $file = __DIR__ . "/../../profile_api.conf.php"; } if (!file_exists($file)) { return false; } $str_content = strtr(file_get_contents($file), array("<?php" => '', "?>" => '')); $arr_content = unserialize(trim($str_content), ['allowed_classes' => false]); $profile = sc_sanitize2filename($profile); if (isset($arr_content[$profile])) { return $arr_content[$profile]; } else { $ret = explode("__NM__", $profile); $profile = isset($ret[1]) ? $ret[1] : $ret[0]; if (isset($arr_content[$profile])) { return $arr_content[$profile]; } else { foreach (['sys', 'grp', 'usr'] as $mod) { if (isset($arr_content[$mod . '__NM__' . $profile])) { return $arr_content[$mod . '__NM__' . $profile]; } } } } return (isset($arr_content[$profile]) ? $arr_content[$profile] : false); } use Aws\S3\S3Client; use Aws\Ses\SesClient; use Kunnu\Dropbox\Dropbox; use Kunnu\Dropbox\DropboxApp; use Omnipay\Omnipay; use Plivo\RestClient; use Twilio\Rest\Client; use Tsk\OneDrive\Services\OneDriveService; use Tsk\OneDrive\Client as OndriveClient; use Tsk\OneDrive\Http\MediaFileUpload; use Google\Authenticator\GoogleAuthenticator; use Clickatell\ClickatellException; function sc_call_api($profile, $arr_settings = []) { if (!empty($profile)) { $arr_settings = nm_load_profile($profile); if ($arr_settings == false) { return false; } } if (!isset($arr_settings['settings']) && isset($arr_settings['gateway'])) { $arr_settings['settings'] = $arr_settings; } $prod_path = nm_get_prod_path(); if (isset($arr_settings['gateway'])) { $arr_settings['settings']['gateway'] = $arr_settings['gateway']; } switch (strtolower($arr_settings['settings']['gateway'])) { case 'mandrill': include_once($prod_path . "/third/mandrill/src/Mandrill.php"); return new Mandrill($arr_settings['settings']['api_key']); break; case 'ses': include_once($prod_path . "/third/aws.phar"); return SesClient::factory(array( 'version' => 'latest', 'region' => $arr_settings['settings']['region'], 'credentials' => array( 'key' => $arr_settings['settings']['api_key'], 'secret' => $arr_settings['settings']['api_secret'], ) )); break; case 'smtp': include_once($prod_path . "/third/swift/swift_required.php"); $transport = (new Swift_SmtpTransport($arr_settings['settings']['smtp_server'], $arr_settings['settings']['smtp_port'])) ->setUsername($arr_settings['settings']['smtp_user']) ->setPassword($arr_settings['settings']['smtp_password']); $protocol = null; if (isset($arr_settings['settings']['smtp_protocol'])) { $protocol = $arr_settings['settings']['smtp_protocol']; } else { switch (strtolower($arr_settings['settings']['smtp_port'])) { default: case 25: $protocol = null; break; case 465: $protocol = 'ssl'; break; case 587: $protocol = 'tls'; break; } } $transport->setEncryption(strtolower($protocol)); return new Swift_Mailer($transport); break; case 'plivo': include_once($prod_path . "/third/plivo/plivo.php"); return new RestClient($arr_settings['settings']['auth_id'], $arr_settings['settings']['auth_token']); break; case 'twilio': include_once($prod_path . "/third/twilio/autoload.php"); return new Client($arr_settings['settings']['auth_id'], $arr_settings['settings']['auth_token']); break; case 'clickatell': include_once($prod_path . "/third/clickatell/src/ClickatellException.php"); include_once($prod_path . "/third/clickatell/src/Rest.php"); try { return new \Clickatell\Rest($arr_settings['settings']['auth_token']); }catch(Exception $e){ var_dump($e->getMessage()); return false; } break; case 'pagseguro': include_once($prod_path . "/third/pagseguro/autoload.php"); \PagSeguro\Library::initialize(); \PagSeguro\Library::cmsVersion()->setName("Nome")->setRelease("1.0.0"); \PagSeguro\Library::moduleVersion()->setName("Nome")->setRelease("1.0.0"); \PagSeguro\Configuration\Configure::setEnvironment($arr_settings['settings']['environment']);//production or sandbox if (!isset($arr_settings['settings']['auth_email']) && isset($arr_settings['settings']['auth_appId'])) { \PagSeguro\Configuration\Configure::setApplicationCredentials( $arr_settings['settings']['auth_appId'], $arr_settings['settings']['auth_appKey'] ); } else { \PagSeguro\Configuration\Configure::setAccountCredentials( $arr_settings['settings']['auth_email'], $arr_settings['settings']['auth_token'] ); } if (!isset($arr_settings['settings']['charset']) || empty($arr_settings['settings']['charset'])) { $arr_settings['settings']['charset'] = 'UTF-8'; } \PagSeguro\Configuration\Configure::setCharset($arr_settings['settings']['charset']);// UTF-8 or ISO-8859-1 break; case 'paypal_express': case 'paypal_express_incontext': case 'paypal_pro': switch (strtolower($arr_settings['settings']['gateway'])) { case 'paypal_express': $gw = "PayPal_Express"; break; case 'paypal_express_incontext': $gw = "PayPal_ExpressInContext"; break; case 'paypal_pro': $gw = "PayPal_Pro"; break; } include_once($prod_path . "/third/omnipay/vendor/autoload.php"); $gateway = Omnipay::create($gw); $instance = $gateway->initialize([ 'username' => $arr_settings['settings']['username'], 'password' => $arr_settings['settings']['password'], 'signature' => $arr_settings['settings']['signature'], 'testMode' => isset($arr_settings['settings']['testMode']) ? $arr_settings['settings']['testMode'] : false, ]); return $instance; break; case 'paypal_rest': include_once($prod_path . "/third/omnipay/vendor/autoload.php"); $gateway = Omnipay::create('PayPal_Rest'); $instance = $gateway->initialize([ 'clientId' => $arr_settings['settings']['clientId'], 'secret' => $arr_settings['settings']['secret'], 'token' => isset($arr_settings['settings']['token']) ? $arr_settings['settings']['token'] : '', 'testMode' => isset($arr_settings['settings']['testMode']) ? $arr_settings['settings']['testMode'] : false, ]); return $instance; break; case 'braintree': include_once($prod_path . "/third/braintree/autoload.php"); $instance = new Braintree\Gateway([ 'environment' => isset($arr_settings['settings']['testMode']) ? 'sandbox' : 'live', 'merchantId' => $arr_settings['settings']['merchantId'], 'publicKey' => $arr_settings['settings']['publicKey'], 'privateKey' => $arr_settings['settings']['privateKey'] ]); return $instance; case 'mercadopago': include_once($prod_path . "/third/mercadopago/autoload.php"); MercadoPago\SDK::setAccessToken($arr_settings['settings']['token']); $instance = new MercadoPago\Payment(); return $instance; case 'stripe': include_once($prod_path . "/third/stripe/autoload.php"); $instance = new \Stripe\StripeClient($arr_settings['settings']['apiKey']); return $instance; case 'waboxapp': break; case 'chatapi': /* include_once($prod_path . "/third/chatapi/autoload.php"); $instance = chatapi\WhatsApp\Client::getInstance([ 'url' => trim($arr_settings['settings']['url']), 'token' => $arr_settings['settings']['token'] ]); return $instance;*/ case 's3': include_once($prod_path . "/third/aws.phar"); return S3Client::factory(array( 'version' => 'latest', 'region' => $arr_settings['settings']['region'], 'credentials' => array( 'key' => $arr_settings['settings']['api_key'], 'secret' => $arr_settings['settings']['api_secret'], ), 'curl.options' => array( 'CURLOPT_SSL_VERIFYHOST' => 0, 'CURLOPT_SSL_VERIFYPEER' => 0, ) )); break; case 'dropbox': include_once($prod_path . "/third/dropbox/autoload.php"); //Configure Dropbox Application $app = new DropboxApp( $arr_settings['settings']["api_key"], $arr_settings['settings']["api_secret"], $arr_settings['settings']["access_token"] ); //Configure Dropbox service return new Dropbox($app); break; case 'google_drive': $client = api_google_get_client($profile, $arr_settings['settings']['app_name'], $arr_settings['settings']['json_oauth'], isset($arr_settings['settings']['auth_code']) ? $arr_settings['settings']['auth_code'] : '', isset($arr_settings['settings']['token_code']) ? $arr_settings['settings']['token_code'] : '', 'drive', isset($arr_settings['settings']['return_token']) ? $arr_settings['settings']['return_token'] : false); if (is_string($client)) { return $client; } return new Google_Service_Drive($client); break; case 'google_sheets': $client = api_google_get_client($profile, $arr_settings['settings']['app_name'], $arr_settings['settings']['json_oauth'], isset($arr_settings['settings']['auth_code']) ? $arr_settings['settings']['auth_code'] : '', isset($arr_settings['settings']['token_code']) ? $arr_settings['settings']['token_code'] : '', 'sheets', isset($arr_settings['settings']['return_token']) ? $arr_settings['settings']['return_token'] : false); if (is_string($client)) { return $client; } return new Google_Service_Sheets($client); break; case 'onedrive': $client = api_onedrive_get_client($profile, $arr_settings['settings']['api_key'], $arr_settings['settings']['api_secret'], isset($arr_settings['settings']['auth_code']) ? $arr_settings['settings']['auth_code'] : '', isset($arr_settings['settings']['token_code']) ? $arr_settings['settings']['token_code'] : '', isset($arr_settings['settings']['return_token']) ? $arr_settings['settings']['return_token'] : false); return $client; break; case 'google_authenticator': require_once $prod_path . '/vendor/autoload.php'; $client = new GoogleAuthenticator(); return [ $client, $arr_settings['settings'] ]; break; } } function sc_api_ondrive_get_url($profile, $api_key, $api_secret) { $client = sc_call_api($profile, ['gateway'=> 'onedrive', 'settings' => ['api_secret' => $api_secret, 'api_key' => $api_key]]); return $client->createAuthUrl(); } function sc_api_gc_get_url($app_name, $json_oauth) { return api_google_get_client('', $app_name, $json_oauth); } function sc_api_gc_get_obj($app_name, $json_oauth, $auth_code = '', $token = ''){ return api_google_get_client('', $app_name, $json_oauth, $auth_code, $token, '', true); } function sc_api_gc_token($app_name, $json_oauth, $auth_code = '', $token = '', $scope = '', $return_token = false, $profile = '') { return api_google_get_client($profile, $app_name, $json_oauth, $auth_code, $token, $scope, $return_token); } function api_google_get_client($profile, $app_name, $json_oauth, $auth_code = '', $token = '', $scope = '', $return_token = false) { $prod_path = nm_get_prod_path(); $json_file = __DIR__ . "/api_gd_" . $profile . ".json"; $tokenPath = __DIR__ . "/api_gd_token_" . $profile . ".json"; if(isset($_SERVER['HTTP_REFERER'])) { if (strpos($_SERVER['SCRIPT_NAME'], 'prj_api')) { $url = explode('/devel/iface/prj_api.php', $_SERVER['HTTP_REFERER'])[0]; } else { $url = explode('/prod/lib/php/nm_ini_manager3.php', $_SERVER['HTTP_REFERER'])[0]; } $url .= "/prod/third/oauth/google-api-php-client/code.php"; $json_oauth = strtr($json_oauth, ["http://localhost" => $url]); try{ $json_validate = json_decode($json_oauth, true); if(json_last_error() !== JSON_ERROR_NONE){ return false; } }catch(Exception $e){ return false; } } file_put_contents($json_file, $json_oauth); include_once($prod_path . "/third/oauth/google-api-php-client/vendor/autoload.php"); $client = new Google_Client(); $client->setApplicationName($app_name); $client->setRedirectUri("https://scriptcase.net/scriptcase-api/"); if (empty($scope) || $scope == 'drive') { $client->setScopes([Google_Service_Drive::DRIVE]); }elseif ($scope == 'sheets'){ $client->setScopes([Google_Service_Drive::DRIVE, \Google_Service_Sheets::SPREADSHEETS]); } $client->setAccessType('offline'); $client->setAuthConfig($json_file); //$client->setPrompt('vmunizm@gmail.com'); $client->setApprovalPrompt('force'); if (!empty($token)) { $accessToken = json_decode($token, true); try { $client->setAccessToken($accessToken); }catch(Exception $e){ echo $e->getMessage(); return false; } } else if (!empty($auth_code)) { // Exchange authorization code for an access token. $accessToken = $client->fetchAccessTokenWithAuthCode($auth_code); // var_dump($accessToken); $client->setAccessToken($accessToken); // // Check to see if there was an error. // if (array_key_exists('error', $accessToken)) { // throw new Exception(join(', ', $accessToken)); // } if ($return_token) { return json_encode($accessToken); } } // If there is no previous token or it's expired. if ($client->isAccessTokenExpired()) { // Refresh the token if possible, else fetch a new one. if ($client->getRefreshToken()) { $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken()); } else { // Request authorization from the user. return $client->createAuthUrl(); } // Save the token to a file. } return $client; } function api_onedrive_get_client($profile, $api_key, $api_secret, $auth_code = '', $token='', $return_token = false) { $prod_path = nm_get_prod_path(); $json_file = __DIR__ . "/api_od_" . $profile . ".json"; require_once $prod_path . '/vendor/autoload.php'; $client = new OndriveClient(); $client->setClientId($api_key); //$client->setTenantId('125b3545-7c05-4135-8caa-ec73a23aa2cd'); $client->setClientSecret($api_secret); $client->setRedirectUri('http://localhost'); $client->setScopes([ OneDriveService::ONEDRIVE_OFFLINE_ACCESS, OneDriveService::ONEDRIVE_FILE_READ, OneDriveService::ONEDRIVE_FILE_READ_ALL, OneDriveService::ONEDRIVE_FILE_READ_WRITE, OneDriveService::ONEDRIVE_FILE_READ_WRITE_ALL ]); if (!empty($token)) { $client->setAccessToken($token); } else if(!empty($auth_code)){ $token = json_encode($client->fetchAccessTokenWithAuthCode($auth_code)); file_put_contents($json_file, $token); $client->setAccessToken($token); if($return_token){ return $token; } } else{ try { return ($client->createAuthUrl()); }catch(Exception $e){ dd($e); } return $client->createAuthUrl(); } // If there is no previous token or it's expired. if ($client->isAccessTokenExpired()) { // Refresh the token if possible, else fetch a new one. $client->refreshToken(); $token = $client->getAccessToken(); file_put_contents($json_file, $token); // Save the token to a file. } return $client; } function sc_send_sms($arr_settings) { if (isset($arr_settings['profile']) && !empty($arr_settings['profile'])) { $instance = sc_call_api($arr_settings['profile']); if ($instance == false) { return false; } $arr_profile = nm_load_profile($arr_settings['profile']); $arr_profile['settings']['gateway'] = $arr_profile['gateway']; if (!isset($arr_settings['settings'])) { $arr_settings['settings'] = []; } $arr_set = array_merge($arr_settings['settings'], $arr_profile['settings']); $arr_sms = array_merge($arr_settings['message'], $arr_profile['settings']); } else { $instance = sc_call_api('', $arr_settings); $arr_sms = array_merge($arr_settings['message'], $arr_settings['settings']); $arr_set = $arr_settings['settings']; } try { switch (strtolower($arr_set['gateway'])) { case 'plivo': return $instance->messages->create( $arr_sms['from'], !is_array($arr_sms['to']) ? [$arr_sms['to']] : $arr_sms['to'], $arr_sms['message'] ); break; case 'twilio': return $instance->messages->create( substr($arr_sms['to'], 0, 1) == '+' ? $arr_sms['to'] : '+' . $arr_sms['to'], [ 'from' => substr($arr_sms['from'], 0, 1) == '+' ? $arr_sms['from'] : '+' . $arr_sms['from'], 'body' => $arr_sms['message'] ] ); case 'clickatell': return $instance->sendMessage([ 'to' => !is_array($arr_sms['to']) ? [$arr_sms['to']] : $arr_sms['to'], 'content' => $arr_sms['message'] ]); break; } } catch (exception $e) { } } function sc_send_whatsapp($arr_settings) { return; if (isset($arr_settings['profile']) && !empty($arr_settings['profile'])) { $instance = sc_call_api($arr_settings['profile']); if ($instance == false) { return false; } $arr_profile = nm_load_profile($arr_settings['profile']); $arr_profile['settings']['gateway'] = $arr_profile['gateway']; if (!isset($arr_settings['settings'])) { $arr_settings['settings'] = []; } $arr_set = array_merge($arr_settings['settings'], $arr_profile['settings']); } else { $instance = sc_call_api('', $arr_settings); $arr_set = $arr_settings['settings']; } return $instance->sendMessage([ 'phone' => $arr_settings['to'], 'body' => $arr_settings['message'] ]); } function sc_send_mail_api($arr_settings) { if (isset($arr_settings['profile']) && !empty($arr_settings['profile'])) { $instance = sc_call_api($arr_settings['profile']); if ($instance == false) { return false; } $arr_profile = nm_load_profile($arr_settings['profile']); $arr_profile['settings']['gateway'] = $arr_profile['gateway']; if (!isset($arr_settings['settings'])) { $arr_settings['settings'] = []; } $arr_set = array_merge($arr_settings['settings'], $arr_profile['settings']); $arr_mail = array_merge($arr_settings['message'], $arr_profile['settings']); } else { $instance = sc_call_api('', $arr_settings); $arr_mail = array_merge($arr_settings['message'], $arr_settings['settings']); $arr_set = $arr_settings['settings']; } switch (strtolower($arr_set['gateway'])) { case 'mandrill': if (isset($arr_mail['attachments'])) { $_arr = []; foreach ($arr_mail['attachments'] as $att) { $_arr[] = array( 'type' => mime_content_type($att), 'name' => basename($att), 'content' => base64_encode(file_get_contents($att)) ); } $arr_mail['attachments'] = $_arr; } if (!is_array($arr_mail['to'])) { $arr_mail['to'] = [['email' => $arr_mail['to']]]; } $result = $instance->messages->send($arr_mail, false, 'Main Pool', date("Y-m-d H:i:s")); break; case 'ses': $arr_message = ['Source' => $arr_mail['from_email']]; if (isset($arr_mail['to']) && is_array($arr_mail['to'])) { $arr_to = array(); $arr_cc = array(); $arr_bcc = array(); foreach ($arr_mail['to'] as $rec) { if (!is_array($rec)) { $rec_bkp = $rec; $rec = ['email' => $rec_bkp, 'name' => '', 'type' => 'to']; } $rec['name'] = (!isset($rec['name'])) ? '' : $rec['name']; $rec['type'] = (!isset($rec['type'])) ? 'to' : $rec['type']; switch ($rec['type']) { default: case 'to': $arr_to[$rec['email']] = $rec['name']; break; case 'cc': $arr_cc[$rec['email']] = $rec['name']; break; case 'bcc': $arr_bcc[$rec['email']] = $rec['name']; break; } } if (!isset($arr_message['Destination']) || !is_array($arr_message['Destination'])) { $arr_message['Destination'] = []; } if (count($arr_to) > 0) { $arr_message['Destination']['ToAddresses'] = array_keys($arr_to); } if (count($arr_cc) > 0) { $arr_message['Destination']['CcAddresses'] = array_keys($arr_cc); } if (count($arr_bcc) > 0) { $arr_message['Destination']['BccAddresses'] = array_keys($arr_bcc); } } else if (!is_array($arr_mail['to'])) { $arr_message['Destination']['ToAddresses'] = [$arr_mail['to']]; } $arr_message['Message']['Subject']['Data'] = $arr_mail['subject']; $arr_message['Message']['Body']['Text']['Data'] = $arr_mail['text']; $arr_message['Message']['Body']['Html']['Data'] = $arr_mail['html']; if (isset($arr_mail['Reply-To'])) { $arr_message['ReplyToAddresses'] = $arr_mail['Reply-To']; } if (isset($arr_mail['attachments'])) { include(nm_get_prod_path() . '/third/Mail/mime.php'); $mail_mime = new Mail_mime(array("eol" => "\n")); $mail_mime->setTxtBody($arr_mail['text']); $mail_mime->setHTMLBody($arr_mail['html']); foreach ($arr_mail['attachments'] as $att) { $mail_mime->addAttachment($att, mime_content_type($att)); } $mime_params = array( 'text_encoding' => '7bit', 'text_charset' => 'UTF-8', 'html_charset' => 'UTF-8', 'head_charset' => 'UTF-8' ); $body = $mail_mime->get($mime_params); $headers = $mail_mime->txtHeaders([ 'From' => $arr_mail['from_email'], 'Subject' => $arr_mail['subject'], 'Content-Type' => 'text/html; charset=UTF-8', ]); $message = $headers . "\r\n" . $body; $arr_message['RawMessage'] = [ 'Data' => $message ]; unset($arr_message['Message']); $arr_message['Destinations'] = $arr_message['Destination']; $arr_message['Destinations'] = []; $arr_message['Destinations']['ToAddresses'] = implode(';', ($arr_message['Destination']['ToAddresses'])); if (isset($arr_message['Destination']['CcAddresses']) && count($arr_message['Destination']['CcAddresses']) > 0) { $arr_message['Destinations']['CcAddresses'] = implode(';', ($arr_message['Destination']['CcAddresses'])); } if (isset($arr_message['Destination']['BccAddresses']) && count($arr_message['Destination']['BccAddresses']) > 0) { $arr_message['Destinations']['BccAddresses'] = implode(';', ($arr_message['Destination']['BccAddresses'])); } unset($arr_message['Destination']); $result = $instance->sendRawEmail($arr_message); } else { $result = $instance->sendEmail($arr_message); } break; default: case 'smtp': $message = (new Swift_Message($arr_mail['subject'])) ->setFrom([$arr_mail['from_email'] => $arr_mail['from_name']]) ->setBody($arr_mail['text']); if (isset($arr_mail['html'])) { $message->addPart($arr_mail['html'], 'text/html'); } if (isset($arr_mail['attachments'])) { foreach ($arr_mail['attachments'] as $att) { $message->attach(Swift_Attachment::fromPath($att)); } } if (isset($arr_mail['to'])) { if (!is_array($arr_mail['to'])) { if(strpos($arr_mail['to'], ';') !== false){ $_tmp = explode(';', $arr_mail['to']); $arr_mail['to'] = array(); foreach($_tmp as $__mail) { $arr_mail['to'][] = [ 'email' => $__mail, 'type' => 'to' ]; } }else { $arr_mail['to'] = [['email' => $arr_mail['to'], 'type' => 'to']]; } } $arr_to = array(); $arr_cc = array(); $arr_bcc = array(); foreach ($arr_mail['to'] as $_rec) { $rec = array(); $rec['email'] = !is_array($_rec) ? $_rec : $_rec['email']; $rec['name'] = (!isset($_rec['name'])) ? '' : $_rec['name']; $rec['type'] = !isset($_rec['type']) ? 'to' : $_rec['type']; switch ($rec['type']) { default: case 'to': $arr_to[$rec['email']] = $rec['name']; break; case 'cc': $arr_cc[$rec['email']] = $rec['name']; break; case 'bcc': $arr_bcc[$rec['email']] = $rec['name']; break; } } $message->setTo($arr_to); $message->setCc($arr_cc); $message->setBcc($arr_bcc); } if (isset($arr_mail['headers']) && isset($arr_mail['Reply-To'])) { $message->setReplyTo($arr_mail['Reply-To']); } $result = $instance->send($message); break; } return $result; } function nm_get_prod_path() { return $_SESSION['scriptcase']['nm_path_prod']; } function sc_api_upload($arr_settings) { global $nmgp_lang; if (isset($arr_settings['profile']) && !empty($arr_settings['profile'])) { $instance = sc_call_api($arr_settings['profile']); if ($instance == false) { return false; } $arr_profile = nm_load_profile($arr_settings['profile']); $arr_profile['settings']['gateway'] = $arr_profile['gateway']; if (!isset($arr_settings['settings'])) { $arr_settings['settings'] = []; } $arr_set = array_merge($arr_settings['settings'], $arr_profile['settings']); } else { $instance = sc_call_api('', $arr_settings); $arr_set = $arr_settings['settings']; } if (!isset($arr_settings['file_name']) || empty($arr_settings['file_name'])) { $arr_settings['file_name'] = mb_convert_encoding(basename($arr_settings['file']), 'UTF-8', $_SESSION['scriptcase']['charset']); } if(!isset($arr_settings['parents'])){ $arr_settings['parents'] = ''; } if (!file_exists($arr_settings['file'])) { $app_name = __api_getAppName(); $__file = $_SESSION['scriptcase'][$app_name]['glo_nm_path_doc'] . '/' . $arr_settings['file']; $__file_img = $_SERVER['DOCUMENT_ROOT'] . $_SESSION['scriptcase'][$app_name]['glo_nm_path_imagens'] . '/' . $arr_settings['file']; if (file_exists($__file)) { $arr_settings['file'] = $__file; } else if (file_exists($__file_img)) { $arr_settings['file'] = $__file_img; } else { echo $arr_settings['file'] . ": File don't exist!"; } } try { switch (strtolower($arr_set['gateway'])) { case 's3': if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $arr_settings['parents'] = strtr($arr_settings['parents'] . '/', ['//' => '/']); } $result = $instance->putObject([ 'Bucket' => $arr_set['bucket'], 'Key' => $arr_settings['parents'] . $arr_settings['file_name'], 'SourceFile' => $arr_settings['file'], ])->toArray(); return $result['ObjectURL']; break; case 'dropbox': if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $arr_settings['parents'] = $arr_settings['parents'][0] != '/' ? '/' . $arr_settings['parents'] : $arr_settings['parents']; } $result = $instance->upload($arr_settings['file'], $arr_settings['parents'] . '/' . $arr_settings['file_name']); return $result->getName(); break; case 'google_drive': $file = new Google_Service_Drive_DriveFile(); $file->setName($arr_settings['file_name']); if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $id = ''; $folders = explode('/', strtr($arr_settings['parents'], ["\\" => "/"])); foreach ($folders as $_folder) { if (empty($_folder)) continue; $_id = ''; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } else { $_id = " AND parents='root'"; } $results = $instance->files->listFiles(['q' => 'name="' . $_folder . '" AND trashed = false AND mimeType=\'application/vnd.google-apps.folder\'' . $_id]); if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $files) { $id = $files->getId(); break; } } else { $folder = new Google_Service_Drive_DriveFile(); $folder->setName($_folder); $folder->setMimeType('application/vnd.google-apps.folder'); if (!empty($id)) { $folder->setParents([$id]); } $folder = $instance->files->create($folder); $id = $folder->getId(); } } $file->setParents([$id]); } $result = $instance->files->create($file, array( 'data' => file_get_contents($arr_settings['file']), // 'mimeType' => mime_content_type($arr_settings['file']), // 'uploadType' => 'media' )); return true; break; case 'onedrive': $handle = fopen($arr_settings['file'], 'rb'); $fileSize = filesize($arr_settings['file']); $chunkSize = 1024*1024; $media = new MediaFileUpload($instance, basename($arr_settings['file']), $arr_settings['parents'], true, $chunkSize); $media->setFileSize($fileSize); $res = null; while (!feof($handle)) { $bytes = fread($handle, $chunkSize); $res = $media->nextChunk($bytes); } return true; break; } } catch (exception $e) { echo isset($nmgp_lang[$_SESSION['scriptcase']['str_lang']]['nmgp_lang_usr_lang_error_upload']) ? $nmgp_lang[$_SESSION['scriptcase']['str_lang']]['nmgp_lang_usr_lang_error_upload'] : ''; return false; } } function sc_api_download($arr_settings) { if (isset($arr_settings['profile']) && !empty($arr_settings['profile'])) { $instance = sc_call_api($arr_settings['profile']); if ($instance == false) { return false; } $arr_profile = nm_load_profile($arr_settings['profile']); $arr_profile['settings']['gateway'] = $arr_profile['gateway']; if (!isset($arr_settings['settings'])) { $arr_settings['settings'] = []; } $arr_set = array_merge($arr_settings['settings'], $arr_profile['settings']); } else { $instance = sc_call_api('', $arr_settings); $arr_set = $arr_settings['settings']; } $arr_settings['destination'] = strtr($arr_settings['destination'], ['//' => '/']); $file_destination = $arr_settings['destination']; $path_destination = dirname($arr_settings['destination']); if (!is_dir($path_destination)) { mkdir(dirname($arr_settings['destination']), 0755, true); } try { switch (strtolower($arr_set['gateway'])) { case 's3': if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $arr_settings['parents'] = strtr($arr_settings['parents'] . '/', ['//' => '/']); } $result = $instance->getObject([ 'Bucket' => $arr_set['bucket'], 'Key' => $arr_settings['parents'] . basename($arr_settings['file']), ]); file_put_contents($file_destination, $result['Body']); break; case 'dropbox': if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $arr_settings['parents'] = $arr_settings['parents'][0] != '/' ? '/' . $arr_settings['parents'] : $arr_settings['parents']; } try { $retorno = $instance->download($arr_settings['parents'] . '/' . basename($arr_settings['file']), $file_destination); } catch (exception $e) { //unlink($file_destination); return false; } break; case 'google_drive': if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $id = ''; $folders = explode('/', strtr($arr_settings['parents'], ["\\" => "/"])); $_id = ''; foreach ($folders as $_folder) { if (empty($_folder)) continue; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } else { $_id = " AND parents='root'"; } $results = $instance->files->listFiles(['q' => 'name="' . $_folder . '" AND trashed = false AND mimeType=\'application/vnd.google-apps.folder\'' . $_id]); if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $files) { $id = $files->getId(); break; } } } } $_id = ''; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } $results = $instance->files->listFiles(['q' => 'name="' . basename($arr_settings['file']) . '" AND trashed = false ' . $_id]); if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $file) { $id = $file->getId(); break; } } $content = $instance->files->get($id, array("alt" => "media")); //$file_destination = utf8_encode($file_destination); file_put_contents($file_destination, $content->getBody()->getContents()); break; case 'onedrive': $handle = fopen($arr_settings['file'], 'rb'); $fileSize = filesize($arr_settings['file']); $chunkSize = 1024*1024; $media = new MediaFileUpload($instance, basename($arr_settings['file']), $arr_settings['parents'], true, $chunkSize); $media->setFileSize($fileSize); $res = null; while (!feof($handle)) { $bytes = fread($handle, $chunkSize); $res = $media->nextChunk($bytes); } break; } } catch (exception $e) { return false; } return true; } function __sc_api_storage_check($arr_settings) { if (isset($arr_settings['profile']) && !empty($arr_settings['profile'])) { $instance = sc_call_api($arr_settings['profile']); if ($instance == false) { return false; } $arr_profile = nm_load_profile($arr_settings['profile']); $arr_profile['settings']['gateway'] = $arr_profile['gateway']; if (!isset($arr_settings['settings'])) { $arr_settings['settings'] = []; } $arr_set = array_merge($arr_settings['settings'], $arr_profile['settings']); } else { $instance = sc_call_api('', $arr_settings); $arr_set = $arr_settings['settings']; } if (!isset($arr_settings['file_name']) || empty($arr_settings['file_name'])) { $arr_settings['file_name'] = basename($arr_settings['file']); } $file = $arr_settings['destination'] . basename($arr_settings['file']); if (!file_exists($arr_settings['file'])) { return false; } try { switch (strtolower($arr_set['gateway'])) { case 's3': if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $arr_settings['parents'] = strtr($arr_settings['parents'] . '/', ['//' => '/']); } $result = $instance->headObject([ 'Bucket' => $arr_set['bucket'], 'Key' => $arr_settings['parents'] . basename($arr_settings['file']), ]); return $result->get('ETag'); break; case 'dropbox': try { if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $arr_settings['parents'] = $arr_settings['parents'][0] != '/' ? '/' . $arr_settings['parents'] : $arr_settings['parents']; } return $instance->getMetadata($arr_settings['parents'] . '/' . $arr_settings['file_name'])->content_hash == hash('sha256', hash_file('sha256', $file, true)); } catch (exception $e) { } break; case 'google_drive': $id = ''; if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $id = ''; $folders = explode('/', strtr($arr_settings['parents'], ["\\" => "/"])); foreach ($folders as $_folder) { if (empty($_folder)) continue; $_id = ''; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } else { $_id = " AND parents='root'"; } $results = $instance->files->listFiles(['q' => 'name="' . $_folder . '" AND trashed = false AND mimeType=\'application/vnd.google-apps.folder\'' . $_id]); if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $files) { $id = $files->getId(); break; } } } } $_id = ''; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } $results = $instance->files->listFiles(['q' => 'name="' . $arr_settings['file_name'] . '" AND trashed = false ' . $_id]); if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $file) { $id = $file->getId(); break; } $md5 = $instance->files->get($id, array('fields' => 'md5Checksum')); } return $md5->md5Checksum == md5_file($arr_settings['file']); break; } return $file; } catch (exception $e) { return false; } } function sc_api_storage_delete($arr_settings) { if (isset($arr_settings['profile']) && !empty($arr_settings['profile'])) { $instance = sc_call_api($arr_settings['profile']); if ($instance == false) { return false; } $arr_profile = nm_load_profile($arr_settings['profile']); $arr_profile['settings']['gateway'] = $arr_profile['gateway']; if (!isset($arr_settings['settings'])) { $arr_settings['settings'] = []; } $arr_set = array_merge($arr_settings['settings'], $arr_profile['settings']); } else { $instance = sc_call_api('', $arr_settings); $arr_set = $arr_settings['settings']; } if (!isset($arr_settings['file_name']) || empty($arr_settings['file_name'])) { $arr_settings['file_name'] = basename($arr_settings['file']); } $file = $arr_settings['parents'] . '/' . basename($arr_settings['file']); $file = strtr($file, ['//' => '/']); if (empty($arr_settings['file'])) { return false; } try { switch (strtolower($arr_set['gateway'])) { case 's3': $result = $instance->deleteObject([ 'Bucket' => $arr_set['bucket'], 'Key' => $file, ]); if ($result['DeleteMarker']) { return true; } return false; break; case 'dropbox': $arr_settings['file_name'] = mb_convert_encoding($arr_settings['file_name'], 'UTF-8', $_SESSION['scriptcase']['charset']); try { if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $arr_settings['parents'] = $arr_settings['parents'][0] != '/' ? '/' . $arr_settings['parents'] : $arr_settings['parents']; } return $instance->delete($arr_settings['parents'] . '/' . $arr_settings['file_name']); } catch (exception $e) { if (isset($nmgp_lang[$_SESSION['scriptcase']['str_lang']]['nmgp_lang_usr_lang_google_error_cert'])) { echo $nmgp_lang[$_SESSION['scriptcase']['str_lang']]['nmgp_lang_usr_lang_google_error_cert']; } elseif (function_exists("nm_get_text_lang")) { echo nm_get_text_lang("['error_gd_cert']"); } } break; case 'google_drive': $id = ''; try { if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $id = ''; $folders = explode('/', strtr($arr_settings['parents'], ["\\" => "/"])); foreach ($folders as $_folder) { if (empty($_folder)) continue; $_id = ''; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } else { $_id = " AND parents='root'"; } $results = $instance->files->listFiles(['q' => 'name="' . $_folder . '" AND trashed = false AND mimeType=\'application/vnd.google-apps.folder\'' . $_id]); if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $files) { $id = $files->getId(); break; } } } } $_id = ''; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } /*--- Scriptcase - PHP 8.2 ---*/ /* $results = $instance->files->listFiles(['q' => 'name="' . utf8_encode($arr_settings['file_name']) . '" AND trashed = false ' . $_id])->getFiles(); */ $results = $instance->files->listFiles(['q' => 'name="' . mb_convert_encoding($arr_settings['file_name'], 'UTF-8', 'ISO-8859-1') . '" AND trashed = false ' . $_id])->getFiles(); if (count($results) == 0) { $results = $instance->files->listFiles(['q' => 'name="' . ($arr_settings['file_name']) . '" AND trashed = false ' . $_id])->getFiles(); } if (count($results) == 0) { /* $results = $instance->files->listFiles(['q' => 'name="' . urldecode($arr_settings['file_name']) . '" AND trashed = false ' . $_id])->getFiles(); */ $results = $instance->files->listFiles(['q' => 'name="' . mb_convert_encoding($arr_settings['file_name'], 'ISO-8859-1', 'UTF-8') . '" AND trashed = false ' . $_id])->getFiles(); } if (count($results) != 0) { foreach ($results as $file) { $id = $file->getId(); break; } $instance->files->delete($id); } return true; } catch (exception $e) { return false; } break; } return $file; } catch (exception $e) { return false; } } function __api_getAppName() { $app = end(explode('/', strtr(dirname($_SERVER['PHP_SELF']), ["\\" => "/"]))); return $app; } function sc_googledrive_get_fileid($arr_settings, $instance=null){ $client = api_google_get_client('', $arr_settings['settings']['app_name'], $arr_settings['settings']['json_oauth'], isset($arr_settings['settings']['auth_code']) ? $arr_settings['settings']['auth_code'] : '', isset($arr_settings['settings']['token_code']) ? $arr_settings['settings']['token_code'] : '', 'drive', isset($arr_settings['settings']['return_token']) ? $arr_settings['settings']['return_token'] : false); $instance = new Google_Service_Drive($client); if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $id = ''; $folders = explode('/', strtr($arr_settings['parents'], ["\\" => "/"])); $_id = ''; foreach ($folders as $_folder) { if (empty($_folder)) continue; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } else { $_id = " AND parents='root'"; } $results = $instance->files->listFiles(['q' => 'name="' . $_folder . '" AND trashed = false AND mimeType=\'application/vnd.google-apps.folder\'' . $_id]); if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $files) { $id = $files->getId(); break; } }/*else{ $folder = new Google_Service_Drive_DriveFile(); $folder->setName($_folder); $folder->setMimeType('application/vnd.google-apps.folder'); if (!empty($id)) { $folder->setParents([$id]); } $folder = $instance->files->create($folder); $id = $folder->getId(); }*/ } } $_id = ''; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } $results = $instance->files->listFiles(['q' => 'name="' . basename($arr_settings['file']) . '" AND trashed = false ' . $_id]); $id = ''; if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $file) { $id = $file->getId(); break; } } return $id; } function sc_googlesheets_create($arr_settings, $filename, $parent_id=null){ if(isset($arr_settings['profile'])) { $service = sc_call_api($arr_settings['profile']); }else { $service = sc_call_api("", $arr_settings); }/* if (isset($arr_settings['parents']) && !empty($arr_settings['parents'])) { $id = ''; $folders = explode('/', strtr($arr_settings['parents'], ["\\" => "/"])); $_id = ''; foreach ($folders as $_folder) { if (empty($_folder)) continue; if (!empty($id)) { $_id = " AND parents='" . $id . "'"; } else { $_id = " AND parents='root'"; } $results = $service->files->listFiles(['q' => 'name="' . $_folder . '" AND trashed = false AND mimeType=\'application/vnd.google-apps.folder\'' . $_id]); if (count($results->getFiles()) != 0) { foreach ($results->getFiles() as $files) { $id = $files->getId(); break; } } } }*/ $parent_id = isset($arr_settings['settings']['dir_id']) && !empty($arr_settings['settings']['dir_id']) && is_null($parent_id) ? $arr_settings['settings']['dir_id'] : $parent_id; if(!is_null($parent_id)){ return sc_googledrive_file_create($arr_settings,$filename,$parent_id,'application/vnd.google-apps.spreadsheet',['fields' => 'id']); }else{ $spreadsheet = new Google_Service_Sheets_Spreadsheet([ 'properties' => [ 'title' => $filename ] ]); $spreadsheet = $service->spreadsheets->create($spreadsheet, [ 'fields' => 'spreadsheetId' ]); return $spreadsheet->spreadsheetId; } } function sc_googlesheets_addRow($file_id, $arr_data, $arr_settings){ if(isset($arr_settings['profile'])) { $service = sc_call_api($arr_settings['profile']); }else { $service = sc_call_api("", $arr_settings); } foreach($arr_data as $k1 => $datas){ if(is_array($datas)) { foreach ($datas as $k2 => $d) { $arr_data[$k1][$k2] = empty($d) ? ' ' : $d; } } } $valueRange = new Google_Service_Sheets_ValueRange(); $valueRange->setValues($arr_data); $range = 'A1'; // the service will detect the last row of this sheet $options = ['valueInputOption' => 'RAW']; $service->spreadsheets_values->append($file_id, $range, $valueRange, $options); } function sc_googledrive_folder_create($arr_settings,$dirname=null){ $client = api_google_get_client('', $arr_settings['settings']['app_name'], $arr_settings['settings']['json_oauth'], isset($arr_settings['settings']['auth_code']) ? $arr_settings['settings']['auth_code'] : '', isset($arr_settings['settings']['token_code']) ? $arr_settings['settings']['token_code'] : '', 'drive', isset($arr_settings['settings']['return_token']) ? $arr_settings['settings']['return_token'] : false); $instance = new Google_Service_Drive($client); return sc_googledrive_folder_search($instance,$dirname); } function sc_googledrive_folder_search($instance, $path=null, $rootParentId = null) { $parentId = null; if(!is_null($path)){ $folders = str_replace('\\','/',trim($path)); $folders = explode('/', trim($folders, '/')); $parentId = $rootParentId; foreach ($folders as $folderName) { $query = sprintf( "mimeType = 'application/vnd.google-apps.folder' and name = '%s' and trashed = false", addslashes($folderName)); if ($parentId) {$query .= " and '{$parentId}' in parents";} $search = $instance->files->listFiles([ 'q' => $query, 'spaces' => 'drive', 'fields' => 'files(id, name)', 'pageSize' => 1 ]); if (count($search->getFiles()) > 0) { $folder = $search->getFiles()[0]; $parentId = $folder->getId(); } else { $newFolder = new Google_Service_Drive_DriveFile([ 'name' => $folderName, 'mimeType' => 'application/vnd.google-apps.folder', 'parents' => $parentId ? [$parentId] : [] ]); $createdFolder = $instance->files->create($newFolder, ['fields' => 'id']); $parentId = $createdFolder->getId(); } } } return $parentId; } function sc_googledrive_file_create($arr_settings,$filename,$parent_id=null,$mimeType='',$options=[]){ $client = api_google_get_client('', $arr_settings['settings']['app_name'], $arr_settings['settings']['json_oauth'], isset($arr_settings['settings']['auth_code']) ? $arr_settings['settings']['auth_code'] : '', isset($arr_settings['settings']['token_code']) ? $arr_settings['settings']['token_code'] : '', 'drive', isset($arr_settings['settings']['return_token']) ? $arr_settings['settings']['return_token'] : false); $instance = new Google_Service_Drive($client); $file = new Google_Service_Drive_DriveFile(); $file->setName($filename); $file->setMimeType($mimeType); $file->setParents([$parent_id]); $file = $instance->files->create($file, $options); return $file->id; } /* function sc_chatgpt($key, $mens, $model="", $temperature="", $top_p="", $max_tokens=""){ $parms = array(); $parms['model'] = (!empty($model)) ? $model : 'gpt-3.5-turbo'; $parms['messages'][0] = array('role' => 'user', 'content' => $mens); $parms['temperature'] = (!empty($temperature) && is_numeric($temperature) && $temperature < 1.1) ? $temperature : 0.7; $parms['top_p'] = (!empty($top_p) && is_numeric($top_p) && $top_p < 1.1) ? $top_p : 0.8; if (!empty($max_tokens) && is_numeric($max_tokens)) { $parms['max_tokens'] = $max_tokens; } $api_link = curl_init('https://api.openai.com/v1/chat/completions'); curl_setopt($api_link, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($api_link, CURLOPT_POSTFIELDS, json_encode($parms)); curl_setopt($api_link, CURLOPT_RETURNTRANSFER, true); curl_setopt($api_link, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'Authorization: Bearer ' . $key, ]); $api_return = curl_exec($api_link); curl_close($api_link); $api_ret_decode = json_decode($api_return, true); if (isset($api_ret_decode['choices'][0]['message']['content'])) { return $api_ret_decode['choices'][0]['message']['content']; } elseif (isset($api_ret_decode['error']['message'])) { return $api_ret_decode['error']['message']; } else { return "Communication error with OpenAI."; } } */
Save
cmd:
run