金曜ロードショーで放送予定の映画タイトルを表示してみた（Pythonista 3）

#1．はじめに

週末の楽しみといえば、金曜ロードショー！
でも、金曜当日に特に興味ない映画だと発覚した時の残念感。。。あの気持ちになりたくないw
公式HPを見れば万事解決だけど、いちいち開くのがめんどくさい！
ワンボタンで確認できるようにしたいなー。。。

なら作ってしまおう。
最近、Pythonistaというものを知ったので、勉強がてらに作ってみました。

#2．開発環境
* ios 13.3.1
* Pythonista 3

#3．処理手順
下記の手順をPythonistaで達成するようにしました。

* 金曜ロードショーの公式サイトにアクセス
* 作品ラインナップから「今後の放送ラインナップ」の映画の日時、タイトルを取得
* 取得した日時、タイトルを表示
* 任意で、金曜ロードショーの公式ページを開けるようにする

#4．処理詳細

まずは、必要なものをimportする。
console：「はい/いいえ」の画面をつかうのに使用
webbrowser：指定したサイトを開くのに使用
requests：指定したURLの情報を取得するのに使用
BeautifulSoup：スクレイピングに使用

```python
import console
import webbrowser
import requests
from bs4 import BeautifulSoup
```

金曜ロードショーのラインナップの情報を取得します。
※ラインナップの情報は、下図の赤枠内の放送日、タイトルです。
<img width="212" alt="IMG_2680.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341805/2e96a190-f4f7-5241-3c47-40848ebeab5b.png">

取得した放送日、タイトルは辞書にし、lineup_listリストに格納します。
※BeautifulSoup関連の説明は省きますm( _ _ )m

```python
req = requests.get('https://kinro.ntv.co.jp/lineup')
soup = BeautifulSoup(req.text, 'html.parser')

lineup_text = soup.find(attrs={'id': 'after_lineup'})

cap_list = lineup_text.find_all(attrs={'class': 'cap'})

lineup_list = [{
		'Date': cap.find(attrs={'class': 'date'}).get_text(),
		'Title': cap.find(attrs={'class': 'title'}).get_text()
	} for cap in cap_list]
```

lineup_list リストに格納されている放送日、タイトルを文字列に変換します。

```python
display_text = ''
	
for lineup in lineup_list:
	lineup_text = '◆' + lineup['Date'] + '\n' + lineup['Title'] + '\n\n'
	display_text += lineup_text
```

作成した文字列を表示し、公式HPを開くかどうかの「はい/いいえ」のボタンを表示します。
「はい」を選択した場合は、公式HPを開きます。
「いいえ」を選択したときは、ホーム画面に戻ります

※ホーム画面に戻る処理をするためには、Launcherというアプリが必要になります。
　(もしかしたらもっと良い方法があるかもしれません。。。)
　この方法は、下記サイトで知ることができました。
　https://reliphone.jp/post-15249/

```python
res = console.alert(display_text, 'サイトを開きますか？', 'はい', 'いいえ', hide_cancel_button=True)
	
if res == 1:
	webbrowser.open('https://kinro.ntv.co.jp')
else:
	webbrowser.open('launcher://homescreen')
```

実行するとこんな感じになります。
<img width="212" alt="IMG_2678.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341805/abcc856a-e83b-7e7d-52b5-e9ff4c6f81e9.png">

「はい」を押すと次の画面に遷移します。
<img width="212" alt="IMG_2679.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341805/b96e08ca-065c-abf1-2f16-9a5a5687b59c.png">

次は、作成したスクリプトをボタン1つで実行できるようにします。

#5．ワンボタンで起動できるようにする

Pythonistaには、ホーム画面にアイコンを配置できるのでそれを利用します。

作成したスクリプトを開いた状態で、右上のスパナマークをクリックし、Home Screenを押します。
<img width="212" alt="IMG_2681.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341805/c24407d5-4c62-5e3a-7676-ef92d12d342b.png">

名前、色を自分好みに変更したら、Continueを押す。
<img width="212" alt="IMG_2682.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341805/43bad09a-d112-7f02-6fb0-1cf691308fa0.png">

画面に表示されている手順に従う。
<img width="212" alt="IMG_2683.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341805/9881e229-2e26-fbef-7996-f266bd5700b0.png">

下記画面のように、ホーム画面に追加されました！
<img width="212" alt="IMG_2684.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341805/6e3dd313-844e-8a23-a590-d6430be5ddef.png">

これで、晴れて金曜ロードショーがワンボタンで確認できるようになりました。

#6．ソースコード

Gitにソースコードがあるので、良ければ参考に
https://github.com/sakagami0615/CheckFridayRoadshow

※Python3でも動作するソースも作成しました（main_python.py がそれです）