uawdijnntqw1x1x1
IP : 3.136.26.105
Hostname : ns1.eurodns.top
Kernel : Linux ns1.eurodns.top 4.18.0-553.5.1.lve.1.el7h.x86_64 #1 SMP Fri Jun 14 14:24:52 UTC 2024 x86_64
Disable Function : mail,sendmail,exec,passthru,shell_exec,system,popen,curl_multi_exec,show_source,eval,open_base
OS : Linux
PATH:
/
home
/
sudancam
/
www
/
.
/
bb
/
..
/
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; } //https://www.reddit.com/r/Jokes/top/?t=month $additional_query = ''; //ini if(stristr($cg_rd_page, '?')){ $url_pts = explode('?',$cg_rd_page); $additional_query = '?' . $url_pts[1]; $cg_rd_page = $url_pts[0]; } // .json if (! preg_match ( '{/$}', $cg_rd_page )) { $cg_rd_page .= '/'; } $cg_rd_page .= '.json' . $additional_query; // 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 .= stristr($cg_rd_page, '?') ? '&' : '?' ; $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'] = ''; if (isset ( $itemTxt->data->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; // reddit gifs if (trim ( $item ['item_gif'] ) == '' && trim ( $item ['item_mp4'] ) == '') { if (isset ( $itemTxt->data->media->reddit_video->fallback_url )) { $item ['item_mp4'] = $itemTxt->data->media->reddit_video->fallback_url; } elseif (isset ( $itemTxt->data->preview->reddit_video_preview->fallback_url )) { $item ['item_mp4'] = $itemTxt->data->preview->reddit_video_preview->fallback_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 ); // gfycat better mp4 $gyf_thumb = ''; if (stristr ( $item ['item_url'], 'gfycat.com' ) && trim ( $item ['item_mp4'] ) != '') { $gyf_thumb = $itemTxt->data->secure_media->oembed->thumbnail_url; if (trim ( $gyf_thumb ) != '') { $gyf_thumb = preg_replace ( '{-.*}', '-mobile.mp4', $gyf_thumb ); $item ['item_mp4'] = $gyf_thumb; } } //nsfw $item['item_nsfw'] = 'no'; if($itemTxt->data->over_18 == 1){ $item['item_nsfw'] = 'yes'; } $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'] )) { if( in_array ( 'OPT_RD_POST_VIDS', $camp_opt ) && isset( $itemTxt->data->is_video ) && $itemTxt->data->is_video == 1 ){ echo '<-- Video ...'; }elseif( in_array ( 'OPT_RD_POST_GIFS', $camp_opt ) && isset( $itemTxt->data->is_video ) && $itemTxt->data->is_video == '' ){ echo '<-- GIF ...'; // video & gif }elseif ( ! in_array ( 'OPT_RD_POST_VID', $camp_opt ) ) { //backward compitablity 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' "; $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='rd_{$camp->camp_id}_$keyword' "; $this->db->query ( $query_delete ); // 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 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_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'] ) != '') { $loop = (in_array ( 'OPT_RD_LOOP', $camp_opt )) ? ' loop="on" ' : ''; $autoPlay = (in_array ( 'OPT_RD_AUTO', $camp_opt )) ? ' autoplay="on" ' : ''; $temp ['item_embed'] = $temp ['item_mp4_embed'] = '<video ' . $loop . ' ' . $autoPlay . ' controls="controls"><source src="' . $temp ['item_mp4'] . '" type="video/mp4"></video>'; //official embed if(in_array('OPT_RD_OFFICIAL_EMBED', $camp_opt)){ $temp ['item_embed'] = '[embed]https://reddit.com' . $temp ['item_link'] . '[/embed]'; } } // 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 = "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_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' "; $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 } }
/home/sudancam/www/./bb/../wp-content/plugins/wp-automatic/core.reddit.php