Compare commits

...

Author SHA1 Message Date
  zmiffang 6cf9847476 for windows video 5 years ago
  shixuesen a85436c475 modify some code 5 years ago
  shixuesen 94b5e88d66 add some code 5 years ago
  shixuesen 455830c3dc add some files 5 years ago
  shixuesen e80577b98b add some code 5 years ago
  shixuesen b717ff1887 modify 5 years ago
  nicksxs 96f7d6a7d7 test 6 years ago
  nicksxs 8381c3d8c7 test 6 years ago
  shixuesen 537e32b928 modify: test 6 years ago
  shixuesen a1a5133c08 modify: add sql 6 years ago
  shixuesen 5af7bc134d modify: add laravel admin and other config 6 years ago
  shixuesen 50641347ab modify: git ignore 6 years ago
  shixuesen 9d48e015f0 modify: git ignore 6 years ago
  shixuesen 73021e1e81 modify: git ignore 6 years ago
  shixuesen 3f7046042e feature: add bilibili and instagram 6 years ago
  shixuesen 3eb623b0f9 feature: add bilibili and instagram 6 years ago
  shixuesen f984a5029c feature: test 6 years ago
  shixuesen d7bd0cffbe add rename dir 6 years ago
  shixuesen 72a53d63dc add xiu girl yangchenchen scrape 6 years ago
481 changed files with 61836 additions and 3314 deletions
Split View
  1. +49
    -0
      .env.local
  2. +30
    -10
      .gitignore
  3. +0
    -7
      .idea/dictionaries/shixuesen.xml
  4. +0
    -4
      .idea/encodings.xml
  5. +0
    -127
      .idea/graph-tutorial.iml
  6. +0
    -6
      .idea/laravel-plugin.xml
  7. +0
    -25
      .idea/misc.xml
  8. +0
    -8
      .idea/modules.xml
  9. +47
    -2
      .idea/php.xml
  10. +0
    -662
      .idea/workspace.xml
  11. +198
    -0
      1-2.html
  12. BIN
      12034889.jpg
  13. BIN
      12034928.jpg
  14. BIN
      12035041.jpg
  15. BIN
      12035159.jpg
  16. BIN
      12035232.jpg
  17. BIN
      12035355.jpg
  18. BIN
      12035373.jpg
  19. BIN
      12035421.jpg
  20. BIN
      1203544.jpg
  21. BIN
      12035554.jpg
  22. BIN
      12035660.jpg
  23. BIN
      12035770.jpg
  24. BIN
      12035794.jpg
  25. BIN
      12035851.jpg
  26. BIN
      12035925.jpg
  27. BIN
      12040040.jpg
  28. BIN
      12040160.jpg
  29. BIN
      12040252.jpg
  30. BIN
      12040320.jpg
  31. BIN
      1204039.jpg
  32. BIN
      12040443.jpg
  33. BIN
      12040557.jpg
  34. BIN
      12040676.jpg
  35. BIN
      12040723.jpg
  36. BIN
      12040853.jpg
  37. BIN
      12040894.jpg
  38. BIN
      12040930.jpg
  39. BIN
      12040996.jpg
  40. BIN
      12041035.jpg
  41. BIN
      12041189.jpg
  42. BIN
      12041354.jpg
  43. BIN
      12041516.jpg
  44. BIN
      12041714.jpg
  45. BIN
      12041935.jpg
  46. BIN
      12042236.jpg
  47. BIN
      12042710.jpg
  48. BIN
      12043260.jpg
  49. +34
    -0
      app/Acfun.php
  50. +34
    -0
      app/AcfunUpVideo.php
  51. +41
    -0
      app/AcfunVideo.php
  52. +10
    -0
      app/Admin/Controllers/AuthController.php
  53. +91
    -0
      app/Admin/Controllers/BilibiliVideoController.php
  54. +67
    -0
      app/Admin/Controllers/ExampleController.php
  55. +34
    -0
      app/Admin/Controllers/HomeController.php
  56. +21
    -0
      app/Admin/bootstrap.php
  57. +16
    -0
      app/Admin/routes.php
  58. +24
    -0
      app/Afreeca.php
  59. +28
    -0
      app/BiCookies.php
  60. +38
    -0
      app/BilibiliCollections.php
  61. +38
    -0
      app/BilibiliUpVideos.php
  62. +40
    -0
      app/BilibiliVideoParts.php
  63. +10
    -0
      app/BilibiliVideoTemp.php
  64. +43
    -0
      app/BilibiliVideos.php
  65. +45
    -0
      app/Console/Commands/AcfunScrape.php
  66. +45
    -0
      app/Console/Commands/AfreecaScrape.php
  67. +64
    -0
      app/Console/Commands/BiliVideoCode.php
  68. +45
    -0
      app/Console/Commands/DailySignCommand.php
  69. +46
    -0
      app/Console/Commands/FullSiteCommand.php
  70. +45
    -0
      app/Console/Commands/GoogleDriveList.php
  71. +45
    -0
      app/Console/Commands/HandBrakeCommand.php
  72. +48
    -0
      app/Console/Commands/InstagramScrape.php
  73. +46
    -0
      app/Console/Commands/MMScrape.php
  74. +49
    -0
      app/Console/Commands/NvShenScrape.php
  75. +47
    -0
      app/Console/Commands/RenameTest.php
  76. +52
    -0
      app/Console/Commands/TujiguCommand.php
  77. +45
    -0
      app/Console/Commands/Vita.php
  78. +48
    -0
      app/Console/Commands/XiuGirlScrape.php
  79. +102
    -2
      app/Console/Kernel.php
  80. +85
    -0
      app/Http/Controllers/AcfunController.php
  81. +85
    -0
      app/Http/Controllers/AcfunUpVideoController.php
  82. +85
    -0
      app/Http/Controllers/AcfunVideoController.php
  83. +85
    -0
      app/Http/Controllers/AfreecaController.php
  84. +93
    -0
      app/Http/Controllers/BiCookiesController.php
  85. +90
    -0
      app/Http/Controllers/BilibiliCollectionsController.php
  86. +85
    -0
      app/Http/Controllers/BilibiliUpVideosController.php
  87. +85
    -0
      app/Http/Controllers/BilibiliVideoPartsController.php
  88. +85
    -0
      app/Http/Controllers/BilibiliVideoTempController.php
  89. +85
    -0
      app/Http/Controllers/BilibiliVideosController.php
  90. +21
    -4
      app/Http/Controllers/InstagramController.php
  91. +85
    -0
      app/Http/Controllers/InstagramUserController.php
  92. +105
    -0
      app/Http/Controllers/WeiboController.php
  93. +85
    -0
      app/Http/Controllers/XiuGirlController.php
  94. +1
    -0
      app/Http/Middleware/VerifyCsrfToken.php
  95. +17
    -1
      app/Instagram.php
  96. +30
    -0
      app/InstagramUser.php
  97. +11
    -0
      app/Repositories/CosInsRepository.php
  98. +147
    -0
      app/Services/AcfunService.php
  99. +125
    -0
      app/Services/AfreecaService.php
  100. +841
    -0
      app/Services/BilibiliService.php

+ 49
- 0
.env.local View File

@ -0,0 +1,49 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:huv04dD9NHrCHQ4HqLhp9GqOgBm6Kgnhn88VNh0OzAk=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ins
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
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

+ 30
- 10
.gitignore View File

@ -1,12 +1,32 @@
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.phpunit.result.cache
Homestead.json
Homestead.yaml
/vendor/
node_modules/
npm-debug.log
yarn-error.log
/.idea
# Laravel 4 specific
bootstrap/compiled.php
app/storage/
# Laravel 5 & Lumen specific
public/storage
public/hot
# Laravel 5 & Lumen specific with changed public path
public_html/storage
public_html/hot
storage/*.key
storage/.DS_Store
.env
Homestead.yaml
Homestead.json
/.vagrant
.phpunit.result.cache
.idea/*
.DS_Store
.env.local
.env.prod
fail.log
my.log
cookie.txt
*.jpg

+ 0
- 7
.idea/dictionaries/shixuesen.xml View File

@ -1,7 +0,0 @@
<component name="ProjectDictionaryState">
<dictionary name="shixuesen">
<words>
<w>instagram</w>
</words>
</dictionary>
</component>

+ 0
- 4
.idea/encodings.xml View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
</project>

+ 0
- 127
.idea/graph-tutorial.iml View File

@ -1,127 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/laravel-ide-helper" />
<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/reflection-docblock" />
<excludeFolder url="file://$MODULE_DIR$/vendor/beyondcode/laravel-dump-server" />
<excludeFolder url="file://$MODULE_DIR$/vendor/binsoul/net-mqtt" />
<excludeFolder url="file://$MODULE_DIR$/vendor/binsoul/net-mqtt-client-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/http-proxy-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/socks-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/corneltek/getoptionkit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/dnoegel/php-xdg-base-dir" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/event-manager" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/dragonmantank/cron-expression" />
<excludeFolder url="file://$MODULE_DIR$/vendor/egulias/email-validator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/erusev/parsedown" />
<excludeFolder url="file://$MODULE_DIR$/vendor/evenement/evenement" />
<excludeFolder url="file://$MODULE_DIR$/vendor/fideloper/proxy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/filp/whoops" />
<excludeFolder url="file://$MODULE_DIR$/vendor/fzaninotto/faker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
<excludeFolder url="file://$MODULE_DIR$/vendor/hamcrest/hamcrest-php" />
<excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-console-color" />
<excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-console-highlighter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/justinrainbow/json-schema" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/framework" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/nexmo-notification-channel" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/slack-notification-channel" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/tinker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/lazyjsonmapper/lazyjsonmapper" />
<excludeFolder url="file://$MODULE_DIR$/vendor/lcobucci/jwt" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/flysystem" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/oauth2-client" />
<excludeFolder url="file://$MODULE_DIR$/vendor/mgp25/instagram-php" />
<excludeFolder url="file://$MODULE_DIR$/vendor/microsoft/microsoft-graph" />
<excludeFolder url="file://$MODULE_DIR$/vendor/mockery/mockery" />
<excludeFolder url="file://$MODULE_DIR$/vendor/monolog/monolog" />
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nesbot/carbon" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nexmo/client" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nunomaduro/collision" />
<excludeFolder url="file://$MODULE_DIR$/vendor/opis/closure" />
<excludeFolder url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/manifest" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/version" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-http/guzzle6-adapter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-http/httplug" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-http/promise" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/simple-cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psy/psysh" />
<excludeFolder url="file://$MODULE_DIR$/vendor/ralouphie/getallheaders" />
<excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/uuid" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/dns" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/event-loop" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/promise" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/promise-timer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/socket" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/stream" />
<excludeFolder url="file://$MODULE_DIR$/vendor/ringcentral/psr7" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-reflector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" />
<excludeFolder url="file://$MODULE_DIR$/vendor/seld/jsonlint" />
<excludeFolder url="file://$MODULE_DIR$/vendor/seld/phar-utils" />
<excludeFolder url="file://$MODULE_DIR$/vendor/swiftmailer/swiftmailer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/console" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/contracts" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/css-selector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/debug" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/routing" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-dumper" />
<excludeFolder url="file://$MODULE_DIR$/vendor/theseer/tokenizer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
<excludeFolder url="file://$MODULE_DIR$/vendor/valga/fbns-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/vlucas/phpdotenv" />
<excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
<excludeFolder url="file://$MODULE_DIR$/vendor/winbox/args" />
<excludeFolder url="file://$MODULE_DIR$/vendor/zendframework/zend-diactoros" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

+ 0
- 6
.idea/laravel-plugin.xml View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="LaravelPluginSettings">
<option name="pluginEnabled" value="true" />
</component>
</project>

+ 0
- 25
.idea/misc.xml View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="NodePackageJsonFileManager">
<packageJsonPaths />
</component>
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State>
<id />
</State>
</expanded-state>
<selected-state>
<State>
<id>Blade files</id>
</State>
</selected-state>
</profile-state>
</entry>
</component>
</project>

+ 0
- 8
.idea/modules.xml View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/graph-tutorial.iml" filepath="$PROJECT_DIR$/.idea/graph-tutorial.iml" />
</modules>
</component>
</project>

+ 47
- 2
.idea/php.xml View File

@ -23,7 +23,6 @@
<path value="$PROJECT_DIR$/vendor/binsoul/net-mqtt" />
<path value="$PROJECT_DIR$/vendor/opis/closure" />
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/vendor/mgp25/instagram-php" />
<path value="$PROJECT_DIR$/vendor/mockery/mockery" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/symfony/process" />
@ -118,12 +117,58 @@
<path value="$PROJECT_DIR$/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
<path value="$PROJECT_DIR$/vendor/psr/cache" />
<path value="$PROJECT_DIR$/vendor/cache/tag-interop" />
<path value="$PROJECT_DIR$/vendor/cache/adapter-common" />
<path value="$PROJECT_DIR$/vendor/cache/filesystem-adapter" />
<path value="$PROJECT_DIR$/vendor/jaeger/g-http" />
<path value="$PROJECT_DIR$/vendor/jaeger/phpquery-single" />
<path value="$PROJECT_DIR$/vendor/jaeger/querylist" />
<path value="$PROJECT_DIR$/vendor/tightenco/collect" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
<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/mime" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/vendor/qcloud/cos-sdk-v5" />
<path value="$PROJECT_DIR$/vendor/mashape/unirest-php" />
<path value="$PROJECT_DIR$/vendor/phpfastcache/phpssdb" />
<path value="$PROJECT_DIR$/vendor/phpfastcache/phpfastcache" />
<path value="$PROJECT_DIR$/vendor/raiym/instagram-php-scraper" />
<path value="$PROJECT_DIR$/vendor/predis/predis" />
<path value="$PROJECT_DIR$/vendor/netresearch/jsonmapper" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/command" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle-services" />
<path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
<path value="$PROJECT_DIR$/vendor/symfony/options-resolver" />
<path value="$PROJECT_DIR$/vendor/norkunas/youtube-dl-php" />
<path value="$PROJECT_DIR$/vendor/symfony/dom-crawler" />
<path value="$PROJECT_DIR$/vendor/encore/laravel-admin" />
<path value="$PROJECT_DIR$/vendor/phpseclib/phpseclib" />
<path value="$PROJECT_DIR$/vendor/firebase/php-jwt" />
<path value="$PROJECT_DIR$/vendor/google/auth" />
<path value="$PROJECT_DIR$/vendor/google/apiclient" />
<path value="$PROJECT_DIR$/vendor/google/apiclient-services" />
<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/mhor/php-mediainfo" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php70" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
<path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
<path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.1" />
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings load_method="CUSTOM_LOADER" configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" />
<PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" />
</phpunit_settings>
</component>
</project>

+ 0
- 662
.idea/workspace.xml View File

@ -1,662 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="f8883b6d-148e-4c06-b69b-206e09fe5251" name="Default Changelist" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ComposerSettings" doNotAsk="true" synchronizationState="SYNCHRONIZE">
<pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
</component>
<component name="FileEditorManager">
<leaf>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/InstagramController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1081">
<caret line="47" column="27" lean-forward="true" selection-start-line="47" selection-start-column="27" selection-end-line="47" selection-end-column="27" />
<folding>
<element signature="e#40#58#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/database/migrations/2019_01_31_022647_create_instagrams_table.php" />
<option value="$PROJECT_DIR$/resources/views/layout.blade.php" />
<option value="$PROJECT_DIR$/routes/web.php" />
<option value="$PROJECT_DIR$/database/migrations/2019_01_31_022647_create_instagram_table.php" />
<option value="$PROJECT_DIR$/database/migrations/2019_02_06_232019_add_index_to_instagram.php" />
<option value="$PROJECT_DIR$/app/Console/Kernel.php" />
<option value="$PROJECT_DIR$/app/Instagram.php" />
<option value="$PROJECT_DIR$/app/Services/InstagramService.php" />
<option value="$PROJECT_DIR$/.env" />
<option value="$PROJECT_DIR$/app/Http/Controllers/InstagramController.php" />
</list>
</option>
</component>
<component name="PackageJsonUpdateNotifier">
<dismissed value="$PROJECT_DIR$/package.json" />
</component>
<component name="PhpServers">
<servers />
</component>
<component name="PhpWorkspaceProjectConfiguration">
<include_path>
<path value="$PROJECT_DIR$/vendor/erusev/parsedown" />
<path value="$PROJECT_DIR$/vendor/league/oauth2-client" />
<path value="$PROJECT_DIR$/vendor/league/flysystem" />
<path value="$PROJECT_DIR$/vendor/jakub-onderka/php-console-highlighter" />
<path value="$PROJECT_DIR$/vendor/jakub-onderka/php-console-color" />
<path value="$PROJECT_DIR$/vendor/phpspec/prophecy" />
<path value="$PROJECT_DIR$/vendor/corneltek/getoptionkit" />
<path value="$PROJECT_DIR$/vendor/ringcentral/psr7" />
<path value="$PROJECT_DIR$/vendor/filp/whoops" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
<path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
<path value="$PROJECT_DIR$/vendor/winbox/args" />
<path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
<path value="$PROJECT_DIR$/vendor/binsoul/net-mqtt-client-react" />
<path value="$PROJECT_DIR$/vendor/evenement/evenement" />
<path value="$PROJECT_DIR$/vendor/binsoul/net-mqtt" />
<path value="$PROJECT_DIR$/vendor/opis/closure" />
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/vendor/mgp25/instagram-php" />
<path value="$PROJECT_DIR$/vendor/mockery/mockery" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/symfony/process" />
<path value="$PROJECT_DIR$/vendor/fideloper/proxy" />
<path value="$PROJECT_DIR$/vendor/symfony/debug" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
<path value="$PROJECT_DIR$/vendor/symfony/contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
<path value="$PROJECT_DIR$/vendor/microsoft/microsoft-graph" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
<path value="$PROJECT_DIR$/vendor/symfony/translation" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
<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/dnoegel/php-xdg-base-dir" />
<path value="$PROJECT_DIR$/vendor/lcobucci/jwt" />
<path value="$PROJECT_DIR$/vendor/psy/psysh" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
<path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
<path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
<path value="$PROJECT_DIR$/vendor/lazyjsonmapper/lazyjsonmapper" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/vendor/react/cache" />
<path value="$PROJECT_DIR$/vendor/react/stream" />
<path value="$PROJECT_DIR$/vendor/react/dns" />
<path value="$PROJECT_DIR$/vendor/react/promise-timer" />
<path value="$PROJECT_DIR$/vendor/react/promise" />
<path value="$PROJECT_DIR$/vendor/react/socket" />
<path value="$PROJECT_DIR$/vendor/react/event-loop" />
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/vendor/beyondcode/laravel-dump-server" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/vendor/fzaninotto/faker" />
<path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
<path value="$PROJECT_DIR$/vendor/laravel/tinker" />
<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/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/clue/http-proxy-react" />
<path value="$PROJECT_DIR$/vendor/clue/socks-react" />
<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/symfony/filesystem" />
<path value="$PROJECT_DIR$/vendor/seld/phar-utils" />
<path value="$PROJECT_DIR$/vendor/seld/jsonlint" />
<path value="$PROJECT_DIR$/vendor/barryvdh/reflection-docblock" />
<path value="$PROJECT_DIR$/vendor/barryvdh/laravel-ide-helper" />
<path value="$PROJECT_DIR$/vendor/justinrainbow/json-schema" />
<path value="$PROJECT_DIR$/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
</include_path>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-6" />
<option name="y" value="23" />
<option name="width" value="1286" />
<option name="height" value="772" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="Console" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="Http" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="Http" type="462c0819:PsiDirectoryNode" />
<item name="Controllers" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="Providers" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="Services" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="TokenStore" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="database" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="database" type="462c0819:PsiDirectoryNode" />
<item name="migrations" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="vendor" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="vendor" type="462c0819:PsiDirectoryNode" />
<item name="microsoft" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="vendor" type="462c0819:PsiDirectoryNode" />
<item name="microsoft" type="462c0819:PsiDirectoryNode" />
<item name="microsoft-graph" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="vendor" type="462c0819:PsiDirectoryNode" />
<item name="microsoft" type="462c0819:PsiDirectoryNode" />
<item name="microsoft-graph" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="graph-tutorial" type="b2602c69:ProjectViewProjectNode" />
<item name="graph-tutorial" type="462c0819:PsiDirectoryNode" />
<item name="vendor" type="462c0819:PsiDirectoryNode" />
<item name="microsoft" type="462c0819:PsiDirectoryNode" />
<item name="microsoft-graph" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="Http" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="nodejs_package_manager_path" value="yarn" />
<property name="settings.editor.selected.configurable" value="preferences.sourceCode.Other File Types" />
<property name="settings.editor.splitter.proportion" value="0.2" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="phpunit.xml" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
<TestRunner scope="XML" />
<method v="2" />
</configuration>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="f8883b6d-148e-4c06-b69b-206e09fe5251" name="Default Changelist" comment="" />
<created>1547951556931</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1547951556931</updated>
<workItem from="1547951560469" duration="1616000" />
<workItem from="1548863591622" duration="700000" />
<workItem from="1548900350914" duration="3669000" />
<workItem from="1548916931914" duration="1836000" />
<workItem from="1548926324347" duration="4453000" />
<workItem from="1548947422088" duration="2917000" />
<workItem from="1549036581486" duration="291000" />
<workItem from="1549157679604" duration="6501000" />
<workItem from="1549520613895" duration="12874000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="34857000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="23" width="1280" height="777" extended-state="6" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.28109854" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="npm" order="2" side_tool="true" />
<window_info id="Favorites" order="3" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" />
<window_info anchor="bottom" id="Database Changes" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info active="true" anchor="bottom" id="Terminal" order="11" visible="true" weight="0.26158446" />
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Database" order="3" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/vendor/nikic/php-parser/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor />
<second_editor />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/basic.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="144" column="9" selection-start-line="144" selection-start-column="9" selection-end-line="144" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/console.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/AuthController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1631" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/ForgotPasswordController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="471">
<caret line="29" column="21" lean-forward="true" selection-start-line="29" selection-start-column="21" selection-end-line="29" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Routing/Controller.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="222">
<caret line="22" column="20" selection-start-line="22" selection-start-column="20" selection-end-line="22" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/CreatesApplication.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Controller.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230">
<caret line="13" column="34" lean-forward="true" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="34" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="259">
<caret line="22" column="34" lean-forward="true" selection-start-line="22" selection-start-column="34" selection-end-line="22" selection-end-column="34" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/queue.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="415">
<caret line="81" column="26" lean-forward="true" selection-start-line="81" selection-start-column="26" selection-end-line="81" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/database.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1702">
<caret line="74" column="26" lean-forward="true" selection-start-line="74" selection-start-column="26" selection-end-line="74" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/layout.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="326">
<caret line="35" column="115" selection-start-line="35" selection-start-column="115" selection-end-line="35" selection-end-column="115" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/web.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="161">
<caret line="7" column="54" selection-start-line="7" selection-start-column="54" selection-end-line="7" selection-end-column="54" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/TokenStore/TokenCache.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="40" column="39" lean-forward="true" selection-start-line="40" selection-start-column="39" selection-end-line="40" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/microsoft/microsoft-graph/src/Http/GraphResponse.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="175">
<caret line="136" column="20" selection-start-line="136" selection-start-column="20" selection-end-line="136" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/microsoft/microsoft-graph/src/Model/Event.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="163">
<caret line="26" column="6" selection-start-line="26" selection-start-column="6" selection-end-line="26" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/CalendarController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="161">
<caret line="7" column="18" lean-forward="true" selection-start-line="7" selection-end-line="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/calendar.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391">
<caret line="17" column="29" selection-start-line="17" selection-start-column="29" selection-end-line="17" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/welcome.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="207">
<caret line="9" column="7" lean-forward="true" selection-start-line="9" selection-start-column="7" selection-end-line="9" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/artisan">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="35" column="53" selection-start-line="35" selection-start-column="53" selection-end-line="35" selection-end-column="53" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/symfony/console/Input/ArgvInput.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-6337">
<caret line="49" column="20" selection-start-line="49" selection-start-column="20" selection-end-line="49" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/migrations/2019_01_31_022647_create_instagram_table.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="284">
<caret line="23" column="32" lean-forward="true" selection-start-line="23" selection-end-line="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="500" column="20" selection-start-line="500" selection-start-column="20" selection-end-line="500" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/migrations/2019_02_06_232019_add_index_to_instagram.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="307">
<caret line="22" column="7" lean-forward="true" selection-start-line="22" selection-start-column="7" selection-end-line="22" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/HomeController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/_ide_helper.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="218">
<caret line="13654" column="60" selection-start-line="13654" selection-start-column="49" selection-end-line="13654" selection-end-column="60" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Console/Kernel.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="219">
<caret line="31" column="35" selection-start-line="31" selection-start-column="35" selection-end-line="31" selection-end-column="35" />
<folding>
<element signature="e#31#74#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Instagram.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/mgp25/instagram-php/src/Request.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="211" column="20" selection-start-line="211" selection-start-column="20" selection-end-line="211" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_5.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="1057" column="9" selection-start-line="1057" selection-start-column="9" selection-end-line="1057" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/mgp25/instagram-php/src/Request/Timeline.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-87">
<caret line="316" column="20" selection-start-line="316" selection-start-column="20" selection-end-line="316" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Services/InstagramService.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="127">
<caret line="220" column="33" lean-forward="true" selection-start-line="220" selection-start-column="33" selection-end-line="220" selection-end-column="33" />
<folding>
<element signature="e#86#123#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="44" column="69" selection-start-line="44" selection-start-column="69" selection-end-line="44" selection-end-column="69" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/microsoft/microsoft-graph/src/Model/Entity.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="26" column="6" selection-start-line="26" selection-start-column="6" selection-end-line="26" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/microsoft/microsoft-graph/src/Model/BaseItem.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="159">
<caret line="26" column="26" selection-start-line="26" selection-start-column="26" selection-end-line="26" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/microsoft/microsoft-graph/src/Model/DriveItem.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="159">
<caret line="26" column="28" selection-start-line="26" selection-start-column="28" selection-end-line="26" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/symfony/var-dumper/Resources/functions/dump.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="164">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/microsoft/microsoft-graph/src/Http/GraphRequest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="112" column="20" selection-start-line="112" selection-start-column="20" selection-end-line="112" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/microsoft/microsoft-graph/src/Graph.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="96">
<caret line="137" column="20" selection-start-line="137" selection-start-column="20" selection-end-line="137" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/InstagramController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1081">
<caret line="47" column="27" lean-forward="true" selection-start-line="47" selection-start-column="27" selection-end-line="47" selection-end-column="27" />
<folding>
<element signature="e#40#58#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ScopeChooserConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

+ 198
- 0
1-2.html View File

@ -0,0 +1,198 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta name="applicable-device" content="pc">
<title>beautyleg,beautyleg套图,beautyleg美腿写真-爱死美女-mm24.cc</title>
<meta name="keywords" content="beautyleg,beautyleg套图,beautyleg美腿写真">
<meta name="description" content="台湾美腿女郎系列 Beautyleg是台湾一家以美腿写真为主的腿模影音电子杂志媒体,Beautyleg系列以美腿著称,Beautyleg台湾的模特居多同时模特的气质上佳。Beautyleg发布有:Beautyleg新闻图片、美腿套图、写真视频 爱秀美女图片站">
<link href="/css/meitulu.css" rel="stylesheet" type="text/css" />
<link rel="icon" href="/ico.ico" type="image/x-icon" />
</head>
<body>
<div class="header">
<div class="top">
<div class="logo"><a href="https://www.mm24.cc/"><img src="/logo.png" alt="爱死美女" /></a></div>
<div class="nav">
<ul class="menu">
<li><a href="https://www.mm24.cc/">首页</a></li>
<li><a href="https://www.mm24.cc/taotu/"><span>套图</span></a>
<ul id="tag_ul">
<li><a href="https://www.mm24.cc/taotu/2020/">2020</a></li>
<li><a href="https://www.mm24.cc/taotu/2019/">2019</a></li>
<li><a href="https://www.mm24.cc/taotu/2018/">2018</a></li>
<li><a href="https://www.mm24.cc/taotu/2017/">2017</a></li>
<li><a href="https://www.mm24.cc/taotu/2016/">2016</a></li>
<li><a href="https://www.mm24.cc/taotu/2015/">2015</a></li>
<li><a href="https://www.mm24.cc/taotu/2014/">2014</a></li>
<li><a href="https://www.mm24.cc/taotu/2013/">2013</a></li>
<li><a href="https://www.mm24.cc/taotu/2012/">2012</a></li>
<li><a href="https://www.mm24.cc/taotu/2011/">2011</a></li>
<li><a href="https://www.mm24.cc/taotu/2010/">2010</a></li>
<li><a href="https://www.mm24.cc/taotu/2009/">2009</a></li>
<li><a href="https://www.mm24.cc/taotu/2008/">2008</a></li>
<li><a href="https://www.mm24.cc/taotu/2007/">2007</a></li>
<li><a href="https://www.mm24.cc/taotu/2006/">2006</a></li>
<li><a href="https://www.mm24.cc/taotu/2005/">2005</a></li>
</ul>
</li>
<li><a href="https://www.mm24.cc/shipin/"><span>视频</span></a>
<ul id="tag_ul">
<li><a href="https://www.mm24.cc/shipin/2019/">2019</a></li>
<li><a href="https://www.mm24.cc/shipin/2018/">2018</a></li>
<li><a href="https://www.mm24.cc/shipin/2017/">2017</a></li>
<li><a href="https://www.mm24.cc/shipin/2016/">2016</a></li>
<li><a href="https://www.mm24.cc/shipin/2015/">2015</a></li>
<li><a href="https://www.mm24.cc/shipin/2014/">2014</a></li>
<li><a href="https://www.mm24.cc/shipin/2013/">2013</a></li>
<li><a href="https://www.mm24.cc/shipin/2012/">2012</a></li>
<li><a href="https://www.mm24.cc/shipin/2011/">2011</a></li>
<li><a href="https://www.mm24.cc/shipin/2010/">2010</a></li>
<li><a href="https://www.mm24.cc/shipin/2009/">2009</a></li>
<li><a href="https://www.mm24.cc/shipin/2008/">2008</a></li>
</ul>
</li>
<li><a href="https://www.mm24.cc/ligui/">丽柜</a></li>
<li><a href="http://www.neiwai.cc">福利</a></li>
<li class="search"><form method=post action=/plus/search.php>
<INPUT onfocus="this.value=''" value='' type=text name=keyword><INPUT id=search_submit value=搜索 type=submit></form></li>
</ul>
</div>
</div>
</div>
<div class="main">
<div class="bk10"><script src="/ad/list-1.js" type="text/javascript"></script></div>
<div class="boxs">
<ul class="img">
<li><a href="/taotu/2019/3049.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/200106/1-2001062322050-L.jpg" alt="Beautyleg 2019.12.30 No.1860 Abby"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3049.html" target="_blank">Beautyleg 2019.12.30 No.1860 Abby</a></p></li><li><a href="/taotu/2019/3048.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191229/1-1912291539480-L.jpg" alt="Beautyleg 2019.12.27 No.1859 Stephy"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3048.html" target="_blank">Beautyleg 2019.12.27 No.1859 Stephy</a></p></li><li><a href="/taotu/2019/3047.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191229/1-1912291536050-L.jpg" alt="Beautyleg 2019.12.25 No.1858 Xin"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3047.html" target="_blank">Beautyleg 2019.12.25 No.1858 Xin</a></p></li><li><a href="/taotu/2019/3046.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191229/1-1912291530390-L.jpg" alt="Beautyleg 2019.12.23 No.1857 Lola"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3046.html" target="_blank">Beautyleg 2019.12.23 No.1857 Lola</a></p></li><li><a href="/taotu/2019/3040.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191222/1-1912220051340-L.jpg" alt="Beautyleg 2019.12.20 No.1856 Cathy"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3040.html" target="_blank">Beautyleg 2019.12.20 No.1856 Cathy</a></p></li><li><a href="/taotu/2019/3039.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191222/1-1912220040390-L.jpg" alt="Beautyleg 2019.12.18 No.1855 Perri"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3039.html" target="_blank">Beautyleg 2019.12.18 No.1855 Perri</a></p></li><li><a href="/taotu/2019/3038.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191222/1-1912220030430-L.jpg" alt="Beautyleg 2019.12.16 No.1854 Flora"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3038.html" target="_blank">Beautyleg 2019.12.16 No.1854 Flora</a></p></li><li><a href="/taotu/2019/3037.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191222/1-1912220030050-L.jpg" alt="Beautyleg 2019.12.15 No.1853 Anonymity"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3037.html" target="_blank">Beautyleg 2019.12.15 No.1853 Anonymity</a></p></li><li><a href="/taotu/2019/3033.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191216/1-1912162106020-L.jpg" alt="Beautyleg 2019.12.13 No.1852 Vanessa"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3033.html" target="_blank">Beautyleg 2019.12.13 No.1852 Vanessa</a></p></li><li><a href="/taotu/2019/3032.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191216/1-191216204Z30-L.jpg" alt="Beautyleg 2019.12.11 No.1851 Olivia"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3032.html" target="_blank">Beautyleg 2019.12.11 No.1851 Olivia</a></p></li><li><a href="/taotu/2019/3031.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191216/1-1912162032440-L.jpg" alt="Beautyleg 2019.12.09 No.1850 Dora"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3031.html" target="_blank">Beautyleg 2019.12.09 No.1850 Dora</a></p></li><li><a href="/taotu/2019/3030.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191207/1-19120H214260-L.jpg" alt="Beautyleg 2019.12.06 No.1849 Stephy"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3030.html" target="_blank">Beautyleg 2019.12.06 No.1849 Stephy</a></p></li><li><a href="/taotu/2019/3023.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191204/1-1912042216010-L.jpg" alt="Beautyleg 2019.12.02 No.1848 Yun"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3023.html" target="_blank">Beautyleg 2019.12.02 No.1848 Yun</a></p></li><li><a href="/taotu/2019/3022.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191204/1-191204220A70-L.jpg" alt="Beautyleg 2019.11.29 No.1847 Emma"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3022.html" target="_blank">Beautyleg 2019.11.29 No.1847 Emma</a></p></li><li><a href="/taotu/2019/3015.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191127/1-19112H343140-L.jpg" alt="Beautyleg 2019.11.27 No.1846 Amber"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3015.html" target="_blank">Beautyleg 2019.11.27 No.1846 Amber</a></p></li><li><a href="/taotu/2019/3014.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191127/1-19112H336420-L.jpg" alt="Beautyleg 2019.11.25 No.1845 Chu"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3014.html" target="_blank">Beautyleg 2019.11.25 No.1845 Chu</a></p></li><li><a href="/taotu/2019/3013.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191127/1-19112H333120-L.jpg" alt="Beautyleg 2019.11.22 No.1844 Yoyo"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3013.html" target="_blank">Beautyleg 2019.11.22 No.1844 Yoyo</a></p></li><li><a href="/taotu/2019/3012.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191120/1-1911202133010-L.jpg" alt="Beautyleg 2019.11.18 No.1843 Celia"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3012.html" target="_blank">Beautyleg 2019.11.18 No.1843 Celia</a></p></li><li><a href="/taotu/2019/3011.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191120/1-191120212G20-L.jpg" alt="Beautyleg 2019.11.15 No.1842 Avril"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3011.html" target="_blank">Beautyleg 2019.11.15 No.1842 Avril</a></p></li><li><a href="/taotu/2019/3006.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191117/1-19111G63G20-L.jpg" alt="Beautyleg 2019.11.13 No.1841 Sharon"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3006.html" target="_blank">Beautyleg 2019.11.13 No.1841 Sharon</a></p></li><li><a href="/taotu/2019/3005.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191117/1-19111G636290-L.jpg" alt="Beautyleg 2019.11.11 No.1840 Dora"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3005.html" target="_blank">Beautyleg 2019.11.11 No.1840 Dora</a></p></li><li><a href="/taotu/2019/3000.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191108/1-19110R039380-L.jpg" alt="Beautyleg 2019.11.08 No.1839 Tina"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/3000.html" target="_blank">Beautyleg 2019.11.08 No.1839 Tina</a></p></li><li><a href="/taotu/2019/2993.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191106/1-1911061G6250-L.jpg" alt="Beautyleg 2019.11.04 No.1838 Leonie"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2993.html" target="_blank">Beautyleg 2019.11.04 No.1838 Leonie</a></p></li><li><a href="/taotu/2019/2992.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191106/1-1911061G4590-L.jpg" alt="Beautyleg 2019.11.01 No.1837 Shacy"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2992.html" target="_blank">Beautyleg 2019.11.01 No.1837 Shacy</a></p></li><li><a href="/taotu/2019/2979.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191031/1-1910312030090-L.jpg" alt="Beautyleg 2019.10.30 No.1836 Michelle"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2979.html" target="_blank">Beautyleg 2019.10.30 No.1836 Michelle</a></p></li><li><a href="/taotu/2019/2978.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191031/1-191031202T10-L.jpg" alt="Beautyleg 2019.10.28 No.1835 Emily"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2978.html" target="_blank">Beautyleg 2019.10.28 No.1835 Emily</a></p></li><li><a href="/taotu/2019/2977.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191031/1-191031202I90-L.jpg" alt="Beautyleg 2019.10.25 No.1834 Yoyo"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2977.html" target="_blank">Beautyleg 2019.10.25 No.1834 Yoyo</a></p></li><li><a href="/taotu/2019/2972.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191024/1-1910240040070-L.jpg" alt="Beautyleg 2019.10.23 No.1833 Kaylar"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2972.html" target="_blank">Beautyleg 2019.10.23 No.1833 Kaylar</a></p></li><li><a href="/taotu/2019/2971.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191024/1-191024003R60-L.jpg" alt="Beautyleg 2019.10.21 No.1832 Tina"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2971.html" target="_blank">Beautyleg 2019.10.21 No.1832 Tina</a></p></li><li><a href="/taotu/2019/2970.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191024/1-191024003H80-L.jpg" alt="Beautyleg 2019.10.18 No.1831 Avril"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2970.html" target="_blank">Beautyleg 2019.10.18 No.1831 Avril</a></p></li><li><a href="/taotu/2019/2963.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191015/1-1910152211490-L.jpg" alt="Beautyleg 2019.10.14 No.1830 Winnie"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2963.html" target="_blank">Beautyleg 2019.10.14 No.1830 Winnie</a></p></li><li><a href="/taotu/2019/2962.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191015/1-1910152205530-L.jpg" alt="Beautyleg 2019.10.11 No.1829 ChiChi"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2962.html" target="_blank">Beautyleg 2019.10.11 No.1829 ChiChi</a></p></li><li><a href="/taotu/2019/2956.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191009/1-1910092036340-L.jpg" alt="Beautyleg 2019.10.09 No.1828 Yvonne"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2956.html" target="_blank">Beautyleg 2019.10.09 No.1828 Yvonne</a></p></li><li><a href="/taotu/2019/2955.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191009/1-1910092035450-L.jpg" alt="Beautyleg 2019.10.07 No.1827 Wendy"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2955.html" target="_blank">Beautyleg 2019.10.07 No.1827 Wendy</a></p></li><li><a href="/taotu/2019/2954.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191009/1-1910092035090-L.jpg" alt="Beautyleg 2019.10.04 No.1826 Anonymity"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2954.html" target="_blank">Beautyleg 2019.10.04 No.1826 Anonymity</a></p></li><li><a href="/taotu/2019/2950.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191005/1-1910050P4310-L.jpg" alt="Beautyleg 2019.09.30 No.1825 Shacy"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2950.html" target="_blank">Beautyleg 2019.09.30 No.1825 Shacy</a></p></li><li><a href="/taotu/2019/2949.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/191005/1-1910050P3400-L.jpg" alt="Beautyleg 2019.09.27 No.1824 Kaylar"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2949.html" target="_blank">Beautyleg 2019.09.27 No.1824 Kaylar</a></p></li><li><a href="/taotu/2019/2948.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/190928/1-1Z92PU9540-L.jpg" alt="Beautyleg 2019.09.25 No.1823 Leonie"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2948.html" target="_blank">Beautyleg 2019.09.25 No.1823 Leonie</a></p></li><li><a href="/taotu/2019/2947.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/190928/1-1Z92PUZ60-L.jpg" alt="Beautyleg 2019.09.23 No.1822 Winnie"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2947.html" target="_blank">Beautyleg 2019.09.23 No.1822 Winnie</a></p></li><li><a href="/taotu/2019/2938.html" target="_blank"><img src="https://img.mm24.cc/uploads/allimg/190922/1-1Z922135T00-L.jpg" alt="Beautyleg 2019.09.20 No.1821 ChiChi"/></a>
<p>分类:<a href='/taotu/2019/'>2019</a></p>
<p class=p_title><a href="/taotu/2019/2938.html" target="_blank">Beautyleg 2019.09.20 No.1821 ChiChi</a></p></li>
</ul>
</div>
<div class="ad_m"><script src="/ad/list-2.js" type="text/javascript"></script> <div class="bk20"></div> </div>
<div class="bk10"></div>
<center><div id="pages" class="text-c"><a href='1-1.html' class=a1>上一页</a>
<a href='1-1.html'>1</a>
<span>2</span>
<a href='1-3.html'>3</a>
<a href='1-4.html'>4</a>
<a href='1-5.html'>5</a>
<a href='1-6.html'>6</a>
<a href='1-7.html'>7</a>
<a href='1-8.html'>8</a>
<a href='1-9.html'>9</a>
<a href='1-10.html'>10</a>
<a href='1-11.html'>11</a>
<a href='1-3.html'>下一页</a>
<a href='1-47.html'>末页</a>
<a class="a1">47页</a>
</div></center>
</div>
<div class="bk10"></div>
<div class="footer">
<div class="main">
<span><a href="http://www.mm24.cc/">爱秀美女</a> 版权声明:所有图片都收集于网络 </span>爱秀美女,追求极致的高清体验!
<script type="text/javascript" src="https://s5.cnzz.com/z_stat.php?id=1277689883&web_id=1277689883"></script>
<script type="text/javascript" src="/js/f.js"></script></div>
</div><script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>
</html>

BIN
12034889.jpg View File

Before After
Width: 1200  |  Height: 773  |  Size: 157 KiB

BIN
12034928.jpg View File

Before After
Width: 775  |  Height: 1200  |  Size: 80 KiB

BIN
12035041.jpg View File

Before After
Width: 1200  |  Height: 906  |  Size: 144 KiB

BIN
12035159.jpg View File

Before After
Width: 802  |  Height: 1200  |  Size: 114 KiB

BIN
12035232.jpg View File

Before After
Width: 689  |  Height: 1200  |  Size: 110 KiB

BIN
12035355.jpg View File

Before After
Width: 1200  |  Height: 756  |  Size: 128 KiB

BIN
12035373.jpg View File

Before After
Width: 733  |  Height: 1200  |  Size: 82 KiB

BIN
12035421.jpg View File

Before After
Width: 771  |  Height: 1200  |  Size: 103 KiB

BIN
1203544.jpg View File

Before After
Width: 1200  |  Height: 673  |  Size: 86 KiB

BIN
12035554.jpg View File

Before After
Width: 673  |  Height: 1200  |  Size: 72 KiB

BIN
12035660.jpg View File

Before After
Width: 697  |  Height: 1200  |  Size: 92 KiB

BIN
12035770.jpg View File

Before After
Width: 1200  |  Height: 704  |  Size: 157 KiB

BIN
12035794.jpg View File

Before After
Width: 694  |  Height: 1200  |  Size: 103 KiB

BIN
12035851.jpg View File

Before After
Width: 800  |  Height: 1200  |  Size: 106 KiB

BIN
12035925.jpg View File

Before After
Width: 787  |  Height: 1200  |  Size: 107 KiB

BIN
12040040.jpg View File

Before After
Width: 804  |  Height: 1200  |  Size: 100 KiB

BIN
12040160.jpg View File

Before After
Width: 1200  |  Height: 677  |  Size: 109 KiB

BIN
12040252.jpg View File

Before After
Width: 666  |  Height: 1200  |  Size: 103 KiB

BIN
12040320.jpg View File

Before After
Width: 1200  |  Height: 773  |  Size: 127 KiB

BIN
1204039.jpg View File

Before After
Width: 624  |  Height: 1200  |  Size: 119 KiB

BIN
12040443.jpg View File

Before After
Width: 1200  |  Height: 660  |  Size: 98 KiB

BIN
12040557.jpg View File

Before After
Width: 1200  |  Height: 715  |  Size: 131 KiB

BIN
12040676.jpg View File

Before After
Width: 1200  |  Height: 799  |  Size: 110 KiB

BIN
12040723.jpg View File

Before After
Width: 799  |  Height: 1200  |  Size: 98 KiB

BIN
12040853.jpg View File

Before After
Width: 1200  |  Height: 703  |  Size: 99 KiB

BIN
12040894.jpg View File

Before After
Width: 1200  |  Height: 799  |  Size: 115 KiB

BIN
12040930.jpg View File

Before After
Width: 1200  |  Height: 751  |  Size: 153 KiB

BIN
12040996.jpg View File

Before After
Width: 1200  |  Height: 814  |  Size: 152 KiB

BIN
12041035.jpg View File

Before After
Width: 807  |  Height: 1100  |  Size: 159 KiB

BIN
12041189.jpg View File

Before After
Width: 1200  |  Height: 687  |  Size: 152 KiB

BIN
12041354.jpg View File

Before After
Width: 1200  |  Height: 765  |  Size: 170 KiB

BIN
12041516.jpg View File

Before After
Width: 1200  |  Height: 699  |  Size: 162 KiB

BIN
12041714.jpg View File

Before After
Width: 1200  |  Height: 719  |  Size: 153 KiB

BIN
12041935.jpg View File

Before After
Width: 774  |  Height: 1200  |  Size: 139 KiB

BIN
12042236.jpg View File

Before After
Width: 788  |  Height: 1200  |  Size: 130 KiB

BIN
12042710.jpg View File

Before After
Width: 1350  |  Height: 1012  |  Size: 1.2 MiB

BIN
12043260.jpg View File

Before After
Width: 1350  |  Height: 1012  |  Size: 1.4 MiB

+ 34
- 0
app/Acfun.php View File

@ -0,0 +1,34 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\Acfun
*
* @property int $id
* @property int $media_id 收藏夹识别 id
* @property string $title 收藏夹名称
* @property int $video_id 视频 id
* @property int $is_available 是否有效,0:有效,1:失效
* @property int $is_downloaded 是否已下载, 0: 未下载, 1:已下载
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun whereIsAvailable($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun whereIsDownloaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun whereMediaId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Acfun whereVideoId($value)
* @mixin \Eloquent
*/
class Acfun extends Model
{
//
}

+ 34
- 0
app/AcfunUpVideo.php View File

@ -0,0 +1,34 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\AcfunUpVideo
*
* @property int $id
* @property int $user_id up的唯一识别 id
* @property string $up_name up
* @property int $video_id 视频 id
* @property int $is_available 是否有效,0:有效,1:失效
* @property int $is_downloaded 是否已下载, 0: 未下载, 1:已下载
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo whereIsAvailable($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo whereIsDownloaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo whereUpName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo whereUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunUpVideo whereVideoId($value)
* @mixin \Eloquent
*/
class AcfunUpVideo extends Model
{
//
}

+ 41
- 0
app/AcfunVideo.php View File

@ -0,0 +1,41 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\AcfunVideo
*
* @property int $id
* @property int $content_id A站 video id
* @property string $title 视频标题
* @property int $from_type 来源类型,1:收藏夹,2:up,3:共有
* @property string $from_collection_name 来源的收藏夹
* @property string $from_up_name 来源的 up 名字
* @property int $is_download 是否要下载
* @property int $is_downloaded 是否已下载
* @property int $total_parts 总的分 P
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereContentId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereFromCollectionName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereFromType($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereFromUpName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereIsDownload($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereIsDownloaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereTotalParts($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\AcfunVideo whereUpdatedAt($value)
* @mixin \Eloquent
*/
class AcfunVideo extends Model
{
//
protected $guarded = [''];
}

+ 10
- 0
app/Admin/Controllers/AuthController.php View File

@ -0,0 +1,10 @@
<?php
namespace App\Admin\Controllers;
use Encore\Admin\Controllers\AuthController as BaseAuthController;
class AuthController extends BaseAuthController
{
}

+ 91
- 0
app/Admin/Controllers/BilibiliVideoController.php View File

@ -0,0 +1,91 @@
<?php
namespace App\Admin\Controllers;
use App\BilibiliVideos;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class BilibiliVideoController extends AdminController
{
/**
* Title for current resource.
*
* @var string
*/
protected $title = 'App\BilibiliVideos';
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new BilibiliVideos());
$grid->model()->orderBy('id', 'desc');
$grid->column('id', __('Id'));
$grid->column('aid', __('Aid'));
$grid->column('title', __('Title'));
$grid->column('from_type', __('From type'));
$grid->column('from_collection_name', __('收藏夹'))->filter();
$grid->column('from_up_name', __('Up'))->filter();
$grid->column('is_download', __('是否要下载'))->editable('select', [1 => '下载', 0 => '不下载'])->filter();
$grid->column('is_downloaded', __('是否已下载'))->editable('select', [1 => '已下载', 0 => '未下载'])->filter()->sortable();
$grid->column('total_parts', __('分 P 数'));
$grid->column('created_at', __('Created at'))->sortable();
$grid->column('updated_at', __('Updated at'));
$grid->quickSearch('title', 'from_collection_name', 'from_up_name');
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(BilibiliVideos::findOrFail($id));
$show->field('id', __('Id'));
$show->field('aid', __('Aid'));
$show->field('title', __('Title'));
$show->field('from_type', __('From type'));
$show->field('from_collection_name', __('From collection name'));
$show->field('from_up_name', __('From up name'));
$show->field('is_download', __('Is download'));
$show->field('is_downloaded', __('Is downloaded'));
$show->field('total_parts', __('Total parts'));
$show->field('created_at', __('Created at'));
$show->field('updated_at', __('Updated at'));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new BilibiliVideos());
$form->number('aid', __('Aid'));
$form->text('title', __('Title'));
$form->switch('from_type', __('From type'));
$form->text('from_collection_name', __('From collection name'));
$form->text('from_up_name', __('From up name'));
$form->switch('is_download', __('Is download'))->default(1);
$form->switch('is_downloaded', __('Is downloaded'));
$form->switch('total_parts', __('Total parts'))->default(1);
return $form;
}
}

+ 67
- 0
app/Admin/Controllers/ExampleController.php View File

@ -0,0 +1,67 @@
<?php
namespace App\Admin\Controllers;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class ExampleController extends AdminController
{
/**
* Title for current resource.
*
* @var string
*/
protected $title = 'Example controller';
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new ExampleModel);
$grid->column('id', __('ID'))->sortable();
$grid->column('created_at', __('Created at'));
$grid->column('updated_at', __('Updated at'));
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(ExampleModel::findOrFail($id));
$show->field('id', __('ID'));
$show->field('created_at', __('Created at'));
$show->field('updated_at', __('Updated at'));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new ExampleModel);
$form->display('id', __('ID'));
$form->display('created_at', __('Created At'));
$form->display('updated_at', __('Updated At'));
return $form;
}
}

+ 34
- 0
app/Admin/Controllers/HomeController.php View File

@ -0,0 +1,34 @@
<?php
namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use Encore\Admin\Controllers\Dashboard;
use Encore\Admin\Layout\Column;
use Encore\Admin\Layout\Content;
use Encore\Admin\Layout\Row;
class HomeController extends Controller
{
public function index(Content $content)
{
return $content
->title('Dashboard')
->description('Description...')
->row(Dashboard::title())
->row(function (Row $row) {
$row->column(4, function (Column $column) {
$column->append(Dashboard::environment());
});
$row->column(4, function (Column $column) {
$column->append(Dashboard::extensions());
});
$row->column(4, function (Column $column) {
$column->append(Dashboard::dependencies());
});
});
}
}

+ 21
- 0
app/Admin/bootstrap.php View File

@ -0,0 +1,21 @@
<?php
/**
* Laravel-admin - admin builder based on Laravel.
* @author z-song <https://github.com/z-song>
*
* Bootstraper for Admin.
*
* Here you can remove builtin form field:
* Encore\Admin\Form::forget(['map', 'editor']);
*
* Or extend custom form field:
* Encore\Admin\Form::extend('php', PHPEditor::class);
*
* Or require js and css assets:
* Admin::css('/packages/prettydocs/css/styles.css');
* Admin::js('/packages/prettydocs/js/main.js');
*
*/
Encore\Admin\Form::forget(['map', 'editor']);

+ 16
- 0
app/Admin/routes.php View File

@ -0,0 +1,16 @@
<?php
use Illuminate\Routing\Router;
Admin::routes();
Route::group([
'prefix' => config('admin.route.prefix'),
'namespace' => config('admin.route.namespace'),
'middleware' => config('admin.route.middleware'),
], function (Router $router) {
$router->get('/', 'HomeController@index')->name('admin.home');
$router->resource('bilibili-videos', BilibiliVideoController::class);
});

+ 24
- 0
app/Afreeca.php View File

@ -0,0 +1,24 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\Afreeca
*
* @method static \Illuminate\Database\Eloquent\Builder|\App\Afreeca newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Afreeca newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Afreeca query()
* @mixin \Eloquent
* @property int $id
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\Afreeca whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Afreeca whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Afreeca whereUpdatedAt($value)
*/
class Afreeca extends Model
{
//
}

+ 28
- 0
app/BiCookies.php View File

@ -0,0 +1,28 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\BiCookies
*
* @method static \Illuminate\Database\Eloquent\Builder|\App\BiCookies newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BiCookies newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BiCookies query()
* @mixin \Eloquent
* @property int $id
* @property string $cookie
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\BiCookies whereCookie($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BiCookies whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BiCookies whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BiCookies whereUpdatedAt($value)
*/
class BiCookies extends Model
{
//
protected $fillable = ["id", "cookie"];
}

+ 38
- 0
app/BilibiliCollections.php View File

@ -0,0 +1,38 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\BilibiliCollections
*
* @property int $id
* @property int $media_id 收藏夹识别 id
* @property string $title 收藏夹名称
* @property int $video_id 视频 id
* @property int $is_available 是否有效,0:有效,1:失效
* @property int $is_downloaded 是否已下载, 0: 未下载, 1:已下载
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereIsAvailable($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereIsDownloaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereMediaId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereVideoId($value)
* @mixin \Eloquent
* @property string|null $videos 视频 av id list
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereVideos($value)
* @property string|null $downloaded_videos 已下载的视频
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliCollections whereDownloadedVideos($value)
*/
class BilibiliCollections extends Model
{
//
}

+ 38
- 0
app/BilibiliUpVideos.php View File

@ -0,0 +1,38 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\BilibiliUpVideos
*
* @property int $id
* @property int $mid up的唯一识别 id
* @property string $up_name up
* @property int $video_id 视频 id
* @property int $is_available 是否有效,0:有效,1:失效
* @property int $is_downloaded 是否已下载, 0: 未下载, 1:已下载
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereIsAvailable($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereIsDownloaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereMid($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereUpName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereVideoId($value)
* @mixin \Eloquent
* @property string $videos 视频 id
* @property string|null $downloaded_videos 已下载的视频 id
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereDownloadedVideos($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliUpVideos whereVideos($value)
*/
class BilibiliUpVideos extends Model
{
//
}

+ 40
- 0
app/BilibiliVideoParts.php View File

@ -0,0 +1,40 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\BilibiliVideoParts
*
* @property int $id
* @property int $aid 视频part 关联的视频 id
* @property string $part part
* @property int $page 顺序值
* @property int $duration 时长
* @property int $is_downloaded 是否已下载
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts whereAid($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts whereDuration($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts whereIsDownloaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts wherePage($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts wherePart($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts whereUpdatedAt($value)
* @mixin \Eloquent
* @property string $title 标题
* @property string $to_download_path 下载路径
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideoParts whereToDownloadPath($value)
*/
class BilibiliVideoParts extends Model
{
//
protected $guarded = [''];
}

+ 10
- 0
app/BilibiliVideoTemp.php View File

@ -0,0 +1,10 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class BilibiliVideoTemp extends Model
{
//
}

+ 43
- 0
app/BilibiliVideos.php View File

@ -0,0 +1,43 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\BilibiliVideos
*
* @property int $id
* @property int $aid B站 video id
* @property string $title 视频标题
* @property int $from_type 来源类型,1:收藏夹,2:up,3:共有
* @property string $from_collection_name 来源的收藏夹
* @property string $from_up_name 来源的 up 名字
* @property int $is_download 是否要下载
* @property int $is_downloaded 是否已下载
* @property int $total_parts 总的分 P
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereAid($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereFromCollectionName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereFromType($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereFromUpName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereIsDownload($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereIsDownloaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereTotalParts($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\BilibiliVideos whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BilibiliVideos extends Model
{
//
protected $guarded = [''];
}

+ 45
- 0
app/Console/Commands/AcfunScrape.php View File

@ -0,0 +1,45 @@
<?php
namespace App\Console\Commands;
use App\Services\AcfunService;
use Illuminate\Console\Command;
class AcfunScrape extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'acfun:scrape';
/**
* 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
*/
public function handle()
{
$service = new AcfunService();
$service->downloadVideo();
//
}
}

+ 45
- 0
app/Console/Commands/AfreecaScrape.php View File

@ -0,0 +1,45 @@
<?php
namespace App\Console\Commands;
use App\Services\AfreecaService;
use Illuminate\Console\Command;
class AfreecaScrape extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'afreeca:list';
/**
* 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
*/
public function handle()
{
$service = new AfreecaService();
$service->getVodList();
//
}
}

+ 64
- 0
app/Console/Commands/BiliVideoCode.php View File

@ -0,0 +1,64 @@
<?php
namespace App\Console\Commands;
use App\Services\BilibiliService;
use Illuminate\Console\Command;
class BiliVideoCode extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'bili:nvtuan {type} {code}';
/**
* 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()
{
// dump($this->arguments());exit;
//
$bilibili = new BilibiliService();
// $bilibili->queryLocalUpVideoList();exit;
// $bilibili->insertDBTest();exit;
// $bilibili->queryPlayList();
$bilibili->queryUpVideoList(10278125);
$bilibili->queryDBCollectionList();
$bilibili->queryForVideoParts();
$bilibili->compareAndDownloadUpVideos();
$bilibili->compareAndDownloadCollectionVideos();
// $bilibili->queryCollectionList();
// $bilibili->compareAndDownloadNewVideos();
// $bilibili->queryLocalUpVideoList();
// $bilibili->queryForVideoParts();
// $bilibili->queryDBCollectionList();
$bilibili->checkVideoHasDownload();
// echo is_dir("/Volumes/Seagate Backup Plus Drive/Video/bilibili/少女时代");
}
}

+ 45
- 0
app/Console/Commands/DailySignCommand.php View File

@ -0,0 +1,45 @@
<?php
namespace App\Console\Commands;
use App\Services\DailySignService;
use Illuminate\Console\Command;
class DailySignCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'daily:hmoe';
/**
* 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
*/
public function handle()
{
$service = new DailySignService();
$service->signClubHmoe();
//
}
}

+ 46
- 0
app/Console/Commands/FullSiteCommand.php View File

@ -0,0 +1,46 @@
<?php
namespace App\Console\Commands;
use App\Services\FullSiteService;
use Illuminate\Console\Command;
class FullSiteCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'full:get';
/**
* 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
*/
public function handle()
{
$service = new FullSiteService();
// $service->replaceImagePath();exit;
$service->fullSiteDownloadImage();
//
}
}

+ 45
- 0
app/Console/Commands/GoogleDriveList.php View File

@ -0,0 +1,45 @@
<?php
namespace App\Console\Commands;
use App\Services\GoogleDriveService;
use Illuminate\Console\Command;
class GoogleDriveList extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'google:test';
/**
* 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
*/
public function handle()
{
$service = new GoogleDriveService();
$service->getFiles();
//
}
}

+ 45
- 0
app/Console/Commands/HandBrakeCommand.php View File

@ -0,0 +1,45 @@
<?php
namespace App\Console\Commands;
use App\Services\HandBrakeService;
use Illuminate\Console\Command;
class HandBrakeCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'handle:video';
/**
* 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
*/
public function handle()
{
//
$service = new HandBrakeService();
$service->handleVideos();
}
}

+ 48
- 0
app/Console/Commands/InstagramScrape.php View File

@ -0,0 +1,48 @@
<?php
namespace App\Console\Commands;
use App\Services\InstagramService;
use Illuminate\Console\Command;
class InstagramScrape extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'ins:like';
/**
* 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
*/
public function handle()
{
//
$ins = new InstagramService();
$ins->scrapeUsers();
// $ins->getUserNameById();
// $ins->queryFollowUsers();
// $ins->commonRequest();
}
}

+ 46
- 0
app/Console/Commands/MMScrape.php View File

@ -0,0 +1,46 @@
<?php
namespace App\Console\Commands;
use App\Services\MM24Service;
use Illuminate\Console\Command;
class MMScrape extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'mm:get';
/**
* 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
*/
public function handle()
{
//
$service = new MM24Service();
$service->getAlbum();
// $service->getImage();
}
}

+ 49
- 0
app/Console/Commands/NvShenScrape.php View File

@ -0,0 +1,49 @@
<?php
namespace App\Console\Commands;
use App\Services\NewNvshenService;
use App\Services\NvshenService;
use Illuminate\Console\Command;
class NvShenScrape extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'nvshen:get';
/**
* 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
*/
public function handle()
{
//
// $service = new NvshenService();
// $service->scrapeNvshenGirls();
$service = new NewNvshenService();
$service->scrapeNvshenGirls();
// $service->subTest();
}
}

+ 47
- 0
app/Console/Commands/RenameTest.php View File

@ -0,0 +1,47 @@
<?php
namespace App\Console\Commands;
use App\Services\RenameService;
use Illuminate\Console\Command;
class RenameTest extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'rename:test';
/**
* 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
*/
public function handle()
{
//
$rename = new RenameService();
$rename->rename("/Users/shixuesen/Documents/tmp/福利姬 软软趴在床单上-铃木美咲(Misaki Suzuki) 合集-TLoB/");
// $rename->rename();
// $rename->mvFiles("/Users/shixuesen/Documents/tmp/秀人旗下《MFStar模范学院》套图及视频写真-TLoB/视频/");
}
}

+ 52
- 0
app/Console/Commands/TujiguCommand.php View File

@ -0,0 +1,52 @@
<?php
namespace App\Console\Commands;
use App\Services\TujiguService;
use Illuminate\Console\Command;
class TujiguCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'tujigu:s';
/**
* 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
*/
public function handle()
{
//
// $titleStr = "杨晨晨/玛鲁娜/许诺Sabrina/兜豆靓《海边众女神美臀福利》 [爱蜜社IMISS] Vol.150 写真集";
// $titleStr = preg_replace("#/#", "-", $titleStr);
// echo $titleStr;exit;
// $albumUrl = "https://www.tujigu.com/a/8401/";
// $albumCode = explode("/", $albumUrl)[4];
// echo $albumCode;exit;
$service = new TujiguService();
$service->scrapeTujiguGirls();
}
}

+ 45
- 0
app/Console/Commands/Vita.php View File

@ -0,0 +1,45 @@
<?php
namespace App\Console\Commands;
use App\Services\VitabioticsService;
use Illuminate\Console\Command;
class Vita extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'vita:test';
/**
* 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
*/
public function handle()
{
//
$service = new VitabioticsService();
$service->testPromoCode();
}
}

+ 48
- 0
app/Console/Commands/XiuGirlScrape.php View File

@ -0,0 +1,48 @@
<?php
namespace App\Console\Commands;
use App\Services\NewXiuGirlsService;
use App\Services\XiuGirlsService;
use Illuminate\Console\Command;
class XiuGirlScrape extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'xiu:get';
/**
* 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
*/
public function handle()
{
//
$xiu1 = new NewXiuGirlsService();
$xiu1->scrapeXiuGirls();exit;
$xiu = new XiuGirlsService();
$xiu->scrapeXiuGirls();
}
}

+ 102
- 2
app/Console/Kernel.php View File

@ -2,9 +2,17 @@
namespace App\Console;
use App\Services\BilibiliService;
use App\Services\CompressImageService;
use App\Services\DailySignService;
use App\Services\NewXiuGirlsService;
use App\Services\XiuGirlsService;
use App\Services\VitabioticsService;
use App\Services\YouKnowService;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Services\InstagramService;
use Illuminate\Support\Facades\Log;
class Kernel extends ConsoleKernel
@ -26,13 +34,105 @@ class Kernel extends ConsoleKernel
*/
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
if ((rand(0, 99) % 2) == 0) {
exit();
}
if(date('H') % 4 != 0) {
Log::info("schedule queryUpVideoList skipped at: " .date("Y-m-d H:i:s"));
exit;
}
$bilibili = new BilibiliService();
Log::info("schedule queryUpVideoList started at: ". date("Y-m-d H:i:s"));
$bilibili->queryUpVideoList();
})->hourlyAt(5);
// })->yearly();
$schedule->call(function () {
if ((rand(0, 99) % 2) == 1) {
exit();
}
if(date('H') % 4 != 0) {
Log::info("schedule queryDBCollectionList skipped at: " .date("Y-m-d H:i:s"));
exit;
}
$bilibili = new BilibiliService();
Log::info("schedule queryDBCollectionList started at: ". date("Y-m-d H:i:s"));
$bilibili->queryDBCollectionList();
})->hourlyAt(35);
// })->yearly();
$schedule->call(function () {
$bilibili = new BilibiliService();
Log::info("schedule compareAndDownloadUpVideos started at: ". date("Y-m-d H:i:s"));
$bilibili->compareAndDownloadUpVideos();
})->dailyAt('03:00');
$schedule->call(function () {
$bilibili = new BilibiliService();
Log::info("schedule compareAndDownloadCollectionVideos started at: ". date("Y-m-d H:i:s"));
$bilibili->compareAndDownloadCollectionVideos();
})->dailyAt('07:00');
$schedule->call(function () {
$bilibili = new BilibiliService();
Log::info("schedule checkVideoHasDownload started at: ". date("Y-m-d H:i:s"));
$bilibili->checkVideoHasDownload();
})->dailyAt('09:30');
// $schedule->command('inspire')
// ->hourly();
$schedule->call(function () {
echo "======================================================\n";
echo "=======================". date("Y-m-d H:i:s") ."=========================\n";
echo "======================================================\n";
$service = new InstagramService();
$service->scrapeLikedUsers();
// $service->scrapeLikedUsers();
$service->scrapeUsers();
// $service = new VitabioticsService();
// $service->testPromoCode();
// $service->scrapeUsers();
// $service->scanLocalFiles();
// $xiuService = new XiuGirlsService();
// $xiuService->scrapeXiuGirls();
// $bilibili = new BilibiliService();
// $bilibili->queryUpVideoList();
// $bilibili->queryPlayList();
// $bilibili->downloadBSitePlaylist("av75454867 av75207675 av75065073 av74866823 av74764675 av74648540");
// $bilibili->deleteFileNotContainP();
// $youService = new YouKnowService();
// $youService->scrape1024();
// $compressService = new CompressImageService();
// $compressService->compressImage();
echo "111";
})->everyMinute();
// })->everyMinute();
})->dailyAt("00:10");
$schedule->call(function () {
$service = new InstagramService();
$service->scrapeLikedUsers();
// })->everyMinute();
})->dailyAt('02:00');
$schedule->call(function () {
$xiuService = new NewXiuGirlsService();
$xiuService->scrapeXiuGirls();
// })->everyMinute();
})->dailyAt('05:00');
$schedule->call(function () {
$dailySignService = new DailySignService();
$dailySignService->signClubHmoe();
})->dailyAt('04:00');
// $schedule->command("vitabiotics")
}
/**


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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\Acfun;
use Illuminate\Http\Request;
class AcfunController 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\Acfun $acfun
* @return \Illuminate\Http\Response
*/
public function show(Acfun $acfun)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Acfun $acfun
* @return \Illuminate\Http\Response
*/
public function edit(Acfun $acfun)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Acfun $acfun
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Acfun $acfun)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Acfun $acfun
* @return \Illuminate\Http\Response
*/
public function destroy(Acfun $acfun)
{
//
}
}

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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\AcfunUpVideo;
use Illuminate\Http\Request;
class AcfunUpVideoController 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\AcfunUpVideo $acfunUpVideo
* @return \Illuminate\Http\Response
*/
public function show(AcfunUpVideo $acfunUpVideo)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\AcfunUpVideo $acfunUpVideo
* @return \Illuminate\Http\Response
*/
public function edit(AcfunUpVideo $acfunUpVideo)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\AcfunUpVideo $acfunUpVideo
* @return \Illuminate\Http\Response
*/
public function update(Request $request, AcfunUpVideo $acfunUpVideo)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\AcfunUpVideo $acfunUpVideo
* @return \Illuminate\Http\Response
*/
public function destroy(AcfunUpVideo $acfunUpVideo)
{
//
}
}

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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\AcfunVideo;
use Illuminate\Http\Request;
class AcfunVideoController 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\AcfunVideo $acfunVideo
* @return \Illuminate\Http\Response
*/
public function show(AcfunVideo $acfunVideo)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\AcfunVideo $acfunVideo
* @return \Illuminate\Http\Response
*/
public function edit(AcfunVideo $acfunVideo)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\AcfunVideo $acfunVideo
* @return \Illuminate\Http\Response
*/
public function update(Request $request, AcfunVideo $acfunVideo)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\AcfunVideo $acfunVideo
* @return \Illuminate\Http\Response
*/
public function destroy(AcfunVideo $acfunVideo)
{
//
}
}

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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\Afreeca;
use Illuminate\Http\Request;
class AfreecaController 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\Afreeca $afreeca
* @return \Illuminate\Http\Response
*/
public function show(Afreeca $afreeca)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Afreeca $afreeca
* @return \Illuminate\Http\Response
*/
public function edit(Afreeca $afreeca)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Afreeca $afreeca
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Afreeca $afreeca)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Afreeca $afreeca
* @return \Illuminate\Http\Response
*/
public function destroy(Afreeca $afreeca)
{
//
}
}

+ 93
- 0
app/Http/Controllers/BiCookiesController.php View File

@ -0,0 +1,93 @@
<?php
namespace App\Http\Controllers;
use App\BiCookies;
use Illuminate\Http\Request;
class BiCookiesController extends Controller
{
public function receiveCookie(Request $request) {
// \Log::info("here");
// \Log::info(json_encode($request->input()));
\Log::info($request->input("cookies"));
BiCookies::updateOrCreate(['id' => 1], ["cookie" => base64_encode($request->input("cookies"))]);
// echo json_encode($request);
}
/**
* 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\BiCookies $biCookies
* @return \Illuminate\Http\Response
*/
public function show(BiCookies $biCookies)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\BiCookies $biCookies
* @return \Illuminate\Http\Response
*/
public function edit(BiCookies $biCookies)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\BiCookies $biCookies
* @return \Illuminate\Http\Response
*/
public function update(Request $request, BiCookies $biCookies)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\BiCookies $biCookies
* @return \Illuminate\Http\Response
*/
public function destroy(BiCookies $biCookies)
{
//
}
}

+ 90
- 0
app/Http/Controllers/BilibiliCollectionsController.php View File

@ -0,0 +1,90 @@
<?php
namespace App\Http\Controllers;
use App\BilibiliCollections;
use Illuminate\Http\Request;
class BilibiliCollectionsController extends Controller
{
public function getCookie(Request $request) {
\Log::info("here");
\Log::info(json_encode($request->input()));
echo json_encode($request);
}
/**
* 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\BilibiliCollections $bilibiliCollections
* @return \Illuminate\Http\Response
*/
public function show(BilibiliCollections $bilibiliCollections)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\BilibiliCollections $bilibiliCollections
* @return \Illuminate\Http\Response
*/
public function edit(BilibiliCollections $bilibiliCollections)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\BilibiliCollections $bilibiliCollections
* @return \Illuminate\Http\Response
*/
public function update(Request $request, BilibiliCollections $bilibiliCollections)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\BilibiliCollections $bilibiliCollections
* @return \Illuminate\Http\Response
*/
public function destroy(BilibiliCollections $bilibiliCollections)
{
//
}
}

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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\BilibiliUpVideos;
use Illuminate\Http\Request;
class BilibiliUpVideosController 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\BilibiliUpVideos $bilibiliUpVideos
* @return \Illuminate\Http\Response
*/
public function show(BilibiliUpVideos $bilibiliUpVideos)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\BilibiliUpVideos $bilibiliUpVideos
* @return \Illuminate\Http\Response
*/
public function edit(BilibiliUpVideos $bilibiliUpVideos)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\BilibiliUpVideos $bilibiliUpVideos
* @return \Illuminate\Http\Response
*/
public function update(Request $request, BilibiliUpVideos $bilibiliUpVideos)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\BilibiliUpVideos $bilibiliUpVideos
* @return \Illuminate\Http\Response
*/
public function destroy(BilibiliUpVideos $bilibiliUpVideos)
{
//
}
}

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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\BilibiliVideoParts;
use Illuminate\Http\Request;
class BilibiliVideoPartsController 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\BilibiliVideoParts $bilibiliVideoParts
* @return \Illuminate\Http\Response
*/
public function show(BilibiliVideoParts $bilibiliVideoParts)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\BilibiliVideoParts $bilibiliVideoParts
* @return \Illuminate\Http\Response
*/
public function edit(BilibiliVideoParts $bilibiliVideoParts)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\BilibiliVideoParts $bilibiliVideoParts
* @return \Illuminate\Http\Response
*/
public function update(Request $request, BilibiliVideoParts $bilibiliVideoParts)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\BilibiliVideoParts $bilibiliVideoParts
* @return \Illuminate\Http\Response
*/
public function destroy(BilibiliVideoParts $bilibiliVideoParts)
{
//
}
}

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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\BilibiliVideoTemp;
use Illuminate\Http\Request;
class BilibiliVideoTempController 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\BilibiliVideoTemp $bilibiliVideoTemp
* @return \Illuminate\Http\Response
*/
public function show(BilibiliVideoTemp $bilibiliVideoTemp)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\BilibiliVideoTemp $bilibiliVideoTemp
* @return \Illuminate\Http\Response
*/
public function edit(BilibiliVideoTemp $bilibiliVideoTemp)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\BilibiliVideoTemp $bilibiliVideoTemp
* @return \Illuminate\Http\Response
*/
public function update(Request $request, BilibiliVideoTemp $bilibiliVideoTemp)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\BilibiliVideoTemp $bilibiliVideoTemp
* @return \Illuminate\Http\Response
*/
public function destroy(BilibiliVideoTemp $bilibiliVideoTemp)
{
//
}
}

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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\BilibiliVideos;
use Illuminate\Http\Request;
class BilibiliVideosController 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\BilibiliVideos $bilibiliVideos
* @return \Illuminate\Http\Response
*/
public function show(BilibiliVideos $bilibiliVideos)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\BilibiliVideos $bilibiliVideos
* @return \Illuminate\Http\Response
*/
public function edit(BilibiliVideos $bilibiliVideos)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\BilibiliVideos $bilibiliVideos
* @return \Illuminate\Http\Response
*/
public function update(Request $request, BilibiliVideos $bilibiliVideos)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\BilibiliVideos $bilibiliVideos
* @return \Illuminate\Http\Response
*/
public function destroy(BilibiliVideos $bilibiliVideos)
{
//
}
}

+ 21
- 4
app/Http/Controllers/InstagramController.php View File

@ -8,6 +8,7 @@ use Illuminate\Http\Request;
use Microsoft\Graph\Exception\GraphException;
use Microsoft\Graph\Graph;
use Microsoft\Graph\Model;
use Illuminate\Support\Facades\Log;
class InstagramController extends Controller
@ -50,11 +51,27 @@ class InstagramController extends Controller
// var_dump($event);exit;
$subItemUrl = '/me/drive/items/' . $event->getId(). '/children?'.http_build_query($queryParams);
$images = $graph->createRequest('GET', $subItemUrl)
->setReturnType(Model\DriveItem::class)
// ->setReturnType(Model\DriveItem::class)
->execute();
dd($images);
exit;
var_dump($event);
// dd($images->getBody());
$body = $images->getBody();
$values = $body['value'];
foreach ($values as $value) {
Log::debug("current user".$event->getName() ." current image " . $value['name']);
Instagram::where('image_name', $value['name'])->update(['is_uploaded' => 1]);
}
while (array_key_exists('@odata.nextLink', $body)) {
$nextSubItemUrl = $body['@odata.nextLink'];
$response = $graph->createRequest('GET', $nextSubItemUrl)
->execute();
$body = $response->getBody();
$values = $body['value'];
foreach ($values as $value) {
Log::debug("current user".$event->getName() ." current image " . $value['name']);
Instagram::where('image_name', $value['name'])->update(['is_uploaded' => 1]);
}
}
// var_dump($event);
}
// $viewData['events'] = $events;


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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\InstagramUser;
use Illuminate\Http\Request;
class InstagramUserController 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\InstagramUser $instagramUser
* @return \Illuminate\Http\Response
*/
public function show(InstagramUser $instagramUser)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\InstagramUser $instagramUser
* @return \Illuminate\Http\Response
*/
public function edit(InstagramUser $instagramUser)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\InstagramUser $instagramUser
* @return \Illuminate\Http\Response
*/
public function update(Request $request, InstagramUser $instagramUser)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\InstagramUser $instagramUser
* @return \Illuminate\Http\Response
*/
public function destroy(InstagramUser $instagramUser)
{
//
}
}

+ 105
- 0
app/Http/Controllers/WeiboController.php View File

@ -0,0 +1,105 @@
<?php
namespace App\Http\Controllers;
use App\Services\WeiboService;
use App\Weibo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class WeiboController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
public function list()
{
// https://m.weibo.cn/api/container/getIndex?containerid=1076035123577126&openApp=0&page='.$i;
// Fan_Cam_4K 1076035733650527 page 902
// 儒雅随和 1076035123577126 page 139
// https://m.weibo.cn/api/container/getIndex?containerid=230259&openApp=0
$url = array();
for( $i = 783 ; $i >= 1 ; $i-- )
$url[] = 'https://m.weibo.cn/api/container/getIndex?containerid=230259&openApp=0&page='.$i;
return response()->json($url);
}
/**
* 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)
{
// die();
// Log::info($request->input());
$weibo = new WeiboService();
$result = $weibo->scrapeWeiboPicAndVideo($request->input("content"));
return response()->json($result);
}
/**
* Display the specified resource.
*
* @param \App\Weibo $weibo
* @return \Illuminate\Http\Response
*/
public function show(Weibo $weibo)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Weibo $weibo
* @return \Illuminate\Http\Response
*/
public function edit(Weibo $weibo)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Weibo $weibo
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Weibo $weibo)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Weibo $weibo
* @return \Illuminate\Http\Response
*/
public function destroy(Weibo $weibo)
{
//
}
}

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

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers;
use App\XiuGirl;
use Illuminate\Http\Request;
class XiuGirlController 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\XiuGirl $xiuGirl
* @return \Illuminate\Http\Response
*/
public function show(XiuGirl $xiuGirl)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\XiuGirl $xiuGirl
* @return \Illuminate\Http\Response
*/
public function edit(XiuGirl $xiuGirl)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\XiuGirl $xiuGirl
* @return \Illuminate\Http\Response
*/
public function update(Request $request, XiuGirl $xiuGirl)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\XiuGirl $xiuGirl
* @return \Illuminate\Http\Response
*/
public function destroy(XiuGirl $xiuGirl)
{
//
}
}

+ 1
- 0
app/Http/Middleware/VerifyCsrfToken.php View File

@ -20,5 +20,6 @@ class VerifyCsrfToken extends Middleware
*/
protected $except = [
//
'api/*'
];
}

+ 17
- 1
app/Instagram.php View File

@ -11,11 +11,27 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram query()
* @mixin \Eloquent
* @property int $id
* @property string $username
* @property string $image_url
* @property int $has_downloaded
* @property int $is_uploaded
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property string $image_name
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram whereHasDownloaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram whereImageName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram whereImageUrl($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram whereIsUploaded($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Instagram whereUsername($value)
*/
class Instagram extends Model
{
//
protected $table = "instagram";
protected $fillable = ["image_name", "username", "image_url"];
protected $fillable = ["image_name", "username", "image_url", 'is_uploaded'];
}

+ 30
- 0
app/InstagramUser.php View File

@ -0,0 +1,30 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\InstagramUser
*
* @property int $id
* @property string $user_name
* @property string $user_id
* @property string|null $deleted_at
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser whereUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\InstagramUser whereUserName($value)
* @mixin \Eloquent
*/
class InstagramUser extends Model
{
//
}

+ 11
- 0
app/Repositories/CosInsRepository.php View File

@ -0,0 +1,11 @@
<?php
namespace App\Repositories;
class CosInsRepository
{
}

+ 147
- 0
app/Services/AcfunService.php View File

@ -0,0 +1,147 @@
<?php
namespace App\Services;
use App\AcfunVideo;
use Illuminate\Support\Arr;
use Log;
class AcfunService
{
private $CollectionUrl = "https://www.acfun.cn/rest/pc-direct/favorite/dougaList";
public function queryCollectionVideos()
{
for ($i = 1; $i < 100; $i++) {
sleep(5);
$param = "perpage=100&page=" . $i;
$result = $this->request($this->CollectionUrl, $param);
$parsedResult = json_decode($result, true);
if(count(Arr::get($parsedResult, "favoriteList", [])) > 0) {
foreach ($parsedResult["favoriteList"] as $item) {
AcfunVideo::firstOrCreate(["content_id" => $item["contentId"]],
[
"title" => $item["contentTitle"],
"from_type" => 1,
"from_collection_name" => "默认",
"from_up_name" => $item["userName"],
"from_up_user_id" => $item["userId"]
]);
}
}
}
}
public function request($url, $param)
{
$curl = curl_init();
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 => "POST",
CURLOPT_POSTFIELDS =>$param,
CURLOPT_HTTPHEADER => array(
"authority: www.acfun.cn",
"pragma: no-cache",
"cache-control: no-cache",
"accept: */*",
"x-requested-with: XMLHttpRequest",
"user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36",
"content-type: application/x-www-form-urlencoded; charset=UTF-8",
"origin: https://www.acfun.cn",
"sec-fetch-site: same-origin",
"sec-fetch-mode: cors",
"sec-fetch-dest: empty",
"referer: https://www.acfun.cn/member/",
"accept-language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,ja;q=0.5",
"cookie: _did=web_32586178239268B; sign_remind=1; ac__avi=1010934062045114530882ab2cd25b90ef370ea22b151084981cf6c2c6febafe3a364146315ef65213; uuid=d7fdb48c886459236faa794ffafbfbb0; analytics=GA1.2.626694313.1592365512; lsv_js_player_v2_main=62b719; csrfToken=TnNz3lG1IfA-93kw4M-Px06m; session_id=63965769975BFD30; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1592481541,1592489023,1592797550,1592976124; lsv_js_player_v1_main=f2c6e6; stochastic=NWFlaDB1ZjlmNXE%3D; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScJrFeEdlHcrvoHjYpzy_V7pAPxxMhNmo45RlMccpB84XwmIx9rJocLwXSPnJu4btgtqVGa04P9AIMBNdQknDd4QRTbjBp5aoQgis-Q88BjMvqVTGHAjG04W7zjswa0ZC5k5sdJCeTsLJKEiEsE8EY90aEhwsbiM70HUviQANoYC6Iptv6yIg0X6u8ikzzwuDe1VMKWNNYXWwFR81YKYQNq9P4gsk5oMoBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=1cc641584039a19bc0941d00e8eff73bd4b0; ac_userimg=https%3A%2F%2Fimgs.aixifan.com%2Fstyle%2Fimage%2F201907%2FuQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; clientlanguage=zh_CN; safety_id=AAG%2B9AbVZS6fTHVxwLtsI9Jl; notice_status=1; online_status=0; userGroupLevel=1; checkMobile=1; checkEmail=1; cur_req_id=1296724223CA632E_self_0fb782b0474cbe335574779cf53ed145; cur_group_id=1296724223CA632E_self_0fb782b0474cbe335574779cf53ed145_0; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1592976174"
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
public function onlyRequest()
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.acfun.cn/rest/pc-direct/favorite/dougaList",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "perpage=100&page=1",
CURLOPT_HTTPHEADER => array(
"authority: www.acfun.cn",
"pragma: no-cache",
"cache-control: no-cache",
"accept: */*",
"x-requested-with: XMLHttpRequest",
"user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36",
"content-type: application/x-www-form-urlencoded; charset=UTF-8",
"origin: https://www.acfun.cn",
"sec-fetch-site: same-origin",
"sec-fetch-mode: cors",
"sec-fetch-dest: empty",
"referer: https://www.acfun.cn/member/",
"accept-language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,ja;q=0.5",
"cookie: _did=web_32586178239268B; sign_remind=1; ac__avi=1010934062045114530882ab2cd25b90ef370ea22b151084981cf6c2c6febafe3a364146315ef65213; uuid=d7fdb48c886459236faa794ffafbfbb0; analytics=GA1.2.626694313.1592365512; lsv_js_player_v2_main=62b719; csrfToken=TnNz3lG1IfA-93kw4M-Px06m; session_id=63965769975BFD30; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1592481541,1592489023,1592797550,1592976124; lsv_js_player_v1_main=f2c6e6; stochastic=NWFlaDB1ZjlmNXE%3D; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScJrFeEdlHcrvoHjYpzy_V7pAPxxMhNmo45RlMccpB84XwmIx9rJocLwXSPnJu4btgtqVGa04P9AIMBNdQknDd4QRTbjBp5aoQgis-Q88BjMvqVTGHAjG04W7zjswa0ZC5k5sdJCeTsLJKEiEsE8EY90aEhwsbiM70HUviQANoYC6Iptv6yIg0X6u8ikzzwuDe1VMKWNNYXWwFR81YKYQNq9P4gsk5oMoBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=1cc641584039a19bc0941d00e8eff73bd4b0; ac_userimg=https%3A%2F%2Fimgs.aixifan.com%2Fstyle%2Fimage%2F201907%2FuQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; clientlanguage=zh_CN; safety_id=AAG%2B9AbVZS6fTHVxwLtsI9Jl; notice_status=1; online_status=0; userGroupLevel=1; checkMobile=1; checkEmail=1; cur_req_id=1296724223CA632E_self_0fb782b0474cbe335574779cf53ed145; cur_group_id=1296724223CA632E_self_0fb782b0474cbe335574779cf53ed145_0; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1592976174",
// "Content-Type: text/plain"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
}
public function downloadVideo()
{
$innerDir = "/Volumes/intel660p/video/mv/acfun";
$list = AcfunVideo::all();
$files = scandir($innerDir);
// dump($files);
foreach ($list as $item) {
if ($item["is_downloaded"] == 1) {
continue;
}
if (in_array($item['title'] . " (" . $item["from_up_name"] . ").mp4", $files)) {
Log::info("file " . $item["title"] . ".mp4" . " exists continue");
continue;
}
Log::info($item['title'] . " (" . $item["from_up_name"] . ").mp4" . " does not exists to download");
// exit;
$downloadResult = shell_exec('cd "' .$innerDir .'" && you-get https://www.acfun.cn/v/ac' . $item["content_id"]);
Log::info($downloadResult);
$item["is_downloaded"] = 1;
$item->save();
}
}
}

+ 125
- 0
app/Services/AfreecaService.php View File

@ -0,0 +1,125 @@
<?php
//require __DIR__ . '/vendor/autoload.php';
namespace App\Services;
use Illuminate\Support\Facades\Log;
use YoutubeDl\YoutubeDl;
use YoutubeDl\Exception\CopyrightException;
use YoutubeDl\Exception\NotFoundException;
use YoutubeDl\Exception\PrivateVideoException;
class AfreecaService
{
public function getVodList()
{
$base_url = "http://bjapi.afreecatv.com/api/minhee3769/vods?field=contents&page=";
for ($i = 1; $i < 13; $i++) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $base_url . $i,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding: gzip, deflate, br",
"Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,ja;q=0.5",
"Cache-Control: no-cache",
"Connection: keep-alive",
"Referer: https://www.bilibili.com",
"Pragma: no-cache",
"Sec-Fetch-Mode: navigate",
"Sec-Fetch-Site: none",
"Sec-Fetch-User: ?1",
"Upgrade-Insecure-Requests: 1",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
$content = json_decode($response, true);
foreach ($content["data"] as $item) {
echo "http://vod.afreecatv.com/PLAYER/STATION/" . $item["title_no"] . "\n";
self::downloadVideo("http://vod.afreecatv.com/PLAYER/STATION/" . $item["title_no"] );
}
}
// $listContent = file_get_contents($base_url . $i);
// $content = json_decode($listContent, true);
// $data = $content["data"];
// foreach ($data as $item) {
// echo "http://vod.afreecatv.com/PLAYER/STATION/" . $item["45082989"] . "\n";
// }
}
}
public function downloadVideo($url)
{
$dl = new YoutubeDl([
'continue' => true, // force resume of partially downloaded files. By default, youtube-dl will resume downloads if possible.
// 'format' => 'bestvideo',
]);
// For more options go to https://github.com/rg3/youtube-dl#user-content-options
$dl->setDownloadPath('/Volumes/intel660p/video/live/afreeca');
// Enable debugging
$dl->debug(function ($type, $buffer) {
if (\Symfony\Component\Process\Process::ERR === $type) {
echo 'ERR > ' . $buffer;
} else {
echo 'OUT > ' . $buffer;
}
});
$dl->onProgress(function ($progress) {
$percentage = $progress['percentage'];
$size = $progress['size'];
$speed = $progress['speed'] ?? null;
$eta = $progress['eta'] ?? null;
echo "Percentage: $percentage; Size: $size";
if ($speed) {
echo "; Speed: $speed";
}
if ($eta) {
echo "; ETA: $eta";
}
// Will print: Percentage: 21.3%; Size: 4.69MiB; Speed: 4.47MiB/s; ETA: 00:01
});
try {
$video = $dl->download($url);
echo $video->getTitle(); // Will return Phonebloks
// $video->getFile(); // \SplFileInfo instance of downloaded file
} catch (NotFoundException $e) {
// Video not found
Log::error($e->getTraceAsString());
} catch (PrivateVideoException $e) {
// Video is private
Log::error($e->getTraceAsString());
} catch (CopyrightException $e) {
// The YouTube account associated with this video has been terminated due to multiple third-party notifications of copyright infringement
} catch (\Exception $e) {
// Failed to download
Log::error($e->getTraceAsString());
}
}
}

+ 841
- 0
app/Services/BilibiliService.php View File

@ -0,0 +1,841 @@
<?php
namespace App\Services;
use App\BilibiliCollections;
use App\BilibiliUpVideos;
use App\BilibiliVideoParts;
use App\BilibiliVideos;
use App\BilibiliVideoTemp;
use GuzzleHttp\Client;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class BilibiliService
{
private $collectionNumberListUrl = "https://api.bilibili.com/medialist/gateway/base/created?ps=100&up_mid=279025&is_space=0&jsonp=jsonp";
private $collectionListUrl = "https://api.bilibili.com/medialist/gateway/base/spaceDetail?ps=20&keyword=&order=mtime&type=0&tid=0&jsonp=jsonp";
private $videoPartsUrl = "https://api.bilibili.com/x/player/pagelist?jsonp=jsonp&aid=";
private $invalidTitle = "已失效视频";
private $baseDir = "/Volumes/intel660p/video/mv/";
public function queryPlayList()
{
$pageNo = 1;
$url = "https://space.bilibili.com/ajax/member/getSubmitVideos?mid=391073761&pagesize=30&tid=0&keyword=&order=pubdate&page=";
for ($i = 1; $i < 30; $i++) {
# code...
$result = json_decode(file_get_contents($url . $i), true);
foreach ($result['data']['vlist'] as $item) {
echo "av" . $item['aid'] . " ";
}
// echo $result['data']['vlist'][0]['aid'] . "\t";
// $pageNo++;
}
}
/**
* 获取各个 up 主的视频 id
* @param int $mediaId
* @throws \Exception
*/
public function queryUpVideoList($mediaId = 320491072)
{
Log::info("schedule queryUpVideoList inner started at: " . date("Y-m-d H:i:s"));
// 475250 kyokyo
// 3489535 熊小颖
// 320491072 绯绯
// 10139490 短短
// 116683 咬人猫
// 16539048 小仙若
// 10278125 香草猫饼
// 391073761 女团直拍
// 267781236 韩国女团饭拍直拍
// 23400436 小雪_juvia
$list = BilibiliUpVideos::all();
foreach ($list as $item) {
Log::info("schedule queryUpVideoList current up is {$item['up_name']}, started at: " . date("Y-m-d H:i:s"));
// $files = scandir($this->baseDir . "bilibili/" . $item['up_name']);
$mediaId = $item['mid'];
$videos = [];
$pageNo = 1;
$url = "https://api.bilibili.com/x/space/arc/search?mid={$mediaId}&ps=30&tid=0&keyword=&order=pubdate&jsonp=jsonp&pn=";
// https://space.bilibili.com/475250/video
for ($i = 1; $i < 10; $i++) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.bilibili.com/x/space/arc/search?mid={$mediaId}&ps=30&tid=0&keyword=&order=pubdate&jsonp=jsonp&pn={$i}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding: gzip, deflate, br",
"Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,ja;q=0.5",
"Cache-Control: no-cache",
"Connection: keep-alive",
"Referer: https://www.bilibili.com",
"Pragma: no-cache",
"Sec-Fetch-Mode: navigate",
"Sec-Fetch-Site: none",
"Sec-Fetch-User: ?1",
"Upgrade-Insecure-Requests: 1",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
// echo $response;
$result = json_decode($response, true);
$result = Arr::get($result["data"]["list"], "vlist", []);
if (count($result) > 0) {
foreach ($result as $vItem) {
$bVideo = BilibiliVideos::firstOrCreate(["aid" => $vItem["aid"]],
[
"title" => $vItem["title"],
"from_type" => 2,
"from_up_name" => $item["up_name"]
]);
if ($bVideo->from_type != 2) {
$bVideo->from_type = 3;
}
$bVideo->from_up_name = $item["up_name"];
$bVideo->save();
$videos[] = $vItem["aid"];
}
} else {
break;
}
}
usleep(random_int(1000, 10000) * 1000);
}
$item['videos'] = json_encode($videos);
// $item['downloaded_videos'] = json_encode([]);
$item->save();
}
}
/**
* 手动执行查询
* @param int $mediaId
* @throws \Exception
*/
public function queryLocalUpVideoList($mediaId = 320491072)
{
Log::info("schedule queryUpVideoList inner started at: " . date("Y-m-d H:i:s"));
// 475250 kyokyo
// 3489535 熊小颖
// 320491072 绯绯
// 10139490 短短
// 116683 咬人猫
// 16539048 小仙若
// 10278125 香草猫饼
// 391073761 女团直拍
// $list = BilibiliUpVideos::all();
$list = [];
$up = ["mid" => 391073761, "up_name" => "女团直拍"];
$up = ["mid" => 254624554, "up_name" => "女团能量站"];
$list[] = $up;
foreach ($list as $item) {
Log::info("schedule queryUpVideoList current up is {$item['up_name']}, started at: " . date("Y-m-d H:i:s"));
$files = scandir($this->baseDir . "bilibili/" . $item['up_name']);
$mediaId = $item['mid'];
$videos = [];
$pageNo = 1;
$url = "https://api.bilibili.com/x/space/arc/search?mid={$mediaId}&ps=30&tid=0&keyword=&order=pubdate&jsonp=jsonp&pn=";
// https://space.bilibili.com/475250/video
for ($i = 1; $i < 50; $i++) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.bilibili.com/x/space/arc/search?mid={$mediaId}&ps=30&tid=0&keyword=&order=pubdate&jsonp=jsonp&pn={$i}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding: gzip, deflate, br",
"Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,ja;q=0.5",
"Cache-Control: no-cache",
"Connection: keep-alive",
"Referer: https://www.bilibili.com",
"Pragma: no-cache",
"Sec-Fetch-Mode: navigate",
"Sec-Fetch-Site: none",
"Sec-Fetch-User: ?1",
"Upgrade-Insecure-Requests: 1",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
// echo $response;
$result = json_decode($response, true);
$result = Arr::get($result["data"]["list"], "vlist", []);
if (count($result) > 0) {
foreach ($result as $vItem) {
echo "av" . $vItem["aid"] . " ";
// $videos[] = $vItem["aid"];
}
} else {
break;
}
}
usleep(random_int(1000, 10000) * 1000);
}
// $item['videos'] = json_encode($videos);
// $item['downloaded_videos'] = json_encode([]);
// $item->save();
}
}
public function compareAndDownloadUpVideos()
{
$list = BilibiliUpVideos::all();
foreach ($list as $item) {
if ($item["is_downloaded"] == 1) {
continue;
}
Log::info("schedule compareAndDownloadUpVideos current up is {$item['up_name']}, started at: " . date("Y-m-d H:i:s"));
$unDownloaded = array_diff(json_decode($item["videos"]), json_decode($item["downloaded_videos"]));
$videoList = [];
foreach ($unDownloaded as $value) {
$vItems = BilibiliVideos::where('aid', $value)->get();
if (count($vItems) > 0) {
foreach ($vItems as $vItem) {
if ($vItem["is_download"] == 1 && $vItem["is_downloaded"] == 0) {
// $videoList[] = "av" . $value;
$videoList = [];
$videoList[$value] = $vItem->total_parts;
$this->partDownloadBSitePlaylist($videoList, $this->baseDir . "bilibili/", $item['up_name']);
}
}
}
// $videoList[] = "av" . $value;
}
// $this->downloadBSitePlaylist($videoList, $this->baseDir . "bilibili/", $item['up_name']);
}
}
public function compareAndDownloadCollectionVideos()
{
$list = BilibiliCollections::all();
foreach ($list as $item) {
echo "current title is " . $item["title"] . "\n";
if ($item["is_downloaded"] == 1) {
continue;
}
Log::info("schedule compareAndDownloadCollectionVideos current collection is {$item['title']}, started at: " . date("Y-m-d H:i:s"));
$newVideos = json_decode($item["videos"], true);
$oldVideos = json_decode($item["downloaded_videos"], true);
$unDownloaded = array_diff($newVideos, $oldVideos);
if (count($unDownloaded) == 0) {
continue;
}
dump($unDownloaded);
$videoList = [];
foreach ($unDownloaded as $value) {
$vItems = BilibiliVideos::where('aid', $value)->get();
if (count($vItems) > 0) {
foreach ($vItems as $vItem) {
if ($vItem["is_download"] == 1 && $vItem["is_downloaded"] == 0) {
$videoList[] = "av" . $value;
$videoMap = [];
$videoMap[$value] = $vItem->total_parts;
if ($item['title'] == "默认收藏夹") {
dump("xxxxxxxxxxxx----------------");
$this->partDownloadBSitePlaylist($videoMap, $this->baseDir, "bilibili");
} else if ($item['title'] == '少女时代') {
$this->partDownloadBSitePlaylist($videoMap, "/Volumes/WD/tmp/bilibili/少女时代", "");
} else {
$this->partDownloadBSitePlaylist($videoMap, $this->baseDir . "bilibili/", $item['title']);
}
}
}
}
}
// if ($item['title'] == "默认收藏夹") {
// dump("xxxxxxxxxxxx----------------");
// $this->downloadBSitePlaylist($videoList, $this->baseDir, "bilibili");
// } else if ($item['title'] == '少女时代') {
// $this->downloadBSitePlaylist($videoList, "/Volumes/Seagate Backup Plus Drive/Video/bilibili/少女时代", "");
// } else {
// $this->downloadBSitePlaylist($videoList, $this->baseDir . "bilibili/", $item['title']);
// }
}
}
public function queryFavList()
{
// aoa 50076725
// default 50069625
// 美腿 156009025
// 允儿 154442125
// 少女时代 153944525
$invalidTitle = "已失效视频";
$pageNo = 1;
for ($i = 1; $i < 65; $i++) {
$curl = curl_init();
$url = "https://api.bilibili.com/medialist/gateway/base/spaceDetail?media_id=154442125&pn={$i}&ps=20&keyword=&order=mtime&type=0&tid=0&jsonp=jsonp";
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: application/json, text/plain, */*",
"Accept-Encoding: gzip, deflate, br",
"Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6,ja;q=0.5",
"Cache-Control: no-cache",
"Connection: keep-alive",
// "Cookie: buvid3=5566647C-DDE5-4AFF-8711-89C9DB2B7061110244infoc; LIVE_BUVID=AUTO2315591376644842; sid=kbyrjw72; stardustvideo=1; CURRENT_FNVAL=16; rpdid=|(J~|JluJmmk0J\'ullmuJ~~kJ; CURRENT_QUALITY=80; UM_distinctid=16b11bb4099eb-033fd8b69a435d-37647e03-13c680-16b11bb40bf97; fts=1562149769; im_notify_type_279025=0; _uuid=69A60E94-E8FE-54B8-DCCD-0F519F0DEF7480343infoc; DedeUserID=279025; DedeUserID__ckMd5=9a79e15294e6b8bb; SESSDATA=b114a39d%2C1573361994%2C2ed0a2a1; bili_jct=b35f8e9780e4a80dd07f316f781f179b; bp_t_offset_279025=315386152995357818",
"Cookie: SESSDATA=64a15917%2C1578628130%2Ceb05cdc1",
"Host: api.bilibili.com",
"Origin: https://space.bilibili.com",
"Postman-Token: c7f849ec-aaf9-4c71-851d-4ca061e725d0,f8f582bc-4872-4aa7-b209-b926364d4d1a",
"Referer: https://space.bilibili.com/279025/favlist",
"Sec-Fetch-Mode: cors",
"Sec-Fetch-Site: same-site",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
$responseArr = json_decode($response, true);
if ($responseArr['code'] == 0) {
$data = $responseArr['data'];
$medias = $data['medias'];
if (count($medias) > 0) {
foreach ($medias as $item) {
if ($item['title'] != $invalidTitle) {
echo "av" . $item['id'] . " ";
}
}
}
}
}
usleep(random_int(1000, 10000) * 1000);
}
}
public function getAoaFavList($id = 50076725)
{
$invalidTitle = "已失效视频";
$pageNo = 1;
for ($i = 1; $i < 65; $i++) {
$curl = curl_init();
$url = "https://api.bilibili.com/medialist/gateway/base/spaceDetail?media_id=50076725&pn={$i}&ps=20&keyword=&order=mtime&type=0&tid=0&jsonp=jsonp";
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: application/json, text/plain, */*",
"Accept-Encoding: gzip, deflate, br",
"Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6,ja;q=0.5",
"Cache-Control: no-cache",
"Connection: keep-alive",
"Cookie: buvid3=5566647C-DDE5-4AFF-8711-89C9DB2B7061110244infoc; LIVE_BUVID=AUTO2315591376644842; sid=kbyrjw72; stardustvideo=1; CURRENT_FNVAL=16; rpdid=|(J~|JluJmmk0J'ullmuJ~~kJ; CURRENT_QUALITY=80; UM_distinctid=16b11bb4099eb-033fd8b69a435d-37647e03-13c680-16b11bb40bf97; fts=1562149769; im_notify_type_279025=0; _uuid=69A60E94-E8FE-54B8-DCCD-0F519F0DEF7480343infoc; DedeUserID=279025; DedeUserID__ckMd5=9a79e15294e6b8bb; SESSDATA=b114a39d%2C1573361994%2C2ed0a2a1; bili_jct=b35f8e9780e4a80dd07f316f781f179b; bp_t_offset_279025=317592473398470273",
"Host: api.bilibili.com",
"Origin: https://space.bilibili.com",
"Postman-Token: c7f849ec-aaf9-4c71-851d-4ca061e725d0,f8f582bc-4872-4aa7-b209-b926364d4d1a",
"Referer: https://space.bilibili.com/279025/favlist",
"Sec-Fetch-Mode: cors",
"Sec-Fetch-Site: same-site",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
$responseArr = json_decode($response, true);
if ($responseArr['code'] == 0) {
$data = $responseArr['data'];
$medias = $data['medias'];
if (count($medias) > 0) {
foreach ($medias as $item) {
if ($item['title'] != $invalidTitle) {
echo "av" . $item['id'] . " ";
}
}
}
}
}
usleep(random_int(1000, 10000) * 1000);
}
}
public function queryCollectionList()
{
// $curl = curl_init();
//
// curl_setopt_array($curl, array(
// CURLOPT_URL => "https://api.bilibili.com/medialist/gateway/base/created?pn=1&ps=100&up_mid=279025&is_space=0&jsonp=jsonp",
// 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(
// "Connection: keep-alive",
// "Pragma: no-cache",
// "Cache-Control: no-cache",
// "Accept: application/json, text/plain, */*",
// "Origin: https://space.bilibili.com",
// "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36",
// "Sec-Fetch-Site: same-site",
// "Sec-Fetch-Mode: cors",
// "Referer: https://space.bilibili.com/279025/favlist?spm_id_from=333.851.b_696e7465726e6174696f6e616c486561646572.15",
// "Accept-Encoding: gzip, deflate, br",
// "Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,ja;q=0.5",
// "Cookie: _uuid=D6E5438B-5A95-439F-7512-FC3509457A9A28409infoc; buvid3=5566647C-DDE5-4AFF-8711-89C9DB2B7061110244infoc; LIVE_BUVID=AUTO3415734420289108; UM_distinctid=16e62db8b9934b-0f76f63ae51bee-1c3c6a5a-13c680-16e62db8b9acaf; CURRENT_FNVAL=16; stardustvideo=1; rpdid=|(ku|l|lRYlJ0J'ul~JYuYY|u; finger=0539dad4; im_notify_type_279025=0; sid=llgc5h9q; DedeUserID=279025; DedeUserID__ckMd5=9a79e15294e6b8bb; bili_jct=07b8811aa5ca68020eb0c11e0e01c22f; laboratory=1-1; CURRENT_QUALITY=80; SESSDATA=64a15917%2C1578628130%2Ceb05cdc1; bp_t_offset_279025=336855788264916597; INTVER=1"
// ),
// ));
//
// $response = curl_exec($curl);
$response = $this->requestCollectionNumberList($this->collectionNumberListUrl, 1);
$res = json_decode($response, true);
if ($res['code'] == 0) {
$list = $res['data']['list'];
foreach ($list as $item) {
$collection = new BilibiliCollections();
$collection->title = $item["title"];
$collection->is_downloaded = 0;
$collection->media_id = $item["id"];
$currentList = [];
for ($pageNo = 1; $pageNo < 100; $pageNo++) {
$listResponse = $this->requestCollectionList($this->collectionListUrl, $item['id'], $pageNo);
dump("pageNo: " . $pageNo);
dump($listResponse);
$responseArr = json_decode($listResponse, true);
if ($responseArr['code'] == 0) {
$data = $responseArr["data"];
$medias = Arr::get($data, "medias", []);
if (count($medias) > 0) {
foreach ($medias as $media) {
if ($media['title'] != $this->invalidTitle) {
$currentList[] = $media["id"];
}
}
} else {
break;
}
}
}
$collection->videos = json_encode($currentList);
$collection->save();
}
}
// curl_close($curl);
echo $response;
}
public function queryDBCollectionList()
{
$list = BilibiliCollections::all();
foreach ($list as $item) {
Log::info("schedule queryDBCollectionList current collection is: " . $item['title'] . " started at :" . date("Y-m-d H:i:s"));
$currentList = [];
for ($pageNo = 1; $pageNo < 100; $pageNo++) {
$listResponse = $this->requestCollectionList($this->collectionListUrl, $item['media_id'], $pageNo);
// dump("pageNo: " . $pageNo);
// dump($listResponse);
$responseArr = json_decode($listResponse, true);
if ($responseArr['code'] == 0) {
$data = $responseArr["data"];
$medias = Arr::get($data, "medias", []);
if (count($medias) > 0) {
foreach ($medias as $media) {
if ($media['title'] != $this->invalidTitle) {
$bVideo = BilibiliVideos::firstOrCreate(["aid" => $media["id"]],
[
"title" => $media["title"],
"from_type" => 1,
"from_collection_name" => $item['title']
]);
if ($bVideo->from_type != 1) {
$bVideo->from_type = 3;
$bVideo->from_collection_name = $item["title"];
}
$bVideo->save();
$currentList[] = $media["id"];
}
}
} else {
break;
}
}
}
$item->videos = json_encode($currentList);
$item->save();
}
}
public function queryForVideoParts()
{
$i = 1;
$list = BilibiliVideos::simplePaginate(50, null, 'page', $i);
// dump($list->items()[0]->aid);
while ($list->isNotEmpty()) {
foreach ($list->items() as $item) {
// dump("current item", [$item->getAttributes()]);
$response = $this->requestVideoParts($item->aid);
$partList = Arr::get(json_decode($response, true), "data");
if (count($partList) > 0) {
foreach ($partList as $part) {
if ($item["from_type"] == 1) {
if ($item["from_collection_name"] == "默认收藏夹") {
$downloadPath = $this->baseDir . "bilibili";
} else {
$downloadPath = $this->baseDir . "bilibili/" . $item["from_collection_name"];
}
} else {
$downloadPath = $this->baseDir . "bilibili/" . $item["from_up_name"];
}
$pItem = BilibiliVideoParts::firstOrCreate([
"aid" => $item->aid,
"page" => $part["page"]
], [
"title" => $item["title"],
"part" => $part["part"],
"duration" => $part["duration"],
"to_download_path" => $downloadPath
]);
$pItem["title"] = $item["title"];
$pItem["to_download_path"] = $downloadPath;
$pItem->save();
}
$item->total_parts = count($partList);
$item->save();
}
}
$i++;
$list = BilibiliVideos::simplePaginate(50, null, 'page', $i);
try {
usleep(random_int(10, 1000) * 1000);
} catch (\Exception $e) {
}
}
// while ($list->hasPages()) {
// foreach ($list as $item) {
// $item->
// }
// $list = BilibiliVideos::simplePaginate()
// }
}
/**
* 检查是否已下载
*/
public function checkVideoHasDownload()
{
$i = 1;
$list = BilibiliVideos::simplePaginate(50, null, 'page', $i);
$dirFiles = [];
while ($list->isNotEmpty()) {
foreach ($list->items() as $item) {
// dump("current item", [$item->getAttributes()]);
if ($item['is_download'] == 0) {
continue;
}
$list = BilibiliVideoParts::where(['aid' => $item['aid']])->get();
if (count($list) > 0) {
foreach ($list as $part) {
// dump("here is parts", [$part->getAttributes()]);
if (is_dir($part["to_download_path"])) {
// dump("this is path ".$part["to_download_path"]);
if (array_key_exists($part["to_download_path"], $dirFiles)) {
$files = Arr::get($dirFiles, $part["to_download_path"]);
} else {
$files = scandir($part["to_download_path"]);
$dirFiles[$part["to_download_path"]] = $files;
}
// dump($files);
$itemCount = 0;
$toRemove = [];
foreach ($files as $file) {
if ($file == "." || $file == "..") {
continue;
} else {
// dump("current file: ". $file ." ".$part["title"]);
$pos = strpos($file, $part["title"]);
// dump("current compare result " . $pos);
if ($pos !== false) {
// dump($file);
$itemCount++;
if (strpos($file, $part["title"] . " P" . $part["page"]) !== false) {
Log::info("file matched " . $file);
$toRemove[] = $file;
$part["is_downloaded"] = 1;
$part->save();
}
}
}
}
$dirFiles[$part["to_download_path"]] = array_diff($files, $toRemove);
if ($itemCount == $item["total_parts"]) {
$item["is_downloaded"] = 1;
$item->save();
}
}
}
}
// exit;
}
$i++;
$list = BilibiliVideos::simplePaginate(50, null, 'page', $i);
// exit;
}
}
public function requestVideoParts($aid)
{
return $this->request($this->videoPartsUrl . $aid);
}
public function requestCollectionList($url, $mediaId, $pn)
{
return $this->request($url . "&media_id=" . $mediaId . "&pn=" . $pn, true);
}
public function requestCollectionNumberList($url, $pn)
{
return $this->request($url . "&pn=" . $pn);
}
public function request($url, $userCookie = false)
{
$curl = curl_init();
$headerArray = array(
"Connection: keep-alive",
"Pragma: no-cache",
"Cache-Control: no-cache",
"Accept: application/json, text/plain, */*",
"Origin: https://space.bilibili.com",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36",
"Sec-Fetch-Site: same-site",
"Sec-Fetch-Mode: cors",
"Referer: https://space.bilibili.com/279025/favlist?spm_id_from=333.851.b_696e7465726e6174696f6e616c486561646572.15",
"Accept-Encoding: gzip, deflate, br",
"Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,ja;q=0.5",
// "Cookie: SESSDATA=64a15917%2C1578628130%2Ceb05cdc1"
);
if ($userCookie) {
$headerArray[] = "Cookie: SESSDATA=622d365f%2C1611483669%2C8c222*71;";
// $headerArray[] = "Cookie: _uuid=D6E5438B-5A95-439F-7512-FC3509457A9A28409infoc; buvid3=5566647C-DDE5-4AFF-8711-89C9DB2B7061110244infoc; LIVE_BUVID=AUTO3415734420289108; UM_distinctid=16e62db8b9934b-0f76f63ae51bee-1c3c6a5a-13c680-16e62db8b9acaf; CURRENT_FNVAL=16; stardustvideo=1; rpdid=|(ku|l|lRYlJ0J'ul~JYuYY|u; im_notify_type_279025=0; sid=llgc5h9q; laboratory=1-1; CURRENT_QUALITY=80; INTVER=1; DedeUserID=279025; DedeUserID__ckMd5=9a79e15294e6b8bb; SESSDATA=b169300a%2C1581262828%2C3654f611; bili_jct=597a5b9adb6170698e396fb053bc4aba; bp_t_offset_279025=343238964368145599";
}
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 => $headerArray
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
\Log::error($err);
return null;
}
return $response;
}
public function downloadBSitePlaylist($aidList, $dir = "/Volumes/intel660p/video/mv/mp4", $subDir)
{
dump("downloadBSitePlaylist : xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
$dirExists = is_dir($dir);
if ($dirExists) {
$innerDir = $dir . "/" . $subDir;
if (!is_dir($innerDir)) {
mkdir($innerDir);
}
foreach ($aidList as $aid) {
Log::info("current download command is : cd '{$innerDir}' && annie -r https://www.bilibili.com/video/av80815149 -p " . $aid);
$downloadResult = shell_exec('cd "' .$innerDir .'" && annie -r https://www.bilibili.com/video/av80815149 -p ' . $aid);
Log::info($downloadResult);
Log::info("current download result: " . $downloadResult);
try {
usleep(random_int(1000, 10000) * 1000);
} catch (\Exception $e) {
}
}
}
}
public function partDownloadBSitePlaylist($aidMap, $dir = "/Volumes/intel660p/video/mv/mp4", $subDir)
{
dump("partDownloadBSitePlaylist");
dump($aidMap);
dump($dir);
$dirExists = is_dir($dir);
dump($dirExists);
if ($dirExists) {
$innerDir = $dir . "/" . $subDir;
dump($innerDir);
if (!is_dir($innerDir)) {
mkdir($innerDir);
}
foreach ($aidMap as $aid => $parts) {
dump($aid);
Log::info("current download command is : cd '{$innerDir}' && annie -r https://www.bilibili.com/video/av80815149 -p " . $aid);
$downloadResult = shell_exec('cd "' .$innerDir .'" && url="https://www.bilibili.com/video/av' . $aid . '?p="
for i in $(seq 1 ' . $parts . ')
do
annie -c "SESSDATA=622d365f%2C1611483669%2C8c222*71" $url$i
done ' );
Log::info($downloadResult);
Log::info("current download result: " . $downloadResult);
try {
usleep(random_int(1000, 10000) * 1000);
} catch (\Exception $e) {
}
}
}
}
public function deleteFileNotContainP()
{
$dir = "/Volumes/intel660p/video/mv/mp4";
$files = scandir($dir);
foreach ($files as $file) {
if ($file == "." || $file == "..") {
continue;
}
if (preg_match("#P\d{1,2}#", $file)) {
echo $file . "\n";
} else {
echo "to delete file " . $file . "\n";
unlink($dir . "/" . $file);
}
}
}
public function compareAndDownloadNewVideos()
{
$list = BilibiliCollections::all();
foreach ($list as $item) {
if ($item['is_downloaded'] == 1) {
continue;
}
$undownloaded = array_diff($item['videos'], $item['downloaded_videos']);
}
dump($list);
}
public function commonRequest($url, $cookie, $media_id, $pageNo)
{
$client = new Client([
// Base URI is used with relative requests
'base_uri' => 'https://api.bilibili.com',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$jar = new \GuzzleHttp\Cookie\CookieJar;
$r = $client->request('GET', 'http://httpbin.org/cookies', [
'cookies' => $jar
]);
}
public function insertDBTest()
{
$aNo = 484525;
for ($i = 0; $i < 5000000; $i++) {
$tempANo = $aNo + $i;
$sql = "insert into `bilibili_video_temps`( `aid`, `title`, `from_type`, `from_collection_name`, `from_up_name`, `is_download`, `is_downloaded`, `total_parts`, `created_at`, `updated_at`) VALUES ( " .$tempANo . ", '【钢琴】《鬼灭之刃》OP《红莲华》by LiSA', 2, '', '绯绯', 1, 1, 1, '2020-01-08 10:05:40', '2020-01-13 23:35:17');";
$result = DB::insert($sql);
if ($i % 100 == 0) {
print_r($result);
}
usleep(10);
}
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save