Gmail Macrosを改良し、キーボードで迷惑メール、ゴミ箱を空にする

FirefoxGmail拡張機能Better Gmail 2に含まれているGreasemonkeyスクリプトの「Macros (? for help)」を改良した。
このスクリプトを使うと、ほとんどの機能をキーボードのみで操作できるが、迷惑メールやゴミ箱を空にするアクションはいちいちマウスで行っていた。


追記:UserScripts.orgにアップしてみた。
Macros改 (? for help) for Greasemonkey


これが少し面倒なので、それらの機能をキーボードでできるように改良。
エクスプローラで%AppData%からProfiles\********.default\extensions\bettergmail2@ginatrapani.org\chrome\のフォルダにアクセスし、bettergmail2.jarを解凍する。(そのままでは解凍できないときは拡張子をjarからzipに変更して行う。)
解凍してできたファイルの、\content\user_scripts\marcos.user.jsをエディタで開き、以下のように追加していく。

32行目
+    var DELETE_ACTION = "17";
114行目から
- }
+  },
+  // i: delete integrally
+  73: function() {
+    var deleteButton = getFirstVisibleNode(
+        evalXPath(".//button[@act='" + DELETE_ACTION + "']", getDoc().body));
+    
+    if (deleteButton) {
+      simulateClick(deleteButton, "click");
+    } else {
+      clickMoreActionsMenuItem("Delete Forever", DELETE_ACTION);
+    }
+  }


このように変更したmacros.user.jsをFirefoxにドラッグ&ドロップしてインストールすると、迷惑メールフォルダやゴミ箱フォルダでメールを選択した後、iを押すとDelete Foreverボタンが押されたときと同じ動作をし、完全に削除される。
「ゴミ箱を空にする」などの動作とは違い、選択したメールだけを削除するので、50件以上メールがあるときは、「選択してi」を繰り返す必要がある。


ちなみに、上記の動作はGmailの英語版(設定から表示言語を「English (US)」)でのみ動作確認している。
英語版を使っているのは、日本語版では、Gで[Go to label]を表示した後、spでSpam(迷惑メール)、tでTrash(ゴミ箱)などに移動できないから。


macro.user.jsを修正した後、bettergmail2.jarに圧縮しないのは、単純に面倒くさいのと、Better Gmail 2が更新されたときにmacro.user.jsのファイル内容も変更されると思うので、それを防ぐため。
Better Gmail 2の設定から「Macros (? for help)」のチェックは外しておいた方がいいと思う。


Gmailがバージョンアップする前は、日本語版でもG→Spam,Trashなどで移動できていて、同じようにiで完全削除するようにしていた。
数日前に言語を英語に設定したら、現在のバージョンでもSpam,Trashなどに移動できるようになり、その結果、完全削除するときだけマウス操作が必要になるのが気になり出し再び修正してみた。