Heroku を手動 deploy する 先日、Heroku が やらかした 事件 があった。 このニュースを聞いて、すぐに github から heroku を切り離した。 その後、パスワードリセットが掛かる等、色々あったが、その辺は割愛。 実は、 つんでれ bot は heroku で稼働しているので、こいつの更新が出来ない状況になってしまった。 地味にちょくちょく更新していたので、どうにか deploy しなきゃなーと思ってたが、ようやく deploy 方法を見つけたので、ここに記録する。 heroku-cli を入れる まず、heroku-cli を導入する。 今は、npm 一発で入れられるので、 npm install -g heroku 自動アップデートされないから、他の方法をやれと書いてあったけれど、deploy する度に更新かければいいやという事で、折り合いをつける事にする。 次に、heroku にログインする heroku login をした後、Enter を叩くとブラウザが立ち上がるので、そこで認証する。 2段階認証もブラウザで出来る。 コマンドライン上でも出来るので、そこはお好みで。 その後、対象のレポジトリに移動し、remote に heroku を追加する。 cd ~/hoge/fuga/ heroku git:remote -a [アプリ名] 自分のアプリの名前は、heroku の dashboard から確認出来る。 最後に、push する git push heroku master 自分のレポジトリでは master でやってるが、main で運用している人はそこを main にすれば良い。 heroku の方でもなんか設定が必要かもしれないけれど、それは 公式ドキュメント を読んで。 編集後記 これで無事に tundere_bot を更新する事が出来た。 地味に、Twitter API ver2 もリリースされたので、近々そのバージョンで組んでみるつもりである。 あと、色々とアレなので、heroku を使うのをどこかでやめた方が良いかもしれない。 現状は代替が無いので、しばらくは heroku を使う予定だが、node が使えてお金が掛からないサービスあったらどなたか教えてください。
puppeteer で、ほどほどの速度で自動スクロールさせるコード puppeteer で、ほどほどの速度で目的の要素の位置に自動スクロールさせるコードを書いた。 await page.evaluate(async () => { const targetClass = ".target_class"; const hh = document.querySelector(targetClass).offsetHeight; await new Promise((resolve, reject) => { const moved = 100; let _top = 0; let timer = setInterval(() => { window.scrollBy(0, moved); _top += moved; if (_top > hh) { clearInterval(timer); resolve(); } }, 100); }); }); targetClass に、適当なセレクタを指定の事。 最初は、 await page.evaluate(async () => { const targetClass = ".target_class"; const hh = document.querySelector(targetClass).offsetHeight; window.scrollTo(0, hh); }); というシンプルなコードを書いていたのだが、これだと Intersection Observer 的な奴の処理が上手く走らなかったので、少し面倒くさいコードを書くに至った。 これならば、ちょっとずつスクロールしてくれるので、Intersection Observer に何か仕込んでいるサイトでもちゃんと動いてくれる。