Browse Source

add google photos

feature/new_bilibili_and_instagram_sxs20191126
shixuesen 4 years ago
parent
commit
f7b6847ad6
11 changed files with 169 additions and 22 deletions
  1. +1
    -1
      .idea/php.xml
  2. +4
    -4
      app/Admin/Controllers/BilibiliUpVideosController.php
  3. +33
    -0
      app/GooglePhoto.php
  4. +47
    -12
      app/Http/Controllers/GooglePhotoController.php
  5. +3
    -2
      app/Http/Controllers/WeiboController.php
  6. +2
    -2
      app/Services/WeiboService.php
  7. +1
    -1
      app/Utils/helper.php
  8. +9
    -0
      database/factories/GooglePhotoFactory.php
  9. +35
    -0
      database/migrations/2021_10_08_163234_create_google_photos_table.php
  10. +31
    -0
      database/migrations/2021_10_08_165821_create_google_photos_table.php
  11. +3
    -0
      fail.log

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

@ -183,7 +183,7 @@
<path value="$PROJECT_DIR$/vendor/albertofem/rsync-lib" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="8.0">
<component name="PhpProjectSharedConfiguration" php_language_level="7.1">
<option name="suggestChangeDefaultLanguageLevel" value="false" />
</component>
<component name="PhpUnit">


+ 4
- 4
app/Admin/Controllers/BilibiliUpVideosController.php View File

@ -29,10 +29,10 @@ class BilibiliUpVideosController extends AdminController
$grid->column('id', __('Id'));
$grid->column('mid', __('Mid'));
$grid->column('up_name', __('Up name'));
$grid->column('videos', __('Videos'));
$grid->column('downloaded_videos', __('Downloaded videos'));
$grid->column('local_path', __('Local path'));
$grid->column('remote_path', __('Remote path'));
// $grid->column('videos', __('Videos'));
// $grid->column('downloaded_videos', __('Downloaded videos'));
$grid->column('local_path', __('Local path'))->editable();
$grid->column('remote_path', __('Remote path'))->editable();
$grid->column('is_available', __('Is available'));
$grid->column('is_downloaded', __('Is downloaded'));
$grid->column('created_at', __('Created at'));


+ 33
- 0
app/GooglePhoto.php View File

@ -0,0 +1,33 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\GooglePhoto
*
* @property int $id
* @property string $photo_id
* @property string $filename
* @property string $product_url
* @property string $creation_time
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto query()
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto whereCreationTime($value)
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto whereFilename($value)
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto wherePhotoId($value)
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto whereProductUrl($value)
* @method static \Illuminate\Database\Eloquent\Builder|GooglePhoto whereUpdatedAt($value)
* @mixin \Eloquent
*/
class GooglePhoto extends Model
{
//
protected $guarded = [''];
}

+ 47
- 12
app/Http/Controllers/GooglePhotoController.php View File

@ -1,9 +1,12 @@
<?php
namespace App\Http\Controllers;
use App\GooglePhoto;
use Google\ApiCore\ApiException;
use Google\Photos\Library\V1\PhotosLibraryClient;
use Google\Photos\Types\Album;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class GooglePhotoController extends Controller {
public function connect(Request $request)
@ -17,6 +20,7 @@ class GooglePhotoController extends Controller {
public function index()
{
$credentials = session("credentials");
// $credentials = null;
if ($credentials == null || $credentials == "") {
return view("albums/connect");
}
@ -24,27 +28,58 @@ class GooglePhotoController extends Controller {
try {
// $options['proxy'] = 'http://127.0.0.1:1087';
// $pagedResponse = $photosLibraryClient->listAlbums();
// $options['pageSize'] = 5;
$pagedResponse = $photosLibraryClient->listMediaItems();
// $iterator = $pagedResponse->iterateAllElements();
// for ($i = 0; $i < 300; $i++) {
// $album = $iterator->current();
// Log::info("album name is" . $album->getTitle() . " id is " . $album->getId());
// $iterator->next();
// }
// exit;
$options['pageSize'] = 100;
$pagedResponse = $photosLibraryClient->listMediaItems($options);
// $album = new Album();
// $album->setTitle("ycc_gc");
// $album = $photosLibraryClient->createAlbum($album);
// Log::info($album->getId());
// echo 111;
// var_dump($pagedResponse->iterateAllElements());exit;
$iterator = $pagedResponse->iterateAllElements();
$albums = [];
$yccImages = [];
while (true) {
for ($i = 0; $i < 100; $i++) {
$album = $iterator->current();
if (strstr($album->getFilename(), "ycc")) {
$yccImages[] = $album->getId();
for ($i = 0; $i < 100000; $i++) {
if ($i < 5600) {
$iterator->next();
}
$photo = $iterator->current();
// Log::info($photo);
Log::info($photo->getFilename());
GooglePhoto::firstOrCreate(["photo_id" => $photo->getId()],
["photo_id" => $photo->getId(),
"filename" => $photo->getFilename(),
"product_url" => $photo->getProductUrl(),
"creation_time" => date("Y-m-d H:i:s", $photo->getMediaMetadata()->getCreationTime()->getSeconds())]
);
// exit;
// dump($photo);
// if (strstr($photo->getFilename(), "ycc")) {
// $yccImages[] = $photo->getId();
// }
$iterator->next();
}
if (count($yccImages) > 1) {
$photosLibraryClient->batchAddMediaItemsToAlbum("AN5jk26M4hJ-wxLPKSzIDyjruMMkWjlDlVkgNaWWk3d3c7TGhm1vKU-YM0JhfgK5CfcfneoIx_8E", $yccImages);
echo "add " . count($yccImages) . " images to ycc\n";
$yccImages = [];
}
break;
// if (count($yccImages) > 1) {
// $yccImages = array_slice($yccImages, 89);
// Log::info( "prepare add " . count($yccImages) . " images to ycc");
// Log::info("imageIDs", $yccImages);
// try {
// $photosLibraryClient->batchAddMediaItemsToAlbum("AN5jk27_faHwGa9qT0SALztx3zxTk4HUiqhVIDjxHQBxZ59v1ljIyA8Klsn2ZaxlFrRJwBAPPdmZ", $yccImages);
// } catch (ApiException $e) {
// Log::error($e->getMessage());
// }
// Log::info( "add " . count($yccImages) . " images to ycc");
// $yccImages = [];
// }
// break;
}


+ 3
- 2
app/Http/Controllers/WeiboController.php View File

@ -28,6 +28,7 @@ class WeiboController extends Controller
// https://m.weibo.cn/api/container/getIndex?containerid=230259&openApp=0
// 短短 1076032137020951
// https://m.weibo.cn/api/container/getIndex?containerid=230259&openApp=0&page=
// 物理 2304133907143723
@ -35,8 +36,8 @@ class WeiboController extends Controller
// for( $i = 341; $i >= 1 ; $i-- )
// $url[] = 'https://m.weibo.cn/api/container/getIndex?containerid=1076035893812490&openApp=0&page='.$i;
for( $i = 50; $i >= 1 ; $i-- )
$url[] = 'https://m.weibo.cn/api/container/getIndex?containerid=1076032137020951&openApp=0&page='.$i;
for( $i = 100; $i >= 1 ; $i-- )
$url[] = 'https://m.weibo.cn/api/container/getIndex?containerid=2304133907143723&openApp=0&page='.$i;
// for ($i = 5; $i >= 1; $i--) {
// $url[] = 'https://m.weibo.cn/feed/group?gid=4423532052076817&&page=' . $i;
// }


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

@ -27,8 +27,8 @@ class WeiboService
// $video_dir = "/Volumes/Samsung/weibo/people/徐圣佑/video";
// $image_dir = "/Volumes/Samsung/weibo/people/徐圣佑/image";
$video_dir = "/Volumes/Samsung/weibo/video/短短";
$image_dir = "/Volumes/Samsung/weibo/image/短短";
$video_dir = "/Volumes/Samsung/weibo/video/";
$image_dir = "/Volumes/Samsung/weibo/image/";
try {
if (strlen($content) > 0) {


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

@ -39,7 +39,7 @@ function connectWithGooglePhotos($request, array $scopes, $redirectURI)
// redirect($authenticationUrl);
// header("Location: " . $authenticationUrl);
// redirect()->to($authenticationUrl);
redirect($authenticationUrl);
return redirect($authenticationUrl);
} else {
dump("code is " . $code);
// With the code returned by the OAuth flow, we can retrieve the refresh token.


+ 9
- 0
database/factories/GooglePhotoFactory.php View File

@ -0,0 +1,9 @@
<?php
use Faker\Generator as Faker;
$factory->define(App\GooglePhoto::class, function (Faker $faker) {
return [
//
];
});

+ 35
- 0
database/migrations/2021_10_08_163234_create_google_photos_table.php View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateGooglePhotosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('google_photos', function (Blueprint $table) {
$table->increments('id');
$table->string("photo_id");
$table->string("filename");
$table->string("product_url");
$table->timestamp("creation_time");
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('google_photos');
}
}

+ 31
- 0
database/migrations/2021_10_08_165821_create_google_photos_table.php View File

@ -0,0 +1,31 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateGooglePhotosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('google_photos', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('google_photos');
}
}

+ 3
- 0
fail.log View File

@ -2367,3 +2367,6 @@
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-hou1-1.cdninstagram.com/v/t50.2886-16/241762732_1964324837074509_774784568224117860_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-hou1-1.cdninstagram.com&_nc_cat=109&_nc_ohc=N9DD3lRyousAX_QFU4v&edm=APv5SkIBAAAA&vs=4673620266004604_404870497&_nc_vs=HBksFQAYJEdLd0JhUTVOSmlNRWktb0dBR1QwYzdaMWxzQUticV9FQUFBRhUAAsgBABUAGCRHRWF6YkE1eFF2ZTFTclVLQUpFa3JMcVdhYXhrYnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACaWooW49ojAPxUCKAJDMywXQDh3S8an754YEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=d723adebfb&ccb=7-4&oe=614BCF7A&oh=8ac8eec40dcbf473a4cd1be58cf87bae&_nc_sid=7479f6&_nc_vts_prog=1
/Users/shixuesen/OneDrive/Pictures/instagram/amandacerny/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_883442198956439_8683797876571381447_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=Q2AU_wkOa0MAX_WJSHl&edm=ABmJApABAAAA&vs=1259518084493797_2953349738&_nc_vs=HBksFQAYJEdJQ1dtQUNYeVhKcWZDTURBTWNlVlBZb0RJTjRicV9FQUFBRhUAAsgBABUAGCRHQlhoamc1QnV1MkRfQ1VEQUNQVFdYS1E3c3N3YnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACbOw6C3587UQBUCKAJDMywXQE33bItDlYEYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=d5b0d6ea86&ccb=7-4&oe=615A976F&oh=c4309eca4f320f1be60162f583a3916b&_nc_sid=6136e7&_nc_vts_prog=1&vts=1
/Users/shixuesen/OneDrive/Pictures/instagram/duyenn.hipp/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_176342064645864_2852026291184528688_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=100&_nc_ohc=qe8GVaDHk3QAX9EyIvK&edm=ABmJApABAAAA&vs=849539289092317_145701975&_nc_vs=HBksFQAYJEdJQ1dtQURvUmgtV1lhQUFBRER0SUJqTmJwUW5icV9FQUFBRhUAAsgBABUAGCRHTE02aGc1NExvbmdEU29DQUFVMU5lX3ZKRVlsYnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACaIzPzNpqjKPxUCKAJDMywXQEHu2RaHKwIYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=c41d35b8b4&ccb=7-4&oe=615BC281&oh=561814cc07a557468062c6c7770dad9f&_nc_sid=6136e7&_nc_vts_prog=1&vts=1
/Users/shixuesen/OneDrive/Pictures/instagram/duyenn.hipp/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/244644789_396788492069507_2169440636262730021_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=WvAgXdCBB7gAX80H24S&edm=ABmJApABAAAA&vs=440760290816970_2402827354&_nc_vs=HBksFQAYJEdMWDdsQTZENmg2RjRHZ0JBQ1hKdkxYRFpoc2VicV9FQUFBRhUAAsgBABUAGCRHS1BSbHc2RnUyNUdHbDBBQUJPaWtBUUlMZGxxYnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACaYy%2FH9xbTgPxUCKAJDMywXQDpVP3ztkWgYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=85769a8d84&ccb=7-4&oe=61606AAE&oh=ccf802edd6135395d6034896cc2d2e11&_nc_sid=6136e7&_nc_vts_prog=1&vts=1
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_148709250807516_7829373910966620657_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=100&_nc_ohc=arfS6yUcU7YAX8BBKcI&edm=ABmJApABAAAA&vs=1330045914116814_2526745227&_nc_vs=HBksFQAYJEdJQ1dtQURjdGhFU1FJY0FBUEZSNEJnWGhxZHNicV9FQUFBRhUAAsgBABUAGCRHQ1E0a1E2OXAzSDBZX2NDQUNmMFlhbWJEeGgxYnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACb%2B34Pbw5j8PxUCKAJDMywXQE37peNT988YEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=4969add8b6&ccb=7-4&oe=61606F63&oh=dbc6c989cfbafcc61bc6211c5d3b4e5e&_nc_sid=6136e7&_nc_vts_prog=1&vts=1
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_1014412896004981_2566225560226237805_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=101&_nc_ohc=oghWqz4InPsAX9LTQVy&edm=ABmJApABAAAA&vs=141742078107489_3471228551&_nc_vs=HBksFQAYJEdJQ1dtQUIxYTFKb21wb0RBRzBOMFBLTUVKMGpicV9FQUFBRhUAAsgBABUAGCRHRTlva1E0eG1qeFFyMFFCQUZqRFBKeXRIRG9nYnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACaUjub6z8jfPxUCKAJDMywXQEhqn752yLQYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=4969aee3aa&ccb=7-4&oe=6160D775&oh=25daaa9bfc738372299f2f71a9b19b5b&_nc_sid=6136e7&_nc_vts_prog=1&vts=1

Loading…
Cancel
Save