瀏覽代碼

Update webfinger util, fix bug preventing username with dots

Daniel Supernault 5 年之前
父節點
當前提交
c2d194af1d
共有 1 個文件被更改,包括 6 次插入23 次删除
  1. 6 23
      app/Util/Lexer/Nickname.php

+ 6 - 23
app/Util/Lexer/Nickname.php

@@ -10,32 +10,15 @@ class Nickname
             $url = str_replace('acct:', '', $url);
         }
 
-        if (!str_contains($url, '@') && filter_var($url, FILTER_VALIDATE_URL)) {
-            $parsed = parse_url($url);
-            $username = str_replace(['/', '\\', '@'], '', $parsed['path']);
-
-            return ['domain' => $parsed['host'], 'username' => $username];
+        if(starts_with($url, '@')) {
+            $url = substr($url, 1);
         }
-        $parts = explode('@', $url);
-        $username = null;
-        $domain = null;
-
-        foreach ($parts as $part) {
 
-        // skip empty array slices
-            if (empty($part)) {
-                continue;
-            }
+        $parts = explode('@', $url);
+        $username = $parts[0];
+        $domain = $parts[1];
 
-            // if slice contains . assume its a domain
-            if (str_contains($part, '.')) {
-                $domain = filter_var($part, FILTER_VALIDATE_URL) ?
-                    parse_url($part, PHP_URL_HOST) :
-                    $part;
-            } else {
-                $username = $part;
-            }
-        }
+        if(parse_url(filter_var('https://test.dev', FILTER_VALIDATE_URL), PHP_URL_HOST))
 
         return ['domain' => $domain, 'username' => $username];
     }