2013年03月16日

EmEditorからTwitterへの投稿マクロ

 この記事も含めて、まとめはこちらLink


 Windows用のエディタ、Emeditor用のマクロとして以前、ネット検索マクロ改良版Linkを書いたが、更にその改良版として、Twitterに投稿するものを作ってみた。

 Twitterでは、次のURL
https://twitter.com/intent/tweet/
にアクセスすれば入力欄を出せるが、そのURLに文字を入れて、

https://twitter.com/intent/tweet?text=【ツイートする文字】

にアクセスすれば、入力欄に文字が入った状態になるので、エディタなどからでも転送可能になる。
 ただし、タグの指定文字「#」などはURLにそのまま送れず、コードに変換しないといけない。

 例えば、
空牙・狼牙・骸牙 #deco
 の文字を送信したい場合、URLは、
https://twitter.com/intent/tweet?text=空牙・狼牙・骸牙 %23deco
 Firefoxなどのブラウザでは、URLに漢字を入れると自動でエンコードしてくれのでこれでもいいが、本来は、
https://twitter.com/intent/tweet?text=%E7%A9%BA%E7%89%99%E3%83%BB%E7%8B%BC%E7%89%99%E3%83%BB%E9%AA%B8%E7%89%99%20%23deco
 ここまで必要。
 と言う事で、EmEditorから、このエンコードまでしてTwitterに送信するマクロを作ってみた。



 マクロの前に、前回書いたネット検索マクロ改良版Linkの方法で、EmEditorの「外部ツールの設定」にネット検索の設定を追加しておく。

 そして次のマクロ2つを登録。
ネット検索定義用マクロ
("NetSearch.jsee"のファイル名で保存)


// ネット検索定義
function NetSearch(ComTop , ComEnd , CpCt) {
if ( document.selection.IsEmpty ) // 範囲指定無ければ
document.selection.SelectLine(); // 1行選択
SWord = encodeURIComponent(document.selection.Text)
.replace(/^(%0D%0A)+/, "")
.replace(/(%0D%0A)+$/, "");
// エンコード・前後の改行を削除
switch (CpCt) { // 指定パラメータにより
case "Copy": // コピー
document.selection.Copy();
break;
case "Cut": // カット
document.selection.Cut();
break;
case "Del": // 削除
document.selection.Delete(1);
break;
}
editor.ExecuteCommandByID(4096); // 新規作成
document.selection.Text =
ComTop + SWord + ComEnd; // URL貼付
document.selection.SelectAll(); // 全て選択
editor.ExecuteCommandByID( 8192 + 0 ); // 外部ツールの実行
editor.ExecuteCommandByID(4120); // 文書破棄
}
実行用マクロ
("Twitter.jsee"など好きなファイル名で保存)


#tooltip = "Twitter投稿"
#include "NetSearch.jsee"
// Twitter投稿
NetSearch(
"http://twitter.com/intent/tweet?text=" , "" , "Cut"
);

 Emeditor上で、2つのうち実行用マクロを動かす事にで、文字が範囲指定されていればその部分を、無ければ1行を切り取ってツイートしてくれる。ツイートは改行にも対応。

マクロ解説

 主な処理は、function指定している「NetSearch」で行っているが、そこに送る各パラメーターは、

NetSearch(ComTop , ComEnd , CpCt)
ComTop文字の前に挿入するURL
ComEnd文字の後に挿入するURL
CpCtブラウザ転送後の処理
 Copy・文字をコピー
 Cut・文字をカット
 Del・文字を削除
 他 or 無指定・処理無し

 処理方法としては、文字の操作のために新規文書を立ち上げて貼り付け、エンコード、URLを貼り付けてブラウザに送る。送ったらその文書を破棄するという流れ。
 これも、文字をURLとして送っているだけなので、パラメーターを変更すれば色々な使い方が出来ると思う。


(2014/01/12追記)
 マクロを大幅に変更。
 最初はエンコードに「encodeURI」命令を使っていたけど、この時、URLとして使えない文字もエンコードできる「encodeURIComponent」の存在を知らなかった(汗)。おかげでわざわざそれを変換するマクロも付けていたという。



タグ:twitter EmEditor

posted by 司隆 at 20:40 | Comment(0) | Computer
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。