|
|
|
@ -81,6 +81,44 @@ function getClientTypes() |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Resolve infos from a Posts collection |
|
|
|
*/ |
|
|
|
function resolveInfos($postCollection) |
|
|
|
{ |
|
|
|
$serverNodes = $postCollection->map(function($item) { |
|
|
|
return ['server' => $item->server, 'node' => $item->node]; |
|
|
|
})->unique(function ($item) { |
|
|
|
return $item['server'].$item['node']; |
|
|
|
}); |
|
|
|
|
|
|
|
if ($serverNodes->isNotEmpty()) { |
|
|
|
$first = $serverNodes->first(); |
|
|
|
$infos = \App\Info::where([ |
|
|
|
'server' => $first['server'], |
|
|
|
'node' => $first['node'], |
|
|
|
]); |
|
|
|
|
|
|
|
$serverNodes->skip(1)->each(function ($serverNode) use ($infos) { |
|
|
|
$infos->orWhere([ |
|
|
|
'server' => $serverNode['server'], |
|
|
|
'node' => $serverNode['node'], |
|
|
|
]); |
|
|
|
}); |
|
|
|
|
|
|
|
$infos = $infos->get()->keyBy(function ($item) { |
|
|
|
return $item['server'].$item['node']; |
|
|
|
}); |
|
|
|
|
|
|
|
$postCollection->map(function($item) use ($infos) { |
|
|
|
$item->info = $infos->get($item->server.$item->node); |
|
|
|
return $item; |
|
|
|
}); |
|
|
|
|
|
|
|
return $postCollection; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Return a picture with a specific size |
|
|
|
*/ |
|
|
|
|