29
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonista3でちょっと休憩してニュースを聞く

Posted at

はじめに

iOS上で動作する革命的ものづくり環境「Pythonista 3」の魅力をとくと語る
でPythonista3が紹介されていて、おもしろそうなので私もインストールしました。
今回は学習のために簡単なスクリプトを作りました。
Pythonistaでfeedparserが使えるので、
【データサイエンスの基礎】pythonでRSSからデータ収集
のコードに無駄にiOSっぽい処理を追加しました。

コード

news_time.py
import feedparser
import speech
import notification
import re
import ui

# ボタンをタップした時の動作
def button_tapped(sender):
	sender.title = 'Stopped'
	speech.stop()

# UIの設定
view = ui.View()                                      
view.name = 'NewsTime'                                    
view.background_color = 'white'                       
button = ui.Button(title='STOP NEWS')
# ボタンを真ん中に配置
button.center = (view.width * 0.5, view.height * 0.5)
button.flex = 'LRTB'                                  
button.action = button_tapped                         
view.add_subview(button)                              
view.present('sheet')

# RSSをParse
RSS_URL = "https://headlines.yahoo.co.jp/rss/tokyomx-dom.xml"
news_dic = feedparser.parse(RSS_URL)

# speechで読み上げる
speech.say('ニュースでも聞いてって')
for entry in news_dic.entries:
	title = re.sub('(.+)','', entry.title)
	speech.say(title)

# 通知の設定:7200秒後に通知をスケジュールし、このスクリプトを呼ぶ
ret = notification.schedule("ちょっと休憩してニュースでも聞いたら", 7200, 'default','pythonista3://speech/news_time?action=run')

流れは次のようになっています。
(1)UIの作成。かなり適当で音声再生を止めるボタンのみ配置しています。
(2)ニュースの取得。RSSから見出しを取得しています。
(3)読み上げ。speech.sayで読み上げてくれます。
(4)通知の設定。notificationで7200秒(2時間)後に通知が来るようにしています。
また、pythonista3://speech/news_time?action=runで通知を開いた際に、
再度このスクリプトを実行するようにアクションを設定しています。

テスト

スクリプトを実行します。初回はとりあえず、聞いておきましょう。
そして2時間後、、、
DE40436C-AEE3-48CF-8551-8FF58CD50845.png

通知が来た!そろそろ休憩です。タップ!

E2E999FD-59AA-4F12-B611-E71BA4A3DF67.jpeg

ちなみにこの画面で音声が流れています。
真ん中の「STOP NEWS」をタップすると音声が止まります。

最後に

無限ループになるので、もういいやってなったら通知を開かずに消してください。
このスクリプトはあまり役に立ちませんが、面白いことができそうだと思いました。

参考サイト

ひとりぶろぐ
【データサイエンスの基礎】pythonでRSSからデータ収集
Pythonista Modules

29
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?