YAMAPの登山計画データをコンパスにインポートするbookmarklet
YAMAPの登山計画書のデータをコンパスの登山計画作成フォームに入力するbookmarklet
インストール方法
bookmarklet自体の作り方は、他サイトを参考にしてください
ここで、本体のコードを取得する方法を解説します
1. ここを押してコードを生成する
2. 生成したコードの先頭にjavascript:を書き加えた文字列を、bookmarkletのURL欄に貼り付ける
使い方
1. YAMAPの登山計画書のページを開いて、本bookmarletを押す
jsonファイルのダウンロードが始まるので、適当な場所に保存する
2. コンパスの登山計画作成フォームを開いて、もう一度本bookmarkletを押す
このときjsonファイルのアップロードwindowが開くので、先程保存したjsonファイルを指定する
3. 終了
インポートに対応しているデータ
山域
ルートデータ
各経由地点の到着/出発時刻
経由地か泊地かも書き写せる
目的
「登山」で固定している
食料
行動食
正確な回数は書き込めない
YAMAP側のデータに存在しないため
飲料水
bundle前のコード
URLを見て、挙動を切り替えている
YAMAPの登山計画書ページにいるとき
YAMAPの登山計画データをCompassSourceに変換するscriptでデータを抽出する
コンパスの登山計画作成フォームにいるとき
コンパスに自動入力するscriptで書き込む
$ deno check --remote -r=https://scrapbox.io https://scrapbox.io/api/code/takker/YAMAPの登山計画データをコンパスにインポートするbookmarklet/script.ts
code:script.ts
import { upload } from "../scrapbox-file-uploader/mod.ts";
import { scrape } from "../YAMAPの登山計画データをCompassSourceに変換するscript/mod.ts";
import { write, CompassSource } from "../コンパスに自動入力するscript/mod.ts";
(async () => {
if (
${location.protocol}//${location.hostname}${location.pathname} === "https://www.mt-compass.com/reportedit.php"
) {
const file = await upload({ accept: ".json" });
if (!file) return;
const json = JSON.parse(await file.text()) as CompassSource;
write(json);
return;
}
const json = scrape();
if (!json) return;
const url = URL.createObjectURL(
new Blob(JSON.stringify(json), { type: "application/json" })
);
const a = document.createElement("a");
a.href = url;
a.download = ${json.area}.json;
a.style.display = "none";
document.body.append(a);
a.click();
a.remove();
})();