コード例 #1
0
ファイル: Sweeper.php プロジェクト: johnleesw/mustardseedwp
 private function sweepLogs()
 {
     global $wpdb;
     $sweepPeriod = get_option('wpab_sweep_period');
     $logsTableName = WPAutoblog_Log::tableName();
     $wpdb->query($wpdb->prepare("DELETE FROM {$logsTableName} WHERE thrown_at < DATE_SUB(NOW(), INTERVAL %d DAY)", $sweepPeriod));
 }
コード例 #2
0
ファイル: LogTable.php プロジェクト: johnleesw/mustardseedwp
 public function prepare_items()
 {
     $per_page = 20;
     $current_page = $this->get_pagenum();
     $columns = $this->get_columns();
     $hidden = array();
     $sortable = $this->get_sortable_columns();
     $this->_column_headers = array($columns, $hidden, $sortable);
     $total_items = WPAutoblog_Log::getLogsCount();
     $this->items = WPAutoblog_Log::getLogs($per_page, ($current_page - 1) * $per_page);
     $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items / $per_page)));
 }
コード例 #3
0
 public static function install()
 {
     WPAutoblog_Log::install();
     WPAutoblog_Stat::install();
 }
コード例 #4
0
ファイル: BlogFeed.php プロジェクト: johnleesw/mustardseedwp
 public function fetchPosts()
 {
     global $_wp_additional_image_sizes;
     global $wpdb;
     $lastRefreshTime = (int) get_option('wpab_last_refresh_time', 0);
     $fetchPeriod = (int) get_option('wpab_fetch_feed_period', 30) * MINUTE_IN_SECONDS;
     if (time() - $lastRefreshTime < $fetchPeriod) {
         return;
     }
     WPAutoblog_Log::log(null, 'Started updating feeds');
     set_time_limit($fetchPeriod);
     update_option('wpab_last_refresh_time', time());
     $body = null;
     $blogs = get_posts(array('post_type' => self::postName(), 'posts_per_page' => -1));
     $cache_ids = array();
     foreach ($blogs as $k => $blog) {
         $url = get_post_meta($blog->ID, WPAB_ID . '-feed', true) ?: get_post_meta($blog->ID, WPAB_ID . '-url', true);
         $feed = new SimplePie();
         $feed->set_feed_url($url);
         $feed->set_cache_location('../cache/');
         $feed->set_cache_duration($fetchPeriod);
         $feed->set_timeout(15);
         $result = $feed->init();
         $feed->handle_content_type();
         if (!$result) {
             WPAutoblog_Log::log($feed->error(), 'An error occured while fetching the feed: <i>' . $blog->post_title . '</i>');
             continue;
         }
         $items = $feed->get_items();
         foreach ($items as $item) {
             if (!in_array($item->get_id(), $cache_ids)) {
                 $posts = get_posts(array('hierarchical' => false, 'meta_key' => WPAB_ID . '-uuid', 'meta_value' => $item->get_id(), 'post_type' => WPAutoblog_BlogFeedPost::postName()));
                 if (count($posts) === 0) {
                     $images = $this->extractImages($item->get_content());
                     $attachments = array();
                     $isFeaturedImageFeatured = get_field('featured_image_featured', $blog->ID);
                     $isFirstImageFeatured = get_field('first_image_featured', $blog->ID);
                     $featuredImageFetched = false;
                     if ($isFeaturedImageFeatured) {
                         $enclosure = $item->get_enclosure();
                         $featuredImageUrl = $enclosure->get_link();
                         if ($featuredImageUrl) {
                             $attachments[] = WPAutoblog_BlogFeedPost::prepareAttachment($featuredImageUrl);
                             $featuredImageFetched = true;
                         }
                     }
                     if ($isFirstImageFeatured && count($images) && !$featuredImageFetched) {
                         $attachments[] = WPAutoblog_BlogFeedPost::prepareAttachment($images[0]);
                     }
                     if ($this->readability->isAvailable()) {
                         $body = $this->readability->parse($item->get_permalink());
                     }
                     $cache_ids[] = $item->get_id();
                     $post_id = $this->createBlogPost($blog, $item, $body, $attachments);
                     $this->assignCategories($post_id, $blog->ID);
                     do_action(WPAB_ID . '_blog_post_created_from_feed', $post_id, $item, $attachments);
                     WPAutoblog_Stat::incrementPostsCount($item->get_date('Y/m/d'));
                 }
             }
         }
     }
     $postsToSweep = $wpdb->get_results('SELECT post_id FROM `wp_postmeta`
         WHERE meta_key =  "' . WPAB_ID . '-uuid"
         GROUP BY meta_value
         HAVING COUNT(*) > 1
         LIMIT 0, 100', ARRAY_A);
     $postsToSweepIds = array_map(function ($item) {
         return $item['post_id'];
     }, $postsToSweep);
     WPAutoblog_Sweeper::remove($postsToSweepIds);
     WPAutoblog_Log::log($feed, 'Finished updating feeds');
 }