PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /home/trave494/allinonecryptonews.kerihosting.com/wp-content/plugins/wp-automatic/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : /home/trave494/allinonecryptonews.kerihosting.com/wp-content/plugins/wp-automatic/core.reddit.php |
<?php // Main Class require_once 'core.php'; Class WpAutomaticReddit extends wp_automatic{ /* * ---* youtube get links --- */ function reddit_fetch_items($keyword, $camp) { echo "<br>so I should now get some items from Reddit" ; // 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 $cg_rd_page = trim( $camp_general['cg_rd_page'] ); $cg_rd_page_md = md5($cg_rd_page); // verify valid link if( !( stristr($cg_rd_page, 'http') && stristr($cg_rd_page, 'reddit.com') ) ){ echo '<br>Provided reddit link is not valid please visit reddit.com and get a correct one'; return false; } //.json if( ! preg_match('{/$}', $cg_rd_page)){ $cg_rd_page.= '/'; } $cg_rd_page.= '.json'; // 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 = 0; }else{ $kid = $row->keyword_id; $start = $row->keyword_start; } if ($start == - 1) { echo '<- exhausted link'; if( ! in_array( 'OPT_RD_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; } } } // page tag if(in_array( 'OPT_RD_CACHE' , $camp_opt )){ $after_tag = get_post_meta($camp->camp_id,'after_tag',1); $after_md = get_post_meta($camp->camp_id , 'after_md' , 1); echo '<br>AFter tag:'.$after_tag; echo '<br>md:'.$after_md; echo '<br>current md:'.$cg_rd_page_md; if(trim($after_tag) != ''){ if($after_md == $cg_rd_page_md){ $cg_rd_page .= '?after='.$after_tag; } } } echo '<br>Reddit items url:'.$cg_rd_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_rd_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 reddit'; } // decode json $jsonReply = json_decode($exec); $allItms = array(); if( isset($jsonReply->data->children) ){ $allItms = $jsonReply->data->children; } // Check returned items count if ( count($allItms) > 0 ) { echo '<br>Valid reply returned with ' . count($allItms) . ' item'; $after= ''; $after = $jsonReply->data->after; echo '<br>Next page tag:'.$after; if(trim($after) == ''){ delete_post_meta($camp->camp_id,'after_tag'); }else{ update_post_meta($camp->camp_id,'after_tag',$after); update_post_meta($camp->camp_id,'after_md',($cg_rd_page_md)); } } else { echo '<br>No items found'; delete_post_meta($camp->camp_id,'after_tag'); 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 ) { $item = array(); // match title $item['item_title'] = $itemTxt->data->title; // match description $item['item_description'] = $itemTxt->data->selftext; // match link $item_link = $item['item_url'] = $itemTxt->data->url; $item['item_link'] = $itemTxt->data->permalink; // match date $item['item_date'] = $itemTxt->data->created_utc; // match img $item['item_img'] = ''; $item['item_img'] = @$itemTxt->data->preview->images[0]->source->url; $id = $item['item_id'] = $itemTxt->data->id; $item['item_domain'] = $itemTxt->data->domain; $item['item_score'] = $itemTxt->data->score; $item['item_author'] = $itemTxt->data->author; $item['item_gif'] = ''; $item['item_gif'] = @$itemTxt->data->preview->images[0]->variants->gif->source->url; $item['item_mp4'] = ''; $item['item_mp4'] = @$itemTxt->data->preview->images[0]->variants->mp4->source->url; //media external embed $html = ''; $html = @$itemTxt->data->media->oembed->html; if(trim($html) != '' && ! stristr($html, 'embedly-embed')) $item['item_embed'] = html_entity_decode( $html ); $data = ( base64_encode( serialize ( $item ) ) ); //post_hint $post_hint = ''; $post_hint = @$itemTxt->data->post_hint; echo '<li> Link:'.$item_link; // No image skip if( trim($item['item_img']) == '' && in_array('OPT_RD_IMG', $camp_opt) ){ echo '<- No image skip'; continue; } // Filter type if(in_array('OPT_RD_POST_FILTER' , $camp_opt)){ //gifs if(trim($item['item_mp4']) != '' || isset($item['item_embed']) ){ //video if(! in_array('OPT_RD_POST_VID', $camp_opt)){ echo '<-- Gif/Vid skipping...'; continue; } }elseif( trim($post_hint) == '' || $post_hint == 'self' ){ //text if(! in_array('OPT_RD_POST_TXT', $camp_opt)){ echo '<-- Text post skipping...'; continue; } }elseif($post_hint == 'image' ){ //Image if(! in_array('OPT_RD_POST_IMAGE', $camp_opt)){ echo '<-- Image post skipping...'; continue; } }elseif($post_hint == 'link'){ //Image if(! in_array('OPT_RD_POST_LINK', $camp_opt)){ echo '<-- Link post skipping...'; continue; } } } if( $this->is_execluded($camp->camp_id, $item_link) ){ echo '<-- Execluded'; continue; } 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' ,'rd_{$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>'; } /* * ---* reddit post --- */ function reddit_get_post($camp) { // Campaign options $camp_opt = unserialize ( $camp->camp_options ); $keywords = array('*'); 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= 'rd_{$camp->camp_id}_$keyword' and item_status ='0'"; $this->used_keyword=$keyword; $res = $this->db->get_results ( $query ); // when no links lets get new links if (count ( $res ) == 0) { // get new fresh items $this->reddit_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>reddit 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 item_id='{$t_row->item_id}' and item_type= 'rd_{$camp->camp_id}_$keyword'"; $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_link']; // empty item_description fix if(trim($temp['item_description']) == '') $temp['item_description'] = $temp['item_title']; // Item img html if(trim($temp['item_img']) != ''){ $temp['item_img_html'] = '<img src="'.$temp['item_img'].'" />'; }else{ $temp['item_img_html'] = ''; } // Yt embed if(! isset($temp['item_embed']) ) $temp['item_embed'] = ''; if(stristr($temp['item_url'], 'youtu.be') || stristr($temp['item_url'], 'youtube.com')){ $temp['item_embed'] = '[embed]'.$temp['item_url'] .'[/embed]'; } // Gif embed $temp['item_gif_embed'] = '' ; if(trim($temp['item_gif']) != ''){ $temp['item_embed'] = $temp['item_gif_embed'] = '<img src="'.$temp['item_gif'].'"/>'; } // mp4 embed $temp['item_mp4_embed'] = '' ; if(trim($temp['item_mp4']) != ''){ $temp['item_embed'] = $temp['item_mp4_embed'] = '<video controls="controls"><source src="'.$temp['item_mp4'].'" type="video/mp4"></video>'; } // author link $temp['item_author_link'] = '<a href="'.$temp['item_author'].'">'.$temp['item_author'].'</a>'; // Item link prefix $temp['item_link'] = 'https://reddit.com'.$temp['item_link']; // update the link status to 1 $query = "update {$this->wp_prefix}automatic_general set item_status='1' where item_id='$ret->item_id' and item_type='rd_{$camp->camp_id}_$keyword' "; $this->db->query ( $query ); // if cache not active let's delete the cached videos and reset indexes if (! in_array ( 'OPT_RD_CACHE', $camp_opt )) { echo '<br>Cache disabled claring cache ...'; $query = "delete from {$this->wp_prefix}automatic_general where item_type='rd_{$camp->camp_id}_$keyword' and item_status ='0'"; $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 ); } //item_date timestamp to date $temp['item_date_formated'] = get_date_from_gmt( gmdate ( 'Y-m-d H:i:s' , ($temp['item_date']) ) ); return $temp; } else { echo '<br>No links found for this keyword'; } } // if trim } // foreach keyword } }