すずしいはいけい

すずしいはいけいにしてみました。pixabay.com こーどデザインCSS body { background-image: url(https://cdn-ak.f.st-hatena.com/images/fotolife/s/sawalemontea/20190806/20190806154555.png); background-repeat: repeat; background-attachment: scroll…

Puppeteer evaluateメソッドのPageFunctionに引数を渡す

こんにちは。レモンティーです。今回はPuppeteerのevaluateメソッドのPageFunctionへ引数を渡すときの話です。(公式)こういう風に書くと出力はundefinedです。index.js const a = 'text'; const b = 283; const c = {a:21,b:23}; const x = await page.eva…

Chromeをキーボードで操作

こんにちは、レモンティーです。今回はChromeをキーボードで操作する方法です。ちなみに公式に全部書いてあります。ここでは一部だけ。前回↓、入力作業中の移動や範囲選択をキーボードでやる方法を書きましたがあれの続きみたいな感じですね。 www.sawalemon…

入力時にキーボード操作で移動と範囲選択

こんにちは。レモンティーです。今回はキーボード操作での移動と範囲選択です。 ただしキーボード等によって若干異なるかもしれません。例えばノートパソコンで左矢印(←)がhomeキーを兼ねる場合はHomeはfn+←になるといった違いがあります。 移動 範囲選択 …

Node.js ある記事にはてなスターを付けたユーザの一覧

こんにちは。レモンティーです。今回ははてなスターAPIでスターの取得です。以下のqに記事のurlを入れてnode.jsで実行するだけ。index.js const request = require('request'); const q = "https://www.sawalemontea.com/entry/2019/06/19/160507"; (async (…

Node.js 自分のブログのはてなフォトライフなどの画像を一括ダウンロードする方法

こんにちは。レモンティーです。今回は過去にはてなブログに貼った画像を一括ダウンロードする方法です。 普通に「写真を投稿」で張り付けていれば画像は全てはてなフォトライフにあるので今回の方法で手直しなくいけると思います。 準備 コード 出力 おしま…

Node.js request.jsで画像をダウンロードして保存すると壊れるとき

こんにちは。レモンティーです。今回はrequest.jsで画像をダウンロードして保存するときのお話です。 リクエストはうまくいったのに画像がちゃんと保存できていないときはoptionのencodingをnullにするとうまくいくかもしれません。そうしないとrequestモジ…

はてなブログテーマのアレンジを見に行く

こんにちは。レモンティーです。今回ははてなブログのテーマについてです。 テーマストアの各テーマには「利用中のブログ」というボタンがあり、そのテーマを使っている人を何人か見ることができます。そしてその中には結構凝ったアレンジもあります。はてな…

Puppeteer はてなブログで誰を購読中かわけわからなくなったら…購読中のブログ一覧と読者一覧

こんにちは。レモンティーです。今回ははてなブログの読者リストと購読中のブログリストのお話です。はてなブログはSNSではないので購読中の一覧を楽に見る機能はありません。そのためそこそこ数が増えてくるともうわけがわからなくなってせっかく購読してい…

Sequelize入門 Node.jsとExpressからPostgreSQLを使う

こんにちは。レモンティーです。 今回はNode.jsで使えるORMのSequelizeを使います。 github.com 導入 環境を設定 モデル作成 migration CRUD操作 sample Association migrationの更新 sample (おまけ)Herokuでは おわり 導入 まずプロジェクトを作成して必要…

Heroku 環境変数にダブルクオートを使うと消えるとき

こんにちは。レモンティーです。タイトルの通りなのですが、ググると 丸ごとシングルクオートで囲って heroku config:set HOGE='{ "hoge": "huga" }'みたいにすればいい、とでるのですが それでもなお実行すると HOGE='{ hoge: huga }'のようにダブルクオー…

HTML JSを使わずにform内の複数のinputから別々のパスにsubmitする

こんにちは。レモンティーです。今回はinput type=submitのお話です。 developer.mozilla.orgHTML5からはjavascriptを使用しなくてもinputごとに別々のパスにpostできるようです。 やりかたはinputにformaction属性を指定するだけです。 form自体のactionと…

Node.js requestモジュールでmultipart/form-dataをPOSTしてファイルアップロード

こんにちは。レモンティーです。今回はrequestモジュールのmultipart/form-dataです。 github.comnode.jsで、あるHTMLフォームと同じリクエストを送りたいという場合、requestモジュールが便利です。例えば以下のHTMLのformと同じリクエストを送りたい場合…i…

Puppeteer nameのないiframe内のDOM要素を操作する(セレクタでiframeを取得する)

こんにちは。レモンティーです。今回はpuppeteerでiframe内のDOM要素を操作する方法です。 iframeにnameがあれば const frame = await page.frames().find(f => f.name() === 'hoge'); のようにできますが、ない場合はelementHandleクラスのcontentFrameメソ…

Node.js Gmailを簡単に送信する

こんにちは。レモンティーです。今回はNode.jsでGmailを送信します。 developers.google.comGASを使えばすごく簡単に送信できる上に定期実行もできるので基本的にはGASでやればいいです。 ただローカルファイルがらみでWindowsのタスクスケジューラで定期実…

Puppeteer headless:falseの時にマウスカーソルの位置を表示する

こんにちは。レモンティーです。今回はpuppeteerでheadless:falseの時にマウスカーソルの位置を表示させます。 内容はまんまこれです github.compage.mouse.move()とか使ったときにちゃんと思った通りになっているのか確かめたくてもデフォルトだとマウスカ…

Puppeteer はてなブログのアイキャッチ画像をカテゴリ別に一括変更する

こんにちは。レモンティーです。今回はpuppeteerではてなブログのアイキャッチ画像をカテゴリ別に一括変更します。 このブログでは長いことすべての記事のアイキャッチ画像が顔つきレモンティーの絵でした。全文表示のときはそれでもあまり関係ないのですが…

はてなブログの新テーマSunlightを公開しました

こんにちは。レモンティーです。はてなブログの新しいテーマSunlightを公開しました blog.hatena.ne.jpこのブログで現在使用しているNavyDarkCodeとよく似ていて、機能面では互換性?があります。 つまりグローバルメニューやSNSシェアボタンはNavyDarkCode…

Puppeteerではてなブログのスターを自動でお返ししてみる

こんにちは。レモンティーです。今回はpuppeteerではてなスターを自動でつけてみます。そんな便利なものでもないので大丈夫だとは思いますが実用はしないでください。スターに関してはスパムを禁じる規約とかが見当たらなかったのですが、あまり意味のないス…

VisualStudioCode シンタックスハイライトの色を変更する

こんにちは。レモンティーです。今回は、VS Codeのシンタックスハイライトの一部の色を変更する方法です。VS Codeは拡張機能でいろんな人が作ったテーマを使用できますよね。でも使っていると「ほぼ気に入っているけど事情があってコメントの色だけ変えたい…

はてなブログのコードブロック(pre,code)でファイル名やパスを一緒に表示する

こんにちは。レモンティーです。今回ははてなブログでのソースコードの表示についてです。コードを載せるとき、そのファイル名やパスも一緒に表示したいことがありますよね。先日紹介したテーマNavyDarkCodeにこの機能を追加しました。 blog.hatena.ne.jp使…

はてなブログのテーマ作成で--output-style compressedにするとレスポンシブ対応が効かなくなるのを解決

こんにちは。レモンティーです。今回は、はてなブログのテーマ作成についてです。このブログではずっと公式テーマを使っていたのですが 最近見た目を変えてみたくなってテーマをつくりました。 blog.hatena.ne.jp テーマは公式のBoilerplateをクローンしてsa…

for霜

イベント "ID","シーン番号","シーン内順序","イベントタイプ","P5","P6","P7","P8","P9" P5~P9はイベントタイプごとに意味が異なる。 以下はイベントタイプごとのP5~P9の解説。 説明がないところは空欄。 「、」区切りは「,」区切り。 「|」区切りは「」…

Dockerの自動起動を止める Start Docker Desktop when you log inをオフにしても起動する場合

こんにちは。レモンティーです。今回はパソコンの起動時にDockerが勝手に起動するのを止める方法です。環境 Windows 10 pro Docker version 18.09.2, build 6247962 概要 普通は設定のStart Docker Desktop when you log inのチェックを外せばOKなのですが、…

Express express-validatorでバリデーションチェックする

こんにちは。レモンティーです。今回は、express-validatorでバリデーションチェックをします。 express-validator.github.io 準備 使ってみる Custom Validator エラーメッセージ まとめ 準備 まずはnpmでインストールします。 npm install --save express-…

Angular ページトップにスクロールするボタン

こんにちは。レモンティーです。今回はページトップにスクロールするボタンです。よく画面の右下とかに見かけるやつですね。Angularの場合はどうすればいいでしょうか。 今回は@ViewChildとscrollIntoViewメソッドを使います。テンプレートで、スクロールの…

AngularMaterialのフォントを変更する方法

こんにちは。レモンティーです。今回はAngularMaterialのフォントを変更する方法です。Google FontsのフォントをAngularMaterialに設定します。 fonts.google.comAngularMaterialのボタンやナビゲーションのフォントは デフォルトではRobotoというフォントに…

Angular FormArrayで動的に変化するフォーム

こんにちは。レモンティーです。以前、フォームについての記事を書きました。 www.sawalemontea.com今回はFormArrayを使って動的に変化するフォームをつくります。 AngularMaterialでMatErrorのバリデーションも付けます。AngularAngular Material 使い方はF…

Firebase CloudFirestoreで条件にあっているのにERROR Error: Missing or insufficient permissions.が起こるとき

こんにちは。レモンティーです。今回はFirebaseのCloudFirestoreのルールについてです。 普通に公式ドキュメントに書いてあるのに見落としていたことなので多くの人には問題ないかもしれません。ちょうどここに書いてあります。 https://firebase.google.com…

Angular AngularMaterialのDialogを使う

こんにちは。レモンティーです。今回はAngularMaterialのDialogを使います。公式はコチラ Angular Material AngularMaterialのDialogでは、まずDialogのコンポーネントをつくり それを呼び出し時に指定して使います。さっそく見ていきます。 準備 Dialogのコ…