【MyScripts】PocketにURLを登録

URLをバックグラウンドでPocketに送信するスクリプトを作りました。バックグラウンド監視を有効にしてから、他のアプリでURLをコピーすると、即時にPocketにURLを送信します。http://t.co/FDY9tVdq #MyScripts
2012-09-28 21:36 via Tweetbot for iOS


// アカウント情報を入力します
var username="ユーザー名を入力";
var password="パスワードを入力";

// APIキーは次のページから取得します
// http://getpocket.com/api/signup
var apikey="APIキーを入力";

var url="https://readitlaterlist.com/v2/add?username="+username+"&password="+password+"&apikey="+apikey+"&url="+TEXT;

var req = new XMLHttpRequest();
req.open("GET", url, false);
req.send(null);

var req = new XMLHttpRequest();
req.open("GET", url, false);
req.send(null);

req.responseText;

【MyScripts】Sylfeed SendToプロファイル作成&投稿スクリプト

Sylfeed向けのMyScriptsスクリプトを作成しました。SylfeedのSendTo登録用URLを作成してTinyURLで変換後にTweetbotを起動します。http://t.co/CHKkuj3D
2012-09-24 16:39 via Tweetbot for iOS


コード:

var sylfeedUrl="sylfeed://sendto/add?title="+encodeURIComponent(prompt("タイトル"))+"&url="+encodeURIComponent(prompt("URL"))+"&summary="+encodeURIComponent(prompt("説明"));

var url = "http://tinyurl.com/api-create.php?url="+encodeURIComponent(sylfeedUrl);

var req = new XMLHttpRequest();
req.open("GET", url, false);
req.send(null);

"tweetbot:///post?text="+encodeURIComponent(" "+req.responseText+" #sylfeedsendto");

【MyScripts】簡単Webスクレイピング

一つ前の投稿(歌詞取得スクリプト「SimpleLyrics」)からの続きです。

MyScriptsを使ってWebスクレイピングを行う手順を簡単に説明します。
ここではDOMは利用せずに、単純な正規表現を使った方法を紹介します。

1.Webページをダウンロードします。

// Webページを取得するための
// ユーティリティ関数
function httpGet(url) {
var xhr = new XMLHttpRequest();
xhr.open(“GET”, url, false);
xhr.send(null);
return xhr.responseText;
}

// 再生中のアーティスト名と曲タイトルを使って
// 検索用のURLを構築します
var listUrl=”http://m.kget.jp/result.php?cat=0&artist=”+encodeURIComponent(SONG.artist)+”&title=”+encodeURIComponent(SONG.title)+”&tieup=&phrase=”;

// Webサイトで検索して
// 検索結果のページを取得します(※1)
var listPage=httpGet(listUrl);

// 検索結果の1件目の曲IDを取り出して
// 歌詞ページのURLを構築します(※2)
var resultIndex=listPage.match(/song=[0-9]+/g)[0];
var lyricsUrl=”http://m.kget.jp/lyric.php?”+resultIndex;

// 歌詞ページを取得します
var lyricsPage=httpGet(lyricsUrl);

これでスクレイピング対象の文字列をlyricsPage変数に取得できました。
(ここでは検索処理を行なっていますが、検索が不要なWebページでは上記※1と※2は不要です)

2.lyricsPageから必要な箇所を抜き出します。

あらかじめ歌詞ページのソースを確認しておき、<div class=”lyric”>から始まる部分に歌詞があることを確認しておきます。

// ページの中から歌詞を抜き出します
lyricsPage.match(/<div class=”lyric”>n([sS]+?)<div/m);

([sS]+?) 部分に歌詞が入りますが、これはRegExp.$1内に保存されています。

3.最後に、歌詞部分の中に含まれている不要な改行タグ <br /> を一括削除します。

// 不要な改行タグを削除します
var lyrics=RegExp.$1.replace(/<br />/g, “”);

これで不要なタグが入っていない歌詞部分だけをlyrics変数に取り出すことが出来ました。

あとはこのデータを好きなように加工できます。

上記のURLを変更したり、スクレイピングの正規表現を変更していろいろと試してみると面白いと思います。

 

【MyScripts】歌詞取得スクリプト「SimpleLyrics」

再生中の曲の歌詞を検索、表示する「SimpleLyrics」スクリプトを作りました。

歌詞は「歌詞GET」から取得します。歌詞の著作権についてはサイトを参照して下さい。

MyScriptsへの登録はこちらからどうぞ。


/* mdoc
概要:: 再生中の曲の歌詞を検索、表示します
作者:: @unitkay
版数:: 0.0.2
更新:: 2012-09-02 08:57:10
分類:: ミュージック
識別:: simplelyrics
URL::
詳細_______________________________
再生中の曲の歌詞を「歌詞GET」から取得します。
歌詞の著作権についてはサイトを参照して下さい。
___________________________________
*/

// Webページを取得するための
// ユーティリティ関数
function httpGet(url) {
var xhr = new XMLHttpRequest();
xhr.open(“GET”, url, false);
xhr.send(null);
return xhr.responseText;
}

// 再生中のアーティスト名と曲タイトルを使って
// 検索用のURLを構築します
var listUrl=”http://m.kget.jp/result.php?cat=0&artist=”+encodeURIComponent(SONG.artist)+”&title=”+encodeURIComponent(SONG.title)+”&tieup=&phrase=”;

// Webサイトで検索して
// 検索結果のページを取得します
var listPage=httpGet(listUrl);

// 検索結果の1件目の曲IDを取り出して
// 歌詞ページのURLを構築します
var resultIndex=listPage.match(/song=[0-9]+/g)[0];
var lyricsUrl=”http://m.kget.jp/lyric.php?”+resultIndex;

// 歌詞ページを取得します
var lyricsPage=httpGet(lyricsUrl);

// ページの中から歌詞を抜き出します
lyricsPage.match(/<div class=”lyric”>n([sS]+?)<div/m);

// 不要な改行タグを削除します
var lyrics=RegExp.$1.replace(/<br />/g, “”);

// MyScriptsに歌詞を渡して完了
lyrics;

MyScriptsを使って通知センターをランチャーとして使う

MyScriptsを使って通知センターをランチャーとして使う:スクリプトはTEXTのみ。(openurl)で登録して、チェックマークを付けます。後は任意のメモアプリでURLをコピーすればOK。例)
searchhub://
twitter://post
2012-02-27 00:08 via Tweetbot for iOS


通知センターへの登録が終わったらMyScriptsに戻ってチェックマークを外します。
2012-02-27 00:10 via Tweetbot for iOS


“MyScripts (Unit Kay 350円 評価★★★★ 6件の評価 0.7MB)” http://t.co/YPkryGji #SAppInf http://t.co/x9EfMh42
2012-03-02 22:37 via Tweet Button

MyScriptsで後で読む

MyScriptsで後で読む1
var urls=LOAD_JSON(“URL Stock”);
if(urls==null){
urls=new Array();
}
urls.push(TEXT);
SAVE_JSON(“URL Stock”,urls);
TEXT;
2012-02-28 12:24 via Tweetbot for iOS


MyScriptsで後で読む2(よりシンプルに)
var urls=LOAD_JSON(“URL Stock”);
urls.join(“n”);
2012-02-28 21:44 via Tweetbot for iOS


MyScriptsで後で読む3
SAVE_JSON(“URL Stock”,null);
“Cleared!”;
2012-02-28 12:26 via Tweetbot for iOS


「MyScriptsで後で読む」1〜3をすべて(デバッグ表示)で登録。名前は任意ですが例えば、
1:Add to URL Stock
2:List URL Stock
3:Clear URL Stock
とします。
2012-02-28 12:31 via Tweetbot for iOS


【使い方】
1.「Add to URL Stock」にチェックを付けて、別アプリでURLを連続してコピーします。URLが保存されます。
2. MyScriptsに切り替えて「List URL Stock」を実行すると、保存済みのURLが表示されます。
2012-02-28 12:37 via Tweetbot for iOS


保存済みのURLを削除したいときは、MyScriptsから「Clear URL Stock」を実行します。
2012-02-28 12:39 via Tweetbot for iOS


“MyScripts (Unit Kay 350円 評価★★★★ 6件の評価 0.7MB)” http://t.co/YPkryGji #SAppInf http://t.co/x9EfMh42
2012-03-02 22:37 via Tweet Button

MyScriptsツイート集その2

まとめてみました。参考にどうぞ。

その他の関連ツイートもご覧下さい。

スクリプトツイート集」 「その1

MyScriptsツイート集

最近のMyScripts関連のツイートをまとめてみました。参考にどうぞ。(MyScripts&GetTweetAsHtmlの応用技のアクションはopenurlです)

MyScripts スクリプトツイート集

ツイートしたスクリプトの例をまとめてみました。参考にどうぞ。通知センター対応クリップボード履歴がなかなか便利です。

(「openurl」と「実行」アクションはカミナリのボタンを指しています。あと、絵文字が化けているかもしれません。Webページのソース表示では「表示」アクションを、ブックマークレット変換では「コピー」アクションを選択してください。)

GoogleカレンダーAPIで終日の予定を登録する

NSDateComponentsを使って年月日のみを有効にします。

[sourcecode language=”cpp”]
GDataEntryCalendarEvent *newEvent = [GDataEntryCalendarEvent calendarEvent];
GDataDateTime *startDateTime = [GDataDateTime dateTimeWithDate:salesDate
timeZone:[NSTimeZone systemTimeZone]];

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:salesDate];
[startDateTime setDateComponents:comps];
GDataWhen *when = [GDataWhen whenWithStartTime:startDateTime
endTime:nil];

[newEvent addTime:when];
[/sourcecode]