AlfredWorkflowで遊ぶページ

Lesson8. RSSニュースを検索する

ワークフローのサンプル動画

開発メモ

ワークフロー

1.%エンコードしてURLを生成する

 早速、Googleニュース検索のRSSを手打ちしてみたら日本語の検索がうまくないようです
 試しにUTF-8で%エンコードしたら問題なく取得できました
 Lesson4で実装したnkfを利用すればOKですね

2.RSSを取得する

 Lesson7と同様にcURLでRSSを取得します
 今回は、一旦RSSを変数で受けるようにしてみました
 特に問題なく、後続のタグ抽出ができました
 Lesson7はなにが悪かったのかな、まあいいか

3.RSSからタグの内容を取得する

 こちらもLesson7と同様にsedとgrepでタグの中身をとりだしています
 結局、タイトルが、『記事のタイトル ー
 』という構成だったので
 ハイフンの前を出力のtitleに、後ろをsubtitleにセットすることにしました
 下記のコードが、『-』で分割するものです

 arry=(${title[i]//-/ })

4.JSON出力フォーマットのXMLを作成する

 こちらもLesson7と同様です
 上記の分離を受けてtitleに記事のタイトルをsubtitleにニュース発信元をセットしています
 ちなみにsubtitleは『ニュース発信元 - 発信日』という感じの構成です
 
 RunScript
 

背景

Lesson7のRSSツールの応用です。大きな違いは検索するワードをパラメータとしてもらうぐらい
googleニュースの検索用RSSを発見したので作ってみました

取扱説明

機能:

 googleニュースのキーワード検索を行う

インストール:

 1.alfredworkflowをダウンロード
 2.ファイルをダブルクリックしてワークフローに登録

使い方:

 Alfredから『ニュース』+検索ワード

修正履歴

ver1.1(2021-03-28):

・ScriptFilterのJSONフォーマットの編集をワンライナーから1行1プロパティーに変更

 修正前

 json=$json'{"title":"'${arry[0]::24}'","subtitle":"'${arry[1]}' - '${pdate[i]:9:4}.${pdate[i]:6:3}.${pdate[i]:4:2}'","arg":"'${link[i]}'"}'


 修正後

  json=$json'{"title":"'${arry[0]::24}'",'
  json=$json'"subtitle":"'${arry[1]}' - '${pdate[i]:9:4}.${pdate[i]:6:3}.${pdate[i]:4:2}'",'
  json=$json'"arg":"'${link[i]}'"}'

ver1.2(2021-04-04):

シェルスクリプトをbashからzshに変更

ver1.3(2021-05-16):

zshで変数内置換後の配列格納の際に空白で分割されない不具合に対応

変更前

   arry=(${title[i]//-/ })


変更後

   arry=(`echo ${title[i]/-/ }`) 


 『//』を『/』に変更した部分は、初めの『-』だけで分割するようにしたものです
 ニュース発信元の文字列に『-』があるものがあったので、合わせて修正しました


 ちなみにzshのスクリプトに以下のように、オプションを指定をする方法もあるそうです

setopt SH_WORD_SPLIT



トップページに戻る