From 880e674b6b61d0658973136948c338d01f11ccee Mon Sep 17 00:00:00 2001 From: tubone24 Date: Wed, 28 Feb 2024 15:57:29 +0000 Subject: [PATCH 01/14] [create-pull-request] automated change --- ...1\227\343\201\276\343\201\227\343\201\237.md" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" new file mode 100644 index 0000000000..c29426f601 --- /dev/null +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -0,0 +1,16 @@ +--- +slug: 2024-02-28/妻のためにFRUITS-ZIPPERの情報更新をSlackするようにしました +title: "妻のためにFRUITS ZIPPERの情報更新をSlackするようにしました" +date: 2024-02-28T15:57:29+0000 +description: draft article +tags: + - fixme +headerImage: https://i.imgur.com/QmIHfeR.jpg +templateKey: blog-post +--- + +## Table of Contents + +```toc + +``` From c19b808dc15c078b63cc171f10027055d80160e2 Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Wed, 6 Mar 2024 09:50:11 +0900 Subject: [PATCH 02/14] wip --- ...43\201\227\343\201\276\343\201\227\343\201\237.md" | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index c29426f601..155e19a010 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -2,15 +2,22 @@ slug: 2024-02-28/妻のためにFRUITS-ZIPPERの情報更新をSlackするようにしました title: "妻のためにFRUITS ZIPPERの情報更新をSlackするようにしました" date: 2024-02-28T15:57:29+0000 -description: draft article +description: 妻が好きなFRUITS ZIPPERの更新情報をSlackに投稿して情報に最速アクセスできるようにします。 tags: - - fixme + - Deno + - FRUITS ZIPPER headerImage: https://i.imgur.com/QmIHfeR.jpg templateKey: blog-post --- +ライブに行ってみたい。 + ## Table of Contents ```toc ``` + +## FRUITS ZIPPER + +aa \ No newline at end of file From ff265e48dcac5e3d9e249ff3e5f6b01672fc6e84 Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Wed, 6 Mar 2024 21:46:52 +0900 Subject: [PATCH 03/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\227\343\201\276\343\201\227\343\201\237.md" | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 155e19a010..29e62e1231 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -20,4 +20,19 @@ templateKey: blog-post ## FRUITS ZIPPER -aa \ No newline at end of file +皆様FRUITS ZIPPERというアイドルをご存知ですか? + +アソビシステム所属のアイドルで昨年のレコード大賞も受賞した今最も勢いのあるアイドルです。 + +TikTokを中心に今若者から絶大な人気を得ています。 + +そして何を隠そう、妻がこのアイドルのファンなのです。 + +来る日も来る日も彼女たちの曲を聞いていたら私も俄然興味が出てきました。武道館ライブが当たるといいな。 + +## 最新情報のキャッチアップに苦戦 + +とある日、妻がとても悲しんでいて理由を聞いたら、どうやら「松本かれんちゃんのイベント」の申し込みを見逃してしまったようです。 + +Twitterには告知がされたらしいのですが、告知タイミングが期限ギリギリだったらしく、反応できなかったようです。 + From 555e5883c8b7f9062c80c77960b132542e858c19 Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Fri, 8 Mar 2024 15:03:58 +0900 Subject: [PATCH 04/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\253\343\201\227\343\201\276\343\201\227\343\201\237.md" | 6 ++++++ 1 file changed, 6 insertions(+) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 29e62e1231..0a9096fdb1 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -36,3 +36,9 @@ TikTokを中心に今若者から絶大な人気を得ています。 Twitterには告知がされたらしいのですが、告知タイミングが期限ギリギリだったらしく、反応できなかったようです。 +妻の話によると、どうやら公式ホームページのInfomationには情報が反映されるらしく、そちらを定期的に確認さえすれば松本かれんちゃんのイベントに出遅れなかったそうです。 + +## ということで定期的に確認してみよう + + + From 3af405d433947c2c1bd3485d400cd1d9cd13450a Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Sat, 9 Mar 2024 12:10:00 +0900 Subject: [PATCH 05/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...227\343\201\276\343\201\227\343\201\237.md" | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 0a9096fdb1..b5bdf919a7 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -40,5 +40,23 @@ Twitterには告知がされたらしいのですが、告知タイミングが ## ということで定期的に確認してみよう +我が家では家族Slackを使ってるので、Slackの特定のチャンネルにInformationが更新されたら、通知する仕組みを作っていきます。 + +また、妻はTypeScriptを勉強中なのでせっかくなので二人でコーディングできるようにDenoで構築しようと思います。 + +Denoでこういったスクリプト作るの、べらぼうに簡単なのでみなさんも利用したら離れられなくなりますよ!!! + +## DenoでHTMLをパースする + +## Slackに投稿する + +## GHAに載せる + +## 完成 + +ということで完成しました! + +妻からもよいフィードバックが!!やったやったー! + From ef501899f28de9b0a4822108cfb284d60516d6c9 Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Sat, 9 Mar 2024 16:19:28 +0900 Subject: [PATCH 06/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\343\201\276\343\201\227\343\201\237.md" | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index b5bdf919a7..52b41a82a6 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -46,7 +46,46 @@ Twitterには告知がされたらしいのですが、告知タイミングが Denoでこういったスクリプト作るの、べらぼうに簡単なのでみなさんも利用したら離れられなくなりますよ!!! -## DenoでHTMLをパースする +## DenoでDOMをパースする + +DenoでDOMをパースするには[Deno DOM](https://github.com/b-fuze/deno-dom)を使うのが良さそうです。 + +直感的な使い味でとても使いやすかったです。 + +QuerySerectorで目的の情報までアクセスするため、今後Webページのレイアウトが変わってしまったら壊れてしまうスクリプトにはなってますが、 + +一旦こちらで実装を進めていきます。 + +```typescript +import { DOMParser } from "https://deno.land/x/deno_dom/deno-dom-wasm.ts"; + +const WEB_PAGE_URL_BASE = "https://fruitszipper.asobisystem.com" as const; + +// 中略 + +// FRUITS ZIPPERのサイトにアクセスし、DOMを取得する + const page = await fetch(`${WEB_PAGE_URL_BASE}/news/1/`); + const pageContents = await page.text(); + + // DOMをパースする(Documentオブジェクトを取得する) + const document = new DOMParser().parseFromString(pageContents, "text/html"); + + // QuerySelectorを使って、更新情報の要素にアクセスする + const ul = document.querySelector("main > section > ul"); + const lis = ul?.querySelectorAll("li"); + + const information: InformationItem[] = []; + + for (const li of lis) { + const url = li.querySelector("a")?.getAttribute("href"); + + const dateText = li.querySelector("div > .date").textContent; + const date = datetime().parse(dateText, "YYYY.MM.dd"); + const titleText = li.querySelector("div > .tit").textContent; + + information.push({ date: date, title: titleText, url: url }); + } +``` ## Slackに投稿する From 4097c5ee73771a8884002037ca736038ceebfcd1 Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Sat, 9 Mar 2024 16:43:57 +0900 Subject: [PATCH 07/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 52b41a82a6..8835601ec8 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -56,6 +56,8 @@ QuerySerectorで目的の情報までアクセスするため、今後Webペー 一旦こちらで実装を進めていきます。 +![img](https://i.imgur.com/79xoiL5.png) + ```typescript import { DOMParser } from "https://deno.land/x/deno_dom/deno-dom-wasm.ts"; From db13a582f79291bd0a495942018c38712ceade37 Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Sat, 9 Mar 2024 17:56:42 +0900 Subject: [PATCH 08/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1\227\343\201\276\343\201\227\343\201\237.md" | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 8835601ec8..45ea3ccb59 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -52,12 +52,22 @@ DenoでDOMをパースするには[Deno DOM](https://github.com/b-fuze/deno-dom) 直感的な使い味でとても使いやすかったです。 -QuerySerectorで目的の情報までアクセスするため、今後Webページのレイアウトが変わってしまったら壊れてしまうスクリプトにはなってますが、 - -一旦こちらで実装を進めていきます。 +QuerySerectorで目的の情報までアクセスするため、今後Webページのレイアウトが変わってしまったら壊れてしまうスクリプトにはなってますが、一旦こちらで実装を進めていきます。 ![img](https://i.imgur.com/79xoiL5.png) +サイトの要素を眺めて....作っていきます。 + +Informationはview allのページがあり、そちらの方がレイアウトの更新に引っ張られなさそうできたのでそちらを使います。 + +main → section → ul → liとたどれば更新情報が取れそうです。 + +Nodeも17.5から使えるようにはなってるので、Deno特有の話ではないですが、ライブラリを入れずともfetchが使えるのは便利ですね。 + +## Denoで時刻を扱う + + + ```typescript import { DOMParser } from "https://deno.land/x/deno_dom/deno-dom-wasm.ts"; From 4770f743f7ac9d447064a08b96532a2377b04d2b Mon Sep 17 00:00:00 2001 From: tubone Date: Sun, 10 Mar 2024 22:43:43 +0900 Subject: [PATCH 09/14] wip --- ...27\343\201\276\343\201\227\343\201\237.md" | 125 ++++++++++++++++-- 1 file changed, 112 insertions(+), 13 deletions(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 45ea3ccb59..cb3aef47b0 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -20,9 +20,9 @@ templateKey: blog-post ## FRUITS ZIPPER -皆様FRUITS ZIPPERというアイドルをご存知ですか? +皆様[FRUITS ZIPPER](https://asobisystem.com/talent/fruitszipper/)というアイドルをご存知ですか? -アソビシステム所属のアイドルで昨年のレコード大賞も受賞した今最も勢いのあるアイドルです。 +[アソビシステム](https://asobisystem.com/)所属のアイドルで[昨年のレコード大賞で最優秀新人賞を受賞した](https://news.yahoo.co.jp/articles/c9b2e3ea42b4030cb8641125cb6ca564d3c043d0#:~:text=%E6%97%A5%E6%9C%AC%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E5%A4%A7%E8%B3%9E%E3%80%8D%E3%81%AF%E3%80%812023,ZIPPER%E3%80%8D%E3%81%8C%E9%81%B8%E5%87%BA%E3%81%95%E3%82%8C%E3%81%9F%E3%80%82)今最も勢いのあるアイドルです。 TikTokを中心に今若者から絶大な人気を得ています。 @@ -32,11 +32,11 @@ TikTokを中心に今若者から絶大な人気を得ています。 ## 最新情報のキャッチアップに苦戦 -とある日、妻がとても悲しんでいて理由を聞いたら、どうやら「松本かれんちゃんのイベント」の申し込みを見逃してしまったようです。 +とある日、妻がとても悲しんでいて理由を聞いたら、どうやら「[松本かれんちゃん](https://asobisystem.com/talent/matsumotokaren/)のイベント」の申し込みを見逃してしまったようです。 Twitterには告知がされたらしいのですが、告知タイミングが期限ギリギリだったらしく、反応できなかったようです。 -妻の話によると、どうやら公式ホームページのInfomationには情報が反映されるらしく、そちらを定期的に確認さえすれば松本かれんちゃんのイベントに出遅れなかったそうです。 +妻の話によると、どうやら公式ホームページのInformationには情報が反映されるらしく、そちらを定期的に確認さえすれば松本かれんちゃんのイベントに出遅れなかったそうです。 ## ということで定期的に確認してみよう @@ -66,33 +66,50 @@ Nodeも17.5から使えるようにはなってるので、Deno特有の話で ## Denoで時刻を扱う +Denoで日時を便利に扱うライブラリとして[ptera](https://github.com/Tak-Iwamoto/ptera)を使いました。 +DenoでもDateオブジェクトの扱いは引き続きわかりにくいです。まじで使いづらいです。 + +なので、pteraを使って日時を扱います。Dayjsライクな使い勝手でとても使いやすかったです。 + +[Deno DOM](https://github.com/b-fuze/deno-dom)と[ptera](https://github.com/Tak-Iwamoto/ptera)を使って次のようなコードを書きました。 ```typescript import { DOMParser } from "https://deno.land/x/deno_dom/deno-dom-wasm.ts"; +import { datetime } from "https://deno.land/x/ptera/mod.ts"; const WEB_PAGE_URL_BASE = "https://fruitszipper.asobisystem.com" as const; // 中略 +type InformationItem = { + date: datetime.DateTime; + title: string; + url: string; +}; + // FRUITS ZIPPERのサイトにアクセスし、DOMを取得する - const page = await fetch(`${WEB_PAGE_URL_BASE}/news/1/`); - const pageContents = await page.text(); +const page = await fetch(`${WEB_PAGE_URL_BASE}/news/1/`); +const pageContents = await page.text(); - // DOMをパースする(Documentオブジェクトを取得する) - const document = new DOMParser().parseFromString(pageContents, "text/html"); +// DOMをパースする(Documentオブジェクトを取得する) +const document = new DOMParser().parseFromString(pageContents, "text/html"); - // QuerySelectorを使って、更新情報の要素にアクセスする - const ul = document.querySelector("main > section > ul"); - const lis = ul?.querySelectorAll("li"); +// QuerySelectorを使って、更新情報の要素にアクセスする +const ul = document.querySelector("main > section > ul"); +const lis = ul?.querySelectorAll("li"); - const information: InformationItem[] = []; +const information: InformationItem[] = []; - for (const li of lis) { +// ListItemから更新情報を取得する +for (const li of lis) { + // URLを取得する const url = li.querySelector("a")?.getAttribute("href"); const dateText = li.querySelector("div > .date").textContent; + // 日付をパースする const date = datetime().parse(dateText, "YYYY.MM.dd"); + // タイトルを取得する const titleText = li.querySelector("div > .tit").textContent; information.push({ date: date, title: titleText, url: url }); @@ -101,6 +118,88 @@ const WEB_PAGE_URL_BASE = "https://fruitszipper.asobisystem.com" as const; ## Slackに投稿する +SlackのIncoming Webhookで更新があった場合は通知を飛ばすようにしております。 + +特に工夫されているところもなく上記で作成したinformationオブジェクトを一つずつIncoming WebhookにPOSTしているだけです。 + +妻も自分も反応できるように**@channel**投稿にしています。 + +```typescript +const notifySlack = async (information: InformationItem[]) => { + const messages = information.map((item) => { + const linkText = `【${item.date.format("YYYY-MM-dd")}】${ + item.title + }`.trim(); + return ` + <${WEB_PAGE_URL_BASE}${item.url}|${linkText}> + `; + }); + + for (const message of messages) { + const postDataForSlack = JSON.stringify({ + type: "mrkdwn", + text: message, + }); + const response = await fetch(SLACK_WEBHOOK_URL, { + method: "post", + headers: { + "Content-Type": "application/json", + }, + body: postDataForSlack, + }); + } +}; +``` + +実際に投稿されたものはこんな感じです。 + +![img](https://i.imgur.com/LCFGex8.png) + +妻も喜んでますね。 + +## Notion Databaseに記録する + +Slackだと会話が流れてしまったり、チケットの抽選を対応したか忘れてしまう問題があったので、合わせてNotion Databaseにも記録を残しておきます。 + +[NotionのAPI](https://developers.notion.com/docs/working-with-databases#adding-pages-to-a-database)を使って、Databaseに記録しています。 + +```typescript +const writeNotionDatabase = async (information: InformationItem[]) => { + for (const item of information) { + const body = { + parent: { database_id: NOTION_DATABASE_ID }, + properties: { + タイトル: { + title: [{ text: { content: item.title } }], + }, + 日付: { + date: { start: item.date.format("YYYY-MM-dd") }, + }, + リンク: { + url: `${WEB_PAGE_URL_BASE}${item.url}`, + }, + チェックボックス: { + checkbox: false, + }, + }, + }; + await fetch("https://api.notion.com/v1/pages", { + method: "post", + headers: { + "Content-Type": "application/json", + "Notion-Version": "2022-06-28", + Authorization: `Bearer ${NOTION_API_SECRET}`, + }, + body: JSON.stringify(body), + }); + } +}; +``` + +![img](https://i.imgur.com/yoZJpIh.png) + +![img](https://i.imgur.com/gPUDGkn.png) + ## GHAに載せる ## 完成 From fb651213f0b3a39d915395706fdfa9522a0eb409 Mon Sep 17 00:00:00 2001 From: tubone Date: Sun, 10 Mar 2024 23:03:44 +0900 Subject: [PATCH 10/14] =?UTF-8?q?=E3=81=97=E3=82=85=E3=81=86=E3=81=9B?= =?UTF-8?q?=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\343\201\276\343\201\227\343\201\237.md" | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index cb3aef47b0..717b509a57 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -6,7 +6,7 @@ description: 妻が好きなFRUITS ZIPPERの更新情報をSlackに投稿して tags: - Deno - FRUITS ZIPPER -headerImage: https://i.imgur.com/QmIHfeR.jpg +headerImage: https://i.imgur.com/FO7l5lW.png templateKey: blog-post --- @@ -20,7 +20,7 @@ templateKey: blog-post ## FRUITS ZIPPER -皆様[FRUITS ZIPPER](https://asobisystem.com/talent/fruitszipper/)というアイドルをご存知ですか? +皆さま[FRUITS ZIPPER](https://asobisystem.com/talent/fruitszipper/)というアイドルをご存じですか? [アソビシステム](https://asobisystem.com/)所属のアイドルで[昨年のレコード大賞で最優秀新人賞を受賞した](https://news.yahoo.co.jp/articles/c9b2e3ea42b4030cb8641125cb6ca564d3c043d0#:~:text=%E6%97%A5%E6%9C%AC%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E5%A4%A7%E8%B3%9E%E3%80%8D%E3%81%AF%E3%80%812023,ZIPPER%E3%80%8D%E3%81%8C%E9%81%B8%E5%87%BA%E3%81%95%E3%82%8C%E3%81%9F%E3%80%82)今最も勢いのあるアイドルです。 @@ -44,7 +44,7 @@ Twitterには告知がされたらしいのですが、告知タイミングが また、妻はTypeScriptを勉強中なのでせっかくなので二人でコーディングできるようにDenoで構築しようと思います。 -Denoでこういったスクリプト作るの、べらぼうに簡単なのでみなさんも利用したら離れられなくなりますよ!!! +Denoでこういったスクリプト作るの、べらぼうに簡単なのでみなさんも利用したら離れられなくなりますよ!!! ## DenoでDOMをパースする @@ -52,7 +52,7 @@ DenoでDOMをパースするには[Deno DOM](https://github.com/b-fuze/deno-dom) 直感的な使い味でとても使いやすかったです。 -QuerySerectorで目的の情報までアクセスするため、今後Webページのレイアウトが変わってしまったら壊れてしまうスクリプトにはなってますが、一旦こちらで実装を進めていきます。 +QuerySelectorで目的の情報までアクセスするため、今後Webページのレイアウトが変わってしまったら壊れてしまうスクリプトにはなってますが、一旦こちらで実装を進めていきます。 ![img](https://i.imgur.com/79xoiL5.png) @@ -120,7 +120,7 @@ for (const li of lis) { SlackのIncoming Webhookで更新があった場合は通知を飛ばすようにしております。 -特に工夫されているところもなく上記で作成したinformationオブジェクトを一つずつIncoming WebhookにPOSTしているだけです。 +特に工夫されているところもなく上記で作成したinformationオブジェクトを1つずつIncoming WebhookにPOSTしているだけです。 妻も自分も反応できるように**@channel**投稿にしています。 @@ -196,17 +196,29 @@ const writeNotionDatabase = async (information: InformationItem[]) => { }; ``` +項目としては、タイトル・日付・リンクのほかに、チェックボックスを設けており、チケットの抽選に対応したかどうかを記録できます。 + +次のようになりました。 + ![img](https://i.imgur.com/yoZJpIh.png) +Viewを変更することでカレンダー表示にもできます。(使い所はちょっとわからないですが。) + ![img](https://i.imgur.com/gPUDGkn.png) ## GHAに載せる +さて、ここまででスクリプトが完成したので後はGitHub Actionsに載せて定期的に実行するようにしましょう。 + +今回は一日に一回実行するようにしました。簡単なWorkflowなのでコードは割愛します。 + ## 完成 ということで完成しました! -妻からもよいフィードバックが!!やったやったー! +妻からもよいフィードバックが!!!やったやったー!!! + +![img](https://i.imgur.com/FO7l5lW.png) From 06422343e00fed084576986ab7d628b9f52e7e53 Mon Sep 17 00:00:00 2001 From: tubone Date: Sun, 10 Mar 2024 23:20:45 +0900 Subject: [PATCH 11/14] =?UTF-8?q?=E7=B4=B0=E3=81=8B=E3=81=84=E3=81=97?= =?UTF-8?q?=E3=82=85=E3=81=86=E3=81=9B=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\343\201\276\343\201\227\343\201\237.md" | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 717b509a57..398720c9e1 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -28,23 +28,27 @@ TikTokを中心に今若者から絶大な人気を得ています。 そして何を隠そう、妻がこのアイドルのファンなのです。 -来る日も来る日も彼女たちの曲を聞いていたら私も俄然興味が出てきました。武道館ライブが当たるといいな。 +来る日も来る日も彼女たちの曲を聞いていたら私も俄然興味が出てきました。[武道館ライブ](https://fruitszipper.asobisystem.com/news/detail/22274)が当たるといいな。 ## 最新情報のキャッチアップに苦戦 とある日、妻がとても悲しんでいて理由を聞いたら、どうやら「[松本かれんちゃん](https://asobisystem.com/talent/matsumotokaren/)のイベント」の申し込みを見逃してしまったようです。 -Twitterには告知がされたらしいのですが、告知タイミングが期限ギリギリだったらしく、反応できなかったようです。 +Twitterには告知がされたらしいのですが、告知タイミングが申し込み期限ギリギリだったらしく、締め切りまでに反応できなかったようです。 -妻の話によると、どうやら公式ホームページのInformationには情報が反映されるらしく、そちらを定期的に確認さえすれば松本かれんちゃんのイベントに出遅れなかったそうです。 +妻の話によると、どうやら公式ホームページのInformation欄には情報が反映されるらしく、そちらを定期的に確認さえすれば松本かれんちゃんのイベントに出遅れなかったそうです。 + +とはいえ、毎日ホームページをチェックするのも...。 + +ということで仕組みで解決しましょう。 ## ということで定期的に確認してみよう -我が家では家族Slackを使ってるので、Slackの特定のチャンネルにInformationが更新されたら、通知する仕組みを作っていきます。 +我が家では家族Slackを導入しているので、Slackの特定のチャンネルにFRUITS ZIPPERのInformationが更新されたら、通知する仕組みを作っていきます。 また、妻はTypeScriptを勉強中なのでせっかくなので二人でコーディングできるようにDenoで構築しようと思います。 -Denoでこういったスクリプト作るの、べらぼうに簡単なのでみなさんも利用したら離れられなくなりますよ!!! +Denoでこういった単発のスクリプト作るのは、べらぼうに簡単なのでみなさんもDeno利用したら離れられなくなりますよ!!! ## DenoでDOMをパースする @@ -58,22 +62,22 @@ QuerySelectorで目的の情報までアクセスするため、今後Webペー サイトの要素を眺めて....作っていきます。 -Informationはview allのページがあり、そちらの方がレイアウトの更新に引っ張られなさそうできたのでそちらを使います。 - -main → section → ul → liとたどれば更新情報が取れそうです。 +ホームページのInformationは[view all](https://fruitszipper.asobisystem.com/news/1/)の専用ページがあり、そちらの方が他情報によるレイアウトの更新に引っ張られなさそうでしたのでそちらを使います。 -Nodeも17.5から使えるようにはなってるので、Deno特有の話ではないですが、ライブラリを入れずともfetchが使えるのは便利ですね。 +構造的にmain → section → ul → liとたどれば更新情報が取れそうです。 ## Denoで時刻を扱う Denoで日時を便利に扱うライブラリとして[ptera](https://github.com/Tak-Iwamoto/ptera)を使いました。 -DenoでもDateオブジェクトの扱いは引き続きわかりにくいです。まじで使いづらいです。 +DenoでもDateオブジェクトの扱いは引き続きわかりにくいです。JavaScriptのDateはまじで使いづらいです。 なので、pteraを使って日時を扱います。Dayjsライクな使い勝手でとても使いやすかったです。 [Deno DOM](https://github.com/b-fuze/deno-dom)と[ptera](https://github.com/Tak-Iwamoto/ptera)を使って次のようなコードを書きました。 +Deno特有の話ではないですが、(Nodeも17.5からfetchが使えるようにはなってるので)ライブラリを入れずともfetchが使えるのは便利ですね。 + ```typescript import { DOMParser } from "https://deno.land/x/deno_dom/deno-dom-wasm.ts"; import { datetime } from "https://deno.land/x/ptera/mod.ts"; @@ -122,7 +126,7 @@ SlackのIncoming Webhookで更新があった場合は通知を飛ばすよう 特に工夫されているところもなく上記で作成したinformationオブジェクトを1つずつIncoming WebhookにPOSTしているだけです。 -妻も自分も反応できるように**@channel**投稿にしています。 +妻も自分も反応できるように、**@channel**投稿にしています。 ```typescript const notifySlack = async (information: InformationItem[]) => { @@ -159,7 +163,7 @@ const notifySlack = async (information: InformationItem[]) => { ## Notion Databaseに記録する -Slackだと会話が流れてしまったり、チケットの抽選を対応したか忘れてしまう問題があったので、合わせてNotion Databaseにも記録を残しておきます。 +Slackだと会話が流れてしまったり、チケットの抽選を対応したか忘れてしまう問題があったので、合わせて[Notion Database](https://www.notion.so/help/intro-to-databases)にも記録を残しておきます。 [NotionのAPI](https://developers.notion.com/docs/working-with-databases#adding-pages-to-a-database)を使って、Databaseに記録しています。 @@ -200,11 +204,11 @@ const writeNotionDatabase = async (information: InformationItem[]) => { 次のようになりました。 -![img](https://i.imgur.com/yoZJpIh.png) +![img](https://i.imgur.com/gPUDGkn.png) Viewを変更することでカレンダー表示にもできます。(使い所はちょっとわからないですが。) -![img](https://i.imgur.com/gPUDGkn.png) +![img](https://i.imgur.com/yoZJpIh.png) ## GHAに載せる @@ -220,5 +224,3 @@ Viewを変更することでカレンダー表示にもできます。(使い ![img](https://i.imgur.com/FO7l5lW.png) - - From 57e7fb47cfb3dca0560ff7ffd5bbbecae8bc7575 Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Mon, 11 Mar 2024 00:03:35 +0900 Subject: [PATCH 12/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...01\253\343\201\227\343\201\276\343\201\227\343\201\237.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 398720c9e1..940b72e9da 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -1,7 +1,7 @@ --- slug: 2024-02-28/妻のためにFRUITS-ZIPPERの情報更新をSlackするようにしました -title: "妻のためにFRUITS ZIPPERの情報更新をSlackするようにしました" -date: 2024-02-28T15:57:29+0000 +title: "妻のためにアイドルの情報が更新されたらSlackに通知する実装をした" +date: 2024-03-11T15:57:29+0000 description: 妻が好きなFRUITS ZIPPERの更新情報をSlackに投稿して情報に最速アクセスできるようにします。 tags: - Deno From c37d175e8bec47674759cca9683b6e96f5295102 Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Mon, 11 Mar 2024 00:08:29 +0900 Subject: [PATCH 13/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...53\343\201\227\343\201\276\343\201\227\343\201\237.md" | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 940b72e9da..3b53fcacc1 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -1,11 +1,13 @@ --- -slug: 2024-02-28/妻のためにFRUITS-ZIPPERの情報更新をSlackするようにしました +slug: 2024-02-28/妻のためにアイドルの情報が更新されたらSlackに通知する実装をした title: "妻のためにアイドルの情報が更新されたらSlackに通知する実装をした" date: 2024-03-11T15:57:29+0000 description: 妻が好きなFRUITS ZIPPERの更新情報をSlackに投稿して情報に最速アクセスできるようにします。 tags: - Deno - FRUITS ZIPPER + - Deno DOM + - ptera headerImage: https://i.imgur.com/FO7l5lW.png templateKey: blog-post --- @@ -157,7 +159,7 @@ const notifySlack = async (information: InformationItem[]) => { 実際に投稿されたものはこんな感じです。 -![img](https://i.imgur.com/LCFGex8.png) +![img](https://i.imgur.com/92JtEWa.png) 妻も喜んでますね。 @@ -222,5 +224,5 @@ Viewを変更することでカレンダー表示にもできます。(使い 妻からもよいフィードバックが!!!やったやったー!!! -![img](https://i.imgur.com/FO7l5lW.png) +![img](https://i.imgur.com/vzyD8Iu.png) From c75560651641a9a66e76ef37064249b16bdc323a Mon Sep 17 00:00:00 2001 From: "tubone(Yu Otsubo)" Date: Mon, 11 Mar 2024 00:10:00 +0900 Subject: [PATCH 14/14] =?UTF-8?q?Update=202024-02-28-=E5=A6=BB=E3=81=AE?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=81=ABFRUITS-ZIPPER=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E6=9B=B4=E6=96=B0=E3=82=92Slack=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" index 3b53fcacc1..0e212544ce 100644 --- "a/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" +++ "b/src/content/2024-02-28-\345\246\273\343\201\256\343\201\237\343\202\201\343\201\253FRUITS-ZIPPER\343\201\256\346\203\205\345\240\261\346\233\264\346\226\260\343\202\222Slack\343\201\231\343\202\213\343\202\210\343\201\206\343\201\253\343\201\227\343\201\276\343\201\227\343\201\237.md" @@ -216,7 +216,7 @@ Viewを変更することでカレンダー表示にもできます。(使い さて、ここまででスクリプトが完成したので後はGitHub Actionsに載せて定期的に実行するようにしましょう。 -今回は一日に一回実行するようにしました。簡単なWorkflowなのでコードは割愛します。 +今回はサイト様にご迷惑をかけないように一日に一回実行するようにしました。簡単なWorkflowなのでコードは割愛します。 ## 完成