HSPプログラムコンテストの作品をリスト&カウント

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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX