forTUNE meets へ自動入力する方法
本ツールで読み取ったシリアルナンバーを、forTUNE meets のシリアル入力欄へまとめて流し込むためのものです。行うのは入力欄への値の入力(入力欄が足りない場合の「入力枠を追加」ボタンの操作を含みます)だけで、登録ボタンは自動で押しません(最後は必ずご自身で内容を確認してから押してください)。パソコンの方はブックマークレット、iPhone の方は下の「ショートカット」をご利用ください。
📱 iPhone(iOS)の方へ — ショートカットで自動入力(タップで開く)
iPhone の Safari では javascript: 形式のブックマークを登録できないため、「ショートカット」アプリを使って自動入力します。一度作成すれば、Safari の共有ボタンから実行できます。
このショートカットは、コピーしたシリアルをクリップボードから読み取り、開いているページの入力欄へ転記します(入力欄が足りない場合は、ページ内の「入力枠を追加」ボタンの操作も行います)。登録・送信は行わず、クリップボードの内容が当方や第三者のサーバーへ送信されることもありません。
シリアル入力用の JavaScript コード
下の「設定手順」の手順7で貼り付けます。ボタンを押すとコピーできます。
(async function(){"use strict";var INPUT=`__SERIALS__`;var C={s:'input[id^="inputSerial"]',a:"入力枠を追加",m:10,g:20,w:2500},R=/^[A-Z0-9]+$/;function gi(){return Array.prototype.slice.call(document.querySelectorAll(C.s))}function nm(s){return(s||"").replace(/\s+/g,"")}function fb(){var t=nm(C.a);return Array.prototype.slice.call(document.querySelectorAll("button")).find(function(b){return nm(b.textContent).includes(t)})}function sv(e,v){var d=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;d.call(e,v);e.dispatchEvent(new Event("input",{bubbles:true}));e.dispatchEvent(new Event("change",{bubbles:true}))}function wf(p,t){return new Promise(function(r){if(p())return r(true);var s=Date.now(),i=setInterval(function(){if(p()){clearInterval(i);r(true)}else if(Date.now()-s>t){clearInterval(i);r(false)}},80)})}function ps(x){var k=Object.create(null),o=[];(x||"").split(/[\s,]+/).map(function(s){return s.trim()}).filter(Boolean).forEach(function(t){if(!k[t]){k[t]=true;o.push(t)}});return o}try{if(gi().length===0){completion("⚠️ 入力欄が見つかりません。forTUNE meets のシリアル入力ページで実行してください。");return}var all=ps(INPUT);if(!all.length){completion("⚠️ シリアルがありません。先にアプリで「全シリアルを一括コピー」してから実行してください。");return}var bad=all.filter(function(s){return!R.test(s)});var cap=all.length>C.m;var L=all.slice(0,C.m),f=0,g=0;while(f<L.length&&g<C.g){var ins=gi();for(var i=f;i<L.length&&i<ins.length;i++){sv(ins[i],L[i]);f++}if(f>=L.length)break;if(ins.length>=C.m)break;var ab=fb();if(!ab)break;var bf=ins.length;ab.click();await wf(function(){return gi().length>bf},C.w);g++;if(gi().length===bf)break}var msg="✅ "+f+" 件を入力しました(枠 "+gi().length+")。内容を確認し、ご自身で登録ボタンを押してください。";if(cap)msg+="\n・"+C.m+" 件を超えたため先頭 "+C.m+" 件のみ入力しました。";if(bad.length)msg+="\n・形式外(大文字+数字でない): "+bad.slice(0,5).join(", ")+(bad.length>5?" ほか":"");completion(msg)}catch(e){completion("⚠️ エラー: "+(e&&e.message?e.message:String(e)))}})();設定手順(最初の一度だけ)
- 「ショートカット」アプリを開き、右上の「+」をタップして新規作成します。
- 「アクションを追加」をタップします。
- 検索欄に「クリップボードを取得」と入力し、表示されたアクションをタップして追加します。
- 同様に「WebページでJavaScriptを実行」を検索して追加します。
- 同様に「通知を表示」を検索して追加します。
- 手順4のアクションが「クリップボードに対してJavaScriptを実行」と表示されています。その「クリップボード」をタップ →「変数を削除」をタップします(表示が「Webページに対してJavaScriptを実行」に変わればOK)。
- 手順4のアクションのコード欄に入っている初期コードをすべて削除し、上の「シリアル入力用の JavaScript コード」をコピーして貼り付けます。
- 貼り付けたコード内の
__SERIALS__(バッククォート`の内側)だけを選択して削除し、「変数を選択」→「クリップボード」をタップします。修正前:var INPUT = `__SERIALS__`;
修正後:var INPUT = `〔クリップボード〕`; - 画面上部中央のショートカット名あたりをタップ →「名称変更」をタップし、「fortune」と入力します。
- 画面上部の「完了」をタップします(表示がない場合は「<」をタップ)。
- 作成した「fortune」を長押し →「詳細」をタップします。
- 「共有シートに表示」をオンにし、右上の「✓」をタップします。
- 作成した「fortune」の「・・・」をタップ →「アプリ、その他〇個」をタップし、「SafariのWebページ」だけを有効にします。
使い方
- このアプリでシリアルを読み取り、「全シリアルを一括コピー」をタップします。
- Safari で forTUNE meets のシリアル入力ページを開きます。
- Safari 下部の共有ボタン(□に↑)をタップ → 下にスクロールして「fortune」をタップします。
- 入力欄にシリアルが入力されます。内容を必ずご自身で確認し、サイトの登録ボタンは手動で押してください。
うまくいかないとき
- 「入力欄が見つかりません」と通知が出る: forTUNE meets のシリアル入力ページを開いた状態で実行してください。
- 何も入力されない: 先に「全シリアルを一括コピー」をしてから実行してください(クリップボードが空だと入力されません)。
- 実行に失敗する: 手順6で「クリップボード」を削除し、表示が「Webページに対してJavaScriptを実行」になっているか確認してください。
導入方法 1: ボタンをドラッグ(かんたん・パソコン向け)
ブラウザのブックマークバーを表示し(Chrome は Ctrl+Shift+B)、下のボタンをブックマークバーへドラッグ&ドロップしてください。
※ クリックではなく「ドラッグ」してバーに登録します。
導入方法 2: コードを貼り付け(パソコン向け)
ドラッグが使えない場合は、ブックマークを新規作成し、その URL 欄に下のコードを全文貼り付けてください(名前は「シリアル入力」など任意)。
javascript:(function(){"use strict";var C={s:'input[id^="inputSerial"]',a:"入力枠を追加",m:10,g:20,w:2500},R=/^[A-Z0-9]+$/;function gi(){return Array.prototype.slice.call(document.querySelectorAll(C.s))}function nm(s){return(s||"").replace(/\s+/g,"")}function fb(){var t=nm(C.a);return Array.prototype.slice.call(document.querySelectorAll("button")).find(function(b){return nm(b.textContent).includes(t)})}function sv(e,v){var d=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;d.call(e,v);e.dispatchEvent(new Event("input",{bubbles:true}));e.dispatchEvent(new Event("change",{bubbles:true}))}function wf(p,t){return new Promise(function(r){if(p())return r(true);var s=Date.now(),i=setInterval(function(){if(p()){clearInterval(i);r(true)}else if(Date.now()-s>t){clearInterval(i);r(false)}},80)})}function ps(x){var k=Object.create(null),o=[];x.split(/[\s,]+/).map(function(s){return s.trim()}).filter(Boolean).forEach(function(t){if(!k[t]){k[t]=true;o.push(t)}});return o}(async function(){if(gi().length===0){alert("入力欄が見つかりません。forTUNE meets のシリアル入力ページで実行してください。");return}var raw=prompt("シリアルを貼り付け(空白/改行/カンマ区切り、最大"+C.m+"件)\n※登録ボタンは自動で押しません。");if(raw==null)return;var all=ps(raw);if(!all.length){alert("シリアルが入力されていません。");return}var bad=all.filter(function(s){return!R.test(s)}),cap=all.length>C.m,w="";if(cap)w+="・"+C.m+"件を超えています(先頭"+C.m+"件のみ入力)\n";if(bad.length)w+="・大文字+数字でない値があります: "+bad.slice(0,5).join(", ")+(bad.length>5?" ほか":"")+"\n";if(w&&!confirm("確認:\n"+w+"\nこのまま入力しますか?"))return;var L=all.slice(0,C.m),f=0,g=0;while(f<L.length&&g<C.g){var ins=gi();for(var i=f;i<L.length&&i<ins.length;i++){sv(ins[i],L[i]);f++}if(f>=L.length)break;if(ins.length>=C.m)break;var ab=fb();if(!ab)break;var bf=ins.length;ab.click();await wf(function(){return gi().length>bf},C.w);g++;if(gi().length===bf)break}alert(f+" 件を入力しました(枠 "+gi().length+")。\n内容を確認し、ご自身で登録ボタンを押してください。")})()})();使い方(パソコン)
- 本ツールでシリアルを読み取り、「全シリアルを一括コピー」を押します。
- forTUNE meets のシリアル入力ページを開きます。
- 登録したブックマーク「シリアル入力」をクリックします。
- 表示されたプロンプトに、コピーしたシリアルを貼り付けます(空白・改行・カンマ区切り可)。
- 入力された内容を必ずご自身で確認し、サイトの登録ボタンを手動で押します。
注意事項
- ご利用の前に、forTUNE meets など対象サイトの利用規約をご確認ください。自動入力ツールの利用が規約上制限されている場合があります。
- 誤ったシリアルの連続入力などにより、対象サイト側でアカウントが制限されるおそれがあります。入力された内容が正しいことを必ずご自身で確認してから、登録ボタンを押してください。
- シリアルは一度に最大10件まで自動入力できます。11件以上入力する場合は、10件ずつ分割して入力してください。
- サイトのセキュリティ設定(CSP)によっては、自動入力が動作しない場合があります。