| @ -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 | |||||
| @ -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 | npm-debug.log | ||||
| yarn-error.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 | |||||
| @ -1,7 +0,0 @@ | |||||
| <component name="ProjectDictionaryState"> | |||||
| <dictionary name="shixuesen"> | |||||
| <words> | |||||
| <w>instagram</w> | |||||
| </words> | |||||
| </dictionary> | |||||
| </component> | |||||
| @ -1,4 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <project version="4"> | |||||
| <component name="Encoding" addBOMForNewFiles="with NO BOM" /> | |||||
| </project> | |||||
| @ -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> | |||||
| @ -1,6 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <project version="4"> | |||||
| <component name="LaravelPluginSettings"> | |||||
| <option name="pluginEnabled" value="true" /> | |||||
| </component> | |||||
| </project> | |||||
| @ -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> | |||||
| @ -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> | |||||
| @ -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> | |||||
| @ -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> | |||||
| @ -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 | |||||
| { | |||||
| // | |||||
| } | |||||
| @ -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 | |||||
| { | |||||
| // | |||||
| } | |||||
| @ -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 = ['']; | |||||
| } | |||||
| @ -0,0 +1,10 @@ | |||||
| <?php | |||||
| namespace App\Admin\Controllers; | |||||
| use Encore\Admin\Controllers\AuthController as BaseAuthController; | |||||
| class AuthController extends BaseAuthController | |||||
| { | |||||
| } | |||||
| @ -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; | |||||
| } | |||||
| } | |||||
| @ -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; | |||||
| } | |||||
| } | |||||
| @ -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()); | |||||
| }); | |||||
| }); | |||||
| } | |||||
| } | |||||
| @ -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']); | |||||
| @ -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); | |||||
| }); | |||||
| @ -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 | |||||
| { | |||||
| // | |||||
| } | |||||
| @ -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"]; | |||||
| } | |||||
| @ -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 | |||||
| { | |||||
| // | |||||
| } | |||||
| @ -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 | |||||
| { | |||||
| // | |||||
| } | |||||
| @ -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 = ['']; | |||||
| } | |||||
| @ -0,0 +1,10 @@ | |||||
| <?php | |||||
| namespace App; | |||||
| use Illuminate\Database\Eloquent\Model; | |||||
| class BilibiliVideoTemp extends Model | |||||
| { | |||||
| // | |||||
| } | |||||
| @ -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 = ['']; | |||||
| } | |||||
| @ -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(); | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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/少女时代"); | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| } | |||||
| } | |||||
| @ -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/视频/"); | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| } | |||||
| } | |||||
| @ -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(); | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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) | |||||
| { | |||||
| // | |||||
| } | |||||
| } | |||||
| @ -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 | |||||
| { | |||||
| // | |||||
| } | |||||
| @ -0,0 +1,11 @@ | |||||
| <?php | |||||
| namespace App\Repositories; | |||||
| class CosInsRepository | |||||
| { | |||||
| } | |||||
| @ -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(); | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -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()); | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -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); | |||||
| } | |||||
| } | |||||
| } | |||||