PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/thread-self/root/proc/self/root/proc/self/cwd/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 : //proc/thread-self/root/proc/self/root/proc/self/cwd/wp-content/plugins/wp-automatic/core.vimeo.php |
<?php // Main Class require_once 'core.php'; Class WpAutomaticVimeo extends wp_automatic{ /** * Vimeo get post function */ function vimeo_get_post($camp){ //ini keywords $camp_opt = unserialize ( $camp->camp_options ); $keywords = explode ( ',', $camp->camp_keywords ); //looping keywords foreach ( $keywords as $keyword ) { $keyword = trim($keyword); //update last keyword update_post_meta($camp->camp_id, 'last_keyword', trim($keyword)); //when valid keyword if (trim ( $keyword ) != '') { //record current used keyword $this->used_keyword=$keyword; // getting links from the db for that keyword $query = "select * from {$this->wp_prefix}automatic_general where item_type= 'vm_{$camp->camp_id}_$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='vm_{$camp->camp_id}_$keyword' "; $this->db->query ( $query_delete ); //get new links $this->vimeo_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['vid_url']; if( $this->is_duplicate($t_link_url) ){ //duplicated item let's delete unset($res[$i]); echo '<br>Vimeo video ('. $t_data ['vid_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]; $temp = unserialize ( base64_decode($ret->item_data )); //report link echo '<br>Found Link:<a href="'.$temp['vid_url'].'">'.$temp ['vid_title'].'</a>'; $temp['source_link'] = $temp['vid_url']; // 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_VM_CACHE', $camp_opt )) { echo '<br>Cache disabled claring cache ...'; $query = "delete from {$this->wp_prefix}automatic_general where item_type='vm_{$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 ); } //fix vid duration from seconds to readable $temp['vid_duration_readable'] = gmdate("H:i:s", $temp['vid_duration']); return $temp; } else { echo '<br>No links found for this keyword'; } } // if trim } // foreach keyword } /** * vimeo fetch items * */ function vimeo_fetch_items($keyword, $camp){ //report echo "<br>So I should now get some videos from vimeo for keyword :" . $keyword; //access tocken $access_tocken = get_option('wp_automatic_vm_tocken',''); //validate tocken if (trim ( $access_tocken ) == '') { echo '<br>Vimeo Access token is required visit settings and add it...'; exit (); } // 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); // 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]; $kid = $row->keyword_id; $start = $row->keyword_start; if ($start == 0) $start = 1; if ($start == - 1) { echo '<- exhausted keyword'; if( ! in_array( 'OPT_VM_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; } } } 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 ); //auth curl_setopt($this->ch,CURLOPT_HTTPHEADER,array('Authorization: bearer '.trim($access_tocken))); //if specific user posting if(in_array('OPT_VM_USER', $camp_opt)){ $author = $camp_general['cg_vm_user']; $url = 'https://api.vimeo.com/'.$camp_general['cg_vm_user_channel'].'/'.trim($author).'/videos?page='.$start.'&per_page=50'; //$url = 'https://api.vimeo.com/me/videos?page='.$start.'&per_page=50'; if($keyword !='*'){ $url.= '&query='.urlencode($keyword); } if($camp_general['cg_vm_order'] != 'relevant'){ $url.='&sort='.$camp_general['cg_vm_order'].'&direction='.$camp_general['cg_vm_order_dir']; } }else{ // get items $url='https://api.vimeo.com/videos?query='.urlencode($keyword).'&page='.$start.'&per_page=50&sort='.$camp_general['cg_vm_order'].'&direction='.$camp_general['cg_vm_order_dir']; //filter? if( $camp_general['cg_vm_cc'] != 'none' ){ $url.= '&filter='.$camp_general['cg_vm_cc']; } } //report url echo '<br>Vimeo url:'.$url; 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); // echo $exec.$x; //validating reply if(stristr($exec, 'paging')){ //valid reply //handle vids $arr = json_decode($exec); $vids = $arr->data; unset($arr); //if reversion order if(in_array('OPT_VM_REVERSE', $camp_opt)){ echo '<br>Reversing order'; $vids = array_reverse($vids); } echo '<ol>'; //loop videos $i = 0; foreach ($vids as $vid){ $itm['vid_url'] = $vid->link; echo '<li>'.$itm['vid_url']; $itm['vid_title'] = $vid->name; $itm['vid_id'] = str_replace('/videos/', '', $vid->uri) ; $itm['vid_description'] = $vid->description; $itm['vid_duration'] = $vid->duration; $itm['vid_width'] = $vid->width; $itm['vid_height'] = $vid->height; //$itm['vid_rating'] = $vid->content_rating; $itm['vid_img'] = $vid->pictures->sizes[count($vid->pictures->sizes) -1]->link; //embed code $itm['vid_embed'] = $vid->embed->html; //replace width and height $itm['vid_embed'] = str_replace('width="'.$itm['vid_width'].'"', 'width="560"', $itm['vid_embed']); $itm['vid_embed'] = str_replace('height="'.$itm['vid_height'].'"', 'height="315"', $itm['vid_embed']); //extract tags $tags=$vid->tags; $tags_arr = array(); foreach ($tags as $tag){ $tags_arr[]=$tag->tag; } if(count($tags_arr) > 0 ){ $itm['vid_tags'] = implode(',', $tags_arr); }else{ $itm['vid_tags'] = ''; } $itm['vid_views'] = $vid->stats->plays; $itm['vid_created_time'] = $vid->created_time; $itm['vid_modified_time'] = $vid->modified_time; //fixing dates $itm['vid_created_time'] = str_replace('T', ' ', $itm['vid_created_time']) ; $itm['vid_created_time'] = str_replace('+00:00', '', $itm['vid_created_time']); $itm['vid_modified_time'] = str_replace('T', ' ', $itm['vid_modified_time']) ; $itm['vid_modified_time'] = str_replace('+00:00', '', $itm['vid_modified_time']); $itm['vid_likes'] = $vid->metadata->connections->likes->total; $itm['vid_author_name'] = $vid->user->name; $itm['vid_author_id'] = str_replace('/users/', '', $vid->user->uri) ; $itm['vid_author_link'] = $vid->user->link; $itm['vid_author_picutre'] = @$vid->user->pictures->sizes[count($vid->user->pictures->sizes) -1]->link; $itm['vid_comments_count'] = $vid->metadata->connections->comments->total; $data = base64_encode(serialize ( $itm )); if( $this->is_execluded($camp->camp_id, $itm['vid_url']) ){ echo '<-- Execluded'; continue; } if ( ! $this->is_duplicate($itm['vid_url']) ) { $query = "INSERT INTO {$this->wp_prefix}automatic_general ( item_id , item_status , item_data ,item_type) values ( '{$itm['vid_id']}', '0', '$data' ,'vm_{$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 '</li>'; $i++; } echo '</ol>'; echo '<br>Total '. $i .' videos added cached'; //check if nothing found so deactivate if($i == 0){ echo '<br>No new vimeo vids 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); } }else{ //no valid reply echo '<br>No Valid reply for video search from vimeo<br>'.$exec; if(stristr($exec, 'valid user token') ){ echo '<br>Please visit the plugin settings and add a Vimeo api access token'; } if(stristr($exec,'Page is out of bounds') || stristr($exec, 'enough content') ){ $query = "update {$this->wp_prefix}automatic_keywords set keyword_start = -1 where keyword_id=$kid "; $this->db->query ( $query ); //deactivate for 60 minutes if(! in_array('OPT_NO_DEACTIVATE', $camp_opt)) $this->deactivate_key($camp->camp_id, $keyword); } } } }