Browse Source

add new code

feature/new_bilibili_and_instagram_sxs20191126
shixuesen 2 years ago
parent
commit
2ad5d41751
29 changed files with 30323 additions and 14856 deletions
  1. +8
    -3
      .env.local
  2. +61
    -0
      .env.local.back
  3. +11
    -11
      .idea/php.xml
  4. +3
    -3
      app/Console/Commands/AcfunScrape.php
  5. +100
    -71
      app/Console/Commands/BiliVideoCode.php
  6. +3
    -0
      app/Console/Commands/FfmpegCommand.php
  7. +2
    -2
      app/Console/Commands/InstagramScrape.php
  8. +20
    -6
      app/Console/Commands/RecordDir.php
  9. +49
    -13
      app/Console/Commands/RenameTest.php
  10. +70
    -4
      app/Console/Commands/TestCommand.php
  11. +25
    -0
      app/Http/Controllers/CommonSettingsController.php
  12. +13
    -49
      app/Http/Controllers/WeiboController.php
  13. +1
    -0
      app/Http/Kernel.php
  14. +134
    -29
      app/Services/AcfunService.php
  15. +852
    -886
      app/Services/BilibiliService.php
  16. +1292
    -1286
      app/Services/BilibiliServiceV2.php
  17. +41
    -21
      app/Services/FfmpegService.php
  18. +20
    -19
      app/Services/InstagramService.php
  19. +86
    -2
      app/Services/WeiboService.php
  20. +67
    -1
      app/Utils/helper.php
  21. +4
    -5
      composer.json
  22. +1345
    -1284
      composer.lock
  23. +60
    -0
      config/cors.php
  24. +7
    -0
      config/database.php
  25. +32
    -0
      database/migrations/2023_10_24_210533_add_bili_up_count.php
  26. +51
    -0
      fail.log
  27. +25962
    -11160
      package-lock.json
  28. +3
    -1
      package.json
  29. +1
    -0
      routes/web.php

+ 8
- 3
.env.local View File

@ -7,11 +7,11 @@ APP_URL=https://ins.app
LOG_CHANNEL=stack LOG_CHANNEL=stack
DB_CONNECTION=mysql DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3307
DB_HOST=192.168.31.26
DB_PORT=32769
DB_DATABASE=ins DB_DATABASE=ins
DB_USERNAME=root DB_USERNAME=root
DB_PASSWORD=949sxs949
DB_PASSWORD=949sxs949S
BROADCAST_DRIVER=log BROADCAST_DRIVER=log
@ -29,6 +29,11 @@ TXY4_REDIS_PASSWORD=null
TXY4_REDIS_PORT=16379 TXY4_REDIS_PORT=16379
TXY4_REDIS_CACHE_DB=0 TXY4_REDIS_CACHE_DB=0
LPT1_REDIS_HOST=127.0.0.1
LPT1_REDIS_PASSWORD=null
LPT1_REDIS_PORT=26379
LPT1_REDIS_CACHE_DB=0
MAIL_DRIVER=smtp MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525 MAIL_PORT=2525


+ 61
- 0
.env.local.back View File

@ -0,0 +1,61 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:JAnba95lV0iKVC/7lgxU7oH/utPgaOXZ4WBBYExqZd8=
APP_DEBUG=true
APP_URL=https://ins.app
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3307
DB_DATABASE=ins
DB_USERNAME=root
DB_PASSWORD=949sxs949
BROADCAST_DRIVER=log
CACHE_DRIVER=array
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
TXY4_REDIS_HOST=127.0.0.1
TXY4_REDIS_PASSWORD=null
TXY4_REDIS_PORT=16379
TXY4_REDIS_CACHE_DB=0
LPT1_REDIS_HOST=127.0.0.1
LPT1_REDIS_PASSWORD=null
LPT1_REDIS_PORT=26379
LPT1_REDIS_CACHE_DB=0
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
OAUTH_APP_ID=89b50ce9-fcd4-4d6b-a830-bbfe0fa5703b
OAUTH_APP_PASSWORD=gmwsDOF38_+ycvIDAH885[)
OAUTH_REDIRECT_URI=http://localhost:8000/callback
#OAUTH_SCOPES='openid profile offline_access user.read calendars.read Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All'
OAUTH_SCOPES='openid profile offline_access user.read calendars.read'
OAUTH_AUTHORITY=https://login.microsoftonline.com/common
OAUTH_AUTHORIZE_ENDPOINT=/oauth2/v2.0/authorize
OAUTH_TOKEN_ENDPOINT=/oauth2/v2.0/token
albums_authentication_redirect_url=http://localhost:1234/google/photo/connect

+ 11
- 11
.idea/php.xml View File

@ -57,10 +57,8 @@
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" /> <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/paragonie/random_compat" /> <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" /> <path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
<path value="$PROJECT_DIR$/vendor/zendframework/zend-diactoros" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" /> <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/dnoegel/php-xdg-base-dir" /> <path value="$PROJECT_DIR$/vendor/dnoegel/php-xdg-base-dir" />
<path value="$PROJECT_DIR$/vendor/lcobucci/jwt" />
<path value="$PROJECT_DIR$/vendor/psy/psysh" /> <path value="$PROJECT_DIR$/vendor/psy/psysh" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" /> <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" /> <path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
@ -104,18 +102,12 @@
<path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" /> <path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
<path value="$PROJECT_DIR$/vendor/laravel/tinker" /> <path value="$PROJECT_DIR$/vendor/laravel/tinker" />
<path value="$PROJECT_DIR$/vendor/laravel/framework" /> <path value="$PROJECT_DIR$/vendor/laravel/framework" />
<path value="$PROJECT_DIR$/vendor/laravel/nexmo-notification-channel" />
<path value="$PROJECT_DIR$/vendor/laravel/slack-notification-channel" />
<path value="$PROJECT_DIR$/vendor/valga/fbns-react" /> <path value="$PROJECT_DIR$/vendor/valga/fbns-react" />
<path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" /> <path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
<path value="$PROJECT_DIR$/vendor/php-http/guzzle6-adapter" />
<path value="$PROJECT_DIR$/vendor/php-http/httplug" />
<path value="$PROJECT_DIR$/vendor/php-http/promise" />
<path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" /> <path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
<path value="$PROJECT_DIR$/vendor/clue/http-proxy-react" /> <path value="$PROJECT_DIR$/vendor/clue/http-proxy-react" />
<path value="$PROJECT_DIR$/vendor/clue/socks-react" /> <path value="$PROJECT_DIR$/vendor/clue/socks-react" />
<path value="$PROJECT_DIR$/vendor/nunomaduro/collision" /> <path value="$PROJECT_DIR$/vendor/nunomaduro/collision" />
<path value="$PROJECT_DIR$/vendor/nexmo/client" />
<path value="$PROJECT_DIR$/vendor/ramsey/uuid" /> <path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
<path value="$PROJECT_DIR$/vendor/symfony/filesystem" /> <path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
<path value="$PROJECT_DIR$/vendor/seld/phar-utils" /> <path value="$PROJECT_DIR$/vendor/seld/phar-utils" />
@ -137,8 +129,6 @@
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" /> <path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" /> <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
<path value="$PROJECT_DIR$/vendor/tinify/tinify" /> <path value="$PROJECT_DIR$/vendor/tinify/tinify" />
<path value="$PROJECT_DIR$/vendor/kylekatarnls/update-helper" />
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/vendor/symfony/service-contracts" /> <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/mime" /> <path value="$PROJECT_DIR$/vendor/symfony/mime" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" /> <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
@ -164,7 +154,6 @@
<path value="$PROJECT_DIR$/vendor/google/apiclient" /> <path value="$PROJECT_DIR$/vendor/google/apiclient" />
<path value="$PROJECT_DIR$/vendor/google/apiclient-services" /> <path value="$PROJECT_DIR$/vendor/google/apiclient-services" />
<path value="$PROJECT_DIR$/vendor/protoqol/prequel" /> <path value="$PROJECT_DIR$/vendor/protoqol/prequel" />
<path value="$PROJECT_DIR$/vendor/nexmo/client-core" />
<path value="$PROJECT_DIR$/vendor/mgp25/instagram-php" /> <path value="$PROJECT_DIR$/vendor/mgp25/instagram-php" />
<path value="$PROJECT_DIR$/vendor/mhor/php-mediainfo" /> <path value="$PROJECT_DIR$/vendor/mhor/php-mediainfo" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" /> <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
@ -202,6 +191,17 @@
<path value="$PROJECT_DIR$/vendor/unisharp/laravel-filemanager" /> <path value="$PROJECT_DIR$/vendor/unisharp/laravel-filemanager" />
<path value="$PROJECT_DIR$/vendor/intervention/image" /> <path value="$PROJECT_DIR$/vendor/intervention/image" />
<path value="$PROJECT_DIR$/vendor/arispati/emoji-remover" /> <path value="$PROJECT_DIR$/vendor/arispati/emoji-remover" />
<path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
<path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
<path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
<path value="$PROJECT_DIR$/vendor/phpstan/phpdoc-parser" />
<path value="$PROJECT_DIR$/vendor/psr/clock" />
<path value="$PROJECT_DIR$/vendor/clue/socket-raw" />
<path value="$PROJECT_DIR$/vendor/nesk/puphpeteer" />
<path value="$PROJECT_DIR$/vendor/nesk/rialto" />
<path value="$PROJECT_DIR$/vendor/vierbergenlars/php-semver" />
<path value="$PROJECT_DIR$/vendor/chrome-php/chrome" />
<path value="$PROJECT_DIR$/vendor/chrome-php/wrench" />
</include_path> </include_path>
</component> </component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.1"> <component name="PhpProjectSharedConfiguration" php_language_level="7.1">


+ 3
- 3
app/Console/Commands/AcfunScrape.php View File

@ -75,11 +75,11 @@ class AcfunScrape extends Command {
$service = new AcfunService(); $service = new AcfunService();
// 不用了 $service->requestUpPageApi(10703951);exit; // 不用了 $service->requestUpPageApi(10703951);exit;
foreach ($upItems as $upId => $upName) { foreach ($upItems as $upId => $upName) {
$service->queryUpUsersVideos($upId, $upName);
echo "$upId, $upName \n";
// $service->queryUpUsersVideosV2($upId, $upName);
// echo "$upId, $upName \n";
} }
// dump("here"); // dump("here");
$service->queryCollectionVideos();
// $service->queryCollectionVideos();
$service->downloadVideo(); $service->downloadVideo();
// //
} }


+ 100
- 71
app/Console/Commands/BiliVideoCode.php View File

@ -3,84 +3,113 @@
namespace App\Console\Commands; namespace App\Console\Commands;
use App\Repositories\BilibiliVideoRepository; use App\Repositories\BilibiliVideoRepository;
use App\Services\BilibiliService;
use App\Services\BilibiliServiceV2; use App\Services\BilibiliServiceV2;
use App\Services\FfmpegService; use App\Services\FfmpegService;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Redis;
class BiliVideoCode extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'bili:nvtuan {type} {code} {path}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
* @throws \Exception
*/
public function handle()
{
use Nesk\PuPHPeteer\Puppeteer;
class BiliVideoCode extends Command {
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'bili:nvtuan {type} {code} {path} {startPos=0}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct() {
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
* @throws \Exception
*/
public function handle() {
$bilibili = new BilibiliServiceV2(new BilibiliVideoRepository(App::getFacadeApplication())); $bilibili = new BilibiliServiceV2(new BilibiliVideoRepository(App::getFacadeApplication()));
// $bilibili->checkVideoHasDownload();
// $startPos = $this->argument("startPos");
// echo "startPos is $startPos";
// $bilibili->queryUpVideoList(10278125, $startPos);
// exit;
$bilibili->downloadDynamics();exit;
// $bilibili->queryLocalUpVideoList();exit;
// $bilibili->insertDBTest();exit;
// $bilibili->queryPlayList();
// $bilibili->downloadDynamics();exit;
$bilibili->queryUpVideoList(10278125);
// exit;
$browserFactory = new \HeadlessChromium\BrowserFactory();
// $bilibili->queryDBCollectionList();
// dump($bilibili->requestVideoParts("33483603"));exit;
$bilibili->queryForVideoParts();exit;
$bilibili->compareAndDownloadUpVideos(true);
$bilibili->compareAndDownloadCollectionVideos();
exit;
$bilibili->queryForVideoParts();
if (App::environment() == "local") {
# code...
exit;
// starts headless Chrome
$browser = $browserFactory->createBrowser(['windowSize' => [1920, 1000]]);
try {
// creates a new page and navigate to an URL
$page = $browser->createPage();
$page->navigate('https://bilibili.com')->waitForNavigation();
// get page title
$pageTitle = $page->evaluate('document.title')->getReturnValue();
// screenshot - Say "Cheese"! 😄
$page->screenshot()->saveToFile('/Users/shixuesen/Downloads/bar.png');
// pdf
// $page->pdf(['printBackground' => false])->saveToFile('/foo/bar.pdf');
} finally {
// bye
$browser->close();
} }
date_default_timezone_set('PRC');
$path = $this->argument("path");
$service = new FfmpegService();
// $service->checkFileEncodeType();exit;
$service->processDir(trim($path));
exit; exit;
// $bilibili->compareAndDownloadUpVideos();
// exit;
// $bilibili->compareAndDownloadCollectionVideos();
// $bilibili->queryCollectionList();
// $bilibili->compareAndDownloadNewVideos();
// $bilibili->queryLocalUpVideoList();
// $bilibili->queryForVideoParts();
// $bilibili->queryDBCollectionList();
// $bilibili->checkVideoHasDownload();
// echo is_dir("/Volumes/Seagate Backup Plus Drive/Video/bilibili/少女时代");
}
// $bilibili->checkVideoHasDownload();
// $bilibili->queryLocalUpVideoList();exit;
// $bilibili->insertDBTest();exit;
// $bilibili->queryPlayList();
// $bilibili->downloadDynamics();exit;
$startPos = $this->argument("startPos");
echo "startPos is $startPos";
$bilibili->queryUpVideoList(10278125, $startPos);
exit;
// $bilibili->queryDBCollectionList();
// dump($bilibili->requestVideoParts("33483603"));exit;
$bilibili->queryForVideoParts();exit;
$bilibili->compareAndDownloadUpVideos(true);
$bilibili->compareAndDownloadCollectionVideos();
exit;
$bilibili->queryForVideoParts();
if (App::environment() == "local") {
# code...
exit;
}
date_default_timezone_set('PRC');
$path = $this->argument("path");
$service = new FfmpegService();
// $service->checkFileEncodeType();exit;
$service->processDir(trim($path));
exit;
// $bilibili->compareAndDownloadUpVideos();
// exit;
// $bilibili->compareAndDownloadCollectionVideos();
// $bilibili->queryCollectionList();
// $bilibili->compareAndDownloadNewVideos();
// $bilibili->queryLocalUpVideoList();
// $bilibili->queryForVideoParts();
// $bilibili->queryDBCollectionList();
// $bilibili->checkVideoHasDownload();
// echo is_dir("/Volumes/Seagate Backup Plus Drive/Video/bilibili/少女时代");
}
} }

+ 3
- 0
app/Console/Commands/FfmpegCommand.php View File

@ -5,6 +5,7 @@ namespace App\Console\Commands;
use App\Jobs\BilibiliEncode; use App\Jobs\BilibiliEncode;
use App\Services\FfmpegService; use App\Services\FfmpegService;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;
class FfmpegCommand extends Command class FfmpegCommand extends Command
{ {
@ -47,6 +48,8 @@ class FfmpegCommand extends Command
$path = $this->argument("path"); $path = $this->argument("path");
$preset = $this->argument("preset"); $preset = $this->argument("preset");
$service = new FfmpegService(); $service = new FfmpegService();
// $service->setRedis("cache_lpt1");
$needDeleteAfterEncode = $this->argument("needDeleteAfterEncode"); $needDeleteAfterEncode = $this->argument("needDeleteAfterEncode");
if (trim($needDeleteAfterEncode) == "1") { if (trim($needDeleteAfterEncode) == "1") {
$service->setNeedRemoveAfterEncode(true); $service->setNeedRemoveAfterEncode(true);


+ 2
- 2
app/Console/Commands/InstagramScrape.php View File

@ -47,8 +47,8 @@ class InstagramScrape extends Command {
// print_r($userList);exit; // print_r($userList);exit;
$ins = new InstagramService(); $ins = new InstagramService();
// $ins->scrapeFeedsV2();
// sleep(60 * 2);
$ins->scrapeFeedsV2();
sleep(60 * 2);
// $ins->scrapeUsersV2(89, ["mikamikatn", "sejinming", "bonnie.90106_", "zyzyxin222", "linda.zz99tw", "2km2km", "na0912mi", "masami_nagasawa", "naughty_rabbit_", "cho_hyunyoung", "lxx.baby", "inkyung97", "boram__jj", "ji_an35", "mc807lsy", "cxxsomi"]); // $ins->scrapeUsersV2(89, ["mikamikatn", "sejinming", "bonnie.90106_", "zyzyxin222", "linda.zz99tw", "2km2km", "na0912mi", "masami_nagasawa", "naughty_rabbit_", "cho_hyunyoung", "lxx.baby", "inkyung97", "boram__jj", "ji_an35", "mc807lsy", "cxxsomi"]);
// $ins->scrapeUsersV2(89, ["hazyryu", "dododoris__", "boram__jj", "zyzyxin222", "jiee_wen","mobe_carrie0223"]); // $ins->scrapeUsersV2(89, ["hazyryu", "dododoris__", "boram__jj", "zyzyxin222", "jiee_wen","mobe_carrie0223"]);


+ 20
- 6
app/Console/Commands/RecordDir.php View File

@ -6,6 +6,7 @@ use App\ImageRecord;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use App\Services\DirService; use App\Services\DirService;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
class RecordDir extends Command class RecordDir extends Command
@ -45,6 +46,8 @@ class RecordDir extends Command
$service = new DirService(); $service = new DirService();
$list = $service->recursiveScan($path); $list = $service->recursiveScan($path);
if (isset($list["files"]) && count($list["files"]) > 0) { if (isset($list["files"]) && count($list["files"]) > 0) {
$toInsert = [];
$i = 0;
foreach ($list["files"] as $file) { foreach ($list["files"] as $file) {
if (strstr($file, ".DS_Store")) { if (strstr($file, ".DS_Store")) {
continue; continue;
@ -53,12 +56,20 @@ class RecordDir extends Command
try { try {
$innerPath = str_replace($path, "", $fileInfo["dirname"]); $innerPath = str_replace($path, "", $fileInfo["dirname"]);
$innerName = $fileInfo["basename"]; $innerName = $fileInfo["basename"];
ImageRecord::firstOrCreate(["path" => $innerPath, "name" => $innerName],
["path" => $innerPath,
"name" => $innerName,
"type" => 2
]
);
$toInsert[] = ["path" => $innerPath,
"name" => $innerName,
"type" => 2,
"created_at" => date("Y-m-d h:i:s")];
if (count($toInsert) == 100) {
DB::table("image_records")->insertOrIgnore($toInsert);
$toInsert = [];
}
// ImageRecord::firstOrCreate(["path" => $innerPath, "name" => $innerName],
// ["path" => $innerPath,
// "name" => $innerName,
// "type" => 2
// ]
// );
} catch (QueryException $e) { } catch (QueryException $e) {
if (!str_contains($e->getMessage(), "Duplicate entry")) { if (!str_contains($e->getMessage(), "Duplicate entry")) {
Log::error($e->getMessage()); Log::error($e->getMessage());
@ -66,6 +77,9 @@ class RecordDir extends Command
} }
unset($imageRecord); unset($imageRecord);
} }
if (count($toInsert) > 0) {
DB::table("image_records")->insertOrIgnore($toInsert);
}
} }


+ 49
- 13
app/Console/Commands/RenameTest.php View File

@ -42,17 +42,8 @@ class RenameTest extends Command {
$level = $this->argument("level"); $level = $this->argument("level");
$rename = new RenameService(); $rename = new RenameService();
$rename->setNameLevel(intval($level)); $rename->setNameLevel(intval($level));
// $files = scandir($path);
// foreach ($files as $file) {
// if (str_contains($file, "KID=imgbed,photo&")) {
// $pos = strpos($file, ".jpg");
// $newFileName = substr($file, 0, $pos + 4);
// dump("new filename ". $newFileName);
//
// rename($path . DIRECTORY_SEPARATOR . $file, $path . DIRECTORY_SEPARATOR . $newFileName);
// }
// }
// exit;
// $this->renameContainSymbol($path);exit;
// $rename->rename($path, $prefix); // $rename->rename($path, $prefix);
// $arr[0] = 1640486381; // $arr[0] = 1640486381;
// $arr[1] = 1640553754; // $arr[1] = 1640553754;
@ -60,9 +51,11 @@ class RenameTest extends Command {
// asort($arr); // asort($arr);
// dump($rename->getNameLevel()); // dump($rename->getNameLevel());
// dump($arr);exit; // dump($arr);exit;
// $rename->rename($path, $prefix);
// $rename->rename($path, $prefix);
// recursiveProcessFirstLevelDirectory($path);exit;
// processFirstLevelDirectory($path);exit; // processFirstLevelDirectory($path);exit;
$rename->splitCustomSizeOfFolder($path, $prefix, 500);exit;
$rename->splitCustomSizeOfFolder($path, $prefix, 500);
exit;
// $rename->rename("/Volumes/WD/tmp/写真图/猫九", "猫九-"); // $rename->rename("/Volumes/WD/tmp/写真图/猫九", "猫九-");
return; return;
@ -70,4 +63,47 @@ class RenameTest extends Command {
// $rename->rename(); // $rename->rename();
// $rename->mvFiles("/Users/shixuesen/Documents/tmp/秀人旗下《MFStar模范学院》套图及视频写真-TLoB/视频/"); // $rename->mvFiles("/Users/shixuesen/Documents/tmp/秀人旗下《MFStar模范学院》套图及视频写真-TLoB/视频/");
} }
public function renameKIDImage($path) {
$files = scandir($path);
// dump($files);exit;
foreach ($files as $file) {
if (str_contains($file, "KID=imgbed,photo&")) {
$pos = strpos($file, ".gif");
if ($pos > 0) {
// dump($pos);
$newFileName = substr($file, 0, $pos + 4);
// dump($newFileName);
$t = 0;
while (is_file($path . DIRECTORY_SEPARATOR . $newFileName)) {
$fileInfo = pathinfo($newFileName);
echo "file " . $newFileName . " already exists\n";
$newFileName = $fileInfo["filename"] . "_" . $t++ . "." . $fileInfo["extension"];
echo "now rename {$file} to " . $newFileName . "\n";
}
// dump("new filename ". $newFileName);
rename($path . DIRECTORY_SEPARATOR . $file, $path . DIRECTORY_SEPARATOR . $newFileName);
}
}
}
}
public function renameContainSymbol($path, $symbol = '?') {
$symbol = "\u{FF1F}";
// echo $symbol;exit;
// $file1 = "请问,这是长胖了吗?--u0bqNwYlvogx089LkDLwLK010412007dnt0E010.mp4";
// echo strpos($file1, $symbol);exit;
$files = scandir($path);
foreach ($files as $file) {
// echo $file . "\n";
if (strpos($file, $symbol)) {
$newFileName = str_replace($symbol, " ", $file);
echo "now rename {$file} to " . $newFileName . "\n";
rename($path . DIRECTORY_SEPARATOR . $file, $path . DIRECTORY_SEPARATOR . $newFileName);
}
}
}
} }

+ 70
- 4
app/Console/Commands/TestCommand.php View File

@ -6,6 +6,7 @@ namespace App\Console\Commands;
use App\Services\GooglePhotoSyncService; use App\Services\GooglePhotoSyncService;
//use App\Services\LiveStreamService; //use App\Services\LiveStreamService;
use App\Services\WeiboService;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request; use GuzzleHttp\Psr7\Request;
use Illuminate\Console\Command; use Illuminate\Console\Command;
@ -41,6 +42,10 @@ class TestCommand extends Command {
* @return mixed * @return mixed
*/ */
public function handle() { public function handle() {
$this->sqlGenerate();exit;
// $this->test11();exit;
// $this->test10();exit;
// $this->test09();exit;
// $this->test08();exit; // $this->test08();exit;
// $this->test7();exit; // $this->test7();exit;
@ -244,27 +249,37 @@ class TestCommand extends Command {
// $baseDir = "/Volumes/Crucial X6/就是阿朱啊/就是阿朱啊-5"; // $baseDir = "/Volumes/Crucial X6/就是阿朱啊/就是阿朱啊-5";
// $dirs = ["阿朱_2010"]; // $dirs = ["阿朱_2010"];
$baseDir = "/Users/shixuesen/Documents/otherSync/very"; $baseDir = "/Users/shixuesen/Documents/otherSync/very";
$dirs = ["mv2001"];
$dirs = ["mv5002"];
// $f1 = "._{CCE5795D-9D78-5CF9-64C4-F170BD9A943E}(1).jpg";
// echo starts_with($f1, "._");exit;
// $baseDir = "/Volumes/T7/";
// $dirs = ["mv"];
$files = []; $files = [];
foreach ($dirs as $dir) { foreach ($dirs as $dir) {
$currentFiles = scandir($baseDir . DIRECTORY_SEPARATOR . $dir); $currentFiles = scandir($baseDir . DIRECTORY_SEPARATOR . $dir);
foreach ($currentFiles as $file) { foreach ($currentFiles as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store" || is_dir($baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file)) {
if ($file == "." || $file == ".." || $file == ".DS_Store" || is_dir($baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file || starts_with($file, "._"))) {
continue; continue;
} }
$starts_with_result = starts_with($file, "._");
if ($starts_with_result) {
// echo "file is $file and starts_with is $starts_with_result \n";
continue;
}
$files[] = $baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file; $files[] = $baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file;
} }
// $files = array_merge($files, $currentFiles); // $files = array_merge($files, $currentFiles);
} }
$md5Set = []; $md5Set = [];
// $newDir = "/Users/shixuesen/Downloads/y/Nagisa魔物喵202003fantia会员合集/魔物喵__001"; // $newDir = "/Users/shixuesen/Downloads/y/Nagisa魔物喵202003fantia会员合集/魔物喵__001";
// mkdir($newDir); // mkdir($newDir);
$i = 0; $i = 0;
foreach ($files as $file) { foreach ($files as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store") {
if ($file == "." || $file == ".." || $file == ".DS_Store" || starts_with($file, "._")) {
continue; continue;
} }
$hash = sha1_file($file); $hash = sha1_file($file);
@ -553,4 +568,55 @@ class TestCommand extends Command {
curl_close($curl); curl_close($curl);
echo $response; echo $response;
} }
public function test09() {
$arr1 = ["1000429769590276", "1000430003210700", "1000429999260118", "1000429999400794", "1000429999400794", "1000430004520201", "1000430004530766", "1000430004850362", "1000430004850362", "1000430004870591", "1000429999950757", "1000430000060315", "1000430000140315", "1000430000160088", "1000430000200823", "1000430000290298", "1000430005170131", "1000430005220533", "1000430005290448", "1000430000380457", "1000430005310718", "1000430005880886", "1000430005960156", "1000430006260376", "1000430006740058", "1000430012360131", "1000430012500286", "1000430017330592", "1000430017510931", "1000430012830183", "1000430012900001", "1000430013560519", "1000430013881003", "1000430018940761", "1000430014210352", "1000430014320367", "1000430014600099", "1000430014750648", "1000430014770062", "1000430014780038", "1000430014790074", "1000430014800598", "1000430019470116", "1000430014810703", "1000430014820784", "1000430019500168", "1000430014850172", "1000430019520794", "1000430014870379", "1000430019530523", "1000430019560327", "1000430019570703", "1000430019580784", "1000430014890774", "1000430014900764", "1000430014910379", "1000430019620148", "1000430019640764", "1000430019680129", "1000430019690805", "1000430019700648", "1000430019710631", "1000430014970363", "1000430019880628", "1000430015150518", "1000430015170556", "1000430019990312", "1000430020050753", "1000430015310498", "1000430015310498", "1000430015440647", "1000430015520378", "1000430015840734", "1000430020730852", "1000430020760933", "1000430021080248", "1000430031840206", "1000430031910905", "1000430031980000", "1000430032000997", "1000430032040932", "1000430032110732", "1000430032160725", "1000430036990879", "1000430037010610", "1000430032440692", "1000430032480648", "1000430032850104", "1000430037550574", "1000430037630147", "1000430037700574", "1000430033130374", "1000430033130374", "1000430033190845", "1000430033320875", "1000430033320875", "1000430038330731", "1000430038330731", "1000430038450934", "1000430034010994", "1000430038740617", "1000430034360183", "1000430034780035", "1000430039480169", "1000430034990467", "1000430039520485", "1000430039530721", "1000430035060580", "1000430039550027", "1000430039560571", "1000430039560571", "1000430035110205", "1000430035170886", "1000430035760822", "1000430035900046", "1000430040080046", "1000430035980767", "1000430036051004", "1000430036240156", "1000430036240156"];
$arr2 = ["1000429769590276", "1000429999260118", "1000429999400794", "1000429999950757", "1000430000060315", "1000430000140315", "1000430000160088", "1000430000200823", "1000430000290298", "1000430000380457", "1000430003210700", "1000430004520201", "1000430004530766", "1000430004850362", "1000430004870591", "1000430005170131", "1000430005220533", "1000430005290448", "1000430005310718", "1000430005880886", "1000430005960156", "1000430006260376", "1000430006740058", "1000430012360131", "1000430012500286", "1000430012830183", "1000430012900001", "1000430013560519", "1000430013881003", "1000430014210352", "1000430014320367", "1000430014600099", "1000430014750648", "1000430014770062", "1000430014780038", "1000430014790074", "1000430014800598", "1000430014810703", "1000430014820784", "1000430014850172", "1000430014870379", "1000430014890774", "1000430014900764", "1000430014910379", "1000430014970363", "1000430015150518", "1000430015170556", "1000430015310498", "1000430015440647", "1000430015520378", "1000430015840734", "1000430017330592", "1000430017510931", "1000430018940761", "1000430019470116", "1000430019500168", "1000430019520794", "1000430019530523", "1000430019560327", "1000430019570703", "1000430019580784", "1000430019620148", "1000430019640764", "1000430019680129", "1000430019690805", "1000430019700648", "1000430019710631", "1000430019880628", "1000430019990312", "1000430020050753", "1000430020730852", "1000430020760933", "1000430021080248", "1000430031840206", "1000430031910905", "1000430031980000", "1000430032000997", "1000430032040932", "1000430032110732", "1000430032160725", "1000430032440692", "1000430032480648", "1000430032850104", "1000430033130374", "1000430033190845", "1000430033320875", "1000430034010994", "1000430034360183", "1000430034780035", "1000430034990467", "1000430035060580", "1000430035110205", "1000430035170886", "1000430035760822", "1000430035900046", "1000430035980767", "1000430036051004", "1000430036240156", "1000430036990879", "1000430037010610", "1000430037550574", "1000430037630147", "1000430037700574", "1000430038330731", "1000430038450934", "1000430038740617", "1000430039480169", "1000430039520485", "1000430039530721", "1000430039550027", "1000430039560571", "1000430040080046"];
// $arr1 = ["1000429769590276"];
// $arr2 = ["1000429999260118"];
$unique_arr = array_unique($arr1);
// 获取重复数据的数组
$repeat_arr = array_diff_assoc($arr1, $unique_arr);
dump($repeat_arr);exit;
// sort($arr1);
// dump($arr1);
// sort($arr2);
// dump($arr2);
// dump(array_diff($arr1, $arr2));
}
public function test10() {
$weibo = new WeiboService();
$weibo->moveLastDayCount();
}
public function test11() {
// $s = file();
$s = file_get_contents("/Users/shixuesen/Downloads/univ.json");
$match = null;
preg_match_all("#univNameCn:\s\"(.*)\",[\S|\s|\n]{0,500}\sscore:(.*),#", $s, $match);
$map = [];
$i = 1;
foreach ($match[1] as $key => $value) {
$map[$value] = $i++;
}
$e = json_encode($map);
file_put_contents("/Users/shixuesen/Downloads/univ_e.json", $e);
$f = file_get_contents("/Users/shixuesen/Downloads/univ_e.json");
dump(json_decode($f));
// dump($map);
// echo json_last_error_msg();
}
public function sqlGenerate($value = '') {
$source = 'union
SELECT SUBSTRING_INDEX(`biz_key` , "|", 1) as "商品ID", SUBSTRING_INDEX(SUBSTRING_INDEX(`biz_extend`, ",", 2), ":", -1) as "订单编号", `user_id` as "买家ID" , `post_time` as "晒单时间", floor(`evaluation_value` / 20) as "评分", `content` as "晒单内容", case when locate("精选", `tags`) > 0 THEN "" else "" END as "是否精选" FROM `evaluation_#1#` left JOIN `evaluation_content_#1#` ON `evaluation_#1#`.`evaluation_id` = `evaluation_content_#1#`.`evaluation_id`
where `evaluation_value` BETWEEN 60 and 100 and `evaluation_content_#1#`.`content_type` = 1 ';
for ($i = 0; $i < 512; $i++) {
$r = str_replace("#1#", $i, $source);
echo $r . "\n";
}
}
} }

+ 25
- 0
app/Http/Controllers/CommonSettingsController.php View File

@ -4,6 +4,9 @@ namespace App\Http\Controllers;
use App\CommonSettings; use App\CommonSettings;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Redis;
use Log;
class CommonSettingsController extends Controller class CommonSettingsController extends Controller
{ {
@ -82,4 +85,26 @@ class CommonSettingsController extends Controller
{ {
// //
} }
public function univJson(Request $request)
{
// document.querySelectorAll(".timeline-wrap.edu-exps > div > div.content.join-text-wrap").forEach(univ => console.log(univ.firstChild))
$univ = trim($request->get("univ"));
Log::info("univ is {$univ}");
$f = null;
if (Redis::connection()->get("univ_json") == null) {
$f = file_get_contents("/Users/shixuesen/Downloads/univ_e.json");
Redis::connection()->set("univ_json", $f);
} else {
$f = Redis::connection()->get("univ_json");
}
if ($univ == null || $univ == "") {
return $f;
}
Log::info("univs is " . $f);
$content = json_decode($f, true);
return Arr::get($content, $univ, 999);
}
} }

+ 13
- 49
app/Http/Controllers/WeiboController.php View File

@ -7,7 +7,17 @@ use App\Weibo;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class WeiboController extends Controller { class WeiboController extends Controller {
/**
private $weiboService;
public function __construct()
{
$this->weiboService = new WeiboService();
}
/**
* Display a listing of the resource. * Display a listing of the resource.
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
@ -38,52 +48,7 @@ class WeiboController extends Controller {
// 录像专用小马甲 1076033785550287 // 录像专用小马甲 1076033785550287
// 录像专用小马甲1 1076037453003153 // 录像专用小马甲1 1076037453003153
// 录像专用小马甲2 1076036637436995 // 录像专用小马甲2 1076036637436995
$list = [
// "tu是真的tu" => "1076032267562540",
"自己" => "230259",
"轮子哥" => "2304131916825084",
"徐圣佑- 新号" => "1076035893812490",
"Afreecatv 精选" => "1076037383142802",
"AF-录制" => "1076037627445357",
"录像专用小马甲" => "1076033785550287",
"录像专用小马甲1" => "1076037453003153",
"录像专用小马甲2" => "1076036637436995",
"短短" => "1076032137020951",
"物理" => "2304133907143723",
"亲亲奥利给 af" => "1005056070814923",
"FanCam_" => "1076032740158183",
"ParmyAU" => "1076032482381165",
"热舞托管站" => "1076037422251891",
"af尼美舞蹈" => "1076035639898367",
"傲娇的猫猫猫" => "1076033118852135",
"绅士甄选" => "1076037644465107",
"Win话事人" => "1076032439815352",
"粤上秋璃子" => "1076037747006685",
"腐团儿" => "1076032304291523",
"聂小雨" => "1076032579189065",
"小何同学" => "1076032104580380",
"只有一个9521" => "1076037504338957",
"娜扎工作室" => "2304136001863056",
"刘教師特别授業" => "1076037686776705",
"Nana姐姐的微博" => "1076037764879728",
"小蓝蓝 plus" => "1076037409360499",
"露露" => "1076037731119705",
"小仓" => "1076036880826706",
"EstheticBody" => "1076036577888143",
"kyokyo" => "1076032591431197",
"softygirls" => "1076035040459465",
"是你的程儿" => "1076037607376925",
"Kokuhui" => "1076037504965364",
"" => "1076037648703289",
"小红帽舞托" => "2304137160189611",
"李一桐工作室" => "1076035973698579",
"李一桐" => "1076035372556014",
"Yukicai-" => "1076031035321575",
"知一呐" => "1076037458616069",
"" => "1076037040041221",
// "娜扎工作室" => "2304136001863056_-_WEIBO_SECOND_PROFILE_WEIBO",
];
$list = $this->weiboService->weiboContainerIdList();
$url = array(); $url = array();
@ -135,8 +100,7 @@ class WeiboController extends Controller {
public function store(Request $request) { public function store(Request $request) {
// die(); // die();
// Log::info($request->input()); // Log::info($request->input());
$weibo = new WeiboService();
$result = $weibo->scrapeWeiboPicAndVideo($request->input("content"));
$result = $this->weiboService->scrapeWeiboPicAndVideo($request->input("content"));
// $result = $weibo->scrapeGroupWeiboPicAndVideo($request->input("content")); // $result = $weibo->scrapeGroupWeiboPicAndVideo($request->input("content"));
return response()->json($result); return response()->json($result);
} }


+ 1
- 0
app/Http/Kernel.php View File

@ -19,6 +19,7 @@ class Kernel extends HttpKernel
\App\Http\Middleware\TrimStrings::class, \App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class, \App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class, # this line
]; ];
/** /**


+ 134
- 29
app/Services/AcfunService.php View File

@ -54,21 +54,20 @@ class AcfunService {
CURLOPT_POSTFIELDS => $param, CURLOPT_POSTFIELDS => $param,
CURLOPT_HTTPHEADER => array( CURLOPT_HTTPHEADER => array(
'authority: www.acfun.cn', 'authority: www.acfun.cn',
'accept: application/json, text/plain, */*',
'accept: */*',
'accept-language: zh-CN,zh;q=0.9', 'accept-language: zh-CN,zh;q=0.9',
'cache-control: no-cache', 'cache-control: no-cache',
'content-type: application/x-www-form-urlencoded',
'cookie: csrfToken=Y66_80DyOUzh3300_JppG-lj; _did=web_27335482609AC197; cur_req_id=602812808A57D014_self_2d45c537a4f93b4689463857c3114dd1; cur_group_id=602812808A57D014_self_2d45c537a4f93b4689463857c3114dd1_0; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1690949379; lsv_js_player_v2_main=e4d400; stochastic=dnU5a2sxM3I2YWM%3D; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScJE3kMWPZFp8HUJuLyT60kKBKFKCtLbYyK8VmCkHqWfZ4HLiGoLg9Rv4F5ezMd-7rnq8oZ088XIoXeHI5HnUaxrN_0Pbs7WVWDqs-3DpYE07TcS82E_kPgwgTFAwt9jh7xc91o_Q-_v3tSAEUthCwuwaEtg7AkwMUtojw7sGpJwKYwEO5CIgK5Hn30lT3kxo9l7lM_fTFK8dfqhTI0f3HEIrFvgs8bMoBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=8fb77d89b7c29b47c62cfbc6d82c23d82f7b; ac_userimg=https%3A%2F%2Fimgs.aixifan.com%2Fstyle%2Fimage%2F201907%2FuQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1690949398',
'origin: https://www.acfun.cn',
'cookie: csrfToken=cxz9Oe21WoDFZYl3TTHsqv4k; _did=web_388385460DFDFC9F; cur_req_id=361821796955B69A_self_2d45c537a4f93b4689463857c3114dd1; cur_group_id=361821796955B69A_self_2d45c537a4f93b4689463857c3114dd1_0; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1697170205; lsv_js_player_v2_main=e4d400; stochastic=c2szYnRlbHpsdG0%3D; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScCbmhGY2J7R1vWjSV-QGrsoKtJx3rWoEnadNCedw4Frwasg3QtAfH3WfrmCWMFIkC8j7ORv5Dfl2hSC6eE46rfOkBfaOwno8j8HD0XMY3kuKz2BJgIsAY5oiupe5C1VDC15amEd4bdYc_8slFoQSZMgaEv_ytBX1SUzuojzfT3qKAFJ3CCIg9IVUrx5JUPvQr3rPObqfAyMxwxqHLA2RhVPw9b5JTEMoBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=bf8ae1f2b79e479172ecaa3a893ee6045952; ac_userimg=https%3A%2F%2Fimgs.aixifan.com%2Fstyle%2Fimage%2F201907%2FuQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; safety_id=AAKWI536cb7ZEaWk_4cwOlug; _did=web_388385460DFDFC9F; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1697170267',
'pragma: no-cache', 'pragma: no-cache',
'referer: https://www.acfun.cn/member/favourite',
'sec-ch-ua: "Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"',
'referer: https://www.acfun.cn/member/',
'sec-ch-ua: "Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"',
'sec-ch-ua-mobile: ?0', 'sec-ch-ua-mobile: ?0',
'sec-ch-ua-platform: "macOS"', 'sec-ch-ua-platform: "macOS"',
'sec-fetch-dest: empty', 'sec-fetch-dest: empty',
'sec-fetch-mode: cors', 'sec-fetch-mode: cors',
'sec-fetch-site: same-origin', 'sec-fetch-site: same-origin',
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
'x-requested-with: XMLHttpRequest',
), ),
)); ));
@ -133,7 +132,7 @@ class AcfunService {
} }
Log::info($item['title'] . " (" . $item["from_up_name"] . ").mp4" . " does not exists to download"); Log::info($item['title'] . " (" . $item["from_up_name"] . ").mp4" . " does not exists to download");
// exit; // exit;
$downloadResult = shell_exec('cd "' . $innerDir . '" && you-get https://www.acfun.cn/v/ac' . $item["content_id"]);
$downloadResult = shell_exec('cd "' . $innerDir . '" && python -m youtube_dl https://www.acfun.cn/v/ac' . $item["content_id"]);
Log::info($downloadResult); Log::info($downloadResult);
$item["is_downloaded"] = 1; $item["is_downloaded"] = 1;
$item->save(); $item->save();
@ -194,18 +193,21 @@ class AcfunService {
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array( CURLOPT_HTTPHEADER => array(
'authority: m.acfun.cn',
'pragma: no-cache',
'cache-control: no-cache',
'upgrade-insecure-requests: 1',
'user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'sec-fetch-site: none',
'sec-fetch-mode: navigate',
'sec-fetch-user: ?1',
'sec-fetch-dest: document',
'authority: www.acfun.cn',
'accept: */*',
'accept-language: zh-CN,zh;q=0.9', 'accept-language: zh-CN,zh;q=0.9',
'cookie: _did=web_492135297EB70FE5; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScMqMOf7IIDgLFifcwDByiCz1Wv6zcyhwUzxFnkKxtITs0jGXUUuLWqDsl-7NGWvWwo5AcSoY2-Kjd3CZOXY7PNERtpJIdfyEJ4AFL7nlbdkjI_V_uUanyorcfQ7kaiWNig2_E6FVh7O8nRoGss5vf9saErqF0TDd7uDbNNp-mP7P0DOW_CIg24xq_0sWM6gTjuCWKKX9x7Yg_OpB1KtIk17LYCXdAPwoBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=b9f4cda120751d7200fa5158fa16dcbcaf88; ac_userimg=https%3A%2F%2Fimgs.aixifan.com%2Fstyle%2Fimage%2F201907%2FuQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; safety_id=AAJRRbRCoai0XjYzLsf70ktB; EGG_SESS=LeuVrD7spUl4PQfNroW9BEVd1JGguP_VHNuClb-BCn-E0TK-gvszCD8JicS8W_cFD8r34_e30N8vQt95J-5Pn7CoX6NDxA_Sm_p3S-E8GaWKY5L1qIfhe_n0viZOlC1RZN9e9wm6bVjMwJc04acrWA==; Hm_lvt_c68e829637dac3d1ad7a134d18b6064f=1641224120; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1641223365,1641261026; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1641261026; _did=web_492135297EB70FE5',
'cache-control: no-cache',
'cookie: csrfToken=cxz9Oe21WoDFZYl3TTHsqv4k; _did=web_388385460DFDFC9F; cur_req_id=361821796955B69A_self_2d45c537a4f93b4689463857c3114dd1; cur_group_id=361821796955B69A_self_2d45c537a4f93b4689463857c3114dd1_0; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1697170205; lsv_js_player_v2_main=e4d400; stochastic=c2szYnRlbHpsdG0%3D; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScCbmhGY2J7R1vWjSV-QGrsoKtJx3rWoEnadNCedw4Frwasg3QtAfH3WfrmCWMFIkC8j7ORv5Dfl2hSC6eE46rfOkBfaOwno8j8HD0XMY3kuKz2BJgIsAY5oiupe5C1VDC15amEd4bdYc_8slFoQSZMgaEv_ytBX1SUzuojzfT3qKAFJ3CCIg9IVUrx5JUPvQr3rPObqfAyMxwxqHLA2RhVPw9b5JTEMoBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=bf8ae1f2b79e479172ecaa3a893ee6045952; ac_userimg=https%3A%2F%2Fimgs.aixifan.com%2Fstyle%2Fimage%2F201907%2FuQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; safety_id=AAKWI536cb7ZEaWk_4cwOlug; _did=web_388385460DFDFC9F; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1697170267',
'pragma: no-cache',
'referer: https://www.acfun.cn/member/',
'sec-ch-ua: "Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"',
'sec-ch-ua-mobile: ?0',
'sec-ch-ua-platform: "macOS"',
'sec-fetch-dest: empty',
'sec-fetch-mode: cors',
'sec-fetch-site: same-origin',
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
'x-requested-with: XMLHttpRequest',
), ),
)); ));
@ -241,24 +243,27 @@ class AcfunService {
CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array( CURLOPT_HTTPHEADER => array(
'authority: m.acfun.cn', 'authority: m.acfun.cn',
'pragma: no-cache',
'cache-control: no-cache',
'user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
'x-requested-with: XMLHttpRequest',
'accept: */*', 'accept: */*',
'sec-fetch-site: same-origin',
'sec-fetch-mode: cors',
'sec-fetch-dest: empty',
'referer: https://m.acfun.cn/upPage/4537972?',
'accept-language: zh-CN,zh;q=0.9', 'accept-language: zh-CN,zh;q=0.9',
'cookie: _did=web_280933889D060418; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScIVlVCL6FSd7r7J8EESfIrvCZWZ44ZhcldtaiMZTVnka4I1hQQGJ-ywegVxy5bWPDafabEeWEH1IA3W44p_U3tOfyvt5ivCVDiZd-OlAWMOYtj3Og-s0rdEqcqMX_NTExa2jZ3M2N3z_uZHVHghIXPkaEsDLegiAw1sTxw7mkhbBiGkpPiIgMVkL4EVoF5UUt584m8hro8yjbem-qWBoGte7yFXO89AoBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=cd58860b125ee662a0d161cff68c37e2180f; ac_userimg=https://imgs.aixifan.com/style/image/201907/uQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; _did=web_280933889D060418; csrfToken=AgVgghhXcxJW5CTDNT7kiOWY; cur_req_id=7852848870815E4E_self_2d45c537a4f93b4689463857c3114dd1; cur_group_id=7852848870815E4E_self_2d45c537a4f93b4689463857c3114dd1_0; webp_supported={"lossy":true,"lossless":true,"alpha":true,"animation":true}; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1665098925,1666089608,1667002226; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1667002226; lsv_js_player_v2_main=e4d400',
'cache-control: no-cache',
'pragma: no-cache',
'referer: https://m.acfun.cn/upPage/10703951?',
'sec-ch-ua: "Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"',
'sec-ch-ua-mobile: ?1',
'sec-ch-ua-platform: "Android"',
'sec-fetch-dest: empty',
'sec-fetch-mode: cors',
'sec-fetch-site: same-origin',
'user-agent: Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36',
'x-requested-with: XMLHttpRequest',
), ),
)); ));
$response = curl_exec($curl); $response = curl_exec($curl);
curl_close($curl); curl_close($curl);
// echo $response;
// echo $response;
// exit;
$replaced = str_replace("/*<!-- fetch-stream -->*/", "", $response); $replaced = str_replace("/*<!-- fetch-stream -->*/", "", $response);
$result = json_decode($replaced, true); $result = json_decode($replaced, true);
if ($result == null || !array_key_exists("scripts", $result)) { if ($result == null || !array_key_exists("scripts", $result)) {
@ -283,4 +288,104 @@ class AcfunService {
unset($result); unset($result);
return $parsed; return $parsed;
} }
public function queryUpUsersVideosV2($upId, $upName) {
$upUrl = $this->upBaseUrl . $upId;
$mainQl = QueryList::getInstance();
$pCursor = "";
$page = 1;
$queried = 0;
$reqId = 1;
do {
$wbinfos = [];
$titles = [];
$result = $this->requestUpPagePCApi($upId, $reqId, $page);
// dump($result);
if (!$result) {
return;
}
$wbinfos = $mainQl->setHtml($result["html"])->find(".ac-space-video")->attrs("data-wbinfo");
$titles = $mainQl->setHtml($result["html"])->find(".title")->htmls();
// dump($wbinfos);
// dump($titles);exit;
if (count($wbinfos) == 0) {
// code...
break;
}
foreach ($wbinfos as $key => $wbinfo) {
$wbJson = json_decode($wbinfo, true);
AcfunVideo::firstOrCreate(
["content_id" => $wbJson["mediaId"]],
[
"title" => $titles[$key],
"from_type" => 2,
"from_collection_name" => "",
"from_up_name" => "$upName",
"from_up_user_id" => $upId,
]
);
}
// $queried += $result["pageSize"];
// Log::info("current queried: " . $queried);
// if (array_key_exists("noMore", $result) || $queried > (int) $result["totalCount"]) {
// break;
// }
// if (array_key_exists("pcursor", $result)) {
// $pCursor = $result["pcursor"];
$reqId++;
$page++;
// } else {
// break;
// }
} while (true);
}
public function requestUpPagePCApi($upId, $reqId, $page) {
$curl = curl_init();
if ($upId == null) {
return "";
}
$t = time() * 1000;
$url = "https://www.acfun.cn/u/$upId?quickViewId=ac-space-video-list&reqID=$reqId&ajaxpipe=1&type=video&order=newest&page={$page}&pageSize=20&t=$t";
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'authority: www.acfun.cn',
'accept: */*',
'accept-language: zh-CN,zh;q=0.9',
'cache-control: no-cache',
'cookie: _did=web_388385460DFDFC9F; _did=web_388385460DFDFC9F; lsv_js_player_v2_main=e4d400; csrfToken=fjMi-0ixCRuVRpGN5Lz2s7Zo; cur_req_id=821488364D119F62_self_39ec375e04fa2b11099dd441ca3bca54; cur_group_id=821488364D119F62_self_39ec375e04fa2b11099dd441ca3bca54_0; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1699527119,1700444342; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1700444342',
'pragma: no-cache',
'referer: https://www.acfun.cn/u/1016261',
'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"',
'sec-ch-ua-mobile: ?0',
'sec-ch-ua-platform: "macOS"',
'sec-fetch-dest: empty',
'sec-fetch-mode: cors',
'sec-fetch-site: same-origin',
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
'x-requested-with: XMLHttpRequest',
),
));
$response = curl_exec($curl);
curl_close($curl);
$replaced = str_replace("/*<!-- fetch-stream -->*/", "", $response);
$result = json_decode($replaced, true);
$parsedResult["html"] = $result["html"];
// dump($parsedResult);exit;
return $parsedResult;
}
} }

+ 852
- 886
app/Services/BilibiliService.php
File diff suppressed because it is too large
View File


+ 1292
- 1286
app/Services/BilibiliServiceV2.php
File diff suppressed because it is too large
View File


+ 41
- 21
app/Services/FfmpegService.php View File

@ -21,6 +21,8 @@ class FfmpegService {
private $preset = ""; private $preset = "";
private $redis = null;
const DEFAULT_EXTENSION = "mp4"; const DEFAULT_EXTENSION = "mp4";
public function __construct() { public function __construct() {
@ -35,8 +37,26 @@ class FfmpegService {
); );
$this->ffprobe = FFProbe::create($config); $this->ffprobe = FFProbe::create($config);
} }
/**
* @param null $redis
*/
public function setRedis($redisConnection): void
{
$this->redis = Redis::connection($redisConnection);
}
public function getRedis(): ?\Illuminate\Redis\Connections\Connection
{
if ($this->redis != null) {
return $this->redis;
} else {
return Redis::connection();
}
}
/** /**
* @return string * @return string
*/ */
@ -122,11 +142,11 @@ class FfmpegService {
if ($isDir) { if ($isDir) {
$this->processDir($subDir); $this->processDir($subDir);
} else { } else {
$item = Redis::connection()->rpop($queue);
$item = $this->getRedis()->rpop($queue);
while ($item != null) { while ($item != null) {
$this->processVideo($item); $this->processVideo($item);
echo $item . "\n"; echo $item . "\n";
$item = Redis::connection()->rpop($queue);
$item = $this->getRedis()->rpop($queue);
} }
$this->processVideo($subDir); $this->processVideo($subDir);
} }
@ -135,11 +155,11 @@ class FfmpegService {
public function processVideo($pathFile) { public function processVideo($pathFile) {
$slowFlag = false; $slowFlag = false;
if (date("H") >= 5 && date("i") > 30 && date("H") < 9) {
Log::info("H > 6 stopFlag is set");
dump("H > 6 stopFlag is set");
exit;
}
// if (date("H") >= 5 && date("i") > 30 && date("H") < 9) {
// Log::info("H > 6 stopFlag is set");
// dump("H > 6 stopFlag is set");
// exit;
// }
// while () { // while () {
// Log::info("now is " . date("Y-m-d H:i:s") . " sleep 5 minutes"); // Log::info("now is " . date("Y-m-d H:i:s") . " sleep 5 minutes");
// sleep(5 * 60); // sleep(5 * 60);
@ -154,31 +174,31 @@ class FfmpegService {
$mediaInfo->setConfig('use_oldxml_mediainfo_output_format', true); $mediaInfo->setConfig('use_oldxml_mediainfo_output_format', true);
if (strstr($mime, "video/") || strstr($mime, "application/octet-stream")) { if (strstr($mime, "video/") || strstr($mime, "application/octet-stream")) {
if (is_file($pathFile)) { if (is_file($pathFile)) {
if (Redis::get("stopFlag") != null) {
if ($this->getRedis()->get("stopFlag") != null) {
Log::info("stopFlag is set"); Log::info("stopFlag is set");
dump("stopFlag is set"); dump("stopFlag is set");
exit; exit;
} }
$fileInfo = pathinfo($pathFile); $fileInfo = pathinfo($pathFile);
if (Redis::get("encode:lock:" . $fileInfo["filename"]) == 1) {
if ($this->getRedis()->get("encode:lock:" . $fileInfo["filename"]) == 1) {
Log::info("file is encoding filename: " . $fileInfo["filename"]); Log::info("file is encoding filename: " . $fileInfo["filename"]);
return; return;
} }
if (!Redis::set("encode:lock:" . $fileInfo["filename"], 1, "nx", "ex", 36000)) {
if (!$this->getRedis()->set("encode:lock:" . $fileInfo["filename"], 1, "nx", "ex", 36000)) {
Log::info("lock failed filename: " . $fileInfo["filename"]); Log::info("lock failed filename: " . $fileInfo["filename"]);
return; return;
} }
if (Redis::sismember("unneed", $fileInfo["filename"])) {
if ($this->getRedis()->sismember("unneed", $fileInfo["filename"])) {
Log::info("in uneed: " . $fileInfo["filename"]); Log::info("in uneed: " . $fileInfo["filename"]);
return; return;
} }
if (Redis::sismember("sizeSmall", $fileInfo["filename"]) || !$this->checkFileSize($pathFile)) {
Redis::sadd("sizeSmall", $fileInfo["filename"]);
if ($this->getRedis()->sismember("sizeSmall", $fileInfo["filename"]) || !$this->checkFileSize($pathFile)) {
$this->getRedis()->sadd("sizeSmall", $fileInfo["filename"]);
Log::info("filesize: " . $fileInfo["filename"]); Log::info("filesize: " . $fileInfo["filename"]);
return; return;
} }
if (Redis::sismember("hasEncode", $fileInfo["filename"]) || $this->checkFileEncodeType($pathFile)) {
Redis::sadd("hasEncode", $fileInfo["filename"]);
if ($this->getRedis()->sismember("hasEncode", $fileInfo["filename"]) || $this->checkFileEncodeType($pathFile)) {
$this->getRedis()->sadd("hasEncode", $fileInfo["filename"]);
Log::info("$pathFile has already encode by h265 return"); Log::info("$pathFile has already encode by h265 return");
return; return;
} }
@ -226,19 +246,19 @@ class FfmpegService {
$oldFileSize = filesize($pathFile); $oldFileSize = filesize($pathFile);
$newFileSize = filesize($targetFile); $newFileSize = filesize($targetFile);
if ($newFileSize >= $oldFileSize) { if ($newFileSize >= $oldFileSize) {
Redis::sadd("unneed", $fileInfo["filename"]);
$this->getRedis()->sadd("unneed", $fileInfo["filename"]);
echo "old file size is smaller than new one, old is " . file_size($oldFileSize) . " and new is " . file_size($newFileSize) . ", now remove new one"; echo "old file size is smaller than new one, old is " . file_size($oldFileSize) . " and new is " . file_size($newFileSize) . ", now remove new one";
Log::info("old file size is smaller than new one, old is " . file_size($oldFileSize) . " and new is " . file_size($newFileSize) . ", now remove new one"); Log::info("old file size is smaller than new one, old is " . file_size($oldFileSize) . " and new is " . file_size($newFileSize) . ", now remove new one");
unlink($targetFile); unlink($targetFile);
} else { } else {
Redis::sadd("unneed", $fileInfo["filename"]);
$this->getRedis()->sadd("unneed", $fileInfo["filename"]);
echo "new file size is smaller than old one, new is " . file_size($newFileSize) . " and old is " . file_size($oldFileSize) . ", now remove old one"; echo "new file size is smaller than old one, new is " . file_size($newFileSize) . " and old is " . file_size($oldFileSize) . ", now remove old one";
Log::info("new file size is smaller than old one, new is " . file_size($newFileSize) . " and old is " . file_size($oldFileSize) . ", now remove old one"); Log::info("new file size is smaller than old one, new is " . file_size($newFileSize) . " and old is " . file_size($oldFileSize) . ", now remove old one");
unlink($pathFile); unlink($pathFile);
rename($targetFile, $pathFile); rename($targetFile, $pathFile);
} }
} }
Redis::del("encode:lock:" . $fileInfo["filename"]);
$this->getRedis()->del("encode:lock:" . $fileInfo["filename"]);
} }
} }
} }
@ -322,11 +342,11 @@ class FfmpegService {
public function checkFileSize($file, $size = 1): bool { public function checkFileSize($file, $size = 1): bool {
if (is_file($file) && filesize($file) > 1 * 1024) {
if (is_file($file) && filesize($file) > 4 * 1024 * 1024 * 1024) {
return true; return true;
} }
$fileSize = FileUtils::humanFilesize(filesize($file)); $fileSize = FileUtils::humanFilesize(filesize($file));
echo "$file size < 1Mb filesize is $fileSize skip \n";
echo "$file size < 4GB filesize is $fileSize skip \n";
return true; return true;
} }
@ -343,7 +363,7 @@ class FfmpegService {
Log::error("ffprobe has error just return false for test, exception: " . $e->getMessage()); Log::error("ffprobe has error just return false for test, exception: " . $e->getMessage());
return false; return false;
} }
// return false;
return false;
return trim($codecName) == "hevc"; return trim($codecName) == "hevc";
} }


+ 20
- 19
app/Services/InstagramService.php View File

@ -1192,7 +1192,7 @@ class InstagramService {
$baseImageDir = "/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/"; $baseImageDir = "/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/";
try { try {
$maxId = "KJgBARQAIAFwAFAAMAAgABgAEAAIAAgACADZa_v9-Pm7d5_W_5Xvd_7_mPv8_z_33fr2p_D8dPx99u_Xctse5msKHZn0u-RNHtpn37-8kZneycSmz3qj99bAii8bvsnA7qPcjbYj_v92n-f___-_v_v9P___7-_f875v_f___5___95ZRzUFT9m_uKqgR79U8eO0uMQcXTQYqQIW1p7lw_hgRhApBBkEIjIA";
$maxId = null;
do { do {
$response = $this->ig->timeline->getTimelineFeed($maxId); $response = $this->ig->timeline->getTimelineFeed($maxId);
foreach ($response->getFeedItems() as $item) { foreach ($response->getFeedItems() as $item) {
@ -1341,7 +1341,8 @@ class InstagramService {
sleep(5 * random_int(1, 100)); sleep(5 * random_int(1, 100));
} while ($maxId != null); } while ($maxId != null);
} catch (Exception $e) { } catch (Exception $e) {
echo $e->getMessage();exit;
echo $e->getMessage();
exit;
echo 'scrapeFeeds something went wrong: ' . $e->getTraceAsString() . "\n"; echo 'scrapeFeeds something went wrong: ' . $e->getTraceAsString() . "\n";
} }
} }
@ -1556,8 +1557,8 @@ class InstagramService {
$efficientUserList = []; $efficientUserList = [];
$recentUsers = Redis::connection()->smembers(self::TODAY_USER_KEY); $recentUsers = Redis::connection()->smembers(self::TODAY_USER_KEY);
foreach ($userList as $userName) { foreach ($userList as $userName) {
if (empty($recentUsers) || !in_array($userName, $recentUsers)) {
$efficientUserList[] = $userName;
if (empty($recentUsers) || !in_array(trim($userName), $recentUsers)) {
$efficientUserList[] = trim($userName);
} }
} }
$userList = $efficientUserList; $userList = $efficientUserList;
@ -1567,6 +1568,7 @@ class InstagramService {
// 跳过逻辑 // 跳过逻辑
$skipUsers = ["youbastardddd", "hanna91914", "amandacerny"]; $skipUsers = ["youbastardddd", "hanna91914", "amandacerny"];
Log::info("today users " . json_encode($userList));
foreach ($userList as $userName) { foreach ($userList as $userName) {
if (in_array($userName, $skipUsers)) { if (in_array($userName, $skipUsers)) {
continue; continue;
@ -2200,25 +2202,24 @@ class InstagramService {
'accept-language' => 'zh-CN,zh;q=0.9', 'accept-language' => 'zh-CN,zh;q=0.9',
'cache-control' => 'no-cache', 'cache-control' => 'no-cache',
'content-type' => 'application/x-www-form-urlencoded', 'content-type' => 'application/x-www-form-urlencoded',
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; datr=qAREY1W0Mocw3OoikuJcsL1c; ds_user_id=361404591; fbm_124024574287414=base_domain=.instagram.com; fbsr_124024574287414=DbSlSA-tZBTw9JzVnqD5ryNyIo2U7ckE0uZMJ7GVTC8.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRRHp5N2VndUhRZWdRV296WFdmeW5FMXpOVlJBeGM0VDU3UldWR1kwWFlUd21DdmtuY0tFREl6Y080ZzZ0MGo3R1pVRW1wVElQWkxuMXBIcllkX2t5VVBubXZYS3BkSThjOUNaVzREVFZoSzc3ODJoNlVrLVNnUXQ1OFY1UFNXNm9SNFBSNnYzUGJmSE9pdDBpX1pJTmJRUUQybUFBVXNJV2MtaU5IdnNzcGcyZmhkdy1UX2hpbEpPR2Zfc3p3YTFLSm9hbV9yNE1GeGhDbmpYUUlfaDJfUjZiSEhrWTUzZ1UzRkROMXV2MjFKb0NhU3IxYzhaT3Z1VDhXZ2wtc3hsTk5oRFFuSTl2c29pY0xrTmxwUHhrQ21ZQ1Nfd19PVi1OR2tqRl9UU0RQdzRYNjRERlJtTVczZ0tCQmN3TzBUZ1ZRay1XY0QySUc2UHpUT09TY1Z3WDROIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCTzdZSTdxY1pBSEk4cDFITFYyMm9Dc0kzVXdteTdQeXJnMUd6NXpaQVByb0htSnFROTFQOUhKQkFaQ1Rkd2RQb1hYTEZjTTJQc0x3cHBVZ2lBc3ZjUDE2eFFqUUNZZnVRVUpidDdZTzlLVmtrTFd4WkNVRVJRcG90UjZaQjdQOEwxbGxvWkMxS1kzNDFsbkM3RGVIaGlZWkM1R05TbUVldFZZdlZHMGhMcDVuTnA4OFZoVjFydW9KTzJRWkQiLCJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTY5NDM5NjE2OX0; csrftoken=Ui04sky5NhWWDWeXLxYxfPhdKCgqfhu4; sessionid=361404591%3AZBf1YdHhefMkKX%3A11%3AAYdl4U9C6fjdDt0xp8p8CHq_iGCA4EUe77b79RNIXw; shbid="13821\\054361404591\\0541725932196:01f732cd89bc9826f1160617f11f97630898e75f77669f52fbe192cbb392c77aa67f95f6"; shbts="1694396196\\054361404591\\0541725932196:01f736ffd2dc35effaf88e1f7b00784a8c14088d8bbd5eb11b512e2c4f68fb9acf070ef2"; fbsr_124024574287414=DbSlSA-tZBTw9JzVnqD5ryNyIo2U7ckE0uZMJ7GVTC8.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRRHp5N2VndUhRZWdRV296WFdmeW5FMXpOVlJBeGM0VDU3UldWR1kwWFlUd21DdmtuY0tFREl6Y080ZzZ0MGo3R1pVRW1wVElQWkxuMXBIcllkX2t5VVBubXZYS3BkSThjOUNaVzREVFZoSzc3ODJoNlVrLVNnUXQ1OFY1UFNXNm9SNFBSNnYzUGJmSE9pdDBpX1pJTmJRUUQybUFBVXNJV2MtaU5IdnNzcGcyZmhkdy1UX2hpbEpPR2Zfc3p3YTFLSm9hbV9yNE1GeGhDbmpYUUlfaDJfUjZiSEhrWTUzZ1UzRkROMXV2MjFKb0NhU3IxYzhaT3Z1VDhXZ2wtc3hsTk5oRFFuSTl2c29pY0xrTmxwUHhrQ21ZQ1Nfd19PVi1OR2tqRl9UU0RQdzRYNjRERlJtTVczZ0tCQmN3TzBUZ1ZRay1XY0QySUc2UHpUT09TY1Z3WDROIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCTzdZSTdxY1pBSEk4cDFITFYyMm9Dc0kzVXdteTdQeXJnMUd6NXpaQVByb0htSnFROTFQOUhKQkFaQ1Rkd2RQb1hYTEZjTTJQc0x3cHBVZ2lBc3ZjUDE2eFFqUUNZZnVRVUpidDdZTzlLVmtrTFd4WkNVRVJRcG90UjZaQjdQOEwxbGxvWkMxS1kzNDFsbkM3RGVIaGlZWkM1R05TbUVldFZZdlZHMGhMcDVuTnA4OFZoVjFydW9KTzJRWkQiLCJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTY5NDM5NjE2OX0; rur="FRC\\054361404591\\0541725932220:01f77f27fc8923954701627c92a96d87c8da6524ada064bcf32c3a4f6dce539bf1003b92"',
'cookie' => 'ds_user_id=361404591; fbm_124024574287414=base_domain=.instagram.com; ig_did=B118EB65-DCA3-47C7-BFD9-36AE91644AA2; datr=WV9UZdg4SM4SuzFpXR8wCv99; mid=ZVRfXQAEAAFUwW22kaeJsldDuWyn; csrftoken=zVdcURfwVjcy4n8VyxhaE6R2eZ3cm5hy; sessionid=361404591%3AXJ0sNXYIJF8fqD%3A13%3AAYcxobmvAGJexkUzLkcsYYVTBNrO_s0AdEEppZkWX4M; fbsr_124024574287414=kMDZo9Rp6MT1o2D34zQOKQ8LiB4FTIjFZWjW4c57Dwo.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRQnM0X0FhcHBWQWstMTZBamxUZFMzZEtXRXh6Q1NxX0RYYTMxdUtWSEtpTFVSbjh5T2FXSlpZamp1NXJPZTVvNWJvWUd5YXFfaVZ6RDFRaEd2NGVRdklkWHhvZ3d4UTZobVMxdXJKbVFfbVFqdVp5OXkwTXF6OU1vTS1tSFNld0NYN0I1aUlSNnF5dkNqamdYVE5MNE05NzF6bjVqZC1NeFMzcEZYTEttYWFDd0tBaTdYOHhTZHpzeFJ6RXlEcW5LMHdMOUU1QVM2Q0RLVVB3RTJQY2M5TXduUHNnUXQzNjItTEhid3hLLV9PU1BlbWg5cFMyTmhPeFg1M19NOWtrRmdHNWUxQ1pKMmZVY0dBY08za0ItaDlwUUxScVJUeFVJRWlLcHNVV1J0ZlRXdlN4MHNfYUMwb0c4S0FXeEo5WEkxVll1OC03NDlmRlFGUzBCclhtbjJWIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCTzFCeDZwREtPMVRPSjJheVNzWXBWUndmVVpDSUhWS3RZZU81NmV5WkJpQUZQRzVaQXpWVUZFYmJuUUFKMWQzUGRLaFhUazBrNVdBbUduM1hBQlE3R29WMnhQRE9RcmRjVjlzd3ZjbmpDcWtYcUx4RmQ2WkJPUXFlWUM4aHpoNTh2ZlpDVlkweU4yVEJXSUpTa09OQXdBMU1ScWMyWXhKREFJd3JlMFNwd0RFYVRVOVBxOXQ1UUFzVVpEIiwiYWxnb3JpdGhtIjoiSE1BQy1TSEEyNTYiLCJpc3N1ZWRfYXQiOjE3MDE4MzM4MzB9; fbsr_124024574287414=S3nyG_s69SShtcGMVxGfI-omvkpEthISGPUaOg1z7Xw.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRQ3lUQm9aRUw3STNHNTNjV250ZWNiRF9zYm0zMGVrRkQ0OWxfb1p2NTVZV2ZsWnZVME1zNUprbENvWXZkNnRMYTVFM2FWaWE4RS1HZC1TUUpLaXYzTXlBNjNCSDRfdzdlMVZuOU5teVNwRU9kN3Fiam9fTUpLS3dYanN6blRZWFdTbm9Ga2Z2MlVyNm93VEViZ3FsRkNKRm5yT3RJc3V6aFFKeHZpV2Jaa0JIeGoyYnFzR1JzSElINWdnTkZ2OFZ4VXZQU24yclk5YmhEOVozX2hBLVV6WHVFLVYxeEJjUXYxVWpta1c1SUdMcHdtY244OXplWmpraFhrY0ZOMldKbkszNWYySlRiWW5JQXZYTkhDOHNidkZhemJkNkJMamVfS3lWX0pTNm5OcHFMREp3UDFWM3JYV3NYZ3VNb2VWV3dnSlpEdEdQNngzSnd2Z2doX3NDc2hNIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCT3hvOVR3T0o4YUVnZ2V3eFZJS1VuNjZFQTRaQThteFpBNk5nUUt1M3JUTU0zaG5XSG9pMlhEdU9JdFpBRGlwcURnYUNoMTdFb09aQVZxUUFpSHdwcjRKYXVjcXF2UjByYWt0VnlURzBLS3dwQmJ4NDFCVUY1UDZkSjZaQjVWak9JY1ZrS0lKRlpBRHVUSkU2WWZ6NnBENDNBaDh3NHZ2eVF3ZHFsMjcwajZyRWZOUjZJNEs2WkNGWkJSWVpEIiwiYWxnb3JpdGhtIjoiSE1BQy1TSEEyNTYiLCJpc3N1ZWRfYXQiOjE3MDE5OTc1NjV9; shbid="13821\\054361404591\\0541733533565:01f70629712c4a079173e71418c82fd6d25e8fe6eb5423c9d53bc66963cfb4a272ff64c0"; shbts="1701997565\\054361404591\\0541733533565:01f788989dfd5aa12c56627ad5d85168f4297236b490ce9d35cb042ec56b62da8a7bca3b"; rur="VLL\\054361404591\\0541733533565:01f7923c155121dc9276048ffe2622c06be4cdf12b8fc3652b4e24931aac5e90196d1a22"',
'origin' => 'https://www.instagram.com', 'origin' => 'https://www.instagram.com',
'pragma' => 'no-cache', 'pragma' => 'no-cache',
'referer' => 'https://www.instagram.com/cho_hyunyoung/', 'referer' => 'https://www.instagram.com/cho_hyunyoung/',
'sec-ch-prefers-color-scheme' => 'light', 'sec-ch-prefers-color-scheme' => 'light',
'sec-ch-ua' => '"Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"',
'sec-ch-ua-full-version-list' => '"Not/A)Brand";v="99.0.0.0", "Google Chrome";v="115.0.5790.170", "Chromium";v="115.0.5790.170"',
'sec-ch-ua' => '"Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"',
'sec-ch-ua-full-version-list' => '"Google Chrome";v="119.0.6045.199", "Chromium";v="119.0.6045.199", "Not?A_Brand";v="24.0.0.0"',
'sec-ch-ua-mobile' => '?0', 'sec-ch-ua-mobile' => '?0',
'sec-ch-ua-platform' => '"macOS"', 'sec-ch-ua-platform' => '"macOS"',
'sec-ch-ua-platform-version' => '"12.6.0"', 'sec-ch-ua-platform-version' => '"12.6.0"',
'sec-fetch-dest' => 'empty', 'sec-fetch-dest' => 'empty',
'sec-fetch-mode' => 'cors', 'sec-fetch-mode' => 'cors',
'sec-fetch-site' => 'same-origin', 'sec-fetch-site' => 'same-origin',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
'viewport-width' => '1512',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
'x-asbd-id' => '129477', 'x-asbd-id' => '129477',
'x-csrftoken' => 'Ui04sky5NhWWDWeXLxYxfPhdKCgqfhu4',
'x-csrftoken' => 'zVdcURfwVjcy4n8VyxhaE6R2eZ3cm5hy',
'x-ig-app-id' => '936619743392459', 'x-ig-app-id' => '936619743392459',
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvJBm',
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvO71',
'x-instagram-ajax' => '1007675716', 'x-instagram-ajax' => '1007675716',
'x-requested-with' => 'XMLHttpRequest', 'x-requested-with' => 'XMLHttpRequest',
]; ];
@ -2237,7 +2238,7 @@ class InstagramService {
$request = new Request('POST', 'https://i.instagram.com/api/v1/feed/timeline/', $headers); $request = new Request('POST', 'https://i.instagram.com/api/v1/feed/timeline/', $headers);
$res = $client->sendAsync($request, $options)->wait(); $res = $client->sendAsync($request, $options)->wait();
$resStr = $res->getBody(); $resStr = $res->getBody();
// echo $resStr;
// echo $resStr;
$jsonArray = @json_decode($resStr, true, 512, JSON_BIGINT_AS_STRING); $jsonArray = @json_decode($resStr, true, 512, JSON_BIGINT_AS_STRING);
$response = new Response\TimelineFeedResponse(); $response = new Response\TimelineFeedResponse();
$response->assignObjectData($jsonArray); $response->assignObjectData($jsonArray);
@ -2293,13 +2294,13 @@ class InstagramService {
'accept' => '*/*', 'accept' => '*/*',
'accept-language' => 'zh-CN,zh;q=0.9', 'accept-language' => 'zh-CN,zh;q=0.9',
'cache-control' => 'no-cache', 'cache-control' => 'no-cache',
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; datr=qAREY1W0Mocw3OoikuJcsL1c; ds_user_id=361404591; fbm_124024574287414=base_domain=.instagram.com; fbsr_124024574287414=DbSlSA-tZBTw9JzVnqD5ryNyIo2U7ckE0uZMJ7GVTC8.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRRHp5N2VndUhRZWdRV296WFdmeW5FMXpOVlJBeGM0VDU3UldWR1kwWFlUd21DdmtuY0tFREl6Y080ZzZ0MGo3R1pVRW1wVElQWkxuMXBIcllkX2t5VVBubXZYS3BkSThjOUNaVzREVFZoSzc3ODJoNlVrLVNnUXQ1OFY1UFNXNm9SNFBSNnYzUGJmSE9pdDBpX1pJTmJRUUQybUFBVXNJV2MtaU5IdnNzcGcyZmhkdy1UX2hpbEpPR2Zfc3p3YTFLSm9hbV9yNE1GeGhDbmpYUUlfaDJfUjZiSEhrWTUzZ1UzRkROMXV2MjFKb0NhU3IxYzhaT3Z1VDhXZ2wtc3hsTk5oRFFuSTl2c29pY0xrTmxwUHhrQ21ZQ1Nfd19PVi1OR2tqRl9UU0RQdzRYNjRERlJtTVczZ0tCQmN3TzBUZ1ZRay1XY0QySUc2UHpUT09TY1Z3WDROIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCTzdZSTdxY1pBSEk4cDFITFYyMm9Dc0kzVXdteTdQeXJnMUd6NXpaQVByb0htSnFROTFQOUhKQkFaQ1Rkd2RQb1hYTEZjTTJQc0x3cHBVZ2lBc3ZjUDE2eFFqUUNZZnVRVUpidDdZTzlLVmtrTFd4WkNVRVJRcG90UjZaQjdQOEwxbGxvWkMxS1kzNDFsbkM3RGVIaGlZWkM1R05TbUVldFZZdlZHMGhMcDVuTnA4OFZoVjFydW9KTzJRWkQiLCJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTY5NDM5NjE2OX0; csrftoken=Ui04sky5NhWWDWeXLxYxfPhdKCgqfhu4; sessionid=361404591%3AZBf1YdHhefMkKX%3A11%3AAYdl4U9C6fjdDt0xp8p8CHq_iGCA4EUe77b79RNIXw; shbid="13821\\054361404591\\0541725932196:01f732cd89bc9826f1160617f11f97630898e75f77669f52fbe192cbb392c77aa67f95f6"; shbts="1694396196\\054361404591\\0541725932196:01f736ffd2dc35effaf88e1f7b00784a8c14088d8bbd5eb11b512e2c4f68fb9acf070ef2"; fbsr_124024574287414=DbSlSA-tZBTw9JzVnqD5ryNyIo2U7ckE0uZMJ7GVTC8.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRRHp5N2VndUhRZWdRV296WFdmeW5FMXpOVlJBeGM0VDU3UldWR1kwWFlUd21DdmtuY0tFREl6Y080ZzZ0MGo3R1pVRW1wVElQWkxuMXBIcllkX2t5VVBubXZYS3BkSThjOUNaVzREVFZoSzc3ODJoNlVrLVNnUXQ1OFY1UFNXNm9SNFBSNnYzUGJmSE9pdDBpX1pJTmJRUUQybUFBVXNJV2MtaU5IdnNzcGcyZmhkdy1UX2hpbEpPR2Zfc3p3YTFLSm9hbV9yNE1GeGhDbmpYUUlfaDJfUjZiSEhrWTUzZ1UzRkROMXV2MjFKb0NhU3IxYzhaT3Z1VDhXZ2wtc3hsTk5oRFFuSTl2c29pY0xrTmxwUHhrQ21ZQ1Nfd19PVi1OR2tqRl9UU0RQdzRYNjRERlJtTVczZ0tCQmN3TzBUZ1ZRay1XY0QySUc2UHpUT09TY1Z3WDROIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCTzdZSTdxY1pBSEk4cDFITFYyMm9Dc0kzVXdteTdQeXJnMUd6NXpaQVByb0htSnFROTFQOUhKQkFaQ1Rkd2RQb1hYTEZjTTJQc0x3cHBVZ2lBc3ZjUDE2eFFqUUNZZnVRVUpidDdZTzlLVmtrTFd4WkNVRVJRcG90UjZaQjdQOEwxbGxvWkMxS1kzNDFsbkM3RGVIaGlZWkM1R05TbUVldFZZdlZHMGhMcDVuTnA4OFZoVjFydW9KTzJRWkQiLCJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTY5NDM5NjE2OX0; rur="FRC\\054361404591\\0541725932220:01f77f27fc8923954701627c92a96d87c8da6524ada064bcf32c3a4f6dce539bf1003b92"',
'cookie' => 'ds_user_id=361404591; fbm_124024574287414=base_domain=.instagram.com; ig_did=B118EB65-DCA3-47C7-BFD9-36AE91644AA2; datr=WV9UZdg4SM4SuzFpXR8wCv99; mid=ZVRfXQAEAAFUwW22kaeJsldDuWyn; csrftoken=zVdcURfwVjcy4n8VyxhaE6R2eZ3cm5hy; sessionid=361404591%3AXJ0sNXYIJF8fqD%3A13%3AAYcxobmvAGJexkUzLkcsYYVTBNrO_s0AdEEppZkWX4M; fbsr_124024574287414=kMDZo9Rp6MT1o2D34zQOKQ8LiB4FTIjFZWjW4c57Dwo.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRQnM0X0FhcHBWQWstMTZBamxUZFMzZEtXRXh6Q1NxX0RYYTMxdUtWSEtpTFVSbjh5T2FXSlpZamp1NXJPZTVvNWJvWUd5YXFfaVZ6RDFRaEd2NGVRdklkWHhvZ3d4UTZobVMxdXJKbVFfbVFqdVp5OXkwTXF6OU1vTS1tSFNld0NYN0I1aUlSNnF5dkNqamdYVE5MNE05NzF6bjVqZC1NeFMzcEZYTEttYWFDd0tBaTdYOHhTZHpzeFJ6RXlEcW5LMHdMOUU1QVM2Q0RLVVB3RTJQY2M5TXduUHNnUXQzNjItTEhid3hLLV9PU1BlbWg5cFMyTmhPeFg1M19NOWtrRmdHNWUxQ1pKMmZVY0dBY08za0ItaDlwUUxScVJUeFVJRWlLcHNVV1J0ZlRXdlN4MHNfYUMwb0c4S0FXeEo5WEkxVll1OC03NDlmRlFGUzBCclhtbjJWIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCTzFCeDZwREtPMVRPSjJheVNzWXBWUndmVVpDSUhWS3RZZU81NmV5WkJpQUZQRzVaQXpWVUZFYmJuUUFKMWQzUGRLaFhUazBrNVdBbUduM1hBQlE3R29WMnhQRE9RcmRjVjlzd3ZjbmpDcWtYcUx4RmQ2WkJPUXFlWUM4aHpoNTh2ZlpDVlkweU4yVEJXSUpTa09OQXdBMU1ScWMyWXhKREFJd3JlMFNwd0RFYVRVOVBxOXQ1UUFzVVpEIiwiYWxnb3JpdGhtIjoiSE1BQy1TSEEyNTYiLCJpc3N1ZWRfYXQiOjE3MDE4MzM4MzB9; fbsr_124024574287414=S3nyG_s69SShtcGMVxGfI-omvkpEthISGPUaOg1z7Xw.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRQ3lUQm9aRUw3STNHNTNjV250ZWNiRF9zYm0zMGVrRkQ0OWxfb1p2NTVZV2ZsWnZVME1zNUprbENvWXZkNnRMYTVFM2FWaWE4RS1HZC1TUUpLaXYzTXlBNjNCSDRfdzdlMVZuOU5teVNwRU9kN3Fiam9fTUpLS3dYanN6blRZWFdTbm9Ga2Z2MlVyNm93VEViZ3FsRkNKRm5yT3RJc3V6aFFKeHZpV2Jaa0JIeGoyYnFzR1JzSElINWdnTkZ2OFZ4VXZQU24yclk5YmhEOVozX2hBLVV6WHVFLVYxeEJjUXYxVWpta1c1SUdMcHdtY244OXplWmpraFhrY0ZOMldKbkszNWYySlRiWW5JQXZYTkhDOHNidkZhemJkNkJMamVfS3lWX0pTNm5OcHFMREp3UDFWM3JYV3NYZ3VNb2VWV3dnSlpEdEdQNngzSnd2Z2doX3NDc2hNIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCT3hvOVR3T0o4YUVnZ2V3eFZJS1VuNjZFQTRaQThteFpBNk5nUUt1M3JUTU0zaG5XSG9pMlhEdU9JdFpBRGlwcURnYUNoMTdFb09aQVZxUUFpSHdwcjRKYXVjcXF2UjByYWt0VnlURzBLS3dwQmJ4NDFCVUY1UDZkSjZaQjVWak9JY1ZrS0lKRlpBRHVUSkU2WWZ6NnBENDNBaDh3NHZ2eVF3ZHFsMjcwajZyRWZOUjZJNEs2WkNGWkJSWVpEIiwiYWxnb3JpdGhtIjoiSE1BQy1TSEEyNTYiLCJpc3N1ZWRfYXQiOjE3MDE5OTc1NjV9; shbid="13821\\054361404591\\0541733533565:01f70629712c4a079173e71418c82fd6d25e8fe6eb5423c9d53bc66963cfb4a272ff64c0"; shbts="1701997565\\054361404591\\0541733533565:01f788989dfd5aa12c56627ad5d85168f4297236b490ce9d35cb042ec56b62da8a7bca3b"; rur="VLL\\054361404591\\0541733533565:01f7923c155121dc9276048ffe2622c06be4cdf12b8fc3652b4e24931aac5e90196d1a22"',
'dpr' => '2', 'dpr' => '2',
'pragma' => 'no-cache', 'pragma' => 'no-cache',
'referer' => 'https://www.instagram.com/cho_hyunyoung/', 'referer' => 'https://www.instagram.com/cho_hyunyoung/',
'sec-ch-prefers-color-scheme' => 'light', 'sec-ch-prefers-color-scheme' => 'light',
'sec-ch-ua' => '"Chromium";v="116", "Not)A;Brand";v="24", "Google Chrome";v="116"',
'sec-ch-ua-full-version-list' => '"Chromium";v="116.0.5845.179", "Not)A;Brand";v="24.0.0.0", "Google Chrome";v="116.0.5845.179"',
'sec-ch-ua' => '"Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"',
'sec-ch-ua-full-version-list' => '"Google Chrome";v="119.0.6045.199", "Chromium";v="119.0.6045.199", "Not?A_Brand";v="24.0.0.0"',
'sec-ch-ua-mobile' => '?0', 'sec-ch-ua-mobile' => '?0',
'sec-ch-ua-model' => '""', 'sec-ch-ua-model' => '""',
'sec-ch-ua-platform' => '"macOS"', 'sec-ch-ua-platform' => '"macOS"',
@ -2307,12 +2308,12 @@ class InstagramService {
'sec-fetch-dest' => 'empty', 'sec-fetch-dest' => 'empty',
'sec-fetch-mode' => 'cors', 'sec-fetch-mode' => 'cors',
'sec-fetch-site' => 'same-origin', 'sec-fetch-site' => 'same-origin',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
'viewport-width' => '1512', 'viewport-width' => '1512',
'x-asbd-id' => '129477', 'x-asbd-id' => '129477',
'x-csrftoken' => 'Ui04sky5NhWWDWeXLxYxfPhdKCgqfhu4',
'x-csrftoken' => 'zVdcURfwVjcy4n8VyxhaE6R2eZ3cm5hy',
'x-ig-app-id' => '936619743392459', 'x-ig-app-id' => '936619743392459',
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvJBm',
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvO71',
'x-requested-with' => 'XMLHttpRequest', 'x-requested-with' => 'XMLHttpRequest',
]; ];
$url = "https://i.instagram.com/api/v1/feed/user/{$userId}/?count=12"; $url = "https://i.instagram.com/api/v1/feed/user/{$userId}/?count=12";
@ -2324,7 +2325,7 @@ class InstagramService {
// echo $res->getBody(); // echo $res->getBody();
$resStr = $res->getBody(); $resStr = $res->getBody();
// echo $resStr; // echo $resStr;
Log::info($resStr);
// Log::info($resStr);
$jsonArray = @json_decode($resStr, true, 512, JSON_BIGINT_AS_STRING); $jsonArray = @json_decode($resStr, true, 512, JSON_BIGINT_AS_STRING);
$response = new Response\UserFeedResponse(); $response = new Response\UserFeedResponse();
$response->assignObjectData($jsonArray, false); $response->assignObjectData($jsonArray, false);


+ 86
- 2
app/Services/WeiboService.php View File

@ -6,6 +6,7 @@ use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request; use GuzzleHttp\Psr7\Request;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redis;
use Throwable; use Throwable;
set_time_limit(0); set_time_limit(0);
@ -24,6 +25,71 @@ class WeiboService
$this->files = array_merge($this->files, scanFilesWithoutPath($this->videoDir)); $this->files = array_merge($this->files, scanFilesWithoutPath($this->videoDir));
} }
public function weiboContainerIdList(): array
{
return [
"tu是真的tu" => "1076032267562540",
"自己" => "230259",
// "轮子哥" => "2304131916825084",
"徐圣佑- 新号" => "1076035893812490",
"Afreecatv 精选" => "1076037383142802",
"AF-录制" => "1076037627445357",
"录像专用小马甲" => "1076033785550287",
"录像专用小马甲1" => "1076037453003153",
"录像专用小马甲2" => "1076036637436995",
"短短" => "1076032137020951",
// "物理" => "2304133907143723",
// "亲亲奥利给 af" => "1005056070814923",
"FanCam_" => "1076032740158183",
"ParmyAU" => "1076032482381165",
"热舞托管站" => "1076037422251891",
"af尼美舞蹈" => "1076035639898367",
"傲娇的猫猫猫" => "1076033118852135",
"绅士甄选" => "1076037644465107",
"Win话事人" => "1076032439815352",
"粤上秋璃子" => "1076037747006685",
"腐团儿" => "1076032304291523",
"聂小雨" => "1076032579189065",
"小何同学" => "1076032104580380",
"只有一个9521" => "1076037504338957",
"娜扎工作室" => "2304136001863056",
"刘教師特别授業" => "1076037686776705",
"Nana姐姐的微博" => "1076037764879728",
"小蓝蓝 plus" => "1076037409360499",
"露露" => "1076037731119705",
"小仓" => "1076036880826706",
"EstheticBody" => "1076036577888143",
"kyokyo" => "1076032591431197",
"softygirls" => "1076035040459465",
"是你的程儿" => "1076037607376925",
"Kokuhui" => "1076037504965364",
"" => "1076037648703289",
// "小红帽舞托" => "2304137160189611",
"李一桐工作室" => "1076035973698579",
"李一桐" => "1076035372556014",
"Yukicai-" => "1076031035321575",
"知一呐" => "1076037458616069",
"潇骑校尉曹操" => "1076037040041221",
"yesyanbaby" => "1076035279748872",
// "娜扎工作室" => "2304136001863056_-_WEIBO_SECOND_PROFILE_WEIBO",
];
}
public function moveLastDayCount() {
$lastDay = date("Y-m-d", strtotime("-1 days"));
$list = $this->weiboContainerIdList();
foreach ($list as $key => $containerId) {
$value = Redis::connection()->get("weibo:count:{$lastDay}:{$containerId}");
if ($value != null) {
echo "last day cache is $value \n";
Redis::connection()->set("weibo:count:last:" . $containerId, $value);
Redis::connection()->del("weibo:count:{$lastDay}:{$containerId}");
}
}
}
public function scrapeWeiboPicAndVideo($content) public function scrapeWeiboPicAndVideo($content)
{ {
// if (!isset($_REQUEST['content'])) die('NoData'); // if (!isset($_REQUEST['content'])) die('NoData');
@ -49,6 +115,24 @@ class WeiboService
// file_put_contents( $fname , $content ); // file_put_contents( $fname , $content );
$decoded_json = json_decode($content, true); $decoded_json = json_decode($content, true);
$cards = $decoded_json['data']['cards']; $cards = $decoded_json['data']['cards'];
$cardListInfo = $decoded_json["data"]["cardlistInfo"];
$nowCount = Arr::get($cardListInfo, "total", 0);
$containerId = Arr::get($cardListInfo, "containerid", "");
if ($cardListInfo != null) {
$today = date("Y-m-d");
$todayFirst = Redis::connection()->get("weibo:count:{$today}:{$containerId}");
if ($todayFirst == null) {
Redis::connection()->setnx("weibo:count:{$today}:{$containerId}", $nowCount);
}
$lastCount = Redis::connection()->get("weibo:count:last:" . $containerId);
if ($lastCount == null) {
$lastCount = 0;
}
if ($nowCount < $lastCount + 10) {
Log::info("now count is {$nowCount} and lastCount is {$lastCount} skip");
return ["skipContainerId"=> $containerId];
}
}
// $cards = array_slice($cards, 3, 1); // $cards = array_slice($cards, 3, 1);
// Log::info(json_encode($cards));exit; // Log::info(json_encode($cards));exit;
foreach ($cards as $card) { foreach ($cards as $card) {
@ -255,7 +339,7 @@ class WeiboService
} }
$file_name = $subDir . DIRECTORY_SEPARATOR . $picName . "." . $picExt; $file_name = $subDir . DIRECTORY_SEPARATOR . $picName . "." . $picExt;
$baseName = $picName . "." . $picExt; $baseName = $picName . "." . $picExt;
if (!file_exists($file_name) && !$this->checkFileHasDownload($baseName)) {
if (!str_contains($baseName, "KID=imgbed,photo&") && !file_exists($file_name) && !$this->checkFileHasDownload($baseName)) {
try { try {
$pic_content = $this->downloadImg($pic_url);// echo $pic_content; $pic_content = $this->downloadImg($pic_url);// echo $pic_content;
file_put_contents($file_name, $pic_content); file_put_contents($file_name, $pic_content);
@ -264,7 +348,7 @@ class WeiboService
Log::error($e->getMessage()); Log::error($e->getMessage());
} }
} else { } else {
Log::info("$baseName file exists");
Log::info("$baseName file exists or contains KID");
} }
} }
} }


+ 67
- 1
app/Utils/helper.php View File

@ -127,7 +127,13 @@ function processFirstLevelDirectory($dir): bool {
return true; return true;
} }
function processInnerDirectory($dir, $lastLevelName) {
/**
* 只处理包含 extrafanart 的特殊视频
* @param $dir
* @param $lastLevelName
* @return bool
*/
function processInnerDirectory($dir, $lastLevelName): bool {
if (!is_dir($dir)) { if (!is_dir($dir)) {
return false; return false;
} }
@ -177,3 +183,63 @@ function processInnerDirectory($dir, $lastLevelName) {
} }
return true; return true;
} }
function recursiveProcessFirstLevelDirectory($dir): bool {
if (!is_dir($dir)) {
return false;
}
// 遍历第一层文件夹
$list = scandir($dir);
foreach ($list as $file) {
if (skipDefaultPathAndFile($file)) {
continue;
}
$firstLevelDir = implode(DIRECTORY_SEPARATOR, [$dir, $file]);
if (is_dir($firstLevelDir)) {
// echo "process inner $firstLevelDir";
recursiveProcessInnerDirectory($firstLevelDir, $file);
}
}
return true;
}
/**
* 处理通用包含子文件夹的
* @param $dir
* @param $lastLevelName
* @return bool
*/
function recursiveProcessInnerDirectory($dir, $lastLevelName): bool {
if (!is_dir($dir)) {
return false;
}
// 遍历内部文件
$list = scandir($dir);
foreach ($list as $file) {
if (skipDefaultPathAndFile($file)) {
continue;
}
$secondLevelFile = implode(DIRECTORY_SEPARATOR, [$dir, $file]);
// echo "second is $secondLevelFile";
if (is_file($secondLevelFile)) {
if (str_contains($file, $lastLevelName)) {
// echo "file has contains lastLevelName\n";
continue;
} else {
// 锚定的目录 $lastLevelName
$dirArr = explode(DIRECTORY_SEPARATOR, $secondLevelFile);
$pos = array_search($lastLevelName, $dirArr);
$needMergeDirs = array_slice($dirArr, $pos, -1);
$filePrefix = implode("_", $needMergeDirs);
$needDir = array_slice($dirArr, 0, $pos);
$locateDir = implode(DIRECTORY_SEPARATOR, $needDir);
$newFileName = $locateDir . DIRECTORY_SEPARATOR . $filePrefix . "_" . $file;
echo "old name is : " . $secondLevelFile . " \n new name is : " . $newFileName . "\n";
rename($secondLevelFile, $newFileName);
}
} else {
recursiveProcessInnerDirectory($secondLevelFile, $lastLevelName);
}
}
return true;
}

+ 4
- 5
composer.json View File

@ -15,16 +15,18 @@
"albertofem/rsync-lib": "1.0.0", "albertofem/rsync-lib": "1.0.0",
"arispati/emoji-remover": "^0.1.4", "arispati/emoji-remover": "^0.1.4",
"barryvdh/laravel-ide-helper": "^2.5", "barryvdh/laravel-ide-helper": "^2.5",
"chrome-php/chrome": "^1.9",
"doctrine/dbal": "^2.9", "doctrine/dbal": "^2.9",
"encore/laravel-admin": "^1.7", "encore/laravel-admin": "^1.7",
"fideloper/proxy": "^4.0", "fideloper/proxy": "^4.0",
"fruitcake/laravel-cors": "^2.0",
"google/apiclient": "^2.0", "google/apiclient": "^2.0",
"google/photos-library": "^1.6", "google/photos-library": "^1.6",
"guzzlehttp/guzzle": "~6.0", "guzzlehttp/guzzle": "~6.0",
"jaeger/querylist": "^4.1", "jaeger/querylist": "^4.1",
"james-heinrich/getid3": "^1.9", "james-heinrich/getid3": "^1.9",
"laravel-admin-ext/media-manager": "1.x", "laravel-admin-ext/media-manager": "1.x",
"laravel/framework": "5.7.*",
"laravel/framework": "5.8.*",
"laravel/tinker": "^1.0", "laravel/tinker": "^1.0",
"league/oauth2-client": "dev-master", "league/oauth2-client": "dev-master",
"mgp25/instagram-api": "dev-master", "mgp25/instagram-api": "dev-master",
@ -50,6 +52,7 @@
"filp/whoops": "^2.0", "filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4", "fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0", "mockery/mockery": "^1.0",
"nesk/puphpeteer": "^2.0",
"nunomaduro/collision": "^2.0", "nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0" "phpunit/phpunit": "^7.0"
}, },
@ -99,10 +102,6 @@
] ]
}, },
"repositories": { "repositories": {
"0": {
"type": "vcs",
"url": "https://github.com/PHP-FFMpeg/BinaryDriver.git"
},
"1": { "1": {
"type": "git", "type": "git",
"url": "http://git.nicksxs.com/nicksxs/mgp25.git" "url": "http://git.nicksxs.com/nicksxs/mgp25.git"


+ 1345
- 1284
composer.lock
File diff suppressed because it is too large
View File


+ 60
- 0
config/cors.php View File

@ -0,0 +1,60 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Laravel CORS Options
|--------------------------------------------------------------------------
|
| The allowed_methods and allowed_headers options are case-insensitive.
|
| You don't need to provide both allowed_origins and allowed_origins_patterns.
| If one of the strings passed matches, it is considered a valid origin.
|
| If array('*') is provided to allowed_methods, allowed_origins or allowed_headers
| all methods / origins / headers are allowed.
|
*/
/*
* You can enable CORS for 1 or multiple paths.
* Example: ['api/*']
*/
'paths' => ['api/*'],
/*
* Matches the request method. `[*]` allows all methods.
*/
'allowed_methods' => ['*'],
/*
* Matches the request origin. `[*]` allows all origins. Wildcards can be used, eg `*.mydomain.com`
*/
'allowed_origins' => ['*'],
/*
* Patterns that can be used with `preg_match` to match the origin.
*/
'allowed_origins_patterns' => [],
/*
* Sets the Access-Control-Allow-Headers response header. `[*]` allows all headers.
*/
'allowed_headers' => ['*'],
/*
* Sets the Access-Control-Expose-Headers response header with these headers.
*/
'exposed_headers' => [],
/*
* Sets the Access-Control-Max-Age response header when > 0.
*/
'max_age' => 0,
/*
* Sets the Access-Control-Allow-Credentials header.
*/
'supports_credentials' => false,
];

+ 7
- 0
config/database.php View File

@ -133,6 +133,13 @@ return [
'database' => env('TXY4_REDIS_CACHE_DB', 1), 'database' => env('TXY4_REDIS_CACHE_DB', 1),
], ],
'cache_lpt1' => [
'host' => env('LPT1_REDIS_HOST', '127.0.0.1'),
'password' => env('LPT1_REDIS_PASSWORD', null),
'port' => env('LPT1_REDIS_PORT', 26379),
'database' => env('LPT1_REDIS_CACHE_DB', 1),
],
], ],
]; ];

+ 32
- 0
database/migrations/2023_10_24_210533_add_bili_up_count.php View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddBiliUpCount extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
Schema::table('bilibili_up_videos', function (Blueprint $table) {
$table->integer('count')->after("is_downloaded")->comment("数量");
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

+ 51
- 0
fail.log View File

@ -2821,3 +2821,54 @@
/Users/shixuesen/OneDrive/Pictures/instagram/bitnara1105/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/364044295_299608662481106_3372304102905513400_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=102&_nc_ohc=wWT0ooKOhWEAX92P_ut&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzE1OTY0MDI2NjUyOTY2MDkyMQ%3D%3D.2-ccb7-5&oh=00_AfB0qdTlBjw7OfSLWTrScoBfkLeeg1sOpRV-AvEdDBpX5w&oe=64D26237&_nc_sid=b41fef /Users/shixuesen/OneDrive/Pictures/instagram/bitnara1105/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/364044295_299608662481106_3372304102905513400_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=102&_nc_ohc=wWT0ooKOhWEAX92P_ut&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzE1OTY0MDI2NjUyOTY2MDkyMQ%3D%3D.2-ccb7-5&oh=00_AfB0qdTlBjw7OfSLWTrScoBfkLeeg1sOpRV-AvEdDBpX5w&oe=64D26237&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/bitnara1105/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/364023940_687383819910460_3865050733083143892_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=104&_nc_ohc=DH40O_S-FToAX_WH5W_&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzE1OTY0MDI2NjUyOTU5MTQ3Mg%3D%3D.2-ccb7-5&oh=00_AfCcIJLSBUB5bSRA7c4Zk_j-7yL3xHNXjmTlzQ3XpaTzaA&oe=64D14317&_nc_sid=b41fef /Users/shixuesen/OneDrive/Pictures/instagram/bitnara1105/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/364023940_687383819910460_3865050733083143892_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=104&_nc_ohc=DH40O_S-FToAX_WH5W_&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzE1OTY0MDI2NjUyOTU5MTQ3Mg%3D%3D.2-ccb7-5&oh=00_AfCcIJLSBUB5bSRA7c4Zk_j-7yL3xHNXjmTlzQ3XpaTzaA&oe=64D14317&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lax3-2.cdninstagram.com/v/t39.30808-6/375460193_18383825071034320_1576342646316386191_n.jpg?stp=dst-jpg_e15&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=1&_nc_ohc=ZZo24vD6oKAAX_0bKFE&edm=AJ9x6zYAAAAA&ccb=7-5&ig_cache_key=MzE4NTUwNzc4NjQ1OTg5MDExNQ%3D%3D.2-ccb7-5&oh=00_AfCGtchscqRD-7IEPU-aP0lBeFZy6GDpDMbPpSPqaWz9yA&oe=64FC36D9&_nc_sid=65462d /Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lax3-2.cdninstagram.com/v/t39.30808-6/375460193_18383825071034320_1576342646316386191_n.jpg?stp=dst-jpg_e15&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=1&_nc_ohc=ZZo24vD6oKAAX_0bKFE&edm=AJ9x6zYAAAAA&ccb=7-5&ig_cache_key=MzE4NTUwNzc4NjQ1OTg5MDExNQ%3D%3D.2-ccb7-5&oh=00_AfCGtchscqRD-7IEPU-aP0lBeFZy6GDpDMbPpSPqaWz9yA&oe=64FC36D9&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/aiiiiidj/ https://scontent-ord5-2.cdninstagram.com/v/t51.2885-15/381058015_1041680573508137_822801554547011437_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=105&_nc_ohc=9qR-4k_fQoUAX8dM9me&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzE5NjUwNzkwNTgzMDI0Njg5MA%3D%3D.2-ccb7-5&oh=00_AfDMBlZu4N7UUH3hyClRfzp6E0VmetCgikzzqHO7JGyteA&oe=6513DB62&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t39.30808-6/395925055_18029373196722450_4824036366213116200_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xMDUweDEzMTAuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=VU7Ag9sgID8AX92dFn1&edm=AJ9x6zYAAAAA&ccb=7-5&ig_cache_key=MzIyMTE4MTE3MTQzODkxOTIwMQ%3D%3D.2-ccb7-5&oh=00_AfCEB9B_uKebY-Fo3w5GIoJfDaUt4khRijZZb8tePSU2KQ&oe=653FE60C&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/395036838_670281278209974_1488131682279793231_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=6fX6e2lXuAMAX8HWt3B&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzIyMTA4MTE3NjgyMjA2MTcwNA%3D%3D.2-ccb7-5&oh=00_AfD7BJtsNvsHPsTUFbyk6Ffz4lUyz5868WChUaxFyXUDQg&oe=653F8DF9&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/396993307_1726059577905944_6607792706797932728_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE3OTYuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=108&_nc_ohc=Vv69jWdKdowAX-ytANK&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzIyNDY3NjMyNjIyMzM3MjQ4Ng%3D%3D.2-ccb7-5&oh=00_AfASZ_h2d-hfmj-iOYj0S-gecLQvWm4y3wSah7EkQuZQnQ&oe=6544B429&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t39.30808-6/396542167_18398812684050605_6885188225719718157_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDk2Mi5zZHIifQ&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_ohc=16YdnWyAQSYAX_zAxfN&edm=AJ9x6zYAAAAA&ccb=7-5&ig_cache_key=MzIyNDczNTgwMjMyMDM0MzI2Nw%3D%3D.2-ccb7-5&oh=00_AfC4F9e2301KuI6IeT-LHCubF1TeVTDQnkVJdDpkrVdvww&oe=65451F09&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/lurehsu/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/392744472_843122984016342_4036133874977988195_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE3OTkuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=aQsCowiEct8AX_AZbmJ&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIxNjI4MDkwMDgxMTYwNjQ0Mg%3D%3D.2-ccb7-5&oh=00_AfDj3-ZsaOMyCqJveFLczlrA5hauQpmoz5WroAf-QxiCMA&oe=6543E915&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/vousmevoyez/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/394556659_1117335569234445_7507732379823683821_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi43MDB4ODc2LnNkciJ9&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=109&_nc_ohc=8GYky3WT_rIAX-TOfCp&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIyMTIyNzcyNjUxODY3MDkwMQ%3D%3D.2-ccb7-5&oh=00_AfCIatzBvXxkZmSgA8j5brw1EwgBJRp3grIwDUCmaEVqCw&oe=6546177F&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/airisuzuki_official_uf/ https://scontent-lga3-1.cdninstagram.com/v/t51.2885-15/396326768_292988883652575_8085159613881581054_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=llhZBTCXRrMAX92pVCd&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIyMzU2NzEwNDQyOTMyNjkxNw%3D%3D.2-ccb7-5&oh=00_AfBZs_9kypsTbf-Cz1Rt1okDG0UHefa-OhJwG8VmUce5qA&oe=6545BD1C&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/banyfit/ https://scontent-ord5-1.cdninstagram.com/v/t51.2885-15/398815695_913505777047845_1567292878088958689_n.heic?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xMjY2eDE1ODIuc2RyIn0&_nc_ht=scontent-ord5-1.cdninstagram.com&_nc_cat=109&_nc_ohc=6A95N3nckX0AX9NeRZz&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIyOTI5ODk2MDg3NzU3MjcyMQ%3D%3D.2-ccb7-5&oh=00_AfCCf-QlBqMxBhu_C1jB0eOoW6akL7aVzPz83GAeBEUnmw&oe=654DC04D&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/bitnara1105/ https://scontent-ord5-2.cdninstagram.com/v/t39.30808-6/399065930_18297332896193155_7811354696257294698_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=107&_nc_ohc=a4EnmWfy8ccAX_2bHus&edm=ABmJApAAAAAA&ccb=7-5&ig_cache_key=MzIyOTkxODY4MzIxNjU4ODMzMA%3D%3D.2-ccb7-5&oh=00_AfB1ChdTNdhgXg9H8XE47nthKG39E2ikMDIVFHMJs1qzAA&oe=654D8840&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/lurehsu/ https://scontent-ord5-2.cdninstagram.com/v/t51.2885-15/398264982_851229789838692_9143410173936409893_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE3OTUuc2RyIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=100&_nc_ohc=_Donfh2zmEcAX8-UwGO&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIyODYwNzEzNTUwNzkwNjMxMA%3D%3D.2-ccb7-5&oh=00_AfA_r3BIjc26meI9P8ONgulKwBmFFglh_DjhQ-YAkKKa5g&oe=654CD455&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/tngnlo/ https://scontent-ord5-2.cdninstagram.com/v/t39.30808-6/396703095_18396132175056267_6946728192165934626_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=103&_nc_ohc=jUZloAPUSPUAX8fPGtl&edm=ABmJApAAAAAA&ccb=7-5&ig_cache_key=MzIyNzY1ODA0NzUwODc2MjUxNQ%3D%3D.2-ccb7-5&oh=00_AfBnF9jFP_fX2l9NJmKrb55RoNHY1EoyibYW__BK2teCzw&oe=654C405D&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/airisuzuki_official_uf/ https://scontent-ord5-2.cdninstagram.com/o1/v/t16/f1/m69/GICWmABHdDbYL0cBAKe8U1U6ZMdXbqCBAAAF.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uaWd0di5jMi43MjAuZGVmYXVsdCJ9&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=105&vs=18098016376330239_1892382079&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HSUNXbUFCSGREYllMMGNCQUtlOFUxVTZaTWRYYnFDQkFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dOVDFvaGRMNWpZQ0VRQUVBQmVGdUZhVXNfNHFicUNCQUFBRhUCAsgBACgAGAAbAYgHdXNlX29pbAExFQAAJv6T4pbVn%2Fo%2FFQIoAkMzLBdAerI5WBBiThgSZGFzaF9iYXNlbGluZV8xX3YxEQB17AcA&ccb=9-4&oh=00_AfCiMa7N4c48KbClE_TeP4_WkHxGI6htEEfKOdvwc3BheA&oe=654B8651&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/nyanchan22/ https://scontent-ord5-2.cdninstagram.com/o1/v/t16/f1/m69/GHuP4QkDKxYDx8ECAIVMqOtE8Kx3bpR1AAAF.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uY2xpcHMuYzIuMTA4MC5oaWdoIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=105&vs=255091433995668_3269432941&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HSHVQNFFrREt4WUR4OEVDQUlWTXFPdEU4S3gzYnBSMUFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dGT1QtaEo4LTVOem5VY0NBRVlPbWR4WGtleC1icFIxQUFBRhUCAsgBACgAGAAbABUAACbewKzwjsr9PxUCKAJDMywXQCaZmZmZmZoYEmRhc2hfaGlnaF8xMDgwcF92MREAdf4HAA%3D%3D&ccb=9-4&oh=00_AfAe5eszb6e84AWRlTzdR_fv8cbnxr54l5cysn_GWfxW2A&oe=654CB485&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/yoona__lim/ https://scontent-ord5-2.cdninstagram.com/v/t51.2885-15/398524318_1393610947893557_622383718272898466_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=1&_nc_ohc=xLtb-8_Jhx0AX-dDJAu&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIyNzc0ODM2MjAyNzc5NjIwMw%3D%3D.2-ccb7-5&oh=00_AfBOt1FsRumbE11mBA4j-swwLLHrgowOdwYXxqNkpcUF7A&oe=654D6AC6&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/angelachong_99/ https://scontent-ord5-2.cdninstagram.com/o1/v/t16/f1/m69/GLlxBBRDU_e1YzADAO812mAf0nBObpR1AAAF.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uY2xpcHMuYzIuMTA4MC5oaWdoIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=100&vs=642291074557089_2127483899&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HTGx4QkJSRFVfZTFZekFEQU84MTJtQWYwbkJPYnBSMUFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dPNk05UlBBVnk4eGFLY01BS1oxTjNPNjlOOFVicFIxQUFBRhUCAsgBACgAGAAbABUAACb8l5i%2ByazRPxUCKAJDMywXQCWqfvnbItEYEmRhc2hfaGlnaF8xMDgwcF92MREAdf4HAA%3D%3D&ccb=9-4&oh=00_AfCR9o3RVQxTP-OVm_Mzwzp2ZBzgb9Jyw2xfCH_eK5aveQ&oe=654C8891&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/jenna_chew/ https://scontent-ord5-2.cdninstagram.com/o1/v/t16/f1/m69/GICWmACpTjd5sLoEAKRohXnglbI1bpR1AAAF.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uY2xpcHMuYzIuMTA4MC5oaWdoIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=102&vs=1440033549899744_2926007346&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HSUNXbUFDcFRqZDVzTG9FQUtSb2hYbmdsYkkxYnBSMUFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dQUEpUUlBYU0syU3BDQUJBSUwtNmtfQUljb09icFIxQUFBRhUCAsgBACgAGAAbABUAACa4z82V8fbTPxUCKAJDMywXQEpZmZmZmZoYEmRhc2hfaGlnaF8xMDgwcF92MREAdf4HAA%3D%3D&ccb=9-4&oh=00_AfCctOutq0KxWBP53mJlF6P1DqyGotUEs3FN20SNDF40lw&oe=654B853A&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/changchinlan/ https://scontent-ord5-1.cdninstagram.com/v/t51.2885-15/398524196_659606042665917_2018371198816972254_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xMDgweDEzNTAuc2RyIn0&_nc_ht=scontent-ord5-1.cdninstagram.com&_nc_cat=109&_nc_ohc=k8xZlhh3cfIAX9VNth3&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIyODY1MTU5MDA4OTUyMzE1Mg%3D%3D.2-ccb7-5&oh=00_AfB0pt7fWDF-3-qFwY7eGmA234YlK4OyEjLJQq9Qsjbq7Q&oe=654E344D&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/changchinlan/ https://scontent-ord5-1.cdninstagram.com/v/t51.2885-15/398788105_1398890290708151_6395915462124133760_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE3OTkuc2RyIn0&_nc_ht=scontent-ord5-1.cdninstagram.com&_nc_cat=111&_nc_ohc=FdAl1_bN-LoAX-aLCIC&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIyODY1MjU5OTU4MzAyNjIxMA%3D%3D.2-ccb7-5&oh=00_AfBOlNWiLRG-aVv4QgwUwsj4GH0ks9DPVzGOMGKhSdFn3g&oe=654D0753&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/amberchenslife/ https://scontent-ord5-2.cdninstagram.com/v/t39.30808-6/398772344_18392458459056722_6406979945948102228_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=102&_nc_ohc=USk-OUnhdgMAX_9iZ87&edm=ABmJApAAAAAA&ccb=7-5&ig_cache_key=MzIyODU1NzgzNjI1NDc3NzI2Ng%3D%3D.2-ccb7-5&oh=00_AfAKRuYIy2tGC8AvrBHdeStsOcr20viWb1tYBjZE133Sjg&oe=654E43C4&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/irishuo_/ https://scontent-ord5-2.cdninstagram.com/o1/v/t16/f1/m82/614BEF55F1D6F402F0AC2DE1806604AE_video_dashinit.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uY2xpcHMuYzIuNzIwLmJhc2VsaW5lIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=106&vs=371622011879948_837360308&_nc_vs=HBksFQIYT2lnX3hwdl9yZWVsc19wZXJtYW5lbnRfcHJvZC82MTRCRUY1NUYxRDZGNDAyRjBBQzJERTE4MDY2MDRBRV92aWRlb19kYXNoaW5pdC5tcDQVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dPOGU2QUpjQlNDaU1mMERBT0p0eVo0Rm9LRUZicFIxQUFBRhUCAsgBACgAGAAbABUAACa49IrTwIm8PxUCKAJDMywXQC3rhR64UewYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&ccb=9-4&oh=00_AfDlpps8vWs7rwaPTZwbwvwB23P0F1Xhkh2kUgTQ9PrzUg&oe=654C6023&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/banyfit/ https://scontent-ord5-2.cdninstagram.com/v/t51.2885-15/400611121_2056600014704087_650369088350216078_n.heic?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xMDc5eDEzNDkuc2RyIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=111&_nc_ohc=AVt_Mb7l4JEAX8E8Smh&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzIzMjkwNDA3MDY1MjM5MDYxMg%3D%3D.2-ccb7-5&oh=00_AfCWZorhmLfPMT2-RD3PO_4n7ezE6tT320bSjYWymZPpMw&oe=655742A3&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-ord5-2.cdninstagram.com/v/t51.2885-15/402310126_901732218039912_507276520004471539_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=100&_nc_ohc=gPHqUx6cQnAAX_U3w16&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzIzNzE5MzAzMDA1Mzg5OTgzNw%3D%3D.2-ccb7-5&oh=00_AfBzYOMOPPS0ujw_Vw-yTFPCrzEzRZAoaBTWvo0SG9Vw8Q&oe=655B2D29&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-ord5-2.cdninstagram.com/v/t51.2885-15/393380394_835745484966272_5163289491243537173_n.heic?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=108&_nc_ohc=EmaGDq-FPMcAX8SZOxP&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzIzNjE3MzU3NTM2NzYzOTgxMQ%3D%3D.2-ccb7-5&oh=00_AfAi90i5CzWZVTWuAf_8DV7nSwJCS8EU881_0eE4s8kCkA&oe=655CB9C2&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/boram__jj/ https://scontent-ord5-2.cdninstagram.com/o1/v/t16/f1/m69/GMlE1QlCqg5GPfYAAMWA8tcrCYJ7bpR1AAAF.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uY2xpcHMuYzIuMTA4MC5oaWdoIn0&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=105&vs=840748107845245_3892726345&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HTWxFMVFsQ3FnNUdQZllBQU1XQTh0Y3JDWUo3YnBSMUFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dERlYtaExRbDNPdkxoWURBUDVPS3p3UGM4RmticFIxQUFBRhUCAsgBACgAGAAbABUAACa%2Bwf%2Fc8tHuPxUCKAJDMywXQBO7ZFocrAgYEmRhc2hfaGlnaF8xMDgwcF92MREAdf4HAA%3D%3D&ccb=9-4&oh=00_AfAyHGiLRR7zaUxKhLhK6qeB6N5SOGiNsaIZaPeCwdzm4g&oe=655A64CA&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/janed_404/ https://scontent-mia3-1.cdninstagram.com/v/t51.2885-15/403971394_329914796427860_3059850913930309023_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE0NDAuc2RyIn0&_nc_ht=scontent-mia3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=D1gdV5z8uRAAX8CRTXl&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0MjMwMjYzMjA1MDQ5MzE3Ng%3D%3D.2-ccb7-5&oh=00_AfAYWqd6i3ONR3WTvmca11mEP_3G2hfmWxYRP1w4XlmkPQ&oe=6563FE7B&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/isangelc/ https://scontent-mia3-1.cdninstagram.com/v/t51.2885-15/404273160_364286772657171_5537073513646984101_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDEwODAuc2RyIn0&_nc_ht=scontent-mia3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=bFEQ8WO5GmEAX-DU4ZO&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0MjA5NTM4Njk1MTU5NzYzNQ%3D%3D.2-ccb7-5&oh=00_AfCLVaLp9aKa5912zG858ZazouMxkshp2gMoOfmgVWrSjw&oe=65655FC6&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/chen_01_24/ https://scontent-iad3-2.cdninstagram.com/v/t51.2885-15/404604139_1288394978487836_3580452903854558194_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=108&_nc_ohc=-T6TlaelCTIAX8EI867&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0NTI2NTM4NDY3Mjc5Mjk1OA%3D%3D.2-ccb7-5&oh=00_AfCMmihbBd3a89RHF5pQNKbW0iCisvADacpTmS2a6g5hOQ&oe=656ABFE6&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/taeyeon_ss/ https://scontent-iad3-2.cdninstagram.com/v/t51.2885-15/404003613_2089997574683547_145197719995614610_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=1&_nc_ohc=dqzLZmbj4bsAX--Gz6s&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0NTM0MjUyNTI1NDA0NTMzMA%3D%3D.2-ccb7-5&oh=00_AfAmSm0zygExdf0cUG0cHu0f1tJbsKZWEj_R8FsLB58sCQ&oe=656D27F6&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/taeyeon_ss/ https://scontent-iad3-2.cdninstagram.com/v/t51.2885-15/404007503_921703065963975_4493361885704287967_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=103&_nc_ohc=Q9ITR83cBbMAX81Sgbi&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0NTM0MjUyNTUxNDExOTI0MA%3D%3D.2-ccb7-5&oh=00_AfAKEr4Ea7VLokBxdtqumvjWlpiWikKkHugkAvMRpujR1g&oe=656D8361&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/taeyeon_ss/ https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/404920752_3580547942203405_6938032743955447433_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE3OTYuc2RyIn0&_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_cat=101&_nc_ohc=8uoYi-5JsJkAX_FVWF9&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0NTM0MjUyNTQ4MDcxMzE2NQ%3D%3D.2-ccb7-5&oh=00_AfCDzWpcv-oRy09lKNOnn6POZRSPpuScj1DbTxnOu8Sc7Q&oe=656D8784&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/yoona__lim/ https://scontent-iad3-1.cdninstagram.com/o1/v/t16/f1/m82/9543CC8268D4E31D3B598E172403D192_video_dashinit.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uY2xpcHMuYzIuMTI4MC5iYXNlbGluZSJ9&_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_cat=108&vs=231705919865013_982552835&_nc_vs=HBksFQIYT2lnX3hwdl9yZWVsc19wZXJtYW5lbnRfcHJvZC85NTQzQ0M4MjY4RDRFMzFEM0I1OThFMTcyNDAzRDE5Ml92aWRlb19kYXNoaW5pdC5tcDQVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dLbkhJUll3b1ZMNWc1OERBQXlEeE9YaHp0TXdicV9FQUFBRhUCAsgBACgAGAAbABUAACbm5%2Bvfy6KlQRUCKAJDMywXQEId0vGp%2B%2BcYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&ccb=9-4&oh=00_AfA8-8nUsmzTdDkNzCSC5gsVes2M1ju0g4I5HlPyWsOHyA&oe=656BB1C1&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/changchinlan/ https://scontent-iad3-2.cdninstagram.com/v/t51.2885-15/404898222_885977642940234_6830155270218596761_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE0Mzkuc2RyIn0&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=UoVy2PLBl9EAX-KTE5l&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0Njg5MjY5MDgzOTMzMDgzNg%3D%3D.2-ccb7-5&oh=00_AfBW97DNB33gPgqQvYl5ZuuDfI4OTrlB3Nuvai8Pm3TKCA&oe=656CD8A4&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/bedich520/ https://scontent-iad3-2.cdninstagram.com/v/t51.2885-15/403901058_235083809443961_1094894124224286456_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE3OTUuc2RyIn0&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=105&_nc_ohc=lAhPwIofRPAAX8_NY8V&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0Mjg4MTYxOTQ5NTIxODI3MQ%3D%3D.2-ccb7-5&oh=00_AfCXduyQsWbWO7tutzfijq1b0wf5DX_4VecVlud-f-K6LA&oe=656E02C4&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/405776153_2331820793680135_1044408532819615611_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=YO24k9Aw8ZkAX-JmpUO&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTgyOTQzMzYyMzU1MzE0Nw%3D%3D.2-ccb7-5&oh=00_AfC-Fwx0O_SAIEN6w-mW5Dn6Fhdy0TTZjn5FdBQSH9JxMg&oe=65721ED7&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/405774957_708487874564923_1692918408541528676_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=3wMRCWqGQN8AX9t-o5M&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTgyOTQzMzc5OTY3OTYxMw%3D%3D.2-ccb7-5&oh=00_AfAFvy1vNN0fO03YcdWIsOmQ-C8EA8RdH6ZsJzFgkD7aIw&oe=65733A30&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/405812553_1712901865870191_5620279994235598531_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=103&_nc_ohc=MJw73hJTj8wAX-6dB9g&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTgyOTQzMzYyMzY2Mjg2Ng%3D%3D.2-ccb7-5&oh=00_AfC4Mo16wGQUeOXrZKFVjAdKM-Wu6JFh83P5FS6hRToQqA&oe=6572DDD9&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/407678586_1128082434847601_8939429595846158200_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE3OTkuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=105&_nc_ohc=PJ57G1RIKzkAX_7L6eU&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTgyOTQzMzYyMzY3MjgxNQ%3D%3D.2-ccb7-5&oh=00_AfB6cfV2XP4OgBpDTteTfIqlbG7sOkScFuvxDGlMGXNBMw&oe=657304EE&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/407179608_270254812311966_8750683847109327161_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=jPIjBJFjVJwAX86Phnq&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTgyOTQzMzYyMzY0NjI2MA%3D%3D.2-ccb7-5&oh=00_AfCNOpU2myUG9G0-vOf_4uaqIiRcflQbZA5C90hrweplFA&oe=6572C7CD&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/407231131_873028824527059_8078299254967749967_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=_nLMwtdy394AX8lxYQw&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTYxMzQ4NDQyMTg4NDY1NA%3D%3D.2-ccb7-5&oh=00_AfCULDrhdcxHyNJ8QyT9IVRIjFmDisXuohD7GrPsEeAC6A&oe=6572D9B5&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/405260707_1521951371897613_3552915399568686029_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=109&_nc_ohc=5TdaQjCBXZQAX8JDOFT&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0ODYyMTIwNjc0ODA3MTkxNQ%3D%3D.2-ccb7-5&oh=00_AfD9POnOJ2QLYN65qCCcXC8Yk3VcXzkpbkz7Gx9N9zvTkA&oe=6571F735&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/407593943_719510136421085_2788587411697461401_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MTcuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=105&_nc_ohc=4gaX3ixnJHgAX8dldTm&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTYzODgwNzYyMjg0NzU2NQ%3D%3D.2-ccb7-5&oh=00_AfAjtrbsT1sKpnYu-A1tNC9qB2N8seatqbUmhNcmEVn3LQ&oe=657308D4&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/405496810_213378151814904_4177929348945298033_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MTguc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=100&_nc_ohc=_yurGj7pazAAX8cuO5Q&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTYzODgwNzYyMjczODgwOQ%3D%3D.2-ccb7-5&oh=00_AfDGLsqyB5HfeJWKlccB3cq1_nxAxQ8uTbblh7gxQn6YSw&oe=65729DEF&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/407177326_1712560229220347_2939492033286121519_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MTguc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=UWm5qfcFjZ8AX8JgQtX&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTYzODgwNzYyMjY4NjIyNg%3D%3D.2-ccb7-5&oh=00_AfC4wFLveP_LmzAgSPrGDvky-VgJjmR0yd78d8p6rNhhBg&oe=6571E1D4&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/407270768_845109227353910_4954167217597111237_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xMDgweDEzNjMuc2RyIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=102&_nc_ohc=xhgQjsDNx9QAX_KHSkE&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTYzODgwNzY0Nzg4MDE1NQ%3D%3D.2-ccb7-5&oh=00_AfAhVF_Hw_h8hvvGyXMi0tUGhs2QUBachisNrcRC9JkGnw&oe=6572C2DE&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/o1/v/t16/f1/m69/GICWmAC6Ir7fi64DALwYIH_gBmcUbpR1AAAF.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uY2xpcHMuYzIuMTA4MC5oaWdoIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=107&vs=1034086617798130_3511276494&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HSUNXbUFDNklyN2ZpNjREQUx3WUlIX2dCbWNVYnBSMUFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dIdnFQQWRpZnhhUERzNEVBTjJTdy1aOUdlTnlicFIxQUFBRhUCAsgBACgAGAAbABUAACaC%2Bs7ulYTDPxUCKAJDMywXQDszMzMzMzMYEmRhc2hfaGlnaF8xMDgwcF92MREAdf4HAA%3D%3D&ccb=9-4&oh=00_AfD3eCX99ep3TA31WwxbB3rUDStc7wSKvE21R-k8lO_YEw&oe=656F6FB2&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/408066455_908262617324932_2203121999158635597_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDgxMC5zZHIifQ&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=104&_nc_ohc=5peKPQXPbJEAX9AfFbT&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzI0OTc0MzMyNzgzNDkyMjUzNw%3D%3D.2-ccb7-5&oh=00_AfCYR5ZLrBES-_3c83KVPvxD4d8Yek82pc6b8B6R4fvbKg&oe=65728ADA&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lga3-2.cdninstagram.com/o1/v/t16/f1/m82/964D49639463C49269EAA0FB2E153EBD_video_dashinit.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uY2xpcHMuYzIuNzIwLmJhc2VsaW5lIn0&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=102&vs=1308143776529876_4277815092&_nc_vs=HBksFQIYT2lnX3hwdl9yZWVsc19wZXJtYW5lbnRfcHJvZC85NjRENDk2Mzk0NjNDNDkyNjlFQUEwRkIyRTE1M0VCRF92aWRlb19kYXNoaW5pdC5tcDQVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dEVHQ1Z2tXVWZLVjJVUU1BRGRYTjlNTGhsUk5icFIxQUFBRhUCAsgBACgAGAAbABUAACamyoSZzOHSPxUCKAJDMywXQC3MzMzMzM0YEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&ccb=9-4&oh=00_AfBK2f64s3YfKJNpUN9NUhXEiM0d6XXxKI_vCzyo02i0FQ&oe=656F27BF&_nc_sid=65462d
/Users/shixuesen/OneDrive/Pictures/instagram/jeonjisu92/ https://scontent-lga3-1.cdninstagram.com/v/t51.2885-15/405764174_890448209467134_31053123427125547_n.jpg?stp=dst-jpg_e15&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi43MjB4OTAwLnNkciJ9&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_cat=106&_nc_ohc=InIzDP-xdjYAX_Bsyai&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0Nzk1ODEyMDQwNjUxNzk0Ng%3D%3D.2-ccb7-5&oh=00_AfBKGprbJ8llnyKnOQXKZhMnlhEVgtWa1NG6uuVPGd5s0g&oe=6572981E&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/sejinming/ https://scontent-lga3-1.cdninstagram.com/v/t51.2885-15/405249142_256728517096342_2023724632255599706_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_cat=110&_nc_ohc=HhUmd22t5F8AX94_vPS&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0ODg5MDUyMDA3NDAyNTE1OA%3D%3D.2-ccb7-5&oh=00_AfB5l_gJqoMxd4ulTCO-vznxzTTKR7HhmciA54eIcaKt9g&oe=6572F42A&_nc_sid=b41fef
/Users/shixuesen/OneDrive/Pictures/instagram/tanganqi88/ https://scontent-lga3-1.cdninstagram.com/v/t51.2885-15/405227498_1647607689356007_5245705880651592340_n.jpg?stp=dst-jpg_e35&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi4xNDQweDE4MDAuc2RyIn0&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=3M2xWWam0sEAX_GD2Eu&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzI0ODE5NDI5Njg4NTE3MTg1Ng%3D%3D.2-ccb7-5&oh=00_AfAIrqpKrFAc-QxOaQxywmgStiXUQkzD5AeCi3OsPmFFWw&oe=65743744&_nc_sid=b41fef

+ 25962
- 11160
package-lock.json
File diff suppressed because it is too large
View File


+ 3
- 1
package.json View File

@ -27,5 +27,7 @@
"sass-loader": "^7.1.0", "sass-loader": "^7.1.0",
"tailwindcss": "^2.0.3" "tailwindcss": "^2.0.3"
}, },
"dependencies": {}
"dependencies": {
"@nesk/puphpeteer": "^2.0.0"
}
} }

+ 1
- 0
routes/web.php View File

@ -12,6 +12,7 @@ Route::post('api/weibo/store', 'WeiboController@store');
Route::get('google/photo/connect', 'GooglePhotoController@connect'); Route::get('google/photo/connect', 'GooglePhotoController@connect');
Route::get('google/photo/index', 'GooglePhotoController@index'); Route::get('google/photo/index', 'GooglePhotoController@index');
Route::post("api/live/video/add", "LiveVideoController@add"); Route::post("api/live/video/add", "LiveVideoController@add");
Route::get("api/univ/rank", "CommonSettingsController@univJson");
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () { Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {
\UniSharp\LaravelFilemanager\Lfm::routes(); \UniSharp\LaravelFilemanager\Lfm::routes();
}); });


Loading…
Cancel
Save