public function getSpamCommentPage() { $record = FbPage::whereRaw('status = ? AND crawl_fb = ?', array(true, false))->first(); if (!$record) { FbPage::where('crawl_fb', '=', true)->update(['crawl_fb' => false]); $record = FbPage::whereRaw('status = ? AND crawl_fb = ?', array(true, false))->first(); } if (!empty($record->fb_id)) { // Get post of current page //$records = FbFeed::whereRaw('status = ? AND page_id = ? AND per_day = CURDATE() AND comment_count > ? AND type = ? AND spam IS NULL', [true, $record->id, LIMIT_COMMENT_COUNT, 'link', null]) $feeds = FbFeed::whereRaw('status = ? AND page_id = ? AND DATE(created_at) = CURDATE() AND comment_count > ? AND type = ? AND spam IS NULL', [true, $record->id, LIMIT_COMMENT_COUNT, 'link'])->select(DB::raw('id, fb_id, fb_link, name, message, picture, page_id, category_id, like_count, comment_count, share_count, type, source, object_id, created_at, DATE(created_at) AS per_day'))->orderBy('per_day', 'DESC')->orderBy('comment_count', 'DESC')->take(10)->get(); if (count($feeds) >= 4) { // Get hot news //$feeds = FbFeed::getHotFeeds($record->id, 2); /*if (count($feeds)) { foreach ( $records as $record ) { if ($record->fb_id != ) { HelperNews::postCommentToFB($record->fb_id, $record->link, $record->name); } } }*/ $last = count($feeds) - 1; if ($last >= 1) { foreach ($feeds as $i => $feed) { if ($last - $i != $i) { $feed->spam = HelperNews::postCommentToFB($feed->fb_id, $feeds[$last - $i]->fb_link, $feeds[$last - $i]->name); $feed->save(); $record->crawl_fb = true; $record->save(); } } } } } return Response::json(array('status' => 'success', 'data' => $feeds), 200); }
public function getFeeds() { $data = get(); $default = array('category_ids' => '', 'page_id' => 0, 'page' => 0, 'clear_cache' => 0, 'order' => 'new'); extract(array_merge($default, $data)); $arr_cats = array(); if (is_string($category_ids)) { $arr_cats_old = explode(',', $category_ids); if (!is_array($arr_cats_old) && empty($arr_cats_old)) { return Response::json(array('status' => 'error', 'data' => 'Error'), 500); } foreach ($arr_cats_old as $i => $item) { $item = intval($item); if (!in_array($item, $arr_cats) && !empty($item)) { $arr_cats[] = $item; } } } $limit = DLN_LIMIT * 10; $index = (int) ($page / 10); $pos = (int) ($page % 10); $skip = $index * $limit; sort($arr_cats); $category_path = implode('_', $arr_cats); switch ($order) { case 'share': $order_by = 'share_count'; break; case 'comment': $order_by = 'comment_count'; break; case 'like': $order_by = 'like_count'; break; case 'new': default: $order_by = 'created_at'; break; } $cache_id = md5("{$order_by}_{$category_path}_{$page_id}_{$index}"); if (!empty($clear_cache)) { Cache::forget($cache_id); } if (!Cache::has($cache_id)) { if ($page_id) { $_cond = 'status = ? AND page_id = ?'; $_cona = array(true, $page_id); } else { $_cond = 'status = ? AND like_count > ?'; $_cona = array(true, ALLOW_LIKE); } if (!empty($arr_cats)) { $records = FbFeed::whereRaw($_cond, $_cona)->whereIn('category_id', $arr_cats)->select(DB::raw('id, fb_id, name, message, picture, page_id, category_id, like_count, comment_count, share_count, type, source, object_id, shared, created_at, DATE(created_at) AS per_day'))->orderBy('per_day', 'DESC')->orderBy($order_by, 'DESC')->skip($skip)->take($limit)->get()->toArray(); } else { $records = FbFeed::whereRaw($_cond, $_cona)->select(DB::raw('id, fb_id, name, message, picture, page_id, category_id, like_count, comment_count, share_count, type, source, object_id, shared, created_at, DATE(created_at) AS per_day'))->orderBy('per_day', 'DESC')->orderBy($order_by, 'DESC')->skip($skip)->take($limit)->get()->toArray(); } Cache::put($cache_id, json_encode($records), DLN_CACHE_MINUTE); } else { $records = json_decode(Cache::get($cache_id)); } $records = array_slice($records, $pos * DLN_LIMIT, DLN_LIMIT); return Response::json(array('status' => 'success', 'data' => $records), 200); }