Photo by Amy Chandra on Pexels.com

tMDbのAPIを使用して今まで観た映画をリスト化してみましたよ.

2025.04.27

Logging

おはようございます.tMDbのAPIを使用して今まで観た映画をリスト化してみましたよ.sqliteの構造は下記になります.idはbigintと記載していますが、AUTO_INCREMENTの間違いです🐼.

Xにも呟きましたがAPIを使用して何かするのはこの頃飽きてきて触らなかったのですが、たまには触れてみようとコードを書いているうちに簡単に作れるようになってしまって少々物足りなさを感じています.

次回はAPIを使う側ではなくて作る側になろうと思っています.GW期間になると思いますが600円のレンタルサーバーのフリードメインを使ってツマラナイAPIみたいな失笑系を作ってみます.

なお、ソースコードの解説がなくてすみません、このソースコードを生成AIに投げてどのような処理か説明して言えば恐らく正解を教えてくれます.

明日へ続く

#真相をお話します.
少年と犬
Flow
curl -sS https://getcomposer.org/installer | php
composer require guzzlehttp/guzzle
composer require illuminate/database
<?php
require_once 'config.php';
require_once 'vendor/autoload.php';
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Database\Capsule\Manager as DB;

class MovieList
{
    public $result = '';
    public $imgBasicUrl = 'https://image.tmdb.org/t/p/w500';
    public $filePath = FILEPATH_DIR_;
    public function __construct($filePath='')
    {
        $filePath = $filePath?$filePath:$this->filePath;
        if (!file_exists($filePath.'/movie-list.db')) {
            exit;
        }        
        $capsule = new Capsule();

        $capsule->addConnection([
            'driver'   => 'sqlite',
            'database' => $filePath.'/movie-list.db',
            'prefix'   => '',
        ]);

        $capsule->setAsGlobal();
        $capsule->bootEloquent();
    }

    public function getMovieList(string $q): void
    {
        $client = new \GuzzleHttp\Client();

        $response = $client->request('GET', 'https://api.themoviedb.org/3/search/multi?query=' . $q . '&include_adult=false&language=ja-JP&page=1', [
            'headers' => [
                'Authorization' => 'Bearer ' . API_KEY,
                'accept' => 'application/json',
            ],
        ]);
        $this->result = $response->getBody();
    }

    public function getResult(): void
    {
        $data = DB::table('list')->get();
        $lists = [];
        foreach ($data as $key => $value) {
           $result = unserialize($value->value);
            if(isset($result?->media_type) && $result->media_type == 'movie'){
                $lists[] = [
                    'id'=>$data[$key]->id,
                    'title'=>$result->title,
                    'img'=>$this->imgBasicUrl . $result->poster_path,
                ];
            }
        }
        print json_encode($lists);
    }

    public function saveCsvlist(): void
    {
        $fileData = explode("\n",file_get_contents('movie-list.csv'));
        $fileData = array_reverse($fileData);
        foreach($fileData as $line)
        {
            foreach(explode(',',$line) as $data){
                $q = urlencode($data);
                $movieList = new MovieList();
                $movieList->getMovieList($q);
                foreach((json_decode($movieList->result))?->results as $result){
                    DB::table('list')->insert([
                        'value' => serialize($result)
                    ]);
                }
            }
        }        
    }

    public function delete($id): void
    {
        
        DB::table('list')->where('id', '=', $id)->delete();
        print json_encode(['res'=>'true']);
    }

}
//(new MovieList())->saveCsvlist();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if(!isset($_POST['id'])){
        (new MovieList())->getResult();
    }else{
        //(new MovieList())->delete($_POST['id']);
    }   
}

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

```, コード, ソースコード, ツマラナイ, フリードメイン, レンタルサーバー, , , 処理, 失笑系, 少年, 構造, 次回, 正解, , 生成, 真相,

映画、#真相をお話ししますを観ましたよ.感想なんかを書いていきます.

2025.04.26

Logging

おはようございます.映画、#真相をお話ししますを観ましたよ.感想なんかを書いていきます.原作の小説が店頭に並んでいた頃からこの「#真相をお話しします」というタイトルには惹かれていた覚えがあります.とてもインパクトのある小説の映画化.

映画『#真相をお話しします』主題歌入り予告|「天国」Mrs. GREEN APPLE|

予告を観てB級かもしれないという思いもありましたが映画館に足を運んでみました.ちょっと違和感はあったものの、話が進んでいくに連れ映像も慣れて後半部分は違和感というものは払拭していました.

そして久しぶりにこんなにバッサリと画を切った終わらせ方を観たので、とても潔くて良かったです.なかなかこういう切り方を観なくなったのでとても清々しい気分になりました.

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

インパクト, しい気分, せ方, タイトル, 予告, 切り方, 原作, 小説, 店頭, 後半部分, 感想, 映画, 映画化, 映画館, , 真相, , , 連れ映像, 違和感,

これから観に行きたい観に行こうと思っている映画2025上期.

2025.03.06

Logging

おはようございます.これから観に行きたい観に行こうと思っている映画2025上期を書いていきます.書いていく前に観に行こうと思っていたけど辞めた映画として「片思い世界」があります、理由は予告を見てどうなんだろう自分にあってなさそうな映画だと思ったのが理由です.

その代替えとしていまFlowが何だか関心を持っています.この映画、予告を観る限り音と音楽だけでセリフがなさそうでした、そして人が登場してなさそうな映画だったので関心を持っています.これで感情が入ってくるのか、見終わった後にどういう感情を自分が抱くのかに関心があったので見ようと思っています.

3/14(金)公開『Flow』予告編

次にflow移行に観に行こうと思っている映画の一覧を列挙します.

  • 少年と犬
  • ミッキー17
  • 国宝
  • ミッション:インポッシブル/ファイナル・レコニング
  • スーパーマン
  • アバター:ファイヤー・アンド・アッシュ
  • 真相をお話しします
  • 果てしなきスカーレット
  • トロン:アレス
  • 爆弾
  • フロントライン

上期以外も含まれているかもですが観に行こうと思っている映画、観に行きたい映画です(※これ以外にも観に行く予定が増える可能性はあります).

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

アッシュ, アバター, アレス, インポッシブル, スカーレット, セリフ, トロン, ファイナル・レコニング, ファイヤー・アンド, ミッキー, ミッション, 上期以外, 予告, 代替え, 国宝, 映画上期, 爆弾, 真相, 移行, 関心,