(しょぼいカレンダー)番組名から、番組名とTIDを取得するサンプル

(しょぼいカレンダー)番組名から、番組名とTIDを取得するサンプル。出力のみUnicode(UTF-16)対応。入力はShift_JISですが、ちょっと改造すればUnicode(UTF-16)対応にできるかと。

(しょぼいカレンダー)番組名から、番組名とTIDを取得するサンプル。出力のみUnicode(UTF-16)対応。入力はShift_JISですが、ちょっと改造すればUnicode(UTF-16)対応にできるかと。

  • hk1v
  • 2013/6/24 3:24
  • タグ:
  • タグはありません
#include "encode.as"
#uselib "urlmon.dll"
#func URLDownload "URLDownloadToFileA"int,str,str,int,int
#uselib "wininet.dll"
#func DeleteUrlCacheEntry "DeleteUrlCacheEntryA" str
#include "user32.as"
#include "gdi32.as"
#include "kernel32.as"
#define DT_WORDBREAK 0x00000010
#define DT_EDITCONTROL 0x00002000
#module
// TsubuyakiSoup.as
#defcfunc form_encode str p1, int p2
/*
09 az AZ - . _ ~
*/
fe_str = p1
fe_p1Long = strlen(p1)
sdim fe_val, fe_p1Long*3
repeat fe_p1Long
fe_flag = 0
fe_tmp = peek(fe_str, cnt)
if (('0' <= fe_tmp)&('9' >= fe_tmp)) | (('A' <= fe_tmp)&('Z' >= fe_tmp)) | (('a' <= fe_tmp)&('z' >= fe_tmp)) | (fe_tmp = '-') | (fe_tmp = '.') | (fe_tmp = '_') | (fe_tmp = '~') :{
poke fe_val, strlen(fe_val), fe_tmp
} else {
if fe_tmp = ' ' {
if p2 = 0 : fe_val += "&"
if p2 = 1 : fe_val += "%20" //
} else {
fe_val += "%" + strf("%02X",fe_tmp)
}
}
loop
return fe_val
#deffunc mesWptr int ptr
//
rect = ginfo_cx, ginfo_cy, ginfo_winx, ginfo_winy
DrawTextW hdc, ptr, -1, varptr(rect), 0
// redraw
mref BMSCR, 96 + ginfo(3)
redraw (BMSCR(19)!=1)
//
lstrlenW ptr
GetTextExtentPoint32W hdc, ptr, stat, varptr(rect)
pos ginfo(22), ginfo(23) + rect(1)
return
#global
//
input_name = ""
;input_name = ""
// UTF-8
sdim utf8, 1024
sjis2utf8n utf8, input_name
url = "http://cal.syoboi.jp/json?Req=TitleSearch&Search="+form_encode(utf8, 1)+"&Limit=15"
URLDownload 0, url, "tmp.json", 0, 0
notesel buf
noteload "tmp.json"
newcom mssc, "MSScriptControl.ScriptControl"
mssc("Language") = "JScript"
/*
js = {"function getTID(p1){
var json = eval("("+p1+")");
var res = "";
for(var key in json.Titles){
res += key.replace(/[\\n\\r]/g,"")+"\\r\\n";
res += json.Titles[key].Title+"\\r\\n";
}
return res;
}"}
*/
js = {"function getTID(p1){
var json = eval("("+p1+")");
var res = "";
var list = new Array();
var i = 0;
for(var key in json.Titles){
list[i] = { tid: parseInt(key, 10) , title: json.Titles[key].Title };
i++;
}
return list;
}"}
mssc->"addCode" js
comres res
mssc->"Run" "getTID", buf
repeat res("length")
pArray = res(""+cnt+"")
// unicode.使
// SJIS
pTitle = pArray(".title")
mes "TID: "+pArray("tid")
//
mesWptr pTitle("bstrptr") // unicode
loop
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX