public function handle()
{
- $publications = Arr::flatten(FluidbookCollection::where('links_audit', 1)->pluck('publications')->toArray(), 1);
-
- $publications = array_map(function ($n) {
- return $n['fluidbook'];
- }, $publications);
-
+ $collections = FluidbookCollection::where('links_audit', 1)->get();
+ $publications = [];
+ foreach ($collections as $collection) {
+ $publications = array_merge($publications, $collection->getFluidbooksID());
+ }
// Nécessaire pour vérifier si la liste des fluidbooks fourni par les collections
// existent vraiment ou s'ils ont été supprimé sans être supprimé dans la collection
$publications = FluidbookPublication::whereIn('id', $publications)->pluck('id');
$key = $item->fluidbook_id . '_' . $item->link_id;
$existing[$key] = ['fluidbook_id' => $item->fluidbook_id, 'link_id' => $item->link_id, 'page' => $item->page, 'url' => $item->url];
}
+ $seen = [];
foreach ($publications as $publication) {
$publication = (int)$publication;
});
foreach ($links as $link) {
+ $seen[] = $publication . '_' . $link['uid'];
$link['to'] = trim($link['to']);
if (Arr::exists($link, 'video_service')) {
if ($link['type'] == LinkAlias::WEBVIDEO && $link['video_service'] === "youtube") {
'page' => $link['page'],
'url' => $link['to'],
];
+
+
}
if (count($externalLinks) > 0) {
Log::info('Parsed fluidbook ' . $publication . ' : found ' . count($externalLinks) . ' links');
}
+ // Delete links that are not anymore in the fluidbooks
+ $missing = array_diff(array_keys($existing), $seen);
+ foreach ($missing as $m) {
+ $e = explode('_', $m, 2);
+ FluidbookAuditLink::where('fluidbook_id', $e[0])->where('link_id', $e[1])->delete();
+
+ }
+ Log::info('Deleted ' . count($missing) . ' links');
+
Log::info('Job exécuté avec succès');
}
}
}
+ public function getFluidbooksID(){
+ $res=[];
+ $fluidbooks=$this->publications;
+ if(!is_array($fluidbooks)){
+ $fluidbooks=json_decode($fluidbooks,true);
+ }
+ foreach ($fluidbooks as $fluidbook) {
+ $res[]=$fluidbook['fluidbook'];
+ }
+ return array_unique($res);
+ }
+
public function setStatus($newStatus)
{
parent::setStatus($newStatus);