号外NETの記事タイトルをポストするようにコードを組みました.tosajin.info

2024.10.02

Logging

おはようございます.号外サイト記事タイトルをポストするようにコードを組みました.これによって少しは高知県の人に貢献できたのではと思っています.この号外NETというサイトはとても良いです.新しいお店の紹介などが逐次わかるというのは良い感じですよね.

因みにソースコードはこんな感じになります.これをLaravelのスケジュールを使用して叩いている形になります.ポストするコードに関してはご自身で考えて作らないとポストすることは出来ないです.

    /**
     * Execute the job.
     */
    public function handle(): void
    {
        $xmlobj = @simplexml_load_file('https://kochi.goguynet.jp/feed/');
        if($xmlobj?->channel?->item){
            $str = [];
            foreach($xmlobj->channel->item as $key=>$val){
                if($this->dateCheck($val->pubDate)){
                    $str[] = "{$val->title}
{$val->guid}
引用元:号外NET 高知市
                    ";
                }else{
                    break;
                }
            }
            $str = array_reverse($str);
            if(count($str)){
                $TwitterController = new TwitterController();
                foreach($str as $val){
                    $TwitterController->tweet($val);
                }
            }
        }
    }

    private function dateCheck($inputDate)
    {
        $inputDateTime = new DateTime($inputDate);
        $inputDateTime->setTimezone(new DateTimeZone('UTC')); // UTCに合わせる
        
        // 現在の日付(UTC)
        $currentDateTime = new DateTime('now', new DateTimeZone('UTC'));
        
        // 今日の日付を取得
        $today = $currentDateTime->format('Y-m-d');
        
        // 昨日の日付を取得
        $yesterday = $currentDateTime->modify('-5 day')->format('Y-m-d');
        
        // 入力された日付のフォーマット
        $inputDateFormatted = $inputDateTime->format('Y-m-d');
        
        // 比較
        if ($inputDateFormatted === $today || $inputDateFormatted > $yesterday) {
            return true;
        }
        return false;
    }

Xなどにポストするにはライブラリを使用してポストすることが簡単だと思っていますが、それが難しいという方は生成AIを使用してクラス化したXにポストするPHPコードを書いてと指示をすればコードを書いてくれると思います.

ちなみにこのソースコードは高知県の号外に特化したコードになります.

明日へ続く.

著者名  @taoka_toshiaki

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

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

タグ

array_reverse, break, count, dateCheck, else, foreach, format, gt, guid, item, Laravel, modify, pubDate, quot, setTimezone, Tweet, val, void, yesterday, 号外,