syusui-s / rabbit

🐰 A nostr client like TweetDeck
https://rabbit.syusui.net
GNU Affero General Public License v3.0
73 stars 14 forks source link

`new URL()` が投げる例外がキャッチされていない #12

Closed sabigara closed 1 year ago

sabigara commented 1 year ago

バグの説明

特定の画像URLを new URL() したときに例外が投げられる場合があるようです。

https://github.com/syusui-s/rabbit/blob/8e1714f47681b2838cf90df1e778d33989958364/src/components/textNote/TextNoteContentDisplay.tsx#L58

レンダリング中に発生する例外なのでタイムラインが真っ白になったり、そのノートより先が描画されなくなったりします。

どのURLか特定しようと思いましたがすぐにはできませんでした。

再現手順

不正なURLの含まれた note がタイムラインに表示される。

期待される挙動

例外が処理される。

スクリーンショット スクリーンショットがあればこちらに。

デスクトップ (該当する場合は以下の情報を埋めてください):

スマートフォン (該当する場合は以下の情報を埋めてください):

追加の情報 問題に関する他の情報があればこちらに。

sabigara commented 1 year ago

このイベントの ws://localhost:port が invalid らしいです

{
  "content": "#[0]​ ちょっと質問なんですけど\nUmbrelにローカルでリレー立てて繋いでますよね?\nどうしてもSnort、Iris、Damusだとws://localhost:portに接続ができないんだけど、なにで設定しました?",
  "created_at": 1680755616,
  "id": "01a426f8acf8d786e9bd7374966a470abf5a689a006f3e5d27790405cb39e994",
  "kind": 1,
  "pubkey": "f40832e26b1d12f8a27717b606996baef68bc4b6b86c4a35ca827f6fbcbf511e",
  "sig": "6afef14ffec247b5419a722d8d1787f360b8fe825793eb5df7ba7b42e81c259c77fc07fa23fc78d8163f5ff94a8d6f3609b62259691ba2a09dc7af4acadc38a9",
  "tags": [
    [
      "p",
      "c75622fd77ff9aa0e0ae9b213fd06170940807065d997e9c28ff8a67a9b66e1d"
    ]
  ]
}
sabigara commented 1 year ago

https://github.com/syusui-s/rabbit/blob/8e1714f47681b2838cf90df1e778d33989958364/src/core/parseTextNote.ts#L64-L65

これに ws://localhost:port (port が数字じゃない) がマッチしてしまっているのが原因ではないかと思います。

syusui-s commented 1 year ago

ご報告ありがとうございます。上記コミットにて修正しましたので、ご確認いただけましたら幸いです。

sabigara commented 1 year ago

ご対応ありがとうございます😸