Spade
Mini Shell
| Directory:~$ /proc/self/root/home/lmsyaran/public_html/joomla3/plugins/chat/send_by_bale/classes/ |
| [Home] [System Details] [Kill Me] |
<?php
define('_JEXEC', 1);
define('JPATH_BASE',
dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/');
include_once JPATH_BASE . 'includes/defines.php';
include_once JPATH_BASE . 'includes/framework.php';
require_once dirname(dirname(dirname(dirname(__FILE__)))) .
'/chat/send_by_bale/classes/send.php';
$CALLS_PER_MIN = 3;
$channel_id = '4572939105';
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('call'));
$query->where($db->quoteName('status') . ' = ' .
$db->quote(0));
// $query->where($db->quoteName('id') . ' = ' .
$db->quote(1));
$query->setLimit($CALLS_PER_MIN);;
$db->setQuery($query);
$calls = $db->loadAssocList();
$errorcodes = array(
10 => "مشکل در یکی از پارامترهای
درخواست (10)",
11 => "مشکل در یکی از پارامترهای
درخواست (11)",
12 => "مشکل در یکی از پارامترهای
درخواست (12)",
13 => "مشکل در یکی از پارامترهای
درخواست (13)",
14 => "مشکل در یکی از پارامترهای
درخواست (14)",
15 => "مشکل در یکی از پارامترهای
درخواست (15)",
16 => "مشکل در یکی از پارامترهای
درخواست (16)",
17 => "مشکل در یکی از پارامترهای
درخواست (17)",
18 => "مشکل در یکی از پارامترهای
درخواست (18)",
19 => "مشکل در یکی از پارامترهای
درخواست (19)",
20 => "مشکل در یکی از پارامترهای
درخواست (20)",
21 => "زمان پلن به پایان رسیده است",
22 => "یکی از طرفین رد تماس زده، در
درسترس نبوده یا پاسخ نداده است",
);
// print_r($calls);die();
$filename = __DIR__ . "/log2.txt";
foreach($calls as $call)
{
// $bale_id = $call['bale_id'];
// print_r($call);
// echo PHP_EOL;
$call['status'] = 1;
$db = JFactory::getDbo();
$url = '';
if($call['by'] == 'userid')
$url = 'https://reclist.lmskaran.com/makePrivateCallBy';
else if($call['by'] == 'num')
{
$url = 'https://reclist.lmskaran.com/makePrivateCall';
unset($call['by']);
}
if(!$call['bale_id'])
unset($call['bale_id']);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $call,
// CURLOPT_TIMEOUT_MS => 10000,
CURLOPT_TIMEOUT => 0,
/* CURLOPT_CONNECTTIMEOUT_MS => 5000, */
));
$response = curl_exec($curl);
$error = curl_error($curl);
$errno = curl_errno($curl);
file_put_contents($filename, "response = " . print_r($response,
true)."\n", FILE_APPEND);
file_put_contents($filename, "errno = " . print_r($errno,
true)."\n", FILE_APPEND);
file_put_contents($filename, "error = " . print_r($error,
true)."\n", FILE_APPEND);
$jsonres = json_decode($response);
$data = array();
$id1 = $call['endpoint1'];
$id2 = $call['endpoint2'];
if($call['by'] == 'userid')
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__users'));
$query->where($db->quoteName('id') . ' = ' .
$db->quote($id1));
$db->setQuery($query);
$user1 = $db->loadObject();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__users'));
$query->where($db->quoteName('id') . ' = ' .
$db->quote($id2));
$db->setQuery($query);
$user2 = $db->loadObject();
}
else
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__users'));
$query->where($db->quoteName('username') . ' =
' . $db->quote($id1), 'or');
$query->where($db->quoteName('username') . ' =
SHA("' . $id1 . '")');
$db->setQuery($query);
$user1 = $db->loadObject();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__users'));
$query->where($db->quoteName('username') . ' =
' . $db->quote($id2), 'or');
$query->where($db->quoteName('username') . ' =
SHA("' . $id2 . '")');
$db->setQuery($query);
$user2 = $db->loadObject();
}
if($user1)
{
$name1 = $user1->name;
$userid1 = $user1->id;
$user1 = "$name1 ($userid1)";
}
else
{
$user1 = $id1;
}
if($user2)
{
$name2 = $user2->name;
$userid2 = $user2->id;
$user2 = "$name2 ($userid2)";
}
else
{
$user2 = $id2;
}
if($jsonres->status)
{
$text = "تماس تلفنی بین 2 کاربر $user1 و $user2
برقرار شد";
}
else
{
$reason = $errorcodes[$jsonres->errorcode];
$reason = $reason ? $reason : "اشکالات فنی خطوط
آسیاتک";
$text = "تلاش برای برقراری ارتباط بین $user1
و $user2 ناموفق بود.
دلایل:
$reason";
}
// if($jsonres->status or $jsonres->errorcode != 22)
// {
$obj = (object)$call;
$db->updateObject('call', $obj, 'id');
// }
$data[] = [
'chat_id' => $channel_id,
'text' => $text
];
send::send_bale_message($data);
curl_close($curl);
if(!$error)
{
$object = new stdClass();
$object->id = $call['session_id'];
$object->checked = 1;
$result =
JFactory::getDbo()->updateObject('#__reservation_session',
$object, 'id', true);
}
// print_r($db->getErrorMsg());
file_put_contents($filename, "url = ".print_r($url,
true)."\n", FILE_APPEND);
file_put_contents($filename, "call = ".print_r($call,
true)."\n", FILE_APPEND);
file_put_contents($filename, "response = ".print_r($response,
true)."\n", FILE_APPEND);
file_put_contents($filename, "error = ".print_r($error,
true)."\n", FILE_APPEND);
}