From a8d104b1bcbf2a593d3165d2d7f03f160b796767 Mon Sep 17 00:00:00 2001 From: ncaq Date: Sun, 12 Mar 2023 09:44:25 +0900 Subject: [PATCH] =?UTF-8?q?fix!:=20Google=E3=81=AE=E3=83=87=E3=82=B6?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E5=A4=89=E6=9B=B4=E3=81=A7=E3=80=8C=E3=81=93?= =?UTF-8?q?=E3=81=AE=E3=83=9A=E3=83=BC=E3=82=B8=E3=82=92=E7=BF=BB=E8=A8=B3?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=80=8D=E3=81=8C=E6=BD=B0=E3=82=8C=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=9F=E3=81=AE?= =?UTF-8?q?=E3=82=92=E8=A7=A3=E6=B6=88=20closed=20#77?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 --- src/content/main.ts | 6 +---- src/content/url.ts | 61 --------------------------------------------- yarn.lock | 12 +-------- 4 files changed, 2 insertions(+), 80 deletions(-) delete mode 100644 src/content/url.ts diff --git a/package.json b/package.json index b3ea5b9..fbb310b 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "devDependencies": { "@types/encoding-japanese": "^2.0.1", "@types/node": "^18.11.18", - "@types/punycode": "^2.1.0", "@types/webextension-polyfill": "^0.10.0", "@typescript-eslint/eslint-plugin": "^5.49.0", "@typescript-eslint/parser": "^5.49.0", @@ -43,8 +42,6 @@ "events": "^3.3.0", "fp-ts": "^2.13.1", "io-ts": "^2.2.20", - "punycode": "^2.3.0", - "string-width": "^5.0.0", "webextension-polyfill": "^0.10.0" } } diff --git a/src/content/main.ts b/src/content/main.ts index 5843486..e4f2d2d 100644 --- a/src/content/main.ts +++ b/src/content/main.ts @@ -1,5 +1,4 @@ import { replaceLinkTitles } from "./title"; -import { replaceLinkUrls } from "./url"; /** * CSSセレクタで気をつけていてもどうしてもGoogleのwebキャッシュなど不要なURLが集まってしまうのでフィルタリングをかけます。 @@ -30,10 +29,7 @@ function selectLinkElements(el: Element): Element[] { /** エントリーポイント。 */ async function main(el: Element): Promise { - const links = selectLinkElements(el); - const titleP = replaceLinkTitles(links); - replaceLinkUrls(links); - return titleP; + return replaceLinkTitles(selectLinkElements(el)); } // エントリーポイントを実行します。 diff --git a/src/content/url.ts b/src/content/url.ts deleted file mode 100644 index 0a55fc8..0000000 --- a/src/content/url.ts +++ /dev/null @@ -1,61 +0,0 @@ -import punycode from "punycode"; -import stringWidth from "string-width"; - -/** - * URLデータをもらい、配下のURL表示を書き換えます。 - */ -function replace(urlString: string, link: Element): void { - // URLのオリジンを強調するために、パスとオリジンを分離します。 - const url = new URL(urlString); - // プロトコルを取り出し。 - const { protocol } = url; - // punycodeを解決。 - // Node.jsにAPIが含まれるようになったから非推奨だと言われるのですが、ブラウザで使う代替が存在しないので無視します。 - const host = punycode.toUnicode(url.host); - // 見やすいoriginを生成 - const origin = `${protocol}://${host}`; - // パーセントエンコーディングを解決します。 - // 一部だけ入力しても問題ないようです。 - const pathAndQuery = decodeURI(url.pathname + url.search); - // URLが結構長い場合改行が発生してレイアウトがメチャクチャになる可能性が高いため書き換えません。 - if (stringWidth(origin + pathAndQuery) >= 70) { - return; - } - // aの直下ではない部分のURLテキストを書き換えないと中途半端な書き換えになってしまうので、親の要素以下のciteを全書き換え。 - const div = link.parentElement; - if (div == null) { - throw new Error("div is null"); - } - Array.from(div.querySelectorAll(".TbwUpd cite")).forEach((cite) => { - // eslint-disable-next-line no-param-reassign - cite.textContent = origin; - const span = document.createElement("span"); - // Googleが標準で使っているCSSクラスを使用します。 - span.setAttribute("class", "dyjrff qzEoUe"); - span.textContent = pathAndQuery; - cite.append(span); - }); -} - -/** - * 指定linkのURL表示を書き換えます。 - */ -function replaceLinkUrl(link: Element): void { - try { - const href = link.getAttribute("href"); - if (href == null) { - throw new Error("link don't have href"); - } - replace(href, link); - } catch (err) { - // eslint-disable-next-line no-console - console.error("replaceLinkUrl is error.", err, link); - } -} - -/** - * 検索結果ページのURL表示を書き換えます。 - */ -export function replaceLinkUrls(links: Element[]): void { - links.forEach((link) => replaceLinkUrl(link)); -} diff --git a/yarn.lock b/yarn.lock index fad5dd5..22f420f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -330,11 +330,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== -"@types/punycode@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/punycode/-/punycode-2.1.0.tgz#89e4f3d09b3f92e87a80505af19be7e0c31d4e83" - integrity sha512-PG5aLpW6PJOeV2fHRslP4IOMWn+G+Uq8CfnyJ+PDS8ndCbU+soO+fB3NKCKo0p/Jh2Y4aPaiQZsrOXFdzpcA6g== - "@types/semver@^7.3.12": version "7.3.13" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" @@ -3387,11 +3382,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -punycode@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - pupa@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" @@ -3874,7 +3864,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: +string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==