if URLType=":home"{
objprm 0,""
sdim t
t =" .-- │"+AppName+" ver"+AppVer+"\n"
t+=" =::--+==+= .*+#*. │"+str(sysinfo(35)/1024/1024)+"MB 利用可能\n"
t+=" ::-=--=.+=*++** ++#% ├───────────\n"
t+=" ---------=+=+**= :**. .=- │<機能>\n"
t+=" :-==+==++++**#= =*+ -*+++=- │URLを入れて移動\n"
t+="-: =* **==:-:=. │文字を入れて検索\n"
t+=" :+% -*+=-:-:-. │\n"
t+=" --++=+*##+ -*+=-:--= │:home - この画面\n"
t+=" =::-=:==+++*#*= *+=--== │:news - ニュース\n"
t+=" --:=--:==++*+*##*: :++=+ │:rss/* - *をRSSで開く\n"
t+=" +=-=-==-=+=++**##*# *+ │:raw/* - *の接続情報\n"
t+=" +==-=-=++=*****###* │:say - 音声読上げ\n"
t+=" ++*++=++*+***#####* │\n"
t+=" =*+*=*+*****#####+: │\n"
t+=" -*#+#****####*#+. │\n"
t+=" +######*#*+*. │\n"
t+=" :=##*-: │:about - 各種情報\n"
t+=" ─────────────────┴─┬─────────"
t+=" https://tentmochi.com/tool/LychiBrowser│(c)2026 てんともち"
}else:if URLType=":say"{
SetTitle "SAPIをロード中"
if IsCanUseSAPI{
word=RenderText
strrep word,"-",""
strrep word,"#",""
strrep word," ",""
strrep word," ",""
strrep word,"*",""
strrep word,"[",""
strrep word,"]",""
strrep word,"(",""
strrep word,")",""
strrep word,"■",""
strrep word,"◆",""
strrep word,"□",""
strrep word,"◇",""
strrep word,":",""
strrep word,";",""
strrep word,"/",""
spv->"Speak" word,1
}else{
objprm 1,"SAPIを利用できませんでした"
}
SetTitle ""
objprm 0,""
return
}else:if URLType=":about"{
objprm 0,""
sdim t
t =""+AppName+" ver"+AppVer+"\n"
t+=" ─────────────────────────────"
t+="\n"
t+=""+AppName+"は、Webページを文字だけで表示する\n"
t+="実験的なテキストブラウザです\n"
t+="\n"
t+=" ─────────────────────────────"
t+="■ 特徴\n"
t+={"- Cookie等の追跡を排除。
- CSSや画像や動画、広告などを読み込まない
- 通信量を節約できます
- RSSリーダに対応\n"}
t+=" ─────────────────────────────\n"
t+={"■ 注意
- r.jina.ai に依存しています
- 読み込みに時間がかかります
- 試験中などは、常駐させてはいけません
- 自分のものではないPCで実行するのはよくありません
- たとえこのソフトにバグや欠陥があったとしても、\n 開発元は責任を負いかねます
- Windows Defenderやブラウザにより、\n 「ウイルス」と誤判定されることがあります。\n これは、デジタル署名をしていないためです。
※デジタル署名とは、お金を払うことで、\n 安全だと証明をもらうことです。\n このソフトは個人が趣味で作ったいわゆる「野良ソフト」で\n あるため、デジタル署名をもらっていません。\n"}
t+=" ─────────────────────────────\n"
t+="■ ライセンスについて\n"
t+=" LychiBrowser は、v2.0より独自ライセンスから\n Apache 2.0にライセンスを変更しました。\n"
t+=" また、依存関係のライセンスがNOTICEファイルにあり、\n これを継承する必要があります。\n"
t+=" ───────────────────┬─────────\n"
t+="https://tentmochi.com/tool/LychiBrowser│(c)2026 てんともち"
}else:if 0=instr(URLType,0,":raw/"){
strrep URLType,":raw/",""
t="データを取得しています\n"
SetTitle t
objprm 1,t
await 100
neturl URLType
netfileinfo t,""
if stat!=0{
t+="[失敗] NetFileInfoに失敗しました"
}
}else:if 0=instr(URLType,0,":news"){
sdim tmp
split URLType,"/",tmp
if length(tmp)=1{
if length(Total_desc)<2{
objprm 1,"ニュースを取得中..."
sdim List
sdim Total_desc
sdim Total_Link
split Var_NewsURL,"@",List
repeat length(List)
if Var_NewsURL="" : continue
sdim desc
sdim link
await 100
rssload desc,link,List(cnt),100
if stat!=1 and stat!=2 and length(desc)!=0{
foreach desc
if desc(cnt)="" or link(cnt)="" {continue}
Total_desc(length(Total_desc))=desc(cnt)
Total_link(length(Total_link))=link(cnt)
loop
}
loop
dim tmp
repeat length(Total_desc)
tmp=rnd(length(Total_desc))
sdim kari_desc
sdim kari_link
kari_desc=Total_desc(tmp) : kari_link=Total_link(tmp)
Total_desc(tmp)=Total_desc(cnt) : Total_link(tmp)=Total_link(cnt)
Total_desc(cnt)=kari_desc : Total_link(cnt)=kari_link
loop
}else{
objprm 1,"キャッシュをロード中..."
await 100
}
sdim t
t=":news/n とすることで、n番目の記事を閲覧できます\n─────────────────────────────\n"
repeat length(Total_desc)
t+=""+str(cnt+1)+": "+Total_desc(cnt)+"\n"
if Var_isShowURLinList{
t+=Total_link(cnt)+"\n"}
t+="─────────────────────────────\n"
if strlen(t)>40000 {break}
loop
}else{
if length(Total_desc)=1{
t="ニュースがまだ取得されていません"
}else{
if tmp(1)="next" {
tmp(1)=str(last_rss_num+1)
if last_rss_num+1>length(Total_desc){tmp(1)="1"}
}
if tmp(1)="prev"{
tmp(1)=str(last_rss_num-1)
if last_rss_num<2{tmp(1)=str(length(Total_desc))}
}
if length(Total_desc)<int(tmp(1)) or int(tmp(1))<1 {
t="ニュース番号に対応する記事がありません\nニュース番号は1~"+length(Total_desc)+"です。"
}else{
last_rss_num=int(tmp(1))
Navigate(Total_link(int(tmp(1))-1))
objprm 0,":news/next"
objprm 1,"記事番号 :"+str(last_rss_num)+"/"+length(Total_desc)+"\n:news/n : n番目に\n:news/next : 次の番号へ\n:news/prev : 前の番号へ\n─────────────────────────────\n"+RenderText
return
}
}
}
}else:if 0=instr(URLType,0,":rss/"){
strrep URLType,":rss/",""
sdim desc
sdim link
rssload desc,link,URLType,100
switch stat
case 1
t+"\n[失敗] 取得に失敗しました"
swbreak
case 2
t+="\n[失敗] 指定されたURL「"+Var_NewsURL+"」は無効です"
swbreak
default
sdim t
foreach desc
t+=""+desc(cnt)+"\n"+link(cnt)+"\n─────────────────────────────\n"
loop
swbreak
swend
}else{
t ="そのような内部URLはありません:"+URLType
}
SetTitle ""
objprm 1,t