public function getPotentialTargets(MatcherContract $matcher) { $potential_targets = $matcher->getMediaList(MatcherContract::MEDIA_POTENTIAL_TARGET); // Get a list of media being processed $results = Media::query(); $results = $results->where('status', Media::STATUS_PENDING)->orWhere('status', Media::STATUS_PROCESSING); $media = $results->get()->toArray(); // Extract the id's from the media $processing_ids = array_map(function ($result) { return $result['duplitron_id']; }, $media); // Remove any potential targets being processed $final_targets = array(); foreach ($potential_targets as $potential_target) { if (in_array($potential_target->id, $processing_ids)) { continue; } $final_targets[] = $potential_target; } return $final_targets; }
/** * Display a listing of the resource. * * @return Response */ public function index(Request $request) { $results = Media::query(); // Filter by status if ($request->has('status')) { switch ($request->input('status')) { case Media::STATUS_FAILED: $results = $results->where('status', Media::STATUS_FAILED); break; case Media::STATUS_STABLE: $results = $results->where('status', Media::STATUS_STABLE); break; case Media::STATUS_PENDING: $results = $results->where('status', Media::STATUS_PENDING); break; case Media::STATUS_PROCESSING: $results = $results->where('status', Media::STATUS_PROCESSING); break; } } // TODO: add real pagination $results = $results->take(5000); return $results->get(); }