OnSystemUnload.NEWS
{
ERASEVAR(GETVARLIST('newslist_'))
ERASEVAR('news_name_array','news_value_array','news_count_array','news_max_pages','news_get_state')
}
Menu_NEWS
{
news_get_state = IARRAY()
news_get_state[0] = 0
news_get_state[1] = 0
<<"
ち 「\![execute,http-get,http://www.imamoe.jp/,--file=imamoe_top.html,--async=OnNewsMenuGet1]\![execute,http-get,http://imamoe.jp/kobeimamoe/,--file=official_top.html,--async=OnNewsMenuGet2]\0\s[0]いっちゃん新しいニュースを取ってくるよ。
">>
}
#define IM_FILE 'var/imamoe_top.html'
#define OF_FILE 'var/official_top.html'
ProcNewsGet
{
if (news_get_state[0] == 0) || (news_get_state[1] == 0) {
return
}
if (news_get_state[0] == 1) && (news_get_state[1] == 1) {
'\![raise,OnNewsMenuGet]'
}
else {
if (news_get_state[1] != 1) {
"\![raise,OnNewsMenuGetFailure,%(news_get_state[1])]"
}
else {
"\![raise,OnNewsMenuGetFailure,%(news_get_state[0])]"
}
}
}
OnNewsMenuGet1Failure
{
news_get_state[0] = reference[0]
ProcNewsGet()
}
OnNewsMenuGet2Failure
{
news_get_state[1] = reference[0]
ProcNewsGet()
}
OnNewsMenuGetFailure
{
<<"
ち04「あかん、なんかおかしなこと起きたみたいや。
へ10「原因は……%(SHIORI3FW.HTTPCodeToMessage(reference[0]))だな。
">>
}
OnNewsMenuGet1
{
news_get_state[0] = 1
ProcNewsGet()
}
OnNewsMenuGet2
{
news_get_state[1] = 1
ProcNewsGet()
}
OnNewsMenuGet
{
newslist_いまもえJP = ParseNews('var/imamoe_top.html',5)
newslist_いまいち萌えない娘公式 = ParseNews('var/official_top.html',5)
news_name_array = ('いまもえ情報')
news_value_array = ('いまもえJP_いまいち萌えない娘公式')
news_count_array = (7,7)
news_add_array = (0,0)
news_max_pages = ARRAYSIZE(news_name_array)
reference[0] = '0'
OnShowNewsList()
}
ParseNews
{
_name = _argv[0]
_limit = _argv[1]
_s = FSIZE(_name)
if _s < 0 || _s > 300000 {
reference[0] = 'fileio'
OnNewsMenuGetFailure
return
}
void FCHARSET(1) //UTF8
if FOPEN(_name,'r') == 0 {
reference[0] = 'fileio'
OnNewsMenuGetFailure
return
}
_html = ''
while 1 {
_h = FREAD(_name)
if _h == -1 {
break
}
_html += _h
_html += CHR(0xd,0xa)
}
void FCLOSE(_name)
void FCHARSET(1) //UTF復帰
void RE_GREP(_html,']+?/\?p=[0-9]+".*?>.+?')
_list = RE_GETSTR()
_n = ARRAYSIZE(_list)
for _i = 0 ; _i < _n ; _i++ {
if _i >= _limit {
_list[_i] = IARRAY
}
else {
void RE_SEARCH(_list[_i],']+?/\?p=[0-9]+)".*?>(.+?)')
_av = RE_GETSTR()
_av[2] = RE_REPLACE(_av[2],'<.+?>','')
_list[_i] = "%(_av[1])|%(_av[2])"
}
}
_list
}
OnShowNewsList
{
_pos = TOINT(reference[0])
_name = news_value_array[_pos]
_count = TOINT(news_count_array[_pos])
_add = TOINT(news_add_array[_pos])
'\0\s[0]\b[2]\![set,choicetimeout,0]\_q'
--
'\_a[http://www.imamoe.jp/]いまもえ\_aニュースや。'
--
_script = '\n\n[half]|'
_n = ARRAYSIZE(news_name_array)
for _i = 0 ; _i < _n ; _i++ {
if _name == news_value_array[_i] {
_script += "\f[bold,true]%(REPLACE(news_name_array[_i],'_','/'))\f[bold,default]|"
}
else {
_script += "\q[%(REPLACE(news_name_array[_i],'_','/')),OnShowNewsList,%(_i)]|"
}
}
_script += ' |\q[地域設定,Menu_REGIONCONFIG]|\n'
_name_array = SPLIT(_name,'_')
_nac = ARRAYSIZE(_name_array)
for _na = 0 ; _na < _nac ; _na++ {
_list = EVAL("newslist_%(_name_array[_na])")
_script += horzrule(_name_array[_na])
_n = ARRAYSIZE(_list)
_listcount = 0
for _i = 0 ; _i < _n ; _i++ {
_av = SPLIT(_list[_i],'|',2)
if STRLEN(_av[1]) > 0 {
_script += "\![*]\_a[%(_av[0])]%(SHIORI3FW.MakeShortText(_av[1],46))\_a\n"
_listcount += 1
}
}
for _i = _listcount ; _i < _count ; _i++ {
_script += '\n'
}
}
for _i = 0 ; _i < _add ; _i++ {
_script += '\n'
}
_script += '\n[half]'
_script += 半分メニュー開始()
_script += 半分メニュー('←戻る','OpenMenu')
_script += 半分メニュー('×閉じる','Menu_CANCEL_NOTALK')
_script += 半分メニュー終了()
_script += '\_q'
_script
}
Menu_REGIONCONFIG
{
<<"
ち05「\b[2]地域設定や。見たい地域を選んでな。
ち 「\n[half]%(メニュー('兵庫県','Menu_REGIONCONFIG'))
へ10「……選ぶも何も、一択のように見えるんだが。」
ち03「せやけど、このへん以外のこと知らへんのやもん。」
待ちなしへ11「絶対色々なめてるだろ!」
ち04「そんなん言われても……」
待ちゼロち 「\_q\n[half]%(メニュー('←戻る','OnShowNewsList',news_value_array[0],news_count_array[0]))
待ちゼロち 「%(メニュー('×閉じる','Menu_CANCEL_NOTALK',news_value_array[0],news_count_array[0]))\_q
">>
}