%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/higroup/1618475457800/wp-content/plugins/wp-social/lib/counter/
Upload File :
Create Path :
Current File : /var/www/html/higroup/1618475457800/wp-content/plugins/wp-social/lib/counter/counters-api.php

<?php

defined('ABSPATH') || exit;

$xsc_data         = array();
$xsc_options      = get_option('xs_counter_options') ? get_option('xs_counter_options') : array('data' => array());
$xsc_transient    = get_transient('xs_counters_data');
$xsc_options_save = get_option('xs_counter_providers_data') ? get_option('xs_counter_providers_data') : [];

if(empty($xsc_transient) || (false === $xsc_transient)) {
	$xsc_transient = [];
}

/**
 * Twitter Followers Count
 * todo - we are not using this function any more, check for other reference and delete it
 * 
 */
if(!function_exists('xsc_twitter_count')) :
	function xsc_twitter_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['twitter'])) {
			$result = $xsc_transient['twitter'];
		} elseif(empty($xsc_transient['twitter']) && !empty($xsc_data) && !empty($xsc_options['data']['twitter'])) {
			$result = $xsc_options['data']['twitter'];
		} else {
			$result        = '';
			$id            = isset($xsc_options_save['social']['twitter']['id']) ? $xsc_options_save['social']['twitter']['id'] : 'xpeedstudio';
			$default_token = 'AAAAAAAAAAAAAAAAAAAAAJBzagAAAAAAXr%2Fxj2UWtV%2BnQNigsUm%2Bjrlkr4o%3DoYt2AFQFvPpPsJ1wtVmJ3MLetbYnmTWLFzDZJWLnXZtRJRZKOQ';
			$token         = get_option('xs_counter_twitter_token') ? get_option('xs_counter_twitter_token') : '';
			$token         = strlen($token) > 5 ? $token : $default_token;

			$args = array(
				'httpversion' => '1.1',
				'blocking'    => true,
				'timeout'     => 10,
				'headers'     => array(
					'Authorization'   => "Bearer $token",
					'Accept-Language' => 'en',
				),
			);

			add_filter('https_ssl_verify', '__return_false');
			$api_url  = "https://api.twitter.com/1.1/users/show.json?screen_name=$id";
			$response = xsc_remote_get($api_url, true, $args);

			/**
			 * We will show actual count always if user gives the access token
			 * even if it is 0!
			 */
			if(isset($response['followers_count'])) {
				$result = intval($response['followers_count']);
			}


			if(!empty($result)) //To update the stored data
			{
				$xsc_data['twitter'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['twitter'])) //Get the stored data
			{
				$result = $xsc_options['data']['twitter'];
			}
		}

		return (int) $result;

	}
endif;

/**
 * Facebook Fans
 */

if(!function_exists('xsc_facebook_count')) :
	function xsc_facebook_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		$counter = 0;


		if(!empty($xsc_transient['facebook'])) {
			$counter = $xsc_transient['facebook'];
		} elseif(empty($xsc_transient['facebook']) && !empty($xsc_data) && !empty($xsc_options['data']['facebook'])) {
			$counter = $xsc_options['data']['facebook'];
		} else {

			$counter = '';

			$social_id = isset($xsc_options_save['social']['facebook']['id']) ? $xsc_options_save['social']['facebook']['id'] : 'xpeedstudio';

			$get_request = wp_remote_get("https://www.facebook.com/plugins/likebox.php?href=https://facebook.com/$social_id&show_faces=true&header=false&stream=false&show_border=false&locale=en_US", array('timeout' => 20));
			$the_request = wp_remote_retrieve_body($get_request);

			$pattern = '/_1drq[^>]+>(.*?)<\/a/s';
			preg_match($pattern, $the_request, $matches);

			if(!empty($matches[1])) {
				$number = strip_tags($matches[1]);

				foreach(str_split($number) as $char) {
					if(is_numeric($char)) {
						$counter .= $char;
					}
				}
			}

			if(!empty($counter)) //To update the stored data
			{
				$xsc_data['facebook'] = $counter;
			}

			if(empty($counter) && !empty($xsc_options['data']['facebook'])) //Get the stored data
			{
				$counter = $xsc_options['data']['facebook'];
			}
		}
		
		return (int) $counter;

	}
endif;

/**
 * Google+ Followers
 */

if(!function_exists('xsc_google_count')) :
	function xsc_google_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['google'])) {
			$result = $xsc_transient['google'];
		} elseif(empty($xsc_transient['google']) && !empty($xsc_data) && !empty($xsc_options['data']['google'])) {
			$result = $xsc_options['data']['google'];
		} else {
			$id  = (isset($xsc_options_save['social']['google']['id']) && strlen($xsc_options_save['social']['google']['id']) > 5) ? $xsc_options_save['social']['google']['id'] : 'google';
			$key = (isset($xsc_options_save['social']['google']['key']) && strlen($xsc_options_save['social']['google']['key']) > 4) ? $xsc_options_save['social']['google']['key'] : 'AIzaSyBAwpfyAadivJ6EimaAOLh-F1gBeuwyVoY';

			try {
				// Get googleplus data.
				$googleplus_data = xsc_remote_get('https://www.googleapis.com/plus/v1/people/' . $id . '?key=' . $key);

				if(isset($googleplus_data['circledByCount'])) {
					$result = (int) $googleplus_data['circledByCount'];
				}
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['google'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['google'])) //Get the stored data
			{
				$result = $xsc_options['data']['google'];
			}
		}

		return $result;

	}
endif;


/**
 * Youtube Subscribers
 * todo - No more needed, use this class - lib/provider/counter/youtube-counter.php
 */
if(!function_exists('xsc_youtube_count')) :
	function xsc_youtube_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['youtube'])) {
			$result = $xsc_transient['youtube'];
		} elseif(empty($xsc_transient['youtube']) && !empty($xsc_data) && !empty($xsc_options['data']['youtube'])) {
			$result = $xsc_options['data']['youtube'];
		} else {
			$result = '';
			$id     = (isset($xsc_options_save['social']['youtube']['id']) && strlen($xsc_options_save['social']['youtube']['id']) > 5) ? $xsc_options_save['social']['youtube']['id'] : 'UCJp-j8uvirVgez7TDAmfGYA';
			$api    = (isset($xsc_options_save['social']['youtube']['key']) && strlen($xsc_options_save['social']['youtube']['key']) > 4) ? $xsc_options_save['social']['youtube']['key'] : 'AIzaSyBAwpfyAadivJ6EimaAOLh-F1gBeuwyVoY';
			try {
				if(!empty($xsc_options_save['social']['youtube']['type']) && $xsc_options_save['social']['youtube']['type'] == 'Channel') {
					$data = @xsc_remote_get("https://www.googleapis.com/youtube/v3/channels?part=statistics&id=$id&key=$api");
				} else {
					$data = @xsc_remote_get("https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername=$id&key=$api");
				}
				$result = (int) isset($data['items'][0]['statistics']['subscriberCount']) ? $data['items'][0]['statistics']['subscriberCount'] : 0;

			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['youtube'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['youtube'])) //Get the stored data
			{
				$result = $xsc_options['data']['youtube'];
			}
		}

		return (int) $result;

	}
endif;


/**
 * Vimeo Subscribers
 */
if(!function_exists('xsc_vimeo_count')) :
	function xsc_vimeo_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['vimeo'])) {
			$result = $xsc_transient['vimeo'];
		} elseif(empty($xsc_transient['vimeo']) && !empty($xsc_data) && !empty($xsc_options['data']['vimeo'])) {
			$result = $xsc_options['data']['vimeo'];
		} else {
			$id = isset($xsc_options_save['social']['vimeo']['id']) ? $xsc_options_save['social']['vimeo']['id'] : 'user1837238';
			try {
				//$data 	= xsc_remote_get( "http://vimeo.com/api/v2/channel/$id/info.json" );
				$default_token = '6m4GyfcFCklFySPiz9DDqup1gbL9oqkj';
				$token         = get_option('xs_counter_VimeoToken') ? get_option('xs_counter_VimeoToken') : '';
				$token         = strlen($token) > 5 ? $token : $default_token;

				$args    = array(
					'httpversion' => '1.1',
					'blocking'    => true,
					'timeout'     => 10,
					'headers'     => array(
						'Authorization' => "bearer $token",
					),
				);
				$api_url = "http://vimeo.com/api/v2/channel/$id/info.json";
				$data    = xsc_remote_get($api_url, true, $args);
				print_r($data);
				$result = (int) isset($data['total_subscribers']) ? $data['total_subscribers'] : 0;
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['vimeo'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['vimeo'])) //Get the stored data
			{
				$result = $xsc_options['data']['vimeo'];
			}
		}

		return $result;

	}
endif;


/**
 * Dribbble Followers
 * todo - No more needed, use this class - lib/provider/counter/dribbble-counter.php
 */
if(!function_exists('xsc_dribbble_count')) :
	function xsc_dribbble_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;
		
		if(!empty($xsc_transient['dribbble'])) {
			$result = $xsc_transient['dribbble'];
		} elseif(empty($xsc_transient['dribbble']) && !empty($xsc_data) && !empty($xsc_options['data']['dribbble'])) {
			$result = $xsc_options['data']['dribbble'];
		} else {
			$result = '';
			$id     = isset($xsc_options_save['social']['dribbble']['id']) ? $xsc_options_save['social']['dribbble']['id'] : 'NicolasIbrahim';

		
			$default_token = 'doesNotWork';
			$token         = get_option('xs_counter_dribbble_token') ? get_option('xs_counter_dribbble_token') : '';
			$token         = strlen($token) > 5 ? $token : $default_token;

			try {
				$data   = @xsc_remote_get("https://api.dribbble.com/v2/user/$id?access_token=$token");
				$result = (int) isset($data['followers_count']) ? $data['followers_count'] : 0;
				
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['dribbble'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['dribbble'])) //Get the stored data
			{
				$result = $xsc_options['data']['dribbble'];
			}
		}

		return (int) $result;

	}
endif;


/**
 * Github Followers
 */
if(!function_exists('xsc_github_count')) :
	function xsc_github_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['github'])) {
			$result = $xsc_transient['github'];
		} elseif(empty($xsc_transient['github']) && !empty($xsc_data) && !empty($xsc_options['data']['github'])) {
			$result = $xsc_options['data']['github'];
		} else {
			$id = isset($xsc_options_save['social']['github']['id']) ? $xsc_options_save['social']['github']['id'] : 'VingtCinq';
			try {
				$data   = @xsc_remote_get("https://api.github.com/users/$id");
				$result = (int) $data['followers'];
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['github'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['github'])) //Get the stored data
			{
				$result = $xsc_options['data']['github'];
			}
		}

		return $result;

	}
endif;


/**
 * Envato Followers
 */
if(!function_exists('xsc_envato_count')) :
	function xsc_envato_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['envato'])) {
			$result = $xsc_transient['envato'];
		} elseif(empty($xsc_transient['envato']) && !empty($xsc_data) && !empty($xsc_options['data']['envato'])) {
			$result = $xsc_options['data']['envato'];
		} else {
			//https://build.envato.com/api/
			$id = isset($xsc_options_save['social']['envato']['id']) ? $xsc_options_save['social']['envato']['id'] : 'xpeedstudio';
			try {
				//$data 	= @xsc_remote_get("http://marketplace.envato.com/api/edge/user:$id.json");
				$default_token = '6m4GyfcFCklFySPiz9DDqup1gbL9oqkj';
				$token         = get_option('xs_counter_EnvatoToken') ? get_option('xs_counter_EnvatoToken') : '';
				$token         = strlen($token) > 5 ? $token : $default_token;

				$args    = array(
					'httpversion' => '1.1',
					'blocking'    => true,
					'timeout'     => 10,
					'headers'     => array(
						'Authorization' => "Bearer $token",
					),
				);
				$api_url = "https://api.envato.com/v1/market/user:$id.json";
				$data    = xsc_remote_get($api_url, true, $args);
				print_r($data);
				$result = (int) isset($data['user']['followers']) ? $data['user']['followers'] : 0;
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['envato'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['envato'])) //Get the stored data
			{
				$result = $xsc_options['data']['envato'];
			}
		}

		return $result;

	}
endif;


/**
 * SoundCloud Followers
 */
if(!function_exists('xsc_soundcloud_count')) :
	function xsc_soundcloud_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['soundcloud'])) {
			$result = $xsc_transient['soundcloud'];
		} elseif(empty($xsc_transient['soundcloud']) && !empty($xsc_data) && !empty($xsc_options['data']['soundcloud'])) {
			$result = $xsc_options['data']['soundcloud'];
		} else {
			$id  = $xsc_options_save['social']['soundcloud']['id'];
			$api = $xsc_options_save['social']['soundcloud']['api'];
			try {
				$data   = @xsc_remote_get("http://api.soundcloud.com/users/$id.json?consumer_key=$api");
				$result = (int) $data['followers_count'];
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['soundcloud'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['soundcloud'])) //Get the stored data
			{
				$result = $xsc_options['data']['soundcloud'];
			}
		}

		return $result;

	}
endif;


/**
 * Behance Followers
 */
if(!function_exists('xsc_behance_count')) :
	function xsc_behance_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['behance'])) {
			$result = $xsc_transient['behance'];
		} elseif(empty($xsc_transient['behance']) && !empty($xsc_data) && !empty($xsc_options['data']['behance'])) {
			$result = $xsc_options['data']['behance'];
		} else {
			$id  = isset($xsc_options_save['social']['behance']['id']) ? $xsc_options_save['social']['behance']['id'] : 'mostafahazi';
			$api = isset($xsc_options_save['social']['behance']['api']) ? $xsc_options_save['social']['behance']['api'] : 'INekEPLWGFlXlfmWjjOZD79vWNaD1Nxj';
			try {
				$url  = sprintf(
					'https://www.behance.net/v2/users/%s?api_key=%s',
					$id,
					$api
				);
				$data = xsc_remote_get($url);
				//print_r($data);
				$result = (int) isset($data['user']['stats']['followers']) ? $data['user']['stats']['followers'] : 0;
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['behance'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['behance'])) //Get the stored data
			{
				$result = $xsc_options['data']['behance'];
			}
		}

		return $result;

	}
endif;


/**
 * Instagram Followers
 */
if(!function_exists('xsc_instagram_count')) :

	function xsc_instagram_count() {


		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['instagram'])) {
			$result = $xsc_transient['instagram'];
		} elseif(empty($xsc_transient['instagram']) && !empty($xsc_data) && !empty($xsc_options['data']['instagram'])) {
			$result = $xsc_options['data']['instagram'];
		} else {

			$default_token = '2367672995.f53f83f.88eda6a77b1d4a9fb704fedc4ff869eb';
			$token         = get_option('xs_counter_instagram_token') ? get_option('xs_counter_instagram_token') : '';
			if(strlen($token) > 5) {
				$token     = strlen($token) > 5 ? $token : $default_token;
				$explodeUs = explode('.', $token);
				$id        = current($explodeUs);
				$url       = sprintf(
					'https://api.instagram.com/v1/users/%s?access_token=%s',
					$id,
					$token
				);
				$data      = xsc_remote_get($url);
				$result    = (int) isset($data['data']['counts']['followed_by']) ? $data['data']['counts']['followed_by'] : 0;
			} else {

				$id = isset($xsc_options_save['social']['instagram']['id']) ? $xsc_options_save['social']['instagram']['id'] : '2367672995';

				$url = 'http://instagram.com/' . $id . '#';

				$get_request = wp_remote_get($url, array('timeout' => 20));
				$the_request = wp_remote_retrieve_body($get_request);

				$pattern = "/followed_by\":[ ]*{\"count\":(.*?)}/";

				if(is_string($the_request) && preg_match($pattern, $the_request, $matches)) {

					$result = intval($matches[1]);
				}
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['instagram'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['instagram'])) //Get the stored data
			{
				$result = $xsc_options['data']['instagram'];
			}

		}

		return $result;

	}
endif;


/**
 * Foursquare Followers
 */
if(!function_exists('xsc_foursquare_count')) :
	function xsc_foursquare_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['foursquare'])) {
			$result = $xsc_transient['foursquare'];
		} elseif(empty($xsc_transient['foursquare']) && !empty($xsc_data) && !empty($xsc_options['data']['foursquare'])) {
			$result = $xsc_options['data']['foursquare'];
		} else {
			$api  = get_option('foursquare_access_token');
			$date = date("Ymd");
			try {
				$data   = @xsc_remote_get("https://api.foursquare.com/v2/users/self?oauth_token=$api&v=$date");
				$result = (int) $data['response']['user']['friends']['count'];
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['foursquare'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['foursquare'])) //Get the stored data
			{
				$result = $xsc_options['data']['foursquare'];
			}
		}

		return $result;

	}
endif;


/**
 * Mailchimp Subscribers
 */
if(!function_exists('xsc_mailchimp_count')) :
	function xsc_mailchimp_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['mailchimp'])) {
			$result = $xsc_transient['mailchimp'];
		} elseif(empty($xsc_transient['mailchimp']) && !empty($xsc_data) && !empty($xsc_options['data']['mailchimp'])) {
			$result = $xsc_options['data']['mailchimp'];
		} else {

			$result = 0;
			$id     = isset($xsc_options_save['social']['mailchimp']['id']) ? $xsc_options_save['social']['mailchimp']['id'] : ''; //35bfe5a4f5
			$apikey = isset($xsc_options_save['social']['mailchimp']['api']) ? $xsc_options_save['social']['mailchimp']['api'] : '7025ab20d2b50082e656df4e8e98f02f-us8';

			$server  = explode('-', $apikey);
			$hosting = end($server);

			$url      = sprintf('https://%s.api.mailchimp.com/3.0/lists/%s', $hosting, $id);
			$response = wp_remote_get($url, array(
				'timeout' => 10,
				'headers' => array(
					'Authorization' => 'apikey ' . $apikey,
					'Content-Type'  => 'application/vnd.api+json',
				),
			));
			$response = wp_remote_retrieve_body($response);
			$response = json_decode($response, true);

			/*
			//https://developer.mailchimp.com/documentation/mailchimp/guides/how-to-use-oauth2/
			$url = sprintf('https://%s.api.mailchimp.com/3.0/', $hosting);
			$response = wp_remote_get( $url, array(
				'timeout' => 10,
				'headers' => array(
					'Authorization' => 'apikey ' . $apikey,
					'Content-Type' => 'application/vnd.api+json',
				)
			));
			$response = wp_remote_retrieve_body( $response );
			$response = json_decode( $response, true );
			
			print_r($response);
			*/

			if(isset($response['lists'][0]['stats'])) {
				$result = isset($response['lists'][0]['stats']['member_count']) ? $response['lists'][0]['stats']['member_count'] : 0;
			} else {
				$result = isset($response['stats']['member_count']) ? $response['stats']['member_count'] : 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['mailchimp'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['mailchimp'])) //Get the stored data
			{
				$result = $xsc_options['data']['mailchimp'];
			}
		}

		return $result;

	}
endif;


/**
 * MailPoet Subscribers
 */
if(!function_exists('xsc_mailpoet_count')) :
	function xsc_mailpoet_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['mailpoet'])) {
			$result = $xsc_transient['mailpoet'];
		} elseif(empty($xsc_transient['mailpoet']) && !empty($xsc_data) && !empty($xsc_options['data']['mailpoet'])) {
			$result = $xsc_options['data']['mailpoet'];
		} else {

			$list = $xsc_options_save['social']['mailpoet']['list'];

			if(!empty($list)) {
				if($list == 'all') {
					$result = do_shortcode('[mailpoet_subscribers_count]');
				} else {
					$result = do_shortcode('[mailpoet_subscribers_count segments="' . $list . '"]');
				}
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['mailpoet'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['mailpoet'])) //Get the stored data
			{
				$result = $xsc_options['data']['mailpoet'];
			}
		}

		return $result;

	}
endif;


/**
 * myMail Subscribers
 */
if(!function_exists('xsc_mymail_count')) :
	function xsc_mymail_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['mymail'])) {
			$result = $xsc_transient['mymail'];
		} elseif(empty($xsc_transient['mymail']) && !empty($xsc_data) && !empty($xsc_options['data']['mymail'])) {
			$result = $xsc_options['data']['mymail'];
		} else {

			$list = $xsc_options_save['social']['mymail']['list'];

			if(!empty($list)) {
				if($list == 'all') {
					$counts = mailster('subscribers')->get_count_by_status();
					$result = $counts[1];
				} else {
					$result = mailster('lists')->get_member_count($list, 1);
				}
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['mymail'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['mymail'])) //Get the stored data
			{
				$result = $xsc_options['data']['mymail'];
			}
		}

		return $result;

	}
endif;


/**
 * LinkedIn Followers
 */
if(!function_exists('xsc_linkedin_count')) :
	function xsc_linkedin_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['linkedin'])) {
			$result = $xsc_transient['linkedin'];
		} elseif(empty($xsc_transient['linkedin']) && !empty($xsc_data) && !empty($xsc_options['data']['linkedin'])) {
			$result = $xsc_options['data']['linkedin'];
		} else {
			$default_token = 'AQRX2qAD_yEPBj6jdTLqcn6rgPCgZCKcF8gRPppRcW94N7zZus35iZ4LylyRcuMfm7HnphraWkSTyDF6sxFPSZk5x2GnQnHYDV3Ueu1-qVp5J_3Nw5ZIC1A_OOkn1pfj1q_ZihHq4_6HOfkS7oVO9ZTjUogsfc1U6DEKgGQVi1JT-5NLfKm3E2XoZal33g';
			$token         = get_option('xs_counter_linkedin_token') ? get_option('xs_counter_linkedin_token') : '';
			//$token = strlen($token) > 5 ? $token : $default_token;

			$type   = isset($xsc_options_save['social']['linkedin']['type']) ? $xsc_options_save['social']['linkedin']['type'] : 'Profile';
			$result = 0;
			if(!empty($xsc_options_save['social']['linkedin']['type']) && !empty($token)) {

				$args = array(
					'headers' => array(
						'Authorization'             => sprintf('Bearer %s', $token),
						'Content-Type'              => 'application/json',
						'x-li-format'               => 'json',
						'X-Restli-Protocol-Version' => '2.0.0',
					),
				);

				if($type == 'Profile') {
					$id = isset($xsc_options_save['social']['linkedin']['id']) ? $xsc_options_save['social']['linkedin']['id'] : '';

					//$data   = xsc_remote_get('https://api.linkedin.com/v2/me', true, $args);
					$fields = 'id,numConnections';

					//$data   = xsc_remote_get('https://api.linkedin.com/v2/me?projection=(id,firstName,lastName,profilePicture(displayImage~:playableStreams),numConnections)', true, $args);
					$data = xsc_remote_get('https://api.linkedin.com/v2/me?projection=(num-connections)', true, $args);

					try {
						$result = (int) isset($data['numConnections']) ? $data['numConnections'] : 0;
					} catch(Exception $e) {
						$result = 0;
					}

				} elseif($type == 'Company') {
					$companyId = isset($xsc_options_save['social']['linkedin']['id']) ? $xsc_options_save['social']['linkedin']['id'] : '';
					$page_id   = sprintf('https://api.linkedin.com/v1/companies/%s/num-followers?format=json', $companyId);
					//$page_id = sprintf('https://api.linkedin.com/v2/organizations?q=vanityI&vanityName=%s', $companyId );
					try {
						$data = xsc_remote_get($page_id, true, $args);
						//print_r($data);
						if(!is_array($data)) {
							$result = $data;
						}
					} catch(Exception $e) {
						$result = 0;
					}
				}

				if(!empty($result)) { //To update the stored data
					$xsc_data['linkedin'] = $result;
				}

				if(empty($result) && !empty($xsc_options['data']['linkedin'])) { //Get the stored data
					$result = $xsc_options['data']['linkedin'];
				}
			}
		}

		return $result;
	}
endif;


/**
 * Vk Members
 */
if(!function_exists('xsc_vkontakte_count')) :
	function xsc_vkontakte_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		$counter = 0;

		if(!empty($xsc_transient['vkontakte'])) {
			$counter = $xsc_transient['vkontakte'];
		} elseif(empty($xsc_transient['vkontakte']) && !empty($xsc_data) && !empty($xsc_options['data']['vkontakte'])) {
			$counter = $xsc_options['data']['vkontakte'];
		} else {

			$id = isset($xsc_options_save['social']['vkontakte']['id']) ? $xsc_options_save['social']['vkontakte']['id'] : 'id72867608';

			$get_request = wp_remote_get("https://m.vk.com/$id", array('timeout' => 20));
			$the_request = wp_remote_retrieve_body($get_request);

			$pattern = '/pm_counter[^>]+>(.*?)<\/em/s';
			preg_match($pattern, $the_request, $matches);

			if(!empty($matches[1])) {
				$number  = strip_tags($matches[1]);
				$counter = '';

				foreach(str_split($number) as $char) {
					if(is_numeric($char)) {
						$counter .= $char;
					}
				}
			}

			if(!empty($counter)) //To update the stored data
			{
				$xsc_data['vkontakte'] = $counter;
			}

			if(empty($counter) && !empty($xsc_options['data']['vkontakte'])) //Get the stored data
			{
				$counter = $xsc_options['data']['vkontakte'];
			}
		}

		return $counter;

	}
endif;


/**
 * Tumblr Followers
 */
if(!function_exists('xsc_tumblr_count')) :
	function xsc_tumblr_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['tumblr'])) {
			$result = $xsc_transient['tumblr'];
		} elseif(empty($xsc_transient['tumblr']) && !empty($xsc_data) && !empty($xsc_options['data']['tumblr'])) {
			$result = $xsc_options['data']['tumblr'];
		} else {
			$base_hostname = str_replace(array(
				'http://',
				'https://',
			), '', $xsc_options_save['social']['tumblr']['hostname']);

			try {
				$consumer_key       = get_option('tumblr_api_key');
				$consumer_secret    = get_option('tumblr_api_secret');
				$oauth_token        = get_option('tumblr_oauth_token');
				$oauth_token_secret = get_option('tumblr_token_secret');
				$tumblr_api_URI     = 'http://api.tumblr.com/v2/blog/' . $base_hostname . '/followers';

				$tum_oauth  = new TumblrOAuthTie($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
				$tumblr_api = $tum_oauth->post($tumblr_api_URI, '');

				if($tumblr_api->meta->status == 200 && !empty($tumblr_api->response->total_users)) {
					$result = (int) $tumblr_api->response->total_users;
				}

			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['tumblr'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['tumblr'])) //Get the stored data
			{
				$result = $xsc_options['data']['tumblr'];
			}
		}

		return $result;

	}
endif;


/**
 * 500px Followers
 */
if(!function_exists('xsc_500px_count')) :
	function xsc_500px_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		$result = 0;

		if(!empty($xsc_transient['500px'])) {
			$result = $xsc_transient['500px'];
		} elseif(empty($xsc_transient['500px']) && !empty($xsc_data) && !empty($xsc_options['data']['500px'])) {
			$result = $xsc_options['data']['500px'];
		} else {

			$social_id   = $xsc_options_save['social']['500px']['username'];
			$get_request = wp_remote_get("https://500px.com/$social_id", array('timeout' => 20));
			$the_request = wp_remote_retrieve_body($get_request);

			$pattern = '/followers[^>]+>(.*?)<\/li/s';
			preg_match($pattern, $the_request, $matches);

			if(!empty($matches[1])) {

				$number = strip_tags($matches[1]);
				$result = '';

				foreach(str_split($number) as $char) {
					if(is_numeric($char)) {
						$result .= $char;
					}
				}
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['500px'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['500px'])) //Get the stored data
			{
				$result = $xsc_options['data']['500px'];
			}
		}

		return $result;

	}
endif;


/**
 * Pinterest Followers
 */
if(!function_exists('xsc_pinterest_count')) :
	function xsc_pinterest_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['pinterest'])) {
			$result = $xsc_transient['pinterest'];
		} elseif(empty($xsc_transient['pinterest']) && !empty($xsc_data) && !empty($xsc_options['data']['pinterest'])) {
			$result = $xsc_options['data']['pinterest'];
		} else {
			$result   = '';
			$username = isset($xsc_options_save['social']['pinterest']['username']) ? $xsc_options_save['social']['pinterest']['username'] : '101outfitcom';
			try {
				$html = xsc_remote_get("https://www.pinterest.com/$username/", false);

				$prev = libxml_use_internal_errors(true);
				$doc  = new DOMDocument();
				@$doc->loadHTML($html);
				libxml_use_internal_errors($prev);

				$metas = $doc->getElementsByTagName('meta');
				for($i = 0; $i < $metas->length; $i++) {
					$meta = $metas->item($i);
					if($meta->getAttribute('name') == 'pinterestapp:followers') {
						$result = $meta->getAttribute('content');
						break;
					}
				}
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['pinterest'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['pinterest'])) //Get the stored data
			{
				$result = $xsc_options['data']['pinterest'];
			}
		}

		return $result;
	}
endif;


/**
 * Flickr Followers
 */
if(!function_exists('xsc_flickr_count')) :
	function xsc_flickr_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['flickr'])) {
			$result = $xsc_transient['flickr'];
		} elseif(empty($xsc_transient['flickr']) && !empty($xsc_data) && !empty($xsc_options['data']['flickr'])) {
			$result = $xsc_options['data']['flickr'];
		} else {
			$id  = $xsc_options_save['social']['flickr']['id'];
			$api = $xsc_options_save['social']['flickr']['api'];
			try {
				$data   = @xsc_remote_get("https://api.flickr.com/services/rest/?method=flickr.groups.getInfo&api_key=$api&group_id=$id&format=json&nojsoncallback=1");
				$result = (int) $data['group']['members']['_content'];
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['flickr'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['flickr'])) //Get the stored data
			{
				$result = $xsc_options['data']['flickr'];
			}
		}

		return $result;

	}
endif;


/**
 * Steam Followers
 */
if(!function_exists('xsc_steam_count')) :
	function xsc_steam_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['steam'])) {
			$result = $xsc_transient['steam'];
		} elseif(empty($xsc_transient['steam']) && !empty($xsc_data) && !empty($xsc_options['data']['steam'])) {
			$result = $xsc_options['data']['steam'];
		} else {
			$id = $xsc_options_save['social']['steam']['group'];
			try {
				$data   = @xsc_remote_get("http://steamcommunity.com/groups/$id/memberslistxml?xml=1", false);
				$data   = @new SimpleXmlElement($data);
				$result = (int) $data->groupDetails->memberCount;
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['steam'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['steam'])) //Get the stored data
			{
				$result = $xsc_options['data']['steam'];
			}
		}

		return $result;
	}
endif;


/**
 * Rss Subscribers
 */
if(!function_exists('xsc_rss_count')) :
	function xsc_rss_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['rss'])) {
			$result = $xsc_transient['rss'];
		} elseif(empty($xsc_transient['rss']) && !empty($xsc_data) && !empty($xsc_options['data']['rss'])) {
			$result = $xsc_options['data']['rss'];
		} else {
			if(($xsc_options_save['social']['rss']['type'] == 'feedpress.it') && !empty($xsc_options_save['social']['rss']['feedpress'])) {
				try {
					$feedpress_url = esc_url($xsc_options_save['social']['rss']['feedpress']);
					$feedpress_url = str_replace('feedpress.it', 'feed.press', $feedpress_url);
					//$feedpress_url 	= str_replace( 'http', 'https', $feedpress_url);

					$data   = @xsc_remote_get($feedpress_url);
					$result = (int) $data['subscribers'];
				} catch(Exception $e) {
					$result = 0;
				}
			} elseif(($xsc_options_save['social']['rss']['type'] == 'Manual') && !empty($xsc_options_save['social']['rss']['manual'])) {
				$result = $xsc_options_save['social']['rss']['manual'];
			} else {
				$result = 0;
			}
			if(!empty($result)) //To update the stored data
			{
				$xsc_data['rss'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['rss'])) //Get the stored data
			{
				$result = $xsc_options['data']['rss'];
			}
		}

		return $result;

	}
endif;


/*
* Spotify Followers
*/
if(!function_exists('xsc_spotify_count')) :
	function xsc_spotify_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['spotify'])) {
			$result = $xsc_transient['spotify'];
		} elseif(empty($xsc_transient['spotify']) && !empty($xsc_data) && !empty($xsc_options['data']['spotify'])) {
			$result = $xsc_options['data']['spotify'];
		} else {
			$id = $url = $xsc_options_save['social']['spotify']['id'];
			$id = rtrim($id, "/");
			$id = urlencode(str_replace(array(
				'https://play.spotify.com/',
				'https://player.spotify.com/',
				'artist/',
				'user/',
			), '', $id));

			try {
				if(!empty($url) && strpos($url, 'artist') !== false) {
					$data = @xsc_remote_get("https://api.spotify.com/v1/artists/$id");
				} else {
					$data = @xsc_remote_get("https://api.spotify.com/v1/users/$id");
				}
				$result = (int) $data['followers']['total'];

			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['spotify'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['spotify'])) //Get the stored data
			{
				$result = $xsc_options['data']['spotify'];
			}
		}

		return $result;

	}
endif;


/**
 * Goodreads Followers
 */
if(!function_exists('xsc_goodreads_count')) :
	function xsc_goodreads_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['goodreads'])) {
			$result = $xsc_transient['goodreads'];
		} elseif(empty($xsc_transient['goodreads']) && !empty($xsc_data) && !empty($xsc_options['data']['goodreads'])) {
			$result = $xsc_options['data']['goodreads'];
		} else {
			$id  = $url = $xsc_options_save['social']['goodreads']['id'];
			$key = $xsc_options_save['social']['goodreads']['key'];

			$id = rtrim($id, "/");
			$id = @parse_url($id);
			$id = $id['path'];
			$id = str_replace(array('/user/show/', '/author/show/'), '', $id);
			if(strpos($id, '-') !== false) {
				$id = explode('-', $id);
			} else {
				$id = explode('.', $id);
			}
			$id = $id[0];
			try {
				if(!empty($url) && strpos($url, 'author') !== false) {
					$data   = @xsc_remote_get("https://www.goodreads.com/author/show/$id.xml?key=$key", false);
					$data   = @new SimpleXmlElement($data);
					$result = (int) $data->author->author_followers_count;
				} else {
					$data   = @xsc_remote_get("https://www.goodreads.com/user/show/$id.xml?key=$key", false);
					$data   = @new SimpleXmlElement($data);
					$result = (int) $data->user->friends_count;
				}

			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['goodreads'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['goodreads'])) //Get the stored data
			{
				$result = $xsc_options['data']['goodreads'];
			}
		}

		return $result;

	}
endif;


/**
 * Twitch Followers
 */
if(!function_exists('xsc_twitch_count')) :
	function xsc_twitch_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['twitch'])) {
			$result = $xsc_transient['twitch'];
		} elseif(empty($xsc_transient['twitch']) && !empty($xsc_data) && !empty($xsc_options['data']['twitch'])) {
			$result = $xsc_options['data']['twitch'];
		} else {
			$id  = $xsc_options_save['social']['twitch']['id'];
			$api = get_option('twitch_access_token');

			try {
				$data = @xsc_remote_get("https://api.twitch.tv/kraken/channels/$id?oauth_token=$api");

				$result = (int) $data['followers'];
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['twitch'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['twitch'])) //Get the stored data
			{
				$result = $xsc_options['data']['twitch'];
			}
		}

		return $result;

	}
endif;


/**
 * Mixcloud Followers
 */
if(!function_exists('xsc_mixcloud_count')) :
	function xsc_mixcloud_count() {

		global $xsc_data, $xsc_options, $xsc_transient, $xsc_options_save;

		if(!empty($xsc_transient['mixcloud'])) {
			$result = $xsc_transient['mixcloud'];
		} elseif(empty($xsc_transient['mixcloud']) && !empty($xsc_data) && !empty($xsc_options['data']['mixcloud'])) {
			$result = $xsc_options['data']['mixcloud'];
		} else {
			$id = $xsc_options_save['social']['mixcloud']['id'];
			try {
				$data   = @xsc_remote_get("http://api.mixcloud.com/$id/");
				$result = (int) $data['follower_count'];
			} catch(Exception $e) {
				$result = 0;
			}

			if(!empty($result)) //To update the stored data
			{
				$xsc_data['mixcloud'] = $result;
			}

			if(empty($result) && !empty($xsc_options['data']['mixcloud'])) //Get the stored data
			{
				$result = $xsc_options['data']['mixcloud'];
			}
		}

		return $result;

	}
endif;


/**
 * Posts Number
 */
if(!function_exists('xsc_posts_count')) :
	function xsc_posts_count() {
		$count_posts = wp_count_posts();

		return $result = $count_posts->publish;
	}
endif;


/**
 * Comments number
 */
if(!function_exists('xsc_comments_count')) :
	function xsc_comments_count() {
		$comments_count = wp_count_comments();

		return $result = $comments_count->approved;
	}
endif;


/**
 * Members number
 */
if(!function_exists('xsc_members_count')) :
	function xsc_members_count() {
		$members_count = count_users();

		return $result = $members_count['total_users'];
	}
endif;


/**
 * Groups number
 */
if(!function_exists('xsc_groups_count')) :
	function xsc_groups_count() {
		return $result = groups_get_total_group_count();
	}
endif;


/**
 * bbPress Counters
 */
if(!function_exists('xsc_bbpress_count')) :
	function xsc_bbpress_count($count) {
		$arg = array(
			'count_users'           => false,
			'count_forums'          => false,
			'count_topics'          => false,
			'count_private_topics'  => false,
			'count_spammed_topics'  => false,
			'count_trashed_topics'  => false,
			'count_replies'         => false,
			'count_private_replies' => false,
			'count_spammed_replies' => false,
			'count_trashed_replies' => false,
			'count_tags'            => false,
			'count_empty_tags'      => false,
		);

		$arg['count_' . $count] = true;

		$counters = bbp_get_statistics($arg);
		if($count == 'forums') {
			$result = $counters['forum_count'];
		} elseif($count == 'topics') {
			$result = $counters['topic_count'];
		} elseif($count == 'replies') {
			$result = $counters['reply_count'];
		}

		return $result;

	}
endif;


if(!function_exists('xsc_remote_get')) :
	function xsc_remote_get($url, $json = true, $args = array('timeout' => 18, 'sslverify' => false)) {
		$get_request = preg_replace('/\s+/', '', $url);
		$get_request = wp_remote_get($url, $args);
		$request = wp_remote_retrieve_body($get_request);

		if($json) {
			$request = @json_decode($request, true);
		}

		return $request;
	}
endif;


if(!function_exists('xs_format_num')) :
	function xs_format_num($number) {

		if(!is_numeric($number)) {
			return $number;
		}

		global $wp_locale;

		$sep   = array();
		$sep[] = (isset($wp_locale)) ? $wp_locale->number_format['decimal_point'] : '.';
		$sep[] = (isset($wp_locale)) ? $wp_locale->number_format['thousands_sep'] : ',';

		$number = str_replace($sep, '', $number);


		if($number >= 1000000) {
			return round(($number / 1000) / 1000, 1) . "M";
		} elseif($number >= 100000) {
			return round($number / 1000, 0) . "k";
		} else {
			return number_format_i18n($number);
		}
	}
endif;

Zerion Mini Shell 1.0