#author("2023-03-12T20:34:33+09:00","default:post","post")
#author("2023-03-13T11:36:40+09:00","default:post","post")
----
#contents
----

*概要 [#k2672d50]

ヘッドラインでRSSを読んだ場合に、記事に¥_a[URL]でリンクが貼られますがそのままではクリックしてもブラウザが開きません、里々搭載ゴーストも対応して無い物が多いのでサンプルを乗せます。
つつき反応でで即時¥![execute,headline,sequential]を実行するとRSSリーダーとしていい感じになります。


※SSPで¥_aにURLが入っていてクリックしても自動でブラウザが開かないのは仕様です、リファレンス系サイトの更新不備の様です。2007/04/26


**サンプルコード1 [#j27c2315]

¥_a[]で指定されたURLを開くようにするだけの場合下記の追加を行うだけでよいです。ヘドラインセンサのRSSだけでなく¥_aでURLを指定した場合の全てが対象になります。ポストと狛犬ベースなら、dic02_Event.txt の#選択肢辺りに追加すれば良いでしょう。 

 *OnAnchorSelect
 >OnAnchorSelect.URL【タブ】(compare_head,(R0),http://)||(compare_head,(R0),https://)
 >(R0)
 
 *OnAnchorSelect.URL
 \0\j[(R0)]

ただしこの方法では、1つの記事選択後にバルーンが閉じるので選択後もバルーンを残したい場合は OnAnchorSelect.URL を下記の様にして下さい。 

 *OnAnchorSelect.URL
 $スクリプトの一番頭【タブ】\C
 \0\j[(R0)]


**サンプルコード2 [#c159a54c]
独自デザインのRSS記事選択メニューを出したい場合に参考にして下さい。

Disc-2などでDAE用となってるRSS関連の下記イベントですがSSPでも呼ばれてました、このイベント利用して記述します。


|OnRSSBegin|取得開始が指示された際に発生。|R0|対象のページ名|
|||R1|対象のURL|
|OnRSSComplete|取得が成功した際に発生。|R0|対象のページ名|
|||R1|対象のURL|
|||R2,(R3,R4,,,R*)|RSSをタイトル、URLで1バイト区切り|
|OnRSSFailure|取得が失敗した際に発生。|R0|失敗理由|


上記イベント対応コードがかかれていない場合も、通常のヘッドラインセンサイベントが呼ばれますのでRSS処理は大きな問題にはなりません。

-20行以上の記事があった場合"…他"で済ましてます。~
-タイムアウト周り等はお好みで変更して下さい。~
-行頭が:でなく¥0にしてるのはスコープ切替時挿入スクリプト回避の為です。この方法は不具合を利用してたようです$自動挿入ウェイトの倍率を使用すれば必要なし~
-不安定な挙動をしていたので回避の為に回りくどい書き方になっている部分があります。
この処理は里々Mc134-901以降が必要です。~

不具合があったら修正してもらえると助かります。 

 *OnRSSBegin
 :\_q■(R0)\n[half]
 RSSを取得中です\_q
 $自動挿入ウェイトの倍率【タブ】0%
 
 *OnRSSComplete
 :\b[2]\![set,choicetimeout,-1]\![set,balloontimeout,-1]\_q■(R0)\n[half]\_n
 $i【タブ】0
 $,【タブ】(バイト値,2) 
 $引数区切り追加【タブ】(,)
 >OnRSSComplete.Loop
 
 *OnRSSComplete.Loop
 $i【タブ】(calc,(i)+1)
 >OnRSSComplete.Max【タブ】(i)>=21	
 >OnRSSComplete.Bottom【タブ】(split(,)(R(calc,(i)+1))(,)(バイト値,1))!=3
 \0\_a[rss(バイト値,1)(S1)]\_?(S0)\_?\_a
 >OnRSSComplete.Loop
 
 *OnRSSComplete.Max
 \0…他
 >OnRSSComplete.Bottom
 
 *OnRSSComplete.Bottom
 $引数区切り削除【タブ】(,)
 $S【タブ】(R1)
 $自動挿入ウェイトの倍率【タブ】100%
 \0\_n\n[half]\q[サイトを開く,OnRSSComplete.SiteOpen]
 \q[閉じる,RSS閉じる]\_q\e
 
 *OnRSSComplete.SiteOpen
 \0\j[(S)]
 
 *OnRSSFailure
 :RSS取得失敗しました
 :原因は「(R0)」です
 
 *RSS閉じる
 
 *OnAnchorSelect
 >OnAnchorSelect.URL【タブ】(compare_head,(R0),http://)
 >OnAnchorSelect.RSS【タブ】(compare_head,(R0),rss(バイト値,1)http://)
 >OnAnchorSelect.URL【タブ】(compare_head,(R0),http://)||(compare_head,(R0),https://)
 >OnAnchorSelect.RSS【タブ】(compare_head,(R0),rss(バイト値,1)http://)||(compare_head,(R0),rss(バイト値,1)https://)
 
 *OnAnchorSelect.URL
 \0\j[(S1)]
 
 *OnAnchorSelect.RSS
 (nop,(split,(R0),(バイト値,1))==2)
 $スクリプトの一番頭【タブ】\C
 \0\j[(S1)]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS