Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/public_html/joomla3/plugins/chat/send_by_bale/classes/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/public_html/joomla3/plugins/chat/send_by_bale/classes/cron.php

<?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);
}