作ったもの
ギガファイル便の保存期間を自動で設定してくれるChrome拡張機能「GigaFile Default Setter」を作りました。
開発のきっかけ
ギガファイル便は無料で使える大容量ファイル転送サービスで、仕事でもプライベートでもよく使っています。
ただ、ひとつ不満がありました。保存期間のデフォルト値が短いんです。
ギガファイル便では3日〜100日の保存期間を選べるのですが、デフォルトが短めに設定されているため、毎回手動で長い期間に変更していました。
そして何度かやらかしました。
- 設定を変え忘れて短い期間で送ってしまい、相手がダウンロードする前に消えてしまった
- 「もう一回送って」と言われる気まずさ
この「毎回変更するのが面倒」「うっかり忘れる」という2つの課題を解決するために、Chrome拡張機能を作ることにしました。
機能
機能は非常にシンプルです。
- 拡張機能のポップアップで保存期間のデフォルト値を設定(3日〜100日)
- ギガファイル便にアクセスすると、自動的にその値が選択される
これだけです。一度設定すれば、あとは何も考えなくていい。
技術的なポイント
Manifest V3
Chrome拡張機能は2024年以降Manifest V3が必須になっています。今回は最初からV3で作成しました。
{
"manifest_version": 3,
"name": "GigaFile Default Setter",
"permissions": ["storage"],
"host_permissions": ["*://gigafile.nu/*"],
"content_scripts": [
{
"matches": ["*://gigafile.nu/*"],
"js": ["content/content.js"],
"run_at": "document_end"
}
]
}
Content Scriptで自動クリック
ギガファイル便のページ構造を解析し、保存期間のボタンを見つけてクリックする処理を実装しました。
function findAndClickDaysButton(targetDays) {
const targetText = `${targetDays}日`;
const elements = document.querySelectorAll('a, button, span, div, li');
for (const el of elements) {
if (el.textContent.trim() === targetText) {
el.click();
return true;
}
}
return false;
}
動的要素への対応
ギガファイル便は一部の要素が動的に読み込まれるため、MutationObserverを使って要素の追加を監視しています。
const observer = new MutationObserver(() => {
if (!applied) {
tryApply();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
また、タイミングの問題に対応するため、複数回のリトライも入れています。
chrome.storage.syncで設定を同期
設定値はchrome.storage.syncを使って保存しています。これにより、同じGoogleアカウントでログインしているChromeブラウザ間で設定が自動同期されます。
// 保存
chrome.storage.sync.set({ defaultDays: value });
// 読み込み
chrome.storage.sync.get({ defaultDays: 100 }, (result) => {
// result.defaultDaysを使用
});
ファイル構成
gigafile-default-setter/
├── manifest.json # 拡張機能の設定
├── content/
│ └── content.js # ギガファイル便で実行されるスクリプト
├── popup/
│ ├── popup.html # 設定画面のUI
│ ├── popup.css # スタイル
│ └── popup.js # 設定の保存・読み込み
└── icons/ # 各サイズのアイコン
全体で100行程度の小さな拡張機能です。
使い方
- Chrome Web Storeからインストール
- ツールバーの拡張機能アイコンをクリック
- 保存期間のデフォルト値を選択(3日〜100日)
あとはギガファイル便にアクセスするだけで、設定した保存期間が自動選択されます。
まとめ
「毎回同じ操作をしている」「うっかり忘れてしまう」という小さなストレスは、ちょっとしたツールで解消できます。
Chrome拡張機能はManifest V3になってもそこまで難しくなく、このくらいのシンプルな機能であれば数時間で作れます。
同じ悩みを持っている方はぜひ使ってみてください。
Chrome Web Store: https://chromewebstore.google.com/detail/gigafile-default-setter/ekmhmeomjelamfiidhmdnlhfdholcnjp
GitHub: https://github.com/atani/gigafile-default-setter
