Explorar o código

Add DiscoverService

Daniel Supernault %!s(int64=3) %!d(string=hai) anos
pai
achega
493c5ca0ce
Modificáronse 1 ficheiros con 36 adicións e 0 borrados
  1. 36 0
      app/Services/DiscoverService.php

+ 36 - 0
app/Services/DiscoverService.php

@@ -0,0 +1,36 @@
+<?php
+
+namespace App\Services;
+
+use Illuminate\Support\Facades\Cache;
+use App\Status;
+
+class DiscoverService
+{
+	public static function getDailyIdPool()
+	{
+		$min_id = SnowflakeService::byDate(now()->subMonths(3));
+		return Status::select(
+				'id',
+				'is_nsfw',
+				'profile_id',
+				'type',
+				'uri',
+			  )
+			  ->whereNull('uri')
+			  ->whereType('photo')
+			  ->whereIsNsfw(false)
+			  ->whereVisibility('public')
+			  ->where('id', '>', $min_id)
+			  ->inRandomOrder()
+			  ->take(300)
+			  ->pluck('id');
+	}
+
+	public static function getForYou()
+	{
+		return Cache::remember('pf:services:discover:for-you', 21600, function() {
+			return self::getDailyIdPool();
+		});
+	}
+}