Browse Source

add try

feature/new_bilibili_and_instagram_sxs20191126
shixuesen 4 years ago
parent
commit
3b332db7dd
8 changed files with 262 additions and 45 deletions
  1. +38
    -0
      app/BodyStat.php
  2. +85
    -0
      app/Http/Controllers/BodyStatController.php
  3. +15
    -8
      app/Services/FfmpegService.php
  4. +58
    -34
      app/Services/XiaomiDataService.php
  5. +9
    -0
      database/factories/BodyStatFactory.php
  6. +3
    -3
      database/migrations/2021_02_21_203243_add_mid_and_bv_id.php
  7. +48
    -0
      database/migrations/2021_08_12_194844_create_body_stat_table.php
  8. +6
    -0
      fail.log

+ 38
- 0
app/BodyStat.php View File

@ -0,0 +1,38 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class BodyStat extends Model
{
//
protected $fillable = ["*"];
/**
* Get an attribute from the model.
*
* @param string $key
* @return mixed
*/
public function getAttribute($key)
{
if (array_key_exists($key, $this->relations)) {
return parent::getAttribute($key);
} else {
return parent::getAttribute(Str::snake($key));
}
}
/**
* Set a given attribute on the model.
*
* @param string $key
* @param mixed $value
* @return mixed
*/
public function setAttribute($key, $value)
{
return parent::setAttribute(Str::snake($key), $value);
}
}

+ 85
- 0
app/Http/Controllers/BodyStatController.php View File

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\BodyStat;
use Illuminate\Http\Request;
class BodyStatController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\BodyStat $bodyStat
* @return \Illuminate\Http\Response
*/
public function show(BodyStat $bodyStat)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\BodyStat $bodyStat
* @return \Illuminate\Http\Response
*/
public function edit(BodyStat $bodyStat)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\BodyStat $bodyStat
* @return \Illuminate\Http\Response
*/
public function update(Request $request, BodyStat $bodyStat)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\BodyStat $bodyStat
* @return \Illuminate\Http\Response
*/
public function destroy(BodyStat $bodyStat)
{
//
}
}

+ 15
- 8
app/Services/FfmpegService.php View File

@ -101,6 +101,11 @@ class FfmpegService
$mediaInfo->setConfig('use_oldxml_mediainfo_output_format', true);
if (strstr($mime, "video/") || strstr($mime, "application/octet-stream")) {
if (is_file($pathFile)) {
if (Redis::get("stopFlag") != null) {
Log::info("stopFlag is set");
dump("stopFlag is set");
exit;
}
if (!$this->checkFileSize($pathFile)) {
return;
}
@ -123,9 +128,6 @@ class FfmpegService
if (Redis::sismember("unneed", $fileInfo["filename"])) {
return;
}
if (Redis::get("stopFlag") != null) {
return;
}
$targetFile = $fileInfo["dirname"] . '/' .$fileInfo["filename"] . '-x265'. '.' . $fileInfo["extension"];
if (is_file($targetFile)) {
unlink($pathFile);
@ -250,11 +252,16 @@ class FfmpegService
public function checkFileEncodeType($file): bool
{
$codecName = $this->ffprobe
->streams($file) // extracts streams informations
->videos() // filters video streams
->first() // returns the first video stream
->get('codec_name');
try {
$codecName = $this->ffprobe
->streams($file) // extracts streams informations
->videos() // filters video streams
->first() // returns the first video stream
->get('codec_name');
} catch (\Exception $e) {
Log::error("ffprobe has error just return false for test, exception: ". $e->getMessage());
return false;
}
return trim($codecName) == "hevc";
}


+ 58
- 34
app/Services/XiaomiDataService.php View File

@ -3,46 +3,70 @@
namespace App\Services;
use App\BodyStat;
use Illuminate\Database\Eloquent\Model;
class XiaomiDataService
{
public function fetchData()
{
# code...
$curl = curl_init();
while (true) {
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-mifit-cn2.huami.com/users/1003389185/members/-1/weightRecords?r=AAF4B906-DC99-4026-A146-978ACE0CABE0&t=1628760878387&limit=1000&toTime=1578441809',
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(
'Host: api-mifit-cn2.huami.com',
'country: CN',
'v: 2.0',
'hm-privacy-ceip: true',
'accept: */*',
'appname: com.xiaomi.hm.health',
'channel: appstore',
'apptoken: NQVBQFJyQktGHlp6QkpbRl5LRl5qek4uXAQABAAAAAFfuN66ifbzCboB2ZH0DQx220t-vmAesadpY516w6jCvmgtevcO3dRgzBCrdXgE5Q3Ts6krWtaQd9uiZuTWa_sfFvwxQcubyHmZCUZns10TLymRIL1nIfLfplagK_YyTU0Io4j9SSBZPx5-kn8MntQhiq7MnOW0AZuvg7GKs94qd',
'accept-language: zh-Hans-CN;q=1, en-CN;q=0.9',
'x-request-id: 49EACAE1-63FB-4035-BF1E-CCED0579FD14',
'cv: 159_5.2.0',
'lang: zh_CN',
'timezone: Asia/Shanghai',
'appplatform: ios_phone',
'hm-privacy-diagnostics: false',
'user-agent: MiFit/5.2.0 (iPhone; iOS 14.7; Scale/3.00)'
),
));
$response = curl_exec($curl);
curl_close($curl);
$result = json_decode($response, true);
$items = $result["items"];
// dump($response);
foreach ($items as $item) {
# code...
$entity = $item["summary"];
$entity["generatedTime"] = date("Y-m-d H:i:s", $item["generatedTime"]);
dump($entity);
$body = new BodyStat();
foreach ($entity as $key => $value) {
$body->setAttribute($key, $value);
}
$body->save();
}
// dump($items);
$next = $result["next"];
dump($next);
exit;
}
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-mifit-cn2.huami.com/users/1003389185/members/-1/weightRecords?r=AAF4B906-DC99-4026-A146-978ACE0CABE0&t=1627438226827&limit=100&toTime=1627438226',
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(
'Host: api-mifit-cn2.huami.com',
'country: CN',
'v: 2.0',
'hm-privacy-ceip: true',
'accept: */*',
'appname: com.xiaomi.hm.health',
'channel: appstore',
'apptoken: NQVBQFJyQktGHlp6QkpbRl5LRl5qek4uXAQABAAAAAFfuN66ifbzCboB2ZH0DQx220t-vmAesadpY516w6jCvmgtevcO3dRgzBCrdXgE5Q3Ts6krWtaQd9uiZuTWa_sfFvwxQcubyHmZCUZns10TLymRIL1nIfLfplagK_YyTU0Io4j9SSBZPx5-kn8MntQhiq7MnOW0AZuvg7GKs94qd',
'accept-language: zh-Hans-CN;q=1, en-CN;q=0.9',
'x-request-id: 49EACAE1-63FB-4035-BF1E-CCED0579FD14',
'cv: 159_5.2.0',
'lang: zh_CN',
'timezone: Asia/Shanghai',
'appplatform: ios_phone',
'hm-privacy-diagnostics: false',
'user-agent: MiFit/5.2.0 (iPhone; iOS 14.7; Scale/3.00)'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
}
}

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

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

+ 3
- 3
database/migrations/2021_02_21_203243_add_mid_and_bv_id.php View File

@ -15,9 +15,9 @@ class AddMidAndBvId extends Migration
{
Schema::table('bilibili_videos', function (Blueprint $table) {
//
$table->bigInteger("bv_id")->comment("B站 video 的 bv id")->after("aid");
$table->bigInteger("up_mid")->comment("up的唯一识别 id")->after("from_up_name");
$table->bigInteger("collection_mid")->comment("收藏夹的唯一识别 id")->after("up_mid");
// $table->bigInteger("bv_id")->comment("B站 video 的 bv id")->after("aid");
// $table->bigInteger("up_mid")->comment("up的唯一识别 id")->after("from_up_name");
// $table->bigInteger("collection_mid")->comment("收藏夹的唯一识别 id")->after("up_mid");
});
}


+ 48
- 0
database/migrations/2021_08_12_194844_create_body_stat_table.php View File

@ -0,0 +1,48 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateBodyStatTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('body_stats', function (Blueprint $table) {
$table->increments('id');
$table->decimal("weight", 8, 2)->comment("体重");
$table->integer("height")->comment("身高");
$table->decimal("bmi", 10, 6)->comment("bmi 指数");
$table->decimal("fat_rate", 8, 2)->comment("体脂率");
$table->decimal("body_water_rate", 8, 2)->comment("水分");
$table->decimal("bone_mass", 8, 2)->comment("骨量");
$table->decimal("metabolism", 8, 2)->comment("基础代谢");
$table->decimal("muscle_rate", 8, 2)->comment("肌肉量公斤");
$table->decimal("muscle_age", 8, 2)->comment("身体年龄");
$table->decimal("protein_ratio", 8, 2)->comment("蛋白质百分比");
$table->decimal("stand_body_weight", 8, 2)->comment("标准体重");
$table->decimal("visceral_fat", 8, 2)->comment("内脏脂肪");
$table->decimal("impedance", 8, 2)->comment("阻抗");
$table->integer("body_score")->comment("身体得分");
$table->integer("body_style")->comment("身体类型");
$table->decimal("one_foot_measure_time", 8, 2)->comment("单脚测量");
$table->date("generated_time")->comment("生成时间");
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('body_stats');
}
}

+ 6
- 0
fail.log View File

@ -2346,3 +2346,9 @@
/Users/shixuesen/OneDrive/Pictures/instagram/boram__jj/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/219995571_858755778366933_7550269812270085291_n.jpg?se=8&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=Q05NqUjpUswAX_v-nNJ&edm=ABmJApABAAAA&ccb=7-4&oh=7ba4a7a2fb4d88064dcbe388b842268d&oe=60FD65BB&_nc_sid=6136e7&ig_cache_key=MjYyMTYzMTEwNDAzNjEyMDIyNA%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/cherry_quahst/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/102164338_3691909180909102_7071632899479615322_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=110&_nc_ohc=N-KlidUdk9sAX-4mwKv&edm=AOVtZ6oBAAAA&vs=17850720977615741_505480917&_nc_vs=HBksFQAYJEdITG5GZ1l1WmtXWHhSME5BRnEzY3F1bmZDTmlidXFIQUFBQRUAAsgBABUAGCRHRWxmRlEzZzJnMmxiOFVEQVB2MFF1SVE4ZVJtYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACbc3JK1nIzVPxUCKAJDMywXQBqp%2B%2Bdsi0QYEmRhc2hfYmFzZWxpbmVfMV92MREAdegHAA%3D%3D&_nc_rid=3c64f455f7&ccb=7-4&oe=60F9C9AA&oh=144a0e7d6c672d1cf781eaf7413e8783&_nc_sid=bab638
/Users/shixuesen/OneDrive/Pictures/instagram/amandacerny/ https://scontent-yyz1-1.cdninstagram.com/v/t50.2886-16/10000000_381969723494260_5874728704091838583_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-yyz1-1.cdninstagram.com&_nc_cat=104&_nc_ohc=d28rfaOrDA4AX8ciMTr&edm=ABmJApABAAAA&vs=1004224630417123_1632355961&_nc_vs=HBksFQAYJEdJQ1dtQUIwRDY5Qlpsc0JBSGRZTDNlaE9vZFJicV9FQUFBRhUAAsgBABUAGCRHTjhpelExLW9kd3VRa3NFQUE2Y20yczlXTjhlYnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACaO7Jz6o578PxUCKAJDMywXQEH3bItDlYEYEmRhc2hfYmFzZWxpbmVfMl92MREAdf4HAA%3D%3D&_nc_rid=9d297e3f3a&ccb=7-4&oe=61148D24&oh=d4cd94214132bb851ba6614ee74cb99a&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/ayreen/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_533745771210255_8860073035508637594_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=103&_nc_ohc=n49W-dcvz_YAX9vjgkm&edm=ABmJApABAAAA&vs=3031179077167575_1269050111&_nc_vs=HBksFQAYJEdJQ1dtQUFQNWhkZmNPVUJBSnBmZ3ExN1RmVjZicV9FQUFBRhUAAsgBABUAGCRHSGpEQ0E3RkVfeFZmTXdBQU9jSVRwaW9sNlZlYnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACa0%2FLjgn4PqQBUCKAJDMywXQE4EOVgQYk4YEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=babe8a0afb&ccb=7-4&oe=6118754E&oh=a083eda307a5ebfb0e0f3c2c5413eed7&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/ayreen/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/232824930_303233414893585_8726561731302020654_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5iYXNlbGluZSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=101&_nc_ohc=lJHfMl9eTN8AX-OFOGI&edm=ABmJApABAAAA&vs=518215056152747_1862383523&_nc_vs=HBksFQAYJEdHS2c0QTBSa1BvSHloTUJBQzVXeHNpb19ScDVicV9FQUFBRhUAAsgBABUAGCRHQWk4MFExdXpwbEgwSFlEQUdRR0FpUnI1XzFDYnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACa%2B6s%2F3rMjKPxUCKAJDMywXQEtmZmZmZmYYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=d04c9b89df&ccb=7-4&oe=61183877&oh=3c5fb3eee9e1629ffb816ee78423096f&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/eom_sangmi/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/p480x480/235253348_174001348134204_5211307610421402890_n.jpg?_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=100&_nc_ohc=DsfTDyjO4PsAX-v2c2N&edm=ABmJApABAAAA&ccb=7-4&oh=a7a633d0f8f18a4033d0047a2302e803&oe=611D5989&_nc_sid=6136e7&ig_cache_key=MjYzNjQ4NzE3ODQ4Nzk5MzQ5OA%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/limerencem_/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/233733125_844481339777785_8458315680149863276_n.jpg?se=8&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=101&_nc_ohc=qux3Nb2xqYAAX_czzbM&edm=ABmJApABAAAA&ccb=7-4&oh=b547d9083f9f4924ab5969bfe9dd2fbc&oe=611CCC15&_nc_sid=6136e7&ig_cache_key=MjYzNDEyNDg4NjYzOTcyMDQ3MQ%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/irishuo_/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/234915016_348172043632740_6452054389988192918_n.jpg?se=7&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=100&_nc_ohc=xJdWmQe6bGEAX-ZhbU3&edm=ABmJApABAAAA&ccb=7-4&oh=818e62814cbb057d503d644e9f8601f9&oe=611DB548&_nc_sid=6136e7&ig_cache_key=MjYzNzg4MTQxMjEyMTc2OTU1NA%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/irishuo_/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/234803390_274836711112214_787656283753125631_n.jpg?se=7&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&_nc_ohc=N6xdmUPSAaUAX_u2_Rs&edm=ABmJApABAAAA&ccb=7-4&oh=b4d625fb3ba6213f58c63780fdb5140d&oe=611C806D&_nc_sid=6136e7&ig_cache_key=MjYzNzE0NDAwMzE4ODY0NTE5Mw%3D%3D.2-ccb7-4

Loading…
Cancel
Save