HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
1011
かさエラーも出ずに消えるので、どこが間違っているのか分からない9解決


かさ

リンク

2021/10/11(Mon) 18:22:58|NO.94127

例えば、jsongetiとjsongetsを間違えた時も何もエラーが出ずに消えました。
今制作しているプログラムもtwitterのapiをたたいて、
数秒たったらまたapi叩くというものを作っているのですが、
最初は順調に動くのですが、数分たったら何もエラーが出ず消えてしまいます。
おま環なのかhspinetが悪さしているのかソースが悪いのか全然分かりません



この記事に返信する


TOMATO

リンク

2021/10/11(Mon) 18:33:16|NO.94128

> ソースが悪いのか全然分かりません
最低限のソースがないと…回答者も分かりません。

TsubuyakiSoupのjsonパーサーを使ってみるのはどうでしょ?
https://github.com/kanahiron/TsubuyakiSoup_mod/blob/master/jsonParse.as



かさ

リンク

2021/10/11(Mon) 18:57:05|NO.94129

ソースにベアラートークンなどが入っているので…トークン消してもいいならソース出せるんですけどね



Crystal

リンク

2021/10/11(Mon) 23:06:32|NO.94135

トークンのとこだけxxxxxみたいにして、他の人が自身のトークンに置き換えれば
いいのでは無いでしょうか?



かさ

リンク

2021/10/12(Tue) 01:15:17|NO.94136

トークンはtwitterの開発者登録して取得してください
このプログラムのrepeat~loop間で数分から数十分待つと落ちます

#include "hspinet.as" #include "encode.as" #include "hsp3util.as" ; ; サーバー上のファイル情報を得る ; screen 0,1300,120 title "速報" *nn color 0,0,255 boxf count = 0 netinit if stat : dialog "ネット接続できません。" : end netheader "Authorization: Bearer //ここにトークン" neturl "https://api.twitter.com/1.1/search/" repeat netrequest_get "tweets.json?q=from%3Anhk_news+%E3%80%90%E9%80%9F%E5%A0%B1+JUST+IN+%E3%80%91&lang=ja&locale=ja&result_type=recent&count=1" repeat netexec res if res : break await 100 loop netgetv json jsonopen json,json jsongetobj json,"statuses",json jsonnext json,json,2 jsongetobj json,"text",json jsonout out,json out = utf8n2sjis(out) out = strmid(out,18,instr(out,0,"#nhk_news")-18) outin = instr(out,20," ") out01 = strmid(out,0,20+outin) out02 = strmid(out,20+outin,strlen(out)-20-outin) if outin = -1 { out=out01 out02="" } if out = "" { await 900000 goto *nn } if out = out1 { } else { goto *new } out = out1 await 5000 loop stop *new gosub *op color 255,255,255 : textmode 2,2 color 0,0,0 : pos 15,0 text 70 emes out01 pos 0, emes out02 await 5000 color 0,255,0 : boxf color 0,0,0 : pos 342,0 mes "ニュース速報/終",5 await 1000 color 0,255,0 : boxf await 2000 if count = 0 { count++ goto *new } else { goto *nn } *op out1 = out color 0,255,0 boxf pos 372 color 0,0,0 font "ヒラギノ角ゴシック W6",40,16,3 objcolor 255,255,255 mes "ニュース速報",5 await 100 color 0,255,0 boxf await 500 pos 372 color 0,0,0 mes "ニュース速報",5 await 500 color 0,255,0 boxf await 500 pos 372 color 0,0,0 mes "ニュース速報",5 await 500 color 0,255,0 boxf await 1000 return



TOMATO

リンク

2021/10/12(Tue) 08:51:56|NO.94139

>>94136

開発者用アカウントは2010年頃に取得していたので、試してみました。
午前5時ごろから3時間ぐらい動作させてみましたが、特に問題なく動作しました。

おそらくなんですが、JSON以外のデータを
jsonopenに渡されてしまっているのが原因ではないかと思います。
(通信エラー、サーバー側エラー、TwitterAPIの制限に抵触等...)

以下のように、JSONをダンプさせながら実行すれば、
落ちる瞬間前のJSONデータを捕捉できるので、
何か糸口が見えるかもしれません。

// ※ 一部だけ repeat netrequest_get "tweets.json?q=from%3Anhk_news+%E3%80%90%E9%80%9F%E5%A0%B1+JUST+IN+%E3%80%91&lang=ja&locale=ja&result_type=recent&count=1" repeat netexec res if res : break await 100 loop // データをダンプしておく netgetv json notesel json notesave "twitter" + cnt + ".json" jsonopen json,json jsongetobj json,"statuses",json jsonnext json,json,2 jsongetobj json,"text",json jsonout out,json



かさ

リンク

2021/10/15(Fri) 20:11:01|NO.94169

もともとはrepeat内にnetinitを入れていたのですが、もしかしてこれが原因だということはありますか?

あと関係がない話なのですが、wgetコマンドの-Nオプションや、curlコマンドの-zオプションのような
既存ファイルより新しい場合にだけダウンロードを行う方法はありますか?

count = 0 repeat netinit if stat : dialog "ネット接続できません。" : end netheader "Authorization: Bearer //ここにトークン" neturl "https://api.twitter.com/1.1/search/" netrequest_get "tweets.json?q=from%3Anhk_news+%E3%80%90%E9%80%9F%E5%A0%B1+JUST+IN+%E3%80%91&lang=ja&locale=ja&result_type=recent&count=1" repeat netexec res if res : break await 100 loop



TOMATO

リンク

2021/10/15(Fri) 20:49:29|NO.94170

> もともとはrepeat内にnetinitを入れていたのですが、もしかしてこれが原因だということはありますか?

1回だけってマニュアルに記述があります。
https://docs.hsp.moe/3.6/reference/hspinet/netinit/

以下のようなコードを書くとシステムエラーになるので、
何度も呼ぶような想定になっていないと思います。


#include "hspinet.as" repeat 1000 netinit loop

OpenHSPのコードを見ても、何回も new することになるので、
確実にメモリリークを引き起こしますね。
http://dev.onionsoft.net/trac/openhsp/browser/trunk/plugins/win32/hspinet/main.cpp#L90



あめ

リンク

2021/10/16(Sat) 18:52:12|NO.94174

どうしようもないバグだな



かさ

リンク

2021/10/19(Tue) 22:19:12|NO.94209

とりあえず落ちないようにはなりました。
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.