2008年06月17日
YouTubePlaylistMaker
掲題のようなものを作ってみようかなと思った...(YouTube でなく You tune とすべきかもしれないけれど w)
-----
URL だけ取っておけば タイトルは後で調べて プレイリスト形式にできるというスクリプト
-----
というわけでリスト
-----
そうするとチャットに(タイトルを追加した)プレイリストを出力します
-----
時刻とか入ってしまうのでエディタで切り取って下さい w
-----
URL だけ取っておけば タイトルは後で調べて プレイリスト形式にできるというスクリプト
-----
というわけでリスト
//使い方は このスクリプトを適当に作ったプリムの中に入れ 調べたい URL をずらずら書き並べたものを url_list というノートに入れ(スクリプトを入れた)プリムの中に入れ そのプリムをクリック
// File: YouTubePlaylistMaker.lsl
// Date Author number of nodes
// 2008/6/17 walkinglint 77
// 2008/6/17 walkinglint 44 (dance_ring->YouTubePlaylistMaker)
// 2007/9/11 walkinglint 83
// 2007/9/10 walkinglint 82
//
string notecard_name = "url_list";
integer read_line;
key query_id;
list url_list = [];
integer i;
integer j;
string url;
list convert_list;
integer url_num;
key requestid;
activate_load_and_convert() {
url_list = [];
llOwnerSay("Now Loading..");
read_line = 0;
if (llGetInventoryType(notecard_name) == INVENTORY_NOTECARD) {
query_id = llGetNotecardLine(notecard_name, read_line); // request first line
} else {
llOwnerSay("Notecard " + notecard_name + " is not found");
}
}
convert() {
url_num = 0;
convert_body();
}
convert_body() {
if (url_num < llGetListLength(url_list)) {
requestid = llHTTPRequest(llList2String(url_list, url_num),
[HTTP_METHOD, "GET"], "");
}
}
// http://www.secondforum.de/thread.php?threadid=2847
string llReplaceString(string source, list replace) {
while (llSubStringIndex(source, llList2String(replace, 0)) != -1) {
integer index = llSubStringIndex(source, llList2String(replace, 0));
string temp = llDeleteSubString(source, index,
(index + (llStringLength(llList2String(replace, 0)) - 1)));
source = llInsertString(temp, index, llList2String(replace, 1));
}
return source;
}
default {
on_rez(integer start_param) {
llResetScript();
}
touch_start(integer total_number) {
activate_load_and_convert();
}
dataserver(key queryid, string data) {
if (queryid == query_id) {
if (data != EOF) {
// process data
if (llStringLength(data) != 0) {
url_list = url_list + [data];
}
read_line++;
query_id = llGetNotecardLine(notecard_name, read_line);
} else {
llOwnerSay("Loading complete.");
convert();
}
}
}
http_response(key request_id, integer status, list metadata, string body) {
string title = "";
if (request_id == requestid) {
integer i = llSubStringIndex(body, "YouTube - ");
integer j = llSubStringIndex(body, "/title>");
if ((i != -1) && (j != -1)) {
title = llGetSubString(body, i + llStringLength("YouTube - "), j - 2);
title = llReplaceString(title, [""", "\""]);
}
llOwnerSay(title + "," + llList2String(url_list, url_num));
url_num++;
convert_body();
}
}
}
-----
そうするとチャットに(タイトルを追加した)プレイリストを出力します
-----
時刻とか入ってしまうのでエディタで切り取って下さい w
Posted by walkinglint at 22:02│Comments(0)
│walking のスクリプティング講座