AutolinkService.php 632 B

1234567891011121314151617181920212223242526
  1. <?php
  2. namespace App\Services;
  3. use App\Profile;
  4. use Cache;
  5. use Purify;
  6. class AutolinkService
  7. {
  8. const CACHE_KEY = 'pf:services:autolink:mue:';
  9. public static function mentionedUsernameExists($username)
  10. {
  11. if (str_starts_with($username, '@')) {
  12. if (substr_count($username, '@') === 1) {
  13. $username = substr($username, 1);
  14. }
  15. }
  16. $name = Purify::clean(strtolower($username));
  17. return Cache::remember(self::CACHE_KEY.base64_encode($name), 7200, function () use ($name) {
  18. return Profile::where('username', $name)->exists();
  19. });
  20. }
  21. }