Androidのメモとか

ポキオの日記です。今日も遅延してない。

GooglePhotoMarkdownerを更新しました

ちょっとだけ改善。

pokiiio googlephotomarkdowner

前回はオレオレElectronアプリを作りました

relativelayout.hatenablog.com

Google Photosにアップした写真を秒で、Markdown記法などでブログに埋め込める形に変換する俺得アプリを作りました。今回の改善ポイントは大きく2点です。

  • macOSで何故か出来ていなかったコピーアンドペーストに対応
  • 前回使った画像サイズ・代替テキスト・タイトルを永続化するように変更

地味に使いやすくなりました。

github.com

macOSで何故か出来ていなかったコピーアンドペーストに対応

なぜか出来てなかった。

pracucci.com

上記のワークアラウンドを鵜呑みにして、コードに追加しています。appのreadyで、以下のようにメニューを追加して、コピペに対応しています。

app.on('ready', function () {
    mainWindow = new BrowserWindow({ width: 800, height: 600 });
    mainWindow.loadURL('file://' + __dirname + '/index.html');
    // mainWindow.toggleDevTools();
    mainWindow.on('closed', function () {
        mainWindow = null;
    });

    var template = [{
        label: "Application",
        submenu: [
            { label: "About Application", selector: "orderFrontStandardAboutPanel:" },
            { type: "separator" },
            { label: "Quit", accelerator: "Command+Q", click: function () { app.quit(); } }
        ]
    }, {
        label: "Edit",
        submenu: [
            { label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" },
            { label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" },
            { type: "separator" },
            { label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" },
            { label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" },
            { label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" },
            { label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
        ]
    }
    ];

    Menu.setApplicationMenu(Menu.buildFromTemplate(template));
});

前回使った画像サイズ・代替テキスト・タイトルを永続化するように変更

electron-json-storageJSONデータを永続化するようにしています。

npm install electron-json-storage --save

いつもどおり、こんな感じでインストールします。

var storage = require('electron-json-storage');
var data = {};
data.photoSize = "hogehoge";
data.photoAlt = "fugafuga";
data.photoTitle = "piyopiyo";
storage.set('config', data, function (error) {
    if (error) throw error;
    // 保存完了
});

保存はこんな感じで、JSONオブジェクトを作って保存します。

var storage = require('electron-json-storage');
storage.get('config', function (error, data) {
    if (error) throw error;
    if (Object.keys(data).length === 0) return;
    // dataを読み込む
});

読み込みはこんな感じで簡単に出来ます。

というわけで

オレオレElectron、最高ですね。

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。