Browse Source

Update AP helpers, import Emoji tags

Daniel Supernault 3 years ago
parent
commit
01798daf56
2 changed files with 17 additions and 3 deletions
  1. 2 2
      app/Services/CustomEmojiService.php
  2. 15 1
      app/Util/ActivityPub/Helpers.php

+ 2 - 2
app/Services/CustomEmojiService.php

@@ -8,12 +8,12 @@ use App\Models\CustomEmoji;
 
 class CustomEmojiService
 {
-	public static function getByShortcode($shortcode)
+	public static function get($shortcode)
 	{
 		return CustomEmoji::whereShortcode($shortcode)->first();
 	}
 
-	public static function getByUrl($url)
+	public static function import($url)
 	{
 		if(Helpers::validateUrl($url) == false) {
 			return;

+ 15 - 1
app/Util/ActivityPub/Helpers.php

@@ -27,6 +27,7 @@ use App\Util\ActivityPub\HttpSignature;
 use Illuminate\Support\Str;
 use App\Services\ActivityPubFetchService;
 use App\Services\ActivityPubDeliveryService;
+use App\Services\CustomEmojiService;
 use App\Services\InstanceService;
 use App\Services\MediaPathService;
 use App\Services\MediaStorageService;
@@ -368,7 +369,6 @@ class Helpers {
 			$cw = true;
 		}
 
-
 		$statusLockKey = 'helpers:status-lock:' . hash('sha256', $res['id']);
 		$status = Cache::lock($statusLockKey)
 			->get(function () use(
@@ -381,6 +381,20 @@ class Helpers {
 				$scope,
 				$id
 		) {
+			if(isset($res['tag']) && is_array($res['tag']) && !empty($res['tag'])) {
+				collect($res['tag'])
+				->filter(function($tag) {
+					// todo: finish hashtag + mention import
+					// return in_array($tag['type'], ['Emoji', 'Hashtag', 'Mention']);
+					return in_array($tag['type'], ['Emoji']);
+				})
+				->each(function($tag) {
+					if(isset($tag['id'])) {
+						CustomEmojiService::import($tag['id']);
+					}
+				});
+			}
+
 			if($res['type'] === 'Question') {
 				$status = self::storePoll(
 					$profile,