function PixivArtWorkDownload($userlist, $userlist_file) { $index = 0; while ($index < count($userlist)) { // 一つ一つ取り出し // ユーザ情報を user_id, last_artwork_id, display_nameに分解 @($user_id = $userlist[$index]['user_id']); @($last_artwork_id = $userlist[$index]['last_artwork_id']); @($display_name = $userlist[$index]['display_name']); if ($display_name == '') { //ディスプレイネームが設定されていない list($user_exist, $display_name) = UserCheck($user_id); // ユーザがいるか? } else { // されている list($user_exist, $display_name) = UserCheck($user_id); $display_name = $userlist[$index]['display_name']; } if ($user_exist == 0) { // user exsit // 生存報告 Msg("succeed", "user_id '{$user_id}' / display_name '{$display_name}' is exist!.\n"); Msg("started", "Download artworks of user_id '{$user_id}'.\n"); $dir = '.images/' . $user_id; // ユーザのディレクトリ作成 if (!MakeDirectory($dir)) { Msg('error', "failed make directory in {$dir}.\n"); // 作れなかった報告 $current_artwork_id = 1; // 1(false)に設定 条件フラグの役割 } else { $current_artwork_id = ''; } if ($current_artwork_id != 1) { // ユーザのディレクトが作成できていたら if ($last_artwork_id == '') { // last_artwork_idがnull 初めてのご利用 $current_artwork_id = GetFirstArtWorkId($user_id, 1); //処女get DownloadArtWork($current_artwork_id, $user_id); // 先頭の作品をdl } else { $current_artwork_id = $last_artwork_id; // またのご来店 } $last_artwork_id = AllDownloadArtWork($current_artwork_id, $user_id); // 最新の作品までdonwnload $userlist[$index]['last_artwork_id'] = $last_artwork_id; $userlist[$index]['display_name'] = $display_name; } else { // ユーザのディレクトが作成できなかったら Msg('interrupt', "download artwork with user_id {$user_id}.\n"); //dlしないと報告 $last_artwork_id = ''; // 空に設定 } $index = $index + 1; } else { // userが存在してない場合 Msg("error", "user_id '{$user_id}' is not exsit!\n"); // そんなユーザいねぇ Msg(0, "Delete the user_id '" . $user_id . "'.\n"); array_splice($userlist, $index, 1); } WriteCsv($userlist, $userlist_file); //書き込み } }
require dirname(__FILE__) . '/src/CookieLogin.php'; require dirname(__FILE__) . '/src/Csv.php'; list($image_dir, $link_dir, $cookie_file, $userlist_file) = SetParam(); date_default_timezone_set('Asia/Tokyo'); $session_id = date('ymdHis'); mkdir('log/dl/' . $session_id, 0777, true); $log_file = 'log/dl/' . $session_id . '/dl.log'; CookieLogin(); $followings = @GetFollowings(); if ($followings == false) { // ログイン出来なかったら Msg('error', "Coundn't get your followings!\n"); exit(1); } $userlist = ReadCsv($userlist_file); WriteCsv(SortUserlist(UpdateFollowgins($userlist, $followings)), $userlist_file); exit(0); function SortUserlist($userlist) { $id_list = array_column($userlist, 'user_id'); // idだけ抜き出す natsort($id_list); // 昇順に並び替え $sorted_list = array(); foreach ($id_list as $key => $id) { @($user = array('user_id' => $userlist["{$key}"]['user_id'], 'last_artwork_id' => $userlist["{$key}"]['last_artwork_id'], 'display_name' => $userlist["{$key}"]['display_name'])); array_push($sorted_list, $user); } return $sorted_list; } function UpdateFollowgins($userlist, $followings)