HEX
Server: Apache
System: Linux msm5694.mjhst.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: camjab_ssh (1000)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: /home/httpd/html/nyloncams.com/public_html/admin/functions.camApis.php
<?php
//cam api function calls.

if(!function_exists('xLoveData')) { 
	function xLoveData($id,$wm,$max = 1000, $params = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$data = array(
			'authServiceId' => 2,
			'authItemId' => $params,
			'authSecret' => $wm,
			'timestamp' => time()
		);
		$chandler = curl_init();
		curl_setopt($chandler, CURLOPT_SSL_VERIFYPEER, true);
		curl_setopt($chandler, CURLOPT_URL, 'https://webservice-affiliate.xlovecam.com/model/listonline');
		curl_setopt($chandler, CURLOPT_POST, true);
		curl_setopt($chandler, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
		curl_setopt($chandler, CURLOPT_POSTFIELDS, http_build_query($data)."&lang=en&limit=2000&offset=0&category=1,13");
		curl_setopt($chandler, CURLOPT_RETURNTRANSFER, true);
		$resp = curl_exec($chandler);
		
		curl_close($chandler);
		$response = json_decode($resp, true);
		
		if(is_array($response)) { 
			$output = substr(json_encode($response),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		
		if (is_array($response) && $response['content']['count'] > 0) {
			$key = 0;
			foreach ($response['content']['models_list'] as $model) {
				if($key == $max) { break; }
				unset($i);
				$chandler = curl_init();
				curl_setopt($chandler, CURLOPT_SSL_VERIFYPEER, true);
				curl_setopt($chandler, CURLOPT_URL, 'https://webservice-affiliate.xlovecam.com/model/getprofileinfo');
				curl_setopt($chandler, CURLOPT_POST, true);
				curl_setopt($chandler, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
				curl_setopt($chandler, CURLOPT_POSTFIELDS, http_build_query($data)."&lang=en&modelid={$model['model_id']}");
				curl_setopt($chandler, CURLOPT_RETURNTRANSFER, true);
				$resp = curl_exec($chandler);
				curl_close($chandler);
				$info = json_decode($resp, true);
				$i['username'] = $model['nick'];
				$i['seconds_online'] = 0;
				$i['spoken_languages'] = ($model->spoken_languages);
				$i['num_users'] = 0;
				$i['chat_room_url'] = $model['model_link'];
				$i['gender'] = 'f';
				$i['age'] = $info['content'][$model['model_id']]['model']['age'];
				$i['recorded'] = '';
				$i['current_show'] = $model['show_type'];
				$i['iframe_embed_revshare'] = '<iframe src="https://www.xlovecam.com/prm/livechat/?id_affilie='.$params.'&cf=000000&cc=990000&ct=000000&ca=ff3300&full=1&chat_align=right&vol=100&width=320&psm='.$model['nick'].'" frameborder="0" scrolling="no" style="overflow: hidden;"></iframe>';
				$i['birthday'] = '';
				$i['image_url'] = $model['camLive'];
				$i['location'] = '';
				$i['block_from_states'] = '';
				$i['block_from_countries'] = '';
				$i['iframe_embed'] = $i['iframe_embed_revshare'];
				$i['chat_room_url_revshare'] = '';
				if(isset($model['tags'])) { 
					$i['tags'] = implode(',', ($model['tags']));
				} else { 
					$i['tags'] = ''; 
				}
				$i['room_subject'] = '';
				$i['hd_cam'] = 0;
				$i = mysql_real_escape_array($i);
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				}
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				if ($addModel) {
						dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				$key++; 
			}
		}
	}
}

if(!function_exists('stripChatData')) { 
	function stripChatData($id,$wm, $max = 1000, $params = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		
		$siteData = dbRow("SELECT * FROM paysites WHERE record_num = '{$id}'");
		if(!empty($siteData['settings_json'])) { 
			$settings = json_decode($siteData['settings_json'],true);
		}
		
		
		$array = json_decode(curl_get_contents("https://go.xlirdr.com/api/models?strict=1&fields=tags&limit=".$max."&userId=".$wm."&broadcastGender=".$settings['Gender']));
		
		
		if(!empty($array)) { 
			$output = substr(json_encode($array),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		


		
		if (is_array($array->models)) {
			$key = 0;
			foreach ($array->models as $model) {
				if($key == $max) { break; }
				unset($i);
				$i['username'] = ($model->username);
				$i['seconds_online'] = "";
				$i['spoken_languages'] = implode(",", $model->languages);
				$i['num_users'] = "";
				$i['chat_room_url'] = "https://go.schjmp.com/?path=%2Fapi%2Fexternal%2Fv3%2Faffiliates%2Fmodels%2F{$model->username}%2Fonline&userId=".$wm;
				$i['gender2'] = ($model->gender);
				$i['age'] = "";
				$i['race'] = str_replace("ethnicity","",$model->profileEthnicity); 
				$i['hair'] = str_replace("haircolor","",$model->profileHairColor); 
				$i['bust'] = "";
				$i['pubic_area'] = "";
				$i['recorded'] = false;
				$i['current_show'] = "";
				$i['iframe_embed_revshare'] = "https://lite-iframe.stripcdn.com/{$model->username}?userId=".$wm."";
				$i['birthday'] = "";
				$i['image_url'] = ($model->popularSnapshotUrl);
				$i['location'] = $model->modelsCountry; 
				$i['block_from_states'] = "";
				$i['block_from_countries'] = "";
				$i['iframe_embed'] = "";
				$i['chat_room_url_revshare'] = "https://lite-iframe.stripcdn.com/{$model->username}?userId=".$wm."";
				$i['tags'] = str_replace(array("couples/", "girls/","trans/","men/"), "", implode(",", $model->tags));
				$i['room_subject'] = $model->goalMessage;
				$i['hd_cam'] = $model->broadcastHD == 1 ? 1 : 0;

				$i = mysql_real_escape_array($i);
				
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				}
				if(stripos($i['gender2'],'male') !== false) { 
					$i['gender'] = 'm';
				}
				if(stripos($i['gender2'],'female') !== false) { 
					$i['gender'] = 'f';
				}
				if(stripos($i['gender2'],'couple') !== false) { 
					$i['gender'] = 'c';
				}
				if(stripos($i['gender2'],'tranny') !== false) { 
					$i['gender'] = 't';
				}
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				
				if ($addModel) {
						dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				$key++; 
				
			}
		}
	}
}

if(!function_exists('liveJasminData')) { 
	function liveJasminData($id,$wm, $max = 1000, $params = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$arrContextOptions=array(
			"ssl"=>array(
				"verify_peer"=>false,
				"verify_peer_name"=>false,
			),
		);  
		
		$siteData = dbRow("SELECT * FROM paysites WHERE record_num = '{$id}'");
		if(!empty($siteData['settings_json'])) { 
			$settings = json_decode($siteData['settings_json'],true);
		}
		
		if(isset($settings['Program'])) { 
			$program = $settings['Program']; 
		}
		if(isset($settings['LiveJasmin Category'])) { 
			$category = $settings['LiveJasmin Category']; 
		}
	    if(isset($settings['Campaign ID'])) { 
			$campaignId = $settings['Campaign ID']; 
		}
		if(isset($settings['Site'])) { 
			$ljsite = $settings['Site']; 
		}
		
		if(!isset($program)) { 
			$program = 'revs';
		}
		if(!isset($ljsite)) { 
			$ljsite = 'jasmin';
		}
		if(!isset($campaignId)) { 
			$campaignId = '';
		}
		if(!isset($category)) { 
			$category = '';
		} else { 
			$category = "&category=".$category; 
		}
		
		
		$array = json_decode(file_get_contents("https://pt.protawe.com/api/model/feed?siteId=".$ljsite."&psId=".$params."&psTool=213_1&psProgram=".$program."&campaignId=".$campaignId.$category."&limit=".$max."&imageSizes=320x180&imageType=erotic&showOffline=0&extendedDetails=1&responseFormat=json&performerId=&subAffId={SUBAFFID}&accessKey=".$wm."&legacyRedirect=1", false, stream_context_create($arrContextOptions)));
		
		if(!empty($array)) { 
			$output = substr(json_encode($array),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		
	
		if (is_array($array->data->models)) {
	
			$key = 0;
			foreach ($array->data->models as $model) {
				if($key == $max) { break; }
				unset($i);
				
				$embedCode = '<div id="object_container" style="width:100%;height:100%"></div><script src="//ptwmemd.com/embed/lf?c=object_container&site=jasmin&cobrandId=&psid='.$params.'&pstool=202_1&psprogram=pps&campaign_id=&category=&forcedPerformers[]='.($model->displayName).'&vp[showChat]=true&vp[chatAutoHide]=false&vp[showCallToAction]=true&vp[showPerformerName]=true&vp[showPerformerStatus]=true&filters=&ms_notrack=1&subAffId={SUBAFFID}"></script>';
				
				$i['username'] = ($model->displayName);
				$i['seconds_online'] = ($model->online_time);
				$i['spoken_languages'] = implode(",", $model->details->languages);
				$i['num_users'] = "";
				$i['chat_room_url'] = ($model->chatRoomUrl);
				$i['gender2'] = ($model->persons[0]->sex);
				$i['age'] = ($model->persons[0]->age);
				$i['race'] = ($model->ethnicity);
				$i['hair'] = ($model->persons[0]->body->hairColor);
				$i['bust'] = "";
				$i['pubic_area'] = "";
				$i['recorded'] = false;
				$i['current_show'] = ($model->status);
				$i['iframe_embed_revshare'] = $embedCode;
				$i['birthday'] = "";
				$i['image_url'] = ($model->profilePictureUrl->size320x180);
				$i['location'] = ($model->country);
				$i['block_from_states'] = "";
				$i['block_from_countries'] = implode(",", $model->bannedCountries);
				$i['iframe_embed'] = $embedCode;
				$i['chat_room_url_revshare'] = ($model->chatRoomUrl);
				$i['tags'] = implode(",", $model->details->willingnesses);
				$i['room_subject'] = ($model->details->about->biography);
				$i['hd_cam'] = $model->streamQuality >= 8 ? 1 : 0;

				$i = mysql_real_escape_array($i);
				
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				}
				if(stripos($i['gender2'],'male') !== false) { 
					$i['gender'] = 'm';
				}
				if(stripos($i['gender2'],'female') !== false) { 
					$i['gender'] = 'f';
				}
				if(stripos($i['gender2'],'couple') !== false) { 
					$i['gender'] = 'c';
				}
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				if ($addModel) {
						dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
						
				}
				$key++; 
				
			}
		}
	}
}

if(!function_exists('imliveData')) { 
	function imliveData($id,$wm,$max = 1000, $params = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$xmlResponse = file_get_contents("https://bestof.imlive.com/Live-Sex.rss?WID=".$wm."&ItemCount=".$max."&QueryID=&LinkID=701&promocode=".$params."&from=freevideo1&iw=320&ih=240"); 
		$xmlResponse = str_replace("pc:image","pcimage",$xmlResponse); //because it won't parse pc:image for some reason...
		$xml = simplexml_load_string($xmlResponse    , null, LIBXML_NOCDATA);
		$json = json_encode($xml);
		$array = json_decode($json,TRUE);


		if(is_array($array['channel']['item'])) { 
			$output = substr(json_encode($array),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		

		if (is_array($array['channel']['item'])) {
			$key = 0;
			foreach ($array['channel']['item'] as $model) {
				if($key == $max) { break; }
				unset($i);
				$i['username'] = ($model['title']);
				$i['seconds_online'] = "";
				$i['spoken_languages'] = "";
				$i['num_users'] = 0;
				$i['chat_room_url'] = $model['link'];
				$i['age'] = $model['age'];
				$i['gender'] = 'f';
				$i['race'] = $model['ethnicity'];
				$i['hair'] = $model['hair_color'];
				$i['bust'] = $model['bust_size'];
				$i['pubic_area'] = $model['pubic_hair'];
				$i['recorded'] = false;
				$i['current_show'] = "";
				$i['iframe_embed_revshare'] = $model['link'];
				$i['image_url'] = $model['pcimage'].'&wi=320&hi=240';
				$i['block_from_states'] = "";
				$i['block_from_countries'] = "";
				$i['iframe_embed'] = "";
				$i['chat_room_url_revshare'] =  $model['link'];
				$i['tags'] = $model['tags'];
				$i['room_subject'] = $model['description'];
				$i = mysql_real_escape_array($i);
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				}
				
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				if ($addModel) {
					dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				$key++; 

				

			}
		}
	}
}

if(!function_exists('camSodaData')) { 
	function camSodaData($id,$wm,$max = 1000, $params = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$array = json_decode(file_get_contents("https://feed.camsoda.com/api/v1/browse/online_embed?id=".$wm."&type=revs", true));

		if(!empty($array)) { 
			$output = substr(json_encode($array),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		
		
		if (is_array($array->results) && !empty($array->results)) {
			$key = 0;
			foreach ($array->results as $model) {
				if($key == $max) { break; }
				unset($i);
				$i['username'] = ($model->username);
				$i['num_users'] = ($model->viewers);
				$i['chat_room_url'] = ($model->link);
				$i['gender'] = ($model->gender);
				$i['current_show'] = ($model->status);
				$i['iframe_embed_revshare'] = '<iframe src="'.($model->link_iframe).'"></iframe>';
				$i['image_url'] = ($model->thumb);
				$i['iframe_embed'] = ($model->link_iframe);
				$i['chat_room_url_revshare'] = ($model->link);
				$i['tags'] = implode(',', ($model->tags));
				$i['room_subject'] = ($model->subject);

				$i = mysql_real_escape_array($i);
				
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				}
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				if ($addModel) {
					dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				$key++; 
			}
		}
	}
}

if(!function_exists('cherryTVData')) { 
	function cherryTVData($id,$wm,$max = 1000, $params = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$chandler = curl_init();
		curl_setopt($chandler, CURLOPT_SSL_VERIFYPEER, true);
		curl_setopt($chandler, CURLOPT_URL, 'https://api.cherry.tv/affiliates/v1/models?apiKey='.$wm.'&status=online');
		curl_setopt($chandler, CURLOPT_RETURNTRANSFER, true);
		$resp = curl_exec($chandler);
		curl_close($chandler);
		$response = json_decode($resp, true);
		
		
		
		$siteData = dbRow("SELECT * FROM paysites WHERE record_num = '{$id}'");
		if(!empty($siteData['settings_json'])) { 
			$settings = json_decode($siteData['settings_json'],true);
		}
		
		if(isset($settings['Gender'])) { 
			$genderFilter = $settings['Gender']; 
		} 


		if(is_array($response)) { 
			$output = substr(json_encode($response),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		
		
		if (is_array($response) && count($response['data']) > 0) {
			$key = 0;
			foreach ($response['data'] as $model) {
				if($key == $max) { break; }
				unset($i);
				$i['username'] = $model['model']['username'];
				$i['seconds_online'] = 0;
				$i['spoken_languages'] = implode(",", $model['model']['spoken_languages']);
				$i['num_users'] = $model['room']['viewers'];
				$i['chat_room_url'] = $model['links']['affiliate_url'];
				$i['gender2'] = $model['model']['gender'];
				$i['age'] = $model['model']['age'];
				$i['recorded'] = '';
				$i['current_show'] = '';
				$i['iframe_embed_revshare'] = '<iframe src="'.$model['links']['affiliate_url'].'"></iframe>';
				$i['birthday'] = '';
				$i['image_url'] = $model['room']['thumbnail'];
				$i['location'] = '';
				$i['block_from_states'] = '';
				$i['block_from_countries'] = '';
				$i['iframe_embed'] = '<iframe src="'.$model['links']['affiliate_url'].'"></iframe>';
				$i['chat_room_url_revshare'] = $model['links']['affiliate_url'];
				$i['tags'] = implode(',', ($model['model']['tags']));
				$i['room_subject'] = $model['room']['subject'];
				$i['hd_cam'] = 0;
				$i = mysql_real_escape_array($i);
				$addModel = false;
				$test = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($test) || $test['deleted'] == 0) {
					$addModel = true;
				}
				if(stripos($i['gender2'],'other') !== false) { 
					$i['gender'] = 'f'; //cherrytv marks some women as 'other' for some reason?
				}
				if(stripos($i['gender2'],'girl') !== false) { 
					$i['gender'] = 'f';
				}
				if(stripos($i['gender2'],'couple') !== false) { 
					$i['gender'] = 'c';
				}
				if(stripos($i['gender2'],'trans') !== false) { 
					$i['gender'] = 't';
				}
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				if(isset($genderFilter) && $genderFilter != "") { 
					if($genderFilter != $i['gender']) { 
						$addModel = false; 
					}
				}

				if ($addModel) {
						dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				$key++; 	
			}
		}
	}
}

if(!function_exists('cam4Data')) { 
	function cam4Data($id,$wm,$max = 1000,$extraParameters = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$arrContextOptions=array(
			"ssl"=>array(
				"verify_peer"=>false,
				"verify_peer_name"=>false,
			),
		);  
		
		$siteData = dbRow("SELECT * FROM paysites WHERE record_num = '{$id}'");
		if(!empty($siteData['settings_json'])) { 
			$settings = json_decode($siteData['settings_json'],true);
		}
	
		if(isset($settings['Gender'])) { 
			$genderFilter = $settings['Gender']; 
		} else { 
			$genderFilter = ""; 
		}	


		$array = json_decode(file_get_contents("https://pinklabel.com/tools/feed/data.json?aff_id=".$wm."&prog=rs&limit=".$max."&gender=".$genderFilter.$extraParameters, false, stream_context_create($arrContextOptions)));
		if(is_array($array)) { 
			$output = substr(json_encode($array),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		
	
		if (is_array($array)) {
			$key = 0;
			foreach ($array as $model) {
				if($key == $max) { break; }
				unset($i);
				$i['username'] = ($model->nickname);
				$i['seconds_online'] = "";
				$i['spoken_languages'] = !empty($model->languages) ? implode(",", $model->languages) : "";
				$i['num_users'] = ($model->viewers);
				$i['chat_room_url'] = ($model->link);
				$i['gender2'] = ($model->gender);
				$i['age'] = ($model->age);
				$i['race'] = "";
				$i['hair'] = "";
				$i['bust'] = "";
				$i['pubic_area'] = "";
				$i['recorded'] = false;
				$i['current_show'] = ($model->show_type);
				$i['iframe_embed_revshare'] = "https://traffic.pinklabel.com/live-banners?aff_id=".$wm."&site_id=cam4rs&profile=".$i['username']."&live_indicator=top_right&cta_position=bottom&cta_mode=image&cta_src=";
				$i['birthday'] = "";
				$i['image_url'] = ($model->thumb);
				$i['location'] = ($model->country);
				$i['block_from_states'] = "";
				$i['block_from_countries'] = "";
				$i['iframe_embed'] = "https://traffic.pinklabel.com/live-banners?aff_id=".$wm."&site_id=cam4ppl&profile=".$i['username']."&live_indicator=top_right&cta_position=bottom&cta_mode=image&cta_src=";
				$i['chat_room_url_revshare'] = ($model->link);
				$i['tags'] = !empty($model->show_tags) ? implode(",", $model->show_tags) : "";
				$i['room_subject'] = ($model->status);
				$i['hd_cam'] = $model->hd_stream;
				$i = mysql_real_escape_array($i);
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				}
				
				if(stripos($i['gender2'],'male') !== false) { 
					$i['gender'] = 'm';
				}
				if(stripos($i['gender2'],'female') !== false) { 
					$i['gender'] = 'f';
				}
				if(stripos($i['gender2'],'couple') !== false) { 
					$i['gender'] = 'c';
				}
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				if ($addModel) {
						dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				$key++; 
			}
		}
	}
}

if(!function_exists('bongaData')) { 
	function bongaData($id,$wm,$max = 1000, $params = "") { 
		global $dblink;
		
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$array = json_decode(file_get_contents("https://ssl-tools.bongacams.com/promo.php?c=".$wm."&type=api&api_v=1&api_type=json&lang=en", true));
		
		if(is_array($array)) { 
			$output = substr(json_encode($array),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		
		$siteData = dbRow("SELECT * FROM paysites WHERE record_num = '{$id}'");
		if(!empty($siteData['settings_json'])) { 
			$settings = json_decode($siteData['settings_json'],true);
		}

		if(isset($settings['Gender'])) { 
			$genderFilter = $settings['Gender']; 
		} 


		if (is_array($array)) {
			$key = 0;
			foreach ($array as $model) {
				unset($i);
				$i['username'] = ($model->display_name);
				$i['seconds_online'] = ($model->online_time);
				$i['spoken_languages'] = ($model->primary_language) . "," . ($model->secondary_language);
				$i['num_users'] = ($model->members_count);
				$i['chat_room_url'] = ($model->chat_url);
				$i['gender2'] = ($model->gender);
				$i['age'] = ($model->display_age);
				$i['race'] = ($model->ethnicity);
				$i['hair'] = ($model->hair_color);
				$i['bust'] = ($model->bust_penis_size);
				$i['pubic_area'] = ($model->pubic_hair);
				$i['recorded'] = false;
				$i['current_show'] = ($model->chat_status);
				$i['iframe_embed_revshare'] = ($model->chat_url);
				$i['birthday'] = ($model->birthday);
				$i['image_url'] = ($model->profile_images->thumbnail_image_big_live);
				$i['location'] = ($model->hometown);
				$i['block_from_states'] = ($model->restricted_state_ids);
				$i['block_from_countries'] = ($model->restricted_country_ids);
				$i['iframe_embed'] =  ($model->chat_url);
				$i['chat_room_url_revshare'] = ($model->chat_url_on_home_page);
				$i['tags'] = ($model->ethnicity . "," . $model->hair_color . "," . $model->pubic_hair);
				$i['room_subject'] = ($model->turn_on);
				$i['hd_cam'] = $model->hd_cam;
				$i = mysql_real_escape_array($i);
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				}
				
				if(stripos($i['gender2'],'male') !== false) { 
					$i['gender'] = 'm';
				}
				if(stripos($i['gender2'],'female') !== false) { 
					$i['gender'] = 'f';
				}
				if(stripos($i['gender2'],'couple') !== false) { 
					$i['gender'] = 'c';
				}
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				if(isset($genderFilter) && $genderFilter != "") { 
					if($genderFilter != $i['gender']) { 
						$addModel = false; 
					}
				}

				if ($addModel) {
						dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				$key++; 
			}
		}
	}
}

if(!function_exists('chaturbateData')) { 
	function chaturbateData($id,$wm,$max = 1000, $params = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		
		$siteData = dbRow("SELECT * FROM paysites WHERE record_num = '{$id}'");
		if(!empty($siteData['settings_json'])) { 
			$settings = json_decode($siteData['settings_json'],true);
		}
		
		
		if(isset($settings['Gender'])) { 
			$genderFilter = $settings['Gender']; 
		} 
		if(isset($settings['Tracking Campaign'])) { 
			$trackingCampaign = $settings['Tracking Campaign'];
		} else { 
			$trackingCampaign = "";
		}
		
		
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		

		$array = json_decode(curl_get_contents("https://chaturbate.com/affiliates/api/onlinerooms/?format=json&wm=".$wm));
		
		if(is_array($array)) { 
			$output = substr(json_encode($array),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		
		if (is_array($array)) {
			$key = 0;
			foreach ($array as $model) {
				if($key == $max) { break; }
				unset($i);
				$i['username'] = ($model->username);
				$i['seconds_online'] = ($model->seconds_online);
				$i['spoken_languages'] = ($model->spoken_languages);
				$i['num_users'] = ($model->num_users);
				$i['chat_room_url'] = ($model->chat_room_url);
				$i['gender'] = ($model->gender);
				$i['age'] = ($model->age);
				$i['recorded'] = ($model->recorded);
				$i['current_show'] = ($model->current_show);
				$i['iframe_embed_revshare'] = ($model->iframe_embed_revshare);
				$i['birthday'] = ($model->birthday);
				$i['image_url'] = ($model->image_url);
				$i['location'] = ($model->location);
				$i['block_from_states'] = ($model->block_from_states);
				$i['block_from_countries'] = ($model->block_from_countries);
				$i['iframe_embed'] = ($model->iframe_embed);
				$i['chat_room_url_revshare'] = ($model->chat_room_url_revshare);
				$i['tags'] = implode(',', ($model->tags));
				$i['room_subject'] = ($model->room_subject);
				$i['hd_cam'] = $model->is_hd;
				
				$i = mysql_real_escape_array($i);
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				} 
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				//if(isset($siteData['gender'])) { 
				//	if($siteData['gender'] != $i['gender']) { 
				//		$addModel = false; 
				//	}
				//}
				
				
				if(isset($genderFilter) && $genderFilter != "") { 
					if($genderFilter != $i['gender']) { 
						$addModel = false; 
					}
				}
				
				
				if($i['gender'] == 's') { 
					$i['gender'] = 't'; 
				}
				
				if ($addModel) {
					dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				$key++; 
			}
		}
	}
}



if(!function_exists('cambuilderData')) { 
	function cambuilderData($id,$wm,$max = 1000, $params = "") { 
		global $dblink;
	
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$data = array(
			'authServiceId' => 2,
			'authItemId' => $params,
			'authSecret' => $wm,
			'timestamp' => time()
		);
		
		 $url = 'http://affiliate.streamate.com/SMLive/SMLResult.xml';
		 $xmlHeader = '';
		 $xmlRequest = $xmlHeader . '<?xml version="1.0" encoding="UTF-8"?>
<SMLQuery>
 <Options MaxResults="'.$max.'" />
 <AvailablePerformers QueryId="MyQueryforall">
 <Include>
 <Descriptions />
 <Media>staticbiopic</Media>
 <StaticSort />
 </Include>
 <Constraints>
 <PublicProfile />
 <StreamType>live</StreamType>
 </Constraints>
 </AvailablePerformers>
</SMLQuery>';
		 $ch = curl_init( );
		 curl_setopt( $ch, CURLOPT_URL, $url );
		 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
		 curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Content-Type: text/xml' )
		);
		 curl_setopt( $ch, CURLOPT_POST, 1 );
		 curl_setopt( $ch, CURLOPT_POSTFIELDS, $xmlRequest );
		 $xmlResponse = curl_exec( $ch );
		 $xml = simplexml_load_string($xmlResponse);
		 $json = json_encode($xml);
		 $array = json_decode($json,TRUE);
		

		$siteData = dbRow("SELECT * FROM paysites WHERE record_num = '{$id}'",false);
		if(!empty($siteData['settings_json'])) { 
			$settings = json_decode($siteData['settings_json'],true);
		}


		if(isset($settings['Gender'])) { 
			$genderFilter = $settings['Gender']; 
		} 


		if(isset($xmlResponse) && !empty($xmlResponse)) { 
			$output = substr(json_encode($xmlResponse),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$xmlResponse)."' WHERE record_num = '{$id}'");
		}
		
		if (is_array($array['AvailablePerformers'])) {
			$key = 0;
	
			foreach ($array['AvailablePerformers']['Performer'] as $model) {
				
				if($key == $max) { break; }
				unset($i);
			
				$fullData = $model;
				$model = $model['@attributes'];
				
				$i['username'] = $model['Name'];
				$i['seconds_online'] = 0;
				$i['spoken_languages'] = $model['Language'];
				$i['num_users'] = 0;
				if(!empty($siteData['whitelabel_domain'])) { 
					$i['chat_room_url'] = $i['chat_room_url_revshare'] = "https://".$siteData['whitelabel_domain']."/cam/".$model['Name']; 
					$i['iframe_embed'] = '<iframe allowtransparency="true" style="max-height: 805px;"  scrolling="no" src="https://'.$siteData['whitelabel_domain'].'/purecam?performer='.$model['Name'].'&lang=en&color=%23da7922&lp=iframe&AFNO='.$wm.'"></iframe>';
					$i['iframe_embed_revshare'] = '<iframe allowtransparency="true" style="max-height: 805px;"  scrolling="no" src="https://'.$siteData['whitelabel_domain'].'/purecam?performer='.$model['Name'].'&lang=en&color=%23da7922&lp=iframe&AFNO='.$wm.'"></iframe>';
				} else { 
					$i['chat_room_url'] = $i['chat_room_url_revshare'] = "https://streamate.com/landing/click/cam/".$model['Name']."/click/?AFNO=".$wm;
					$i['iframe_embed'] = '<iframe allowtransparency="true" style="max-height: 805px;" scrolling="no" src="https://hybridclient.naiadsystems.com/purecam?performer='.$model['Name'].'&lp=iframe&AFNO='.$wm.'"></iframe>';
					$i['iframe_embed_revshare'] = '<iframe allowtransparency="true" style="max-height: 805px;" scrolling="no" src="https://hybridclient.naiadsystems.com/purecam?performer='.$model['Name'].'&lp=iframe&AFNO='.$wm.'"></iframe>';
				}
				$i['gender'] = $model['Gender'];
				$i['age'] = $model['Age'];
				$i['recorded'] = '';
				$i['current_show'] = $model['StreamType'];
				$i['birthday'] = '';
				$i['image_url'] = $fullData['Media']['Pic']['Full']['@attributes']['Src'];
				$i['location'] = '';
				$i['block_from_states'] = '';
				$i['block_from_countries'] = '';
				$i['tags'] = $model['Fetishes'].','.$model['Theme'].','.$model['Build'].','.$model['BodyMods'];
				$i['room_subject'] = "";
				$i['hd_cam'] = 1;
				$i = mysql_real_escape_array($i);
				$addModel = false;
				$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
				if(!is_array($model) || $model['deleted'] == 0) {
					$addModel = true;
				}
				
				if(is_array($whiteListData)) { 
					if(!in_array(strtolower($i['username']),$whiteListData)) { 
						$addModel = false; 
					}
				}
				
				if(isset($genderFilter) && $genderFilter != "") { 
					if($genderFilter != $i['gender']) { 
						$addModel = false; 
					}
				}
				if ($addModel) {
						dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
				}
				
				$key++; 
			}
		}
		
	}
}



if(!function_exists('flirtForFreeData')) { 
	function flirtForFreeData($id,$wm, $max = 1000, $params = "") { 
		global $dblink;
		$whiteListData = getSiteWhitelist($id); 
		dbQuery("UPDATE performers SET num_users = 0, position = 999999, status = 0 WHERE site = '{$id}'");
		$arrContextOptions=array(
			"ssl"=>array(
				"verify_peer"=>false,
				"verify_peer_name"=>false,
			),
		);  
		
		$siteData = dbRow("SELECT * FROM paysites WHERE record_num = '{$id}'");
		if(!empty($siteData['settings_json'])) { 
			$settings = json_decode($siteData['settings_json'],true);
		}
		
		if(isset($settings['Gender'])) { 
			$service = $settings['Gender']; 
		} else { 
			$service = 'all'; 
		}
		
		
		if(isset($siteData['whitelabel_domain']) && !empty($siteData['whitelabel_domain'])) { 
			$domain = $siteData['whitelabel_domain']; 
		} else { 
			$domain = "www.flirt4free.com"; 
		}
		
		$array = json_decode(file_get_contents("https://".$domain."/webservices/performers.php?method=getLiveModels&api_key=".$wm."&data_type=json&service=".$service."&mp_code=".$params, false, stream_context_create($arrContextOptions)),true);
		

		
		if(!empty($array)) { 
			$output = substr(json_encode($array),0,1000);
			dbQuery("UPDATE paysites SET last_log = '".mysqli_real_escape_string($dblink,$output)."' WHERE record_num = '{$id}'");
		}
		
		//flirt4free is a bit strange, it returns separate arrays for girls, guys and trans so if all is selected we need to loop through.
		if($service == 'all') { 
			//gender not selected
			$servicesArray = array("girls","guys","trans");
			//gender selected
			foreach($servicesArray as $service) { 
				if (is_array($array[$service])) {
		
					$key = 0;
					foreach ($array[$service] as $model) {
						if($key == $max) { break; }
						unset($i);
						
						$embedCode = '<iframe src="https://secure.vs3.com/_special/banners/LiveWebCams.php?cta=gtr&style=responsive-lva-theme-004&mp_code='.$params.'&service='.$service.'&language=en&use_promo=0&continuous_play=0&model_id='.$model['id'].'&bgcolor=000000&txtcolor=FFFFFF&linkcolor=00A7E1&num_models=50&target=_blank&btncolor=00A7E1&btntxtcolor=FFFFFF&accentcolor=0859A8" scrolling="no" width="100%" height="100%" frameborder="0"></iframe>';
						
						$categories = array(); 
						if(is_array($model['categories'])) { 
							foreach($model['categories'] as $c) { 
								$categories[] = $c['name']; 
							}
						}
						$i['username'] = ($model['name']);
						$i['seconds_online'] = "";
						$i['spoken_languages'] = "";
						$i['num_users'] = "";
						$i['chat_room_url'] = $model['chat_link']; 
						$i['gender2'] = $model['service'];
						$i['age'] = "";
						$i['race'] = "";
						$i['hair'] = "";
						$i['bust'] = "";
						$i['pubic_area'] = "";
						$i['recorded'] = false;
						$i['current_show'] = $model['room_status'];
						$i['iframe_embed_revshare'] = $embedCode;
						$i['birthday'] = "";
						$i['image_url'] = $model['sample_image_ssl']; 
						$i['block_from_states'] = implode(",",$model['filters']['states']);
						$i['block_from_countries'] = implode(",",$model['filters']['countries']);
						$i['iframe_embed'] = $embedCode;
						$i['chat_room_url_revshare'] =$model['chat_link']; 
						if(is_array($categories)) { 
							$i['tags'] = implode(",", $categories);
						} else { 
							$i['tags'] = ''; 
						}
					
						$i['hd_cam'] = $model['is_hd'];
						$i = mysql_real_escape_array($i);
						$addModel = false;
						$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
						if(!is_array($model) || $model['deleted'] == 0) {
							$addModel = true;
						}
						if(stripos($i['gender2'],'guys') !== false) { 
							$i['gender'] = 'm';
						}
						if(stripos($i['gender2'],'girls') !== false) { 
							$i['gender'] = 'f';
						}
						if(stripos($i['gender2'],'trans') !== false) { 
							$i['gender'] = 't';
						}
						
						if(is_array($whiteListData)) { 
							if(!in_array(strtolower($i['username']),$whiteListData)) { 
								$addModel = false; 
							}
						}
					
			
						if ($addModel) {
								dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
								
						}
						$key++; 
						
					}
				}
			}
			
			
		} else { 
			//gender selected
			if (is_array($array[$service])) {
	
				$key = 0;
				foreach ($array[$service] as $model) {
					if($key == $max) { break; }
					unset($i);
					
					$embedCode = '<iframe src="https://secure.vs3.com/_special/banners/LiveWebCams.php?cta=gtr&style=responsive-lva-theme-004&mp_code='.$params.'&service='.$service.'&language=en&use_promo=0&continuous_play=0&model_id='.$model['id'].'&bgcolor=000000&txtcolor=FFFFFF&linkcolor=00A7E1&num_models=50&target=_blank&btncolor=00A7E1&btntxtcolor=FFFFFF&accentcolor=0859A8" scrolling="no" width="100%" height="100%" frameborder="0"></iframe>';
					
					$categories = array(); 
					if(is_array($model['categories'])) { 
						foreach($model['categories'] as $c) { 
							$categories[] = $c['name']; 
						}
					}
					$i['username'] = ($model['name']);
					$i['seconds_online'] = "";
					$i['spoken_languages'] = "";
					$i['num_users'] = "";
					$i['chat_room_url'] = $model['chat_link']; 
					$i['gender2'] = $model['service'];
					$i['age'] = "";
					$i['race'] = "";
					$i['hair'] = "";
					$i['bust'] = "";
					$i['pubic_area'] = "";
					$i['recorded'] = false;
					$i['current_show'] = $model['room_status'];
					$i['iframe_embed_revshare'] = $embedCode;
					$i['birthday'] = "";
					$i['image_url'] = $model['sample_image_ssl']; 
					$i['block_from_states'] = implode(",",$model['filters']['states']);
					$i['block_from_countries'] = implode(",",$model['filters']['countries']);
					$i['iframe_embed'] = $embedCode;
					$i['chat_room_url_revshare'] =$model['chat_link']; 
					if(is_array($categories)) { 
						$i['tags'] = implode(",", $categories);
					} else { 
						$i['tags'] = ''; 
					}
				
					$i['hd_cam'] = $model['is_hd'];
					$i = mysql_real_escape_array($i);
					$addModel = false;
					$model = dbRow("SELECT deleted FROM performers WHERE site = '{$id}' AND username = '{$i['username']}'");
					if(!is_array($model) || $model['deleted'] == 0) {
						$addModel = true;
					}
					if(stripos($i['gender2'],'guys') !== false) { 
						$i['gender'] = 'm';
					}
					if(stripos($i['gender2'],'girls') !== false) { 
						$i['gender'] = 'f';
					}
					if(stripos($i['gender2'],'trans') !== false) { 
						$i['gender'] = 't';
					}
					
					if(is_array($whiteListData)) { 
						if(!in_array(strtolower($i['username']),$whiteListData)) { 
							$addModel = false; 
						}
					}
				
		
					if ($addModel) {
							dbQuery("INSERT INTO performers (username, room_subject, seconds_online, spoken_languages, num_users, chat_room_url, gender, age, race, hair, bust, pubic_area, recorded, current_show, iframe_embed_revshare, birthday, image_url, location, block_from_states, block_from_countries, iframe_embed, chat_room_url_revshare, last_online, tags, status, site, api_counter, hd, position) VALUES('{$i['username']}', '{$i['room_subject']}', '{$i['seconds_online']}', '{$i['spoken_languages']}', '{$i['num_users']}', '{$i['chat_room_url']}', '{$i['gender']}', '{$i['age']}', '{$i['race']}', '{$i['hair']}', '{$i['bust']}', '{$i['pubic_area']}', '{$i['recorded']}', '{$i['current_show']}', '{$i['iframe_embed_revshare']}', '{$i['birthday']}', '{$i['image_url']}', '{$i['location']}', '{$i['block_from_states']}', '{$i['block_from_countries']}', '{$i['iframe_embed']}', '{$i['chat_room_url_revshare']}', NOW(), '{$i['tags']}', 1, '{$id}', 1, '{$i['hd_cam']}', '{$key}') ON DUPLICATE KEY UPDATE seconds_online = '{$i['seconds_online']}', room_subject = '{$i['room_subject']}', spoken_languages = '{$i['spoken_languages']}', num_users = '{$i['num_users']}', chat_room_url = '{$i['chat_room_url']}', gender = '{$i['gender']}', age = '{$i['age']}', race = '{$i['race']}', hair = '{$i['hair']}', bust = '{$i['bust']}', pubic_area = '{$i['pubic_area']}', recorded = '{$i['recorded']}', current_show = '{$i['current_show']}', hd = '{$i['hd_cam']}', iframe_embed_revshare = '{$i['iframe_embed_revshare']}', birthday = '{$i['birthday']}', image_url = '{$i['image_url']}', location = '{$i['location']}', block_from_states = '{$i['block_from_states']}', block_from_countries = '{$i['block_from_countries']}', iframe_embed = '{$i['iframe_embed']}', chat_room_url_revshare = '{$i['chat_room_url_revshare']}', last_online = NOW(), tags = '{$i['tags']}', status = 1, api_counter = api_counter + 1, position = '{$key}'");	
							
					}
					$key++; 
					
				}
			}
			//eof
		}
		
		
	}
}


function getSiteWhitelist($site) { 
	$result = dbRow("SELECT whitelist FROM paysites WHERE record_num = '$site'",false); 
	if(isset($result['whitelist']) && !empty($result['whitelist'])) { 
		$output = explode(",",$result['whitelist']);
		$finalOutput = array(); 
		foreach($output as $i) { 
			$finalOutput[] = strtolower(trim($i)); 
		}
	}
	if(is_array($finalOutput)) { 
		return $finalOutput;
	} else { 
		return false; 
	}
}


function curl_get_contents($url,$timeout=30,$settings_array=false)
{
	if(function_exists("curl_init")){
		$curl_options = array(
			CURLOPT_URL => $url,
			CURLOPT_RETURNTRANSFER => true,
			CURLOPT_TIMEOUT => intval($timeout),
			CURLOPT_HEADER  => false,
			CURLOPT_SSL_VERIFYPEER => false,
			CURLOPT_SSL_VERIFYHOST => false
			
		);
		// We assume nobody's going to try to overwrite the settings above
		if(is_array($settings_array)){
			array_merge($curl_options,$settings_array);
		}
		if(!$curl_open = curl_init()){
			$return = false;		
		}
		curl_setopt_array($curl_open, $curl_options);
		$return = curl_exec($curl_open);
		curl_close($curl_open); // Close CURL
	} elseif(function_exists("passthru")) {
		$cmd = "curl -m $timeout -s-url ".$url.""; // Set up command
		echo $cmd;
		/* The only way I could get a correctly formated file into a variable */
		ob_start();
			passthru($cmd, $status); // Run command
			$return = ob_get_contents(); // Put everything into the variable
		ob_end_clean();
		if($status > 1) {
			$return = false;
		}
	} else {
		trigger_error("Unable to run cURL", E_USER_ERROR);
		$return = false;
	}
	return $return; // Why???
}