PS5の抽選販売の申し込みが始まったら通知する
今週頭にビックカメラで抽選販売の申し込みがあったようなんですが、気付いた時には〆切を過ぎていて申し込めませんでした。
そこで、抽選販売の最新情報をまとめたページが更新されたら通知するようにしよう、というお話です。
--
※結局ソニーストアの繰り上げ当選で当たりました。
やったぜPS5🥰 pic.twitter.com/0ScLHYy5ek
— サトー (@sator_imaging) April 20, 2021
もくじ
IFTTTでは無理
こういうのは IFTTT だろーと思ったんですが、無理でした。
RSSの更新チェックは出来ますが、既存のページの更新は追えず。。。
かわりにコチラのサービス(VisualPing)を使おうと思ったんですが、ただでさえPS5買うために色んなショップのアカウントを作っているのにさらに増やすのか、ということで見送り。
DOS + VBScript
困ったときはこいつらの出番ですね。PS5の抽選の通知を受け取るだけのために時間かけてもしょうがないし、自宅のPCは基本的に電源を落とさないし、ということで。
(PowerShell なら単体でダイアログを出せそうですが、あまり触る機会もなく)
--
方法は curl
でページの HTML を取得して <time datetime=
という文字列を探して変更があったらメッセージボックスを出すだけです。
※ 送られてくる HTML が minified されてると上手く動かないかも
@echo off
::: Settings :::
set TARGET_URL="https://gamewith.jp/ps5/article/show/1255"
set TARGET_STRING="<time datetime="
set DIALOG_TITLE="PlayStation 5"
set DIALOG_MSG="Press OK to see PlayStation 5 Lottery Details."
set INTERVAL_SEC=1200
::: Do it :::
set UPDATED="NULL"
set LAST_UPDATED=%UPDATED%
set VBS_FILENAME=%TEMP%\%~n0_MsgBox.vbs
goto :MAIN
pause
goto :EOF
:MAIN
for /f "delims=" %%I in ('curl %TARGET_URL% ^| find /i %TARGET_STRING%') do set UPDATED="%%I"
echo.
echo %UPDATED%
if "" equ "%UPDATED:"=%" (
echo Target String is not found in specified URL...
pause
goto :EOF
)
if "%LAST_UPDATED:"=%" neq "%UPDATED:"=%" (
set LAST_UPDATED=%UPDATED%
echo if 1 = msgbox^(%DIALOG_MSG%,vbOkCancel+vbExclamation+vbApplicationModal,%DIALOG_TITLE%^) then > "%VBS_FILENAME%"
echo WScript.CreateObject^("Shell.Application"^).ShellExecute^(%TARGET_URL%^) >> "%VBS_FILENAME%"
echo end if >> "%VBS_FILENAME%"
"%VBS_FILENAME%"
)
goto :INTERVAL
:INTERVAL
timeout %INTERVAL_SEC% >nul
goto :MAIN
<time>
タグとかなんやねん細かいなって思ってましたが、こういう時には便利ですね。GameWith のページもこのあたりシッカリ作られていて助かります。
おわりに
ローカルにコンテナ?を建てて似たようなものを作る → コンテナのホスティングサービスに出来たものを乗っける。
て感じで簡単にウェブサービス化できたりするんですかねー? 気が向いたら調べたいところです。
以上です。お疲れ様でした。
Author And Source
この問題について(PS5の抽選販売の申し込みが始まったら通知する), 我々は、より多くの情報をここで見つけました https://qiita.com/sator_imaging/items/9d070be3f455e83232a9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .