75才からのモバイルアプリ作成

MIT App Inventorを使ったアプリ作成

MIT App Inventorで遊ぶ (THE MOVIE DB 6)

2024-06-07 07:16:19 | 日記

映画の批評を見ることができるようにした。メインページ(Screen1)で選択した言語で批評を検索するべきだが、英語以外の言語の場合、批評がほとんどないため、英語の批評を表示することとした。

なお、批評を書いた批評家の名前をクリックするとThe Movie DBのウエッブサイトに飛ぶことができる。さらに、同ウエッブサイトで、批評家の名前をクリックすると、その批評家の活動について知ることができる。

アプリ実行のビデオ:

スクリーンのデザイン:

追加したReview Screenのみ。Tablet sizeでキャプチャー。

                                              

ブロック・コード:

追加ブロックのみ。

<Screen1>

映画一覧のListViewの列をクリックすると、映画のID、ポスター画のパス、映画のタイトルをreviewScreenへ渡し、reviewScreenへ遷移する。

<reviewScreen>

1. メインスクリーン(Screen1)へ戻るボタンの動作設定。

2. Screen1より受け取った映画のID、ポスター画のURLパス、映画のタイトルを変数に格納。

映画のIDを使って、所定のURLに対しGETリクエストを行う。

3. データを取得できたら(responseCodeでのチェックが抜けているが)、関係する変数をリセットの上、各データを抽出する関数を実行する。最後にそれらをリスト形式で統合し、ListViewで表示する。

4. 批評家のリスト(results => author)を作成。以下同様に、批評本文(results => content)、批評を作成した日付(results => created_at)、URL (results => url) の各リストを作成。(赤字は当方で変更した)

取得するJSONデータの例。

{
   "id":823464,
   "page":1,
   "results":[
      {
         "author":"Manuel São Bento",
         "author_details":{
            "name":"Manuel São Bento",
            "username":"msbreviews",
            "avatar_path":null,
            "rating":7
         },
         "content":"FULL SPOILER-FREE REVIEW @ https://fandomwire.com/godzilla-x-kong-the-new-empire-review/\r\n\r\n\"Godzilla x Kong: The New Empire is a “more” version of the previous installment. More Hollow Earth, more Titans, more gloriously giant fights filled with fantastic visual effects… and much more nonsense too.\r\n\r\nThrough an openly absurd narrative, Adam Wingard takes the charm and chemistry of his cast to help focus the film’s main spotlight on the titanic protagonists, Godzilla and Kong, delivering two hours of pure, unadulterated entertainment.\r\n\r\nIt won’t convert the most skeptical, but it will certainly solidify the unashamed passion of MonsterVerse fans.\"\r\n\r\nRating: B",
         "created_at":"2024-03-28T18:01:31.827Z",
         "id":"6605b07b3fe797017bcb584b",
         "updated_at":"2024-03-28T18:01:31.973Z",
         "url":"https://www.themoviedb.org/review/6605b07b3fe797017bcb584b"
      },

......

}

            ******************* キーのみ異なる(上記例ではauthor)だけなので関数の内容は省略 **********************

5. 上記関数実行により得たデータに見出しも追加して、ListViewに表示するためのリストを作成する。

6. ListViewの列をタップしたら、WebViewer(ブラウザー)を表示し、URLに指定されたウエッブサイトを開く。

LIstViewなどが設定されているVerticalArrangement1/HorizontalArrangement1を非表示に。

WebViwerはVerticalArrangement2の中に設定してあるので、同propertyのVisibleをtrueにし、表示。

7. ブラウザーを閉じるボタン。

WebViwerはVerticalArrangement2の中に設定してあるので、同propertyのVisibleをfalseにし、非表示に。

 

                                         **************************************************************************

<余談・顛末記>

以前、The Movie DBより同サイトが把握している全映画関係者のID一覧表をダウンロードした際 (JSONファイル)、件数が1,999,624件(名)でcsvファイルに転換できなかった、というようなことを書いたと思うが(?)。ネット上のフリーの変換サイトでは全くダメで、そのままにしておいた。。。

先日YouTubeを見ていたら、ボリュームがかなり大きくても、Pythonであれば3行のコードで簡単にJSONファイルをcsvファイルに変換できるとのビデオを見つけた。(単にYouTuberのコードの中のファイル名を変えただけ+ 意味はわからないが 、エラー対応のためネット上のアドバイスに従い lines=True を追加したものが以下)

import pandas as pd
dataframe = pd.read_json("person_ids_05_15_2024.json", lines=True)
dataframe.to_csv("person_ids_05_15_2024_data.csv")

一瞬で変換完了。驚いた、と言うより衝撃!問題は、このcsvファイルは1,999,624行で、Macのスプレッドシート(numbers)では、1,000,000行しか扱えないため、結局全て読み込むことはできなかった。でも、ここまで来れば、ファイルを2つ又は3つに分ければこのデータ自体は扱えるので一応問題解決ということ。

ただ、そのYouTuberが使っていたjupyterなるonline editor(?) の使い方がわからず、使い方をYouTubeでいろいろ検索し、上記コードを実行したが、何故かエラー (ValueError: Trailing data) が出力され続け、たった3行のコードを実行させるまでにか〜なりの時間を要した。。。

                                         **************************************************************************

前回までのブログ:

MIT App Inventorで遊ぶ (THE MOVIE DB 5)

MIT App Inventorで遊ぶ (THE MOVIE DB 4)

MIT App Inventorで遊ぶ (THE MOVIE DB 3)

MIT App Inventorで遊ぶ (THE MOVIE DB 2)

MIT App Inventorで遊ぶ (THE MOVIE DB 1-2)

MIT App Inventorで遊ぶ (THE MOVIE DB 1)



コメントを投稿