\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /usr/local/sitepad/editor/site-data/plugins/speedycache/main/

Viewing File: gravatar.php

<?php

namespace SpeedyCache;

if(!defined('ABSPATH')){
	die('Hacking Attempt');
}

class Gravatar{
	
	// Gets gravatar data
	static function get_avatar_data($args, $id_or_email){

		if(empty($args) || empty($args['found_avatar'])){
			return $args;
		}
		
		if(empty($args['url'])){
			return $args;
		}
		
		// Path to Gravatars
		$path = \SpeedyCache\Util::cache_path('gravatars');

		if(!is_dir($path)){
			mkdir($path, 0755, true);
			touch($path . 'index.html');
		}

		$email_hash = self::get_email_hash($id_or_email);
		if(empty($email_hash)){
			$email_hash = 'default';
		}

		$file_name = $email_hash . 'x' . $args['size'] . '.jpg';
		$file = $path . $file_name;

		if(file_exists($file)){
			$url = self::convert_path_to_link($path) . $file_name;

			$args['url'] = esc_url($url);
			return $args;
		}

		$res = wp_remote_get($args['url']);

		if(empty($res) || is_wp_error($res)){
			return $args;
		}

		if(empty($res['body'])){
			return $args;
		}

		// If we fail to write return the same URL;
		if(!file_put_contents($file, $res['body'])){
			return $args;
		}

		$url = self::convert_path_to_link($path) . $file_name;

		$args['url'] = esc_url($url);

		return $args;
	}
	
	// Gets the Email hash which is used in the URL.
	static function get_email_hash($id_or_email){

		if(is_numeric($id_or_email)){
			$user = get_user_by('id', $id_or_email);

			if(empty($user) || !is_a($user, 'WP_User')){
				return false;
			}

		} elseif(is_a($id_or_email, 'WP_User')){
			$user = $id_or_email;
		} elseif(is_a($id_or_email, 'WP_Post')){
			$user = get_user_by('id', (int) $id_or_email->post_author);
		} elseif(is_a($id_or_email, 'WP_Comment')){
			if(!empty($id_or_email->user_id)){
				$user = get_user_by('id', (int) $id_or_email->user_id);
			}

			if(empty($user) && !empty($id_or_email->comment_author_email)){
				$id_or_email = $id_or_email->comment_author_email;
			}

			if(is_a($id_or_email, 'WP_Comment')){
				return false;
			}
		}
		
		if(!empty($user) && is_a($user, 'WP_User')){
			$id_or_email = $user->user_email;
		}
		
		// We need an email which should be a string if something else is being passed then just return
		if(!is_string($id_or_email)){
			return false;
		}

		$email_hash = md5(strtolower(trim($id_or_email)));
		
		return $email_hash;
	}
	
	// Deletes all the gravatar stored
	static function delete(){
		$path = \SpeedyCache\Util::cache_path('gravatars');
		
		if(!file_exists($path)){
			return;
		}

		$files = scandir($path);
		
		if(empty($files)){
			return __('No file present to delete', 'speedycache');
		}
		
		foreach($files as $file){
			// We dont want to delete index.html or any directory.
			if(file_exists($path . $file) && !is_dir($path . $file) && $file != 'index.html'){
				@unlink($path . $file);
			}
		}

		return __('Gravatar files deleted', 'speedycache');
	}
	
	static function convert_path_to_link($path){
		preg_match('/\/cache\/speedycache\/.+/', $path, $out);
		$prefix_link = str_replace(array('http:', 'https:'), '', content_url());

		return $prefix_link . $out[0];
	}

}