diff --git a/app/Http/Resources/CommentResource.php b/app/Http/Resources/CommentResource.php index b29e5886..9d02e0b7 100644 --- a/app/Http/Resources/CommentResource.php +++ b/app/Http/Resources/CommentResource.php @@ -17,7 +17,7 @@ class CommentResource extends JsonResource { return [ 'id' => $this->id, - 'text' => $this->text, + 'text' => bbcode_attach_to_img($this->text), 'updated_at' => format_datetime($this->editdate), 'created_at' => format_datetime($this->added), 'create_user' => new UserResource($this->whenLoaded('create_user')), diff --git a/app/Repositories/CommentRepository.php b/app/Repositories/CommentRepository.php index b81195a1..d1fb81bb 100644 --- a/app/Repositories/CommentRepository.php +++ b/app/Repositories/CommentRepository.php @@ -28,7 +28,7 @@ class CommentRepository extends BaseRepository if (!empty($request->request_id)) { $query->where('request', $request->request_id); } - $query->orderBy('id', 'desc'); + $query->orderBy('id', 'asc'); return $query->paginate($this->getPerPageFromRequest($request)); } diff --git a/config/sanctum.php b/config/sanctum.php index 0fff0453..82eaa2b1 100644 --- a/config/sanctum.php +++ b/config/sanctum.php @@ -29,7 +29,7 @@ return [ | */ - 'expiration' => 129600, + 'expiration' => 5256000, /* |-------------------------------------------------------------------------- diff --git a/include/constants.php b/include/constants.php index 9649eb04..8c816dcd 100644 --- a/include/constants.php +++ b/include/constants.php @@ -1,6 +1,6 @@ \App\Models\TorrentOperationLog::ACTION_TYPE_DELETE, 'comment' => '', ], $notify); + do_action("torrent_delete", $_id); + fire_event("torrent_deleted", $torrentInfo->get($_id)); } $meiliSearchRep = new \App\Repositories\MeiliSearchRepository(); $meiliSearchRep->deleteDocuments($idArr); - if (is_int($id)) { - do_action("torrent_delete", $id); - fire_event("torrent_deleted", $torrentInfo->get($id)); - } } function pager($rpp, $count, $href, $opts = array(), $pagename = "page") { @@ -5943,6 +5942,7 @@ function get_ip_location_from_geoip($ip): bool|array 'city' => '', 'country_en' => '', 'city_en' => '', + 'continent_en' => '', ]; try { $database = nexus_env('GEOIP2_DATABASE'); @@ -5971,7 +5971,7 @@ function get_ip_location_from_geoip($ip): bool|array $info['continent'] = $continentName; $info['continent_en'] = $record->continent->names['en'] ?? ''; } catch (\Exception $exception) { - do_log($exception->getMessage()); + do_log($exception->getMessage() . ", trace: " . $exception->getTraceAsString(), 'error'); } return $info; }); @@ -6620,4 +6620,35 @@ function make_content_disposition(string $filename, string $disposition = 'attac return \Symfony\Component\HttpFoundation\HeaderUtils::makeDisposition($disposition, $filename, $filenameFallback); } +function bbcode_attach_to_img(string $text) { + $pattern = "/\[attach\]([0-9a-zA-z][0-9a-zA-z]*)\[\/attach\]/is"; + return preg_replace_callback($pattern, function ($matches) { + $dlkey = $matches[1]; + $httpdirectory_attachment = get_setting('attachment.httpdirectory'); + $row = \Nexus\Database\NexusDB::remember('attachment_'.$dlkey.'_content', 86400, function() use ($dlkey) { + $record = \App\Models\Attachment::query()->where("dlkey", $dlkey)->first(); + if ($record) { + return $record->toArray(); + } + return []; + }); + if (empty($row) || $row['isimage'] != 1) { + do_log(sprintf("dlkey: %s get attachment %s not exists or not image", $dlkey, json_encode($row))); + return $matches[0]; + } + $driver = $row['driver'] ?? 'local'; + if ($driver == "local") { + if ($row['thumb'] == 1){ + $url = $httpdirectory_attachment."/".$row['location'].".thumb.jpg"; + } else { + $url = $httpdirectory_attachment."/".$row['location']; + } + $url = sprintf("%s/%s", getSchemeAndHttpHost(true), trim($url, "/")); + } else { + $url = \Nexus\Attachment\Storage::getDriver($driver)->getImageUrl($row['location']); + } + return "[img]" . $url . "[/img]"; + }, $text, 20); +} + ?>