Enterキーで選択中の作品ページを開きます。
マイナスの文字が化けているかも。33行目のマイナス、78行目の "<!–段落始まり–>" はHTMLコメントです。
gistにもあります https://gist.github.com/skymonsters-Ks/695bf2fb35bd7074413651e96fcf49bd
Enterキーで選択中の作品ページを開きます。
マイナスの文字が化けているかも。33行目のマイナス、78行目の "<!–段落始まり–>" はHTMLコメントです。
gistにもあります https://gist.github.com/skymonsters-Ks/695bf2fb35bd7074413651e96fcf49bd
#include "hspinet.as" #define URL_BASE "http://dev.onionsoft.net/seed/info.ax?id=" netinit if stat : dialog "connection error" : end ; 年度 year = "2017" ; 2012年より前は非対応 ; 部門 category = "n", "s", "d" cate_name = "一般", "HSPTV", "Dish" sdim listBuf, 32000 neturl "http://hsp.tv/contest" + year + "/" num_str = "(" num_total = 0 foreach category : cate_id = cnt num_cate(cate_id) = 0 repeat , 1 fn = "list_" + category(cate_id) + cnt + ".html" request fn if stat : break title "downloading " + fn gosub *downloadLoop gosub *getWork loop num_str += strf("%s:%d, ", cate_name(cate_id), num_cate(cate_id)) loop poke num_str, strlen(num_str) – 2 title strf("作品数:%d %s)", num_total, num_str) objsize 640, 480 listbox listid, 0, listBuf notesel listBuf onkey gosub *inKey stop *inKey if lparam >> 30 : return if wparam == 13 { ; Enter noteget ts, listid getstr id, ts, 1, ':' exec URL_BASE + int(id), 16 } return #deffunc request str _fn netfileinfo info, _fn if stat { dialog "info error" end } getstr ts, info if instr(ts, 0, "404") >= 0 { return 1 } netrequest_get _fn return 0 *downloadLoop netexec res if res < 0 { neterror estr dialog "download error: " + estr end } if res > 0 { netgetv buf return } await 50 goto *downloadLoop *getWork pt = instr(buf, 0, "<!–段落始まり–>") repeat t = instr(buf, pt, "<a name=") if (t < 0) : break pt += t getstr id, buf, pt + 9, 34 ; " url = URL_BASE + id pt += instr(buf, pt, url) getstr name, buf, pt + strlen(url) + 2, 60 ; < listBuf += strf("#%05d: %s\n", id, name) num_total++ num_cate(cate_id)++ loop return