diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index e6b9960..0e5aab1 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -2,6 +2,8 @@ namespace App\Console; +use App\Jobs\AISerpGenArticleJob; +use Carbon\Carbon; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; @@ -12,7 +14,21 @@ class Kernel extends ConsoleKernel */ protected function schedule(Schedule $schedule): void { - // $schedule->command('inspire')->hourly(); + + // AI Gen Scheduler + + $launched_date = Carbon::parse(config('platform.global.launched_epoch')); + $days_since_launch = now()->diffInDays($launched_date) + 1; + + $posts_to_generate = get_exponential_posts_gen_by_day($days_since_launch); + $mins_betwween_posts = floor((24 * 60) / $posts_to_generate); + + $schedule->call(function () { + AISerpGenArticleJob::dispatch()->onQueue('default')->onConnection('default'); + + })->everyMinutes($mins_betwween_posts)->when(function () use ($mins_betwween_posts) { + return now()->minute % $mins_betwween_posts === 0; + }); } /** diff --git a/app/Helpers/Global/platform_helper.php b/app/Helpers/Global/platform_helper.php index 9b79939..c8c9cf0 100644 --- a/app/Helpers/Global/platform_helper.php +++ b/app/Helpers/Global/platform_helper.php @@ -11,3 +11,23 @@ function get_slack_channel_by_env($slack_channel = 'slack') } } } + +if (! function_exists('get_exponential_posts_gen_by_day')) { + + // Function to calculate the value for a given day + function get_exponential_posts_gen_by_day($day, $period_days = 45) + { + + $min_value = 4; + $max_value = 150; + + $growthRate = log($max_value / $min_value) / $period_days; // Calculate the growth rate + $value = round($min_value * exp($growthRate * $day)); + + if ($value > $max_value) { + return $max_value; + } + + return $value; + } +} diff --git a/app/Jobs/AISerpGenArticleJob.php b/app/Jobs/AISerpGenArticleJob.php new file mode 100644 index 0000000..e9b7697 --- /dev/null +++ b/app/Jobs/AISerpGenArticleJob.php @@ -0,0 +1,55 @@ +orWhereNull('serp_at') + ->first(); + + $news_serp_result = GetNewsSerpTask::handle($category, 'US'); + + if (is_null($news_serp_result)) { + Log::error(json_encode($category->toArray())); + throw Exception('Failed to execute GetNewsSerpTask'); + } + + // We only take 1 record at a time + if (ParseNewsSerpDomainsTask::handle($news_serp_result)) { + $serp_url = SerpUrl::latest()->first(); + + if (is_null($serp_url)) { + Log::error(json_encode($serp_url->toArray())); + throw Exception('Failed to execute ParseNewsSerpDomainsTask'); + } + + return GenerateArticleJob::dispatch($serp_url)->onQueue('default')->onConnection('default'); + } + } +} diff --git a/app/Jobs/PublishIndexPostJob.php b/app/Jobs/PublishIndexPostJob.php new file mode 100644 index 0000000..1dd58b7 --- /dev/null +++ b/app/Jobs/PublishIndexPostJob.php @@ -0,0 +1,35 @@ +post = $post; + } + + /** + * Execute the job. + */ + public function handle(): void + { + if (! is_null($this->post)) { + PublishIndexPostTask::handle($this->post); + } + } +} diff --git a/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php b/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php index 36c8f34..336e6a5 100644 --- a/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php +++ b/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php @@ -4,6 +4,7 @@ use App\Helpers\FirstParty\OSSUploader\OSSUploader; use App\Helpers\ThirdParty\DFS\SettingSerpLiveAdvanced; +use App\Jobs\PublishIndexPostJob; use App\Models\NewsSerpResult; use DFSClientV3\DFSClient; use Exception; @@ -239,6 +240,8 @@ public static function handle($post) $post->status = 'publish'; $post->save(); + PublishIndexPostJob::dispatch($post)->onQueue('default')->onConnection('default'); + return $post; } diff --git a/app/Jobs/Tasks/GenerateArticleTask.php b/app/Jobs/Tasks/GenerateArticleTask.php index 555ae2a..c14169d 100644 --- a/app/Jobs/Tasks/GenerateArticleTask.php +++ b/app/Jobs/Tasks/GenerateArticleTask.php @@ -3,6 +3,7 @@ namespace App\Jobs\Tasks; use App\Helpers\FirstParty\OpenAI\OpenAI; +use App\Jobs\GenerateArticleFeaturedImageJob; use App\Models\Author; use App\Models\Post; use App\Models\PostCategory; @@ -71,6 +72,8 @@ public static function handle(SerpUrl $serp_url) $post_category->category_id = $serp_url->category->id; if ($post_category->save()) { + GenerateArticleFeaturedImageJob::dispatch($post)->onQueue('default')->onConnection('default'); + return self::saveAndReturnSerpProcessStatus($serp_url, 1); } else { return self::saveAndReturnSerpProcessStatus($serp_url, -5); diff --git a/app/Jobs/Tasks/PublishIndexPostTask.php b/app/Jobs/Tasks/PublishIndexPostTask.php new file mode 100644 index 0000000..b79f3f5 --- /dev/null +++ b/app/Jobs/Tasks/PublishIndexPostTask.php @@ -0,0 +1,34 @@ +published_at = now(); + + if ($post->save()) { + if (app()->environment() == 'production') { + $post_url = route('front.post', ['slug' => $post->slug]); + + try { + IndexNow::submit($post_url); + } catch (Exception) { + } + + try { + LaravelGoogleIndexing::create()->update($post_url); + } catch (Exception) { + } + + } + + } + } +} diff --git a/app/Models/Category.php b/app/Models/Category.php index dfa2f33..0984bee 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -36,6 +36,7 @@ class Category extends Model '_lft' => 'int', '_rgt' => 'int', 'parent_id' => 'int', + 'serp_at' => 'datetime', ]; protected $fillable = [ @@ -46,6 +47,7 @@ class Category extends Model '_lft', '_rgt', 'parent_id', + 'serp_at', ]; protected static function boot() diff --git a/composer.json b/composer.json index f205098..178b577 100644 --- a/composer.json +++ b/composer.json @@ -11,6 +11,7 @@ "php": "^8.1", "artesaos/seotools": "^1.2", "dipeshsukhia/laravel-html-minify": "^3.3", + "famdirksen/laravel-google-indexing": "^0.5.0", "fivefilters/readability.php": "^1.0", "graham-campbell/markdown": "^15.0", "guzzlehttp/guzzle": "^7.2", @@ -18,6 +19,7 @@ "intervention/image": "^2.7", "jovix/dataforseo-clientv3": "^1.1", "kalnoy/nestedset": "^6.0", + "laravel-freelancer-nl/laravel-index-now": "^1.2", "laravel/framework": "^10.10", "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8", diff --git a/composer.lock b/composer.lock index e828e83..e39df8f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "fb76a666f8ab1204f862fedada072f42", + "content-hash": "188bab118ada68d970c9a2927e68c673", "packages": [ { "name": "artesaos/seotools", @@ -282,6 +282,143 @@ ], "time": "2023-01-15T23:15:59+00:00" }, + { + "name": "composer/pcre", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-11-17T09:50:14+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "ced299686f41dce890debac69273b47ffe98a40c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-02-25T21:32:43+00:00" + }, { "name": "dflydev/dot-access-data", "version": "v3.0.2", @@ -720,6 +857,138 @@ ], "time": "2023-01-14T14:17:03+00:00" }, + { + "name": "famdirksen/laravel-google-indexing", + "version": "v0.5", + "source": { + "type": "git", + "url": "https://github.com/Famdirksen/laravel-google-indexing.git", + "reference": "a5371972de9303cf66bc740b161af328c1b9c72b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Famdirksen/laravel-google-indexing/zipball/a5371972de9303cf66bc740b161af328c1b9c72b", + "reference": "a5371972de9303cf66bc740b161af328c1b9c72b", + "shasum": "" + }, + "require": { + "google/apiclient": "^2.0", + "php": "^7.2|^8.0" + }, + "require-dev": { + "orchestra/testbench": "^6.23|^7.0", + "phpunit/phpunit": "^9.4" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Famdirksen\\LaravelGoogleIndexing\\ServiceProvider\\LaravelGoogleIndexingServiceProvider" + ], + "aliases": { + "LaravelGoogleIndexing": "Famdirksen\\LaravelGoogleIndexing\\Facade\\LaravelGoogleIndexingFacade" + } + } + }, + "autoload": { + "psr-4": { + "Famdirksen\\LaravelGoogleIndexing\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Famdirksen", + "email": "info@famdirksen.nl", + "homepage": "https://famdirksen.nl", + "role": "Company" + }, + { + "name": "Robin Dirksen", + "email": "robin@famdirksen.nl", + "homepage": "https://robindirksen.nl", + "role": "Developer" + } + ], + "description": "Index Laravel website in Google via Indexing API", + "homepage": "https://github.com/famdirksen/laravel-google-indexing", + "keywords": [ + "famdirksen", + "laravel", + "laravel-google-indexing" + ], + "support": { + "issues": "https://github.com/Famdirksen/laravel-google-indexing/issues", + "source": "https://github.com/Famdirksen/laravel-google-indexing/tree/v0.5" + }, + "time": "2022-09-27T14:52:59+00:00" + }, + { + "name": "firebase/php-jwt", + "version": "v6.8.1", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "5dbc8959427416b8ee09a100d7a8588c00fb2e26" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/5dbc8959427416b8ee09a100d7a8588c00fb2e26", + "reference": "5dbc8959427416b8ee09a100d7a8588c00fb2e26", + "shasum": "" + }, + "require": { + "php": "^7.4||^8.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "^6.5||^7.4", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "psr/cache": "^1.0||^2.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-sodium": "Support EdDSA (Ed25519) signatures", + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/v6.8.1" + }, + "time": "2023-07-14T18:33:00+00:00" + }, { "name": "fivefilters/readability.php", "version": "v1.0.0", @@ -842,6 +1111,177 @@ ], "time": "2022-02-20T15:07:15+00:00" }, + { + "name": "google/apiclient", + "version": "v2.15.1", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-api-php-client.git", + "reference": "7a95ed29e4b6c6859d2d22300c5455a92e2622ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/7a95ed29e4b6c6859d2d22300c5455a92e2622ad", + "reference": "7a95ed29e4b6c6859d2d22300c5455a92e2622ad", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "~6.0", + "google/apiclient-services": "~0.200", + "google/auth": "^1.28", + "guzzlehttp/guzzle": "~6.5||~7.0", + "guzzlehttp/psr7": "^1.8.4||^2.2.1", + "monolog/monolog": "^2.9||^3.0", + "php": "^7.4|^8.0", + "phpseclib/phpseclib": "^3.0.19" + }, + "require-dev": { + "cache/filesystem-adapter": "^1.1", + "composer/composer": "^1.10.22", + "phpcompatibility/php-compatibility": "^9.2", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.0", + "symfony/css-selector": "~2.1", + "symfony/dom-crawler": "~2.1" + }, + "suggest": { + "cache/filesystem-adapter": "For caching certs and tokens (using Google\\Client::setCache)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "files": [ + "src/aliases.php" + ], + "psr-4": { + "Google\\": "src/" + }, + "classmap": [ + "src/aliases.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Client library for Google APIs", + "homepage": "http://developers.google.com/api-client-library/php", + "keywords": [ + "google" + ], + "support": { + "issues": "https://github.com/googleapis/google-api-php-client/issues", + "source": "https://github.com/googleapis/google-api-php-client/tree/v2.15.1" + }, + "time": "2023-09-13T21:46:39+00:00" + }, + { + "name": "google/apiclient-services", + "version": "v0.317.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-api-php-client-services.git", + "reference": "a11658da6e5ba713e3d636544895bb0af3c27689" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/a11658da6e5ba713e3d636544895bb0af3c27689", + "reference": "a11658da6e5ba713e3d636544895bb0af3c27689", + "shasum": "" + }, + "require": { + "php": "^7.4||^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7||^8.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "autoload.php" + ], + "psr-4": { + "Google\\Service\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Client library for Google APIs", + "homepage": "http://developers.google.com/api-client-library/php", + "keywords": [ + "google" + ], + "support": { + "issues": "https://github.com/googleapis/google-api-php-client-services/issues", + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.317.0" + }, + "time": "2023-09-24T01:06:13+00:00" + }, + { + "name": "google/auth", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-auth-library-php.git", + "reference": "6028b072aa444d7edecbed603431322026704627" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/6028b072aa444d7edecbed603431322026704627", + "reference": "6028b072aa444d7edecbed603431322026704627", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "^6.0", + "guzzlehttp/guzzle": "^6.2.1|^7.0", + "guzzlehttp/psr7": "^2.4.5", + "php": "^7.4||^8.0", + "psr/cache": "^1.0||^2.0||^3.0", + "psr/http-message": "^1.1||^2.0" + }, + "require-dev": { + "guzzlehttp/promises": "^2.0", + "kelvinmo/simplejwt": "0.7.1", + "phpseclib/phpseclib": "^3.0", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.0.0", + "sebastian/comparator": ">=1.2.3", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2." + }, + "type": "library", + "autoload": { + "psr-4": { + "Google\\Auth\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google Auth Library for PHP", + "homepage": "http://github.com/google/google-auth-library-php", + "keywords": [ + "Authentication", + "google", + "oauth2" + ], + "support": { + "docs": "https://googleapis.github.io/google-auth-library-php/main/", + "issues": "https://github.com/googleapis/google-auth-library-php/issues", + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.30.0" + }, + "time": "2023-09-07T19:13:44+00:00" + }, { "name": "graham-campbell/markdown", "version": "v15.0.0", @@ -1693,6 +2133,94 @@ }, "time": "2023-02-16T14:41:24+00:00" }, + { + "name": "laravel-freelancer-nl/laravel-index-now", + "version": "1.2", + "source": { + "type": "git", + "url": "https://github.com/LaravelFreelancerNL/laravel-index-now.git", + "reference": "175fe83895e51a57582468f17a6ad2533645c128" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/LaravelFreelancerNL/laravel-index-now/zipball/175fe83895e51a57582468f17a6ad2533645c128", + "reference": "175fe83895e51a57582468f17a6ad2533645c128", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^7.4", + "illuminate/contracts": "^9.0|^10.0", + "nunomaduro/termwind": "^1.10", + "php": "^8.1", + "phpmd/phpmd": "^2.12", + "spatie/laravel-package-tools": "^1.9.2" + }, + "require-dev": { + "laravel/pint": "^1.2.1", + "nunomaduro/collision": "^6.0", + "nunomaduro/larastan": "^2.2.0", + "orchestra/testbench": "^7.0", + "pestphp/pest": "^1.21", + "pestphp/pest-plugin-faker": "^1.0", + "pestphp/pest-plugin-laravel": "^1.1|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5", + "scrutinizer/ocular": "^1.9", + "sebastian/phpcpd": "^6.0", + "spatie/laravel-ray": "^1.26", + "spatie/pest-plugin-test-time": "^1.1", + "timacdonald/log-fake": "^2.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelFreelancerNL\\LaravelIndexNow\\IndexNowServiceProvider" + ], + "aliases": { + "IndexNow": "LaravelFreelancerNL\\laravel-index-now\\Facades\\IndexNow" + } + } + }, + "autoload": { + "psr-4": { + "LaravelFreelancerNL\\LaravelIndexNow\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bas", + "email": "info@laravel-freelancer.nl", + "role": "Developer" + } + ], + "description": "Alert search engines of content changes. ", + "homepage": "https://github.com/LaravelFreelancerNL/laravel-index-now", + "keywords": [ + "indexnow", + "laravel", + "search engines", + "seo" + ], + "support": { + "issues": "https://github.com/LaravelFreelancerNL/laravel-index-now/issues", + "source": "https://github.com/LaravelFreelancerNL/laravel-index-now/tree/1.2" + }, + "funding": [ + { + "url": "https://github.com/LaravelFreelancerNL", + "type": "github" + } + ], + "time": "2023-02-17T14:44:51+00:00" + }, { "name": "laravel/framework", "version": "v10.24.0", @@ -3337,6 +3865,269 @@ ], "time": "2023-02-08T01:06:31+00:00" }, + { + "name": "paragonie/constant_time_encoding", + "version": "v2.6.3", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "58c3f47f650c94ec05a151692652a868995d2938" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938", + "reference": "58c3f47f650c94ec05a151692652a868995d2938", + "shasum": "" + }, + "require": { + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2022-06-14T06:56:20+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "pdepend/pdepend", + "version": "2.15.0", + "source": { + "type": "git", + "url": "https://github.com/pdepend/pdepend.git", + "reference": "0d4d8fb87aa74c358c1c4364514017f34b4a68b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/0d4d8fb87aa74c358c1c4364514017f34b4a68b9", + "reference": "0d4d8fb87aa74c358c1c4364514017f34b4a68b9", + "shasum": "" + }, + "require": { + "php": ">=5.3.7", + "symfony/config": "^2.3.0|^3|^4|^5|^6.0", + "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0", + "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0" + }, + "require-dev": { + "easy-doc/easy-doc": "0.0.0|^1.2.3", + "gregwar/rst": "^1.0", + "phpunit/phpunit": "^4.8.36|^5.7.27", + "squizlabs/php_codesniffer": "^2.0.0" + }, + "bin": [ + "src/bin/pdepend" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "PDepend\\": "src/main/php/PDepend" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Official version of pdepend to be handled with Composer", + "keywords": [ + "PHP Depend", + "PHP_Depend", + "dev", + "pdepend" + ], + "support": { + "issues": "https://github.com/pdepend/pdepend/issues", + "source": "https://github.com/pdepend/pdepend/tree/2.15.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", + "type": "tidelift" + } + ], + "time": "2023-09-22T02:30:39+00:00" + }, + { + "name": "phpmd/phpmd", + "version": "2.13.0", + "source": { + "type": "git", + "url": "https://github.com/phpmd/phpmd.git", + "reference": "dad0228156856b3ad959992f9748514fa943f3e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/dad0228156856b3ad959992f9748514fa943f3e3", + "reference": "dad0228156856b3ad959992f9748514fa943f3e3", + "shasum": "" + }, + "require": { + "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", + "ext-xml": "*", + "pdepend/pdepend": "^2.12.1", + "php": ">=5.3.9" + }, + "require-dev": { + "easy-doc/easy-doc": "0.0.0 || ^1.3.2", + "ext-json": "*", + "ext-simplexml": "*", + "gregwar/rst": "^1.0", + "mikey179/vfsstream": "^1.6.8", + "phpunit/phpunit": "^4.8.36 || ^5.7.27", + "squizlabs/php_codesniffer": "^2.0" + }, + "bin": [ + "src/bin/phpmd" + ], + "type": "library", + "autoload": { + "psr-0": { + "PHPMD\\": "src/main/php" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Manuel Pichler", + "email": "github@manuel-pichler.de", + "homepage": "https://github.com/manuelpichler", + "role": "Project Founder" + }, + { + "name": "Marc Würth", + "email": "ravage@bluewin.ch", + "homepage": "https://github.com/ravage84", + "role": "Project Maintainer" + }, + { + "name": "Other contributors", + "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", + "role": "Contributors" + } + ], + "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", + "homepage": "https://phpmd.org/", + "keywords": [ + "mess detection", + "mess detector", + "pdepend", + "phpmd", + "pmd" + ], + "support": { + "irc": "irc://irc.freenode.org/phpmd", + "issues": "https://github.com/phpmd/phpmd/issues", + "source": "https://github.com/phpmd/phpmd/tree/2.13.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", + "type": "tidelift" + } + ], + "time": "2022-09-10T08:44:15+00:00" + }, { "name": "phpoption/phpoption", "version": "1.9.1", @@ -3412,6 +4203,116 @@ ], "time": "2023-02-25T19:38:58+00:00" }, + { + "name": "phpseclib/phpseclib", + "version": "3.0.23", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "866cc78fbd82462ffd880e3f65692afe928bed50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/866cc78fbd82462ffd880e3f65692afe928bed50", + "reference": "866cc78fbd82462ffd880e3f65692afe928bed50", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1|^2", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": ">=5.6.1" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "ext-dom": "Install the DOM extension to load XML formatted public keys.", + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib3\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.23" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2023-09-18T17:22:01+00:00" + }, { "name": "predis/predis", "version": "v2.2.2", @@ -3473,6 +4374,55 @@ ], "time": "2023-09-13T16:42:03+00:00" }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, { "name": "psr/clock", "version": "1.0.0", @@ -4914,6 +5864,81 @@ ], "time": "2023-04-28T07:47:42+00:00" }, + { + "name": "symfony/config", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", + "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^5.4|^6.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "require-dev": { + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-19T20:22:16+00:00" + }, { "name": "symfony/console", "version": "v6.3.4", @@ -5069,6 +6094,87 @@ ], "time": "2023-07-12T16:00:22+00:00" }, + { + "name": "symfony/dependency-injection", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "68a5a9570806a087982f383f6109c5e925892a49" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/68a5a9570806a087982f383f6109c5e925892a49", + "reference": "68a5a9570806a087982f383f6109c5e925892a49", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.2.10" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<6.1", + "symfony/finder": "<5.4", + "symfony/proxy-manager-bridge": "<6.3", + "symfony/yaml": "<5.4" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" + }, + "require-dev": { + "symfony/config": "^6.1", + "symfony/expression-language": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-16T17:55:17+00:00" + }, { "name": "symfony/deprecation-contracts", "version": "v3.3.0", @@ -5433,6 +6539,69 @@ ], "time": "2023-05-23T14:45:45+00:00" }, + { + "name": "symfony/filesystem", + "version": "v6.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.3.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-06-01T08:30:39+00:00" + }, { "name": "symfony/finder", "version": "v6.3.3", @@ -7232,6 +8401,80 @@ ], "time": "2023-08-24T14:51:05+00:00" }, + { + "name": "symfony/var-exporter", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df1f8aac5751871b83d30bf3e2c355770f8f0691", + "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "lazy-loading", + "proxy", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-16T18:14:47+00:00" + }, { "name": "tightenco/ziggy", "version": "v1.6.2", @@ -9862,55 +11105,6 @@ ], "time": "2023-09-19T05:42:37+00:00" }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "time": "2021-02-03T23:26:27+00:00" - }, { "name": "reliese/laravel", "version": "v1.2.3", diff --git a/config/app.php b/config/app.php index 3ec0e18..b3d4ba1 100644 --- a/config/app.php +++ b/config/app.php @@ -194,6 +194,7 @@ 'SEO' => Artesaos\SEOTools\Facades\SEOTools::class, 'Image' => Intervention\Image\Facades\Image::class, 'Markdown' => GrahamCampbell\Markdown\Facades\Markdown::class, + 'IndexNow' => LaravelFreelancerNL\LaravelIndexNow\Facades\IndexNow::class, ])->toArray(), diff --git a/config/index-now.php b/config/index-now.php new file mode 100644 index 0000000..a0152a0 --- /dev/null +++ b/config/index-now.php @@ -0,0 +1,13 @@ + env('INDEXNOW_SUBMIT_DELAY', 600), + 'host' => env('APP_URL', 'localhost'), + 'key' => env('INDEXNOW_KEY', ''), + 'key-location' => env('INDEXNOW_KEY_LOCATION', ''), + 'log-failed-submits' => env('INDEXNOW_LOG_FAILED_SUBMITS', true), + 'production-env' => env('INDEXNOW_PRODUCTION_ENV', 'production'), + 'search-engine' => env('INDEXNOW_SEARCH_ENGINE', 'api.indexnow.org'), +]; diff --git a/config/laravel-google-indexing.php b/config/laravel-google-indexing.php new file mode 100644 index 0000000..4f5a595 --- /dev/null +++ b/config/laravel-google-indexing.php @@ -0,0 +1,11 @@ + [ + 'auth_config' => storage_path('echoscoop-90d335332507.json'), + + 'scopes' => [ + \Google_Service_Indexing::INDEXING, + ], + ], +]; diff --git a/config/platform/global.php b/config/platform/global.php new file mode 100644 index 0000000..a8b2c99 --- /dev/null +++ b/config/platform/global.php @@ -0,0 +1,7 @@ + '1695513600', // 24-09-2023 00:00:00 GMT +0 + +]; diff --git a/public/07654e9d-367b-4d24-9bc0-2bc8672e271f.txt b/public/07654e9d-367b-4d24-9bc0-2bc8672e271f.txt new file mode 100644 index 0000000..42c8d12 --- /dev/null +++ b/public/07654e9d-367b-4d24-9bc0-2bc8672e271f.txt @@ -0,0 +1 @@ +07654e9d-367b-4d24-9bc0-2bc8672e271f \ No newline at end of file diff --git a/routes/tests.php b/routes/tests.php index f858a2d..38a800f 100644 --- a/routes/tests.php +++ b/routes/tests.php @@ -1,6 +1,7 @@ onQueue('default')->onConnection('default'); +}); + + +Route::get('/exponential', function (Request $request) { + $post_counts = get_exponential_posts_gen_by_day($request->input('day', 1)); + + dump('Day: '.$request->input('day', 1)); + dump('Post Counts: '.$post_counts); +}); + Route::get('/step-1', function (Request $request) { $category = Category::find($request->input('id')); $news_serp_result = GetNewsSerpTask::handle($category, 'US'); diff --git a/storage/echoscoop-90d335332507.json b/storage/echoscoop-90d335332507.json new file mode 100644 index 0000000..ba03d7f --- /dev/null +++ b/storage/echoscoop-90d335332507.json @@ -0,0 +1,13 @@ +{ + "type": "service_account", + "project_id": "echoscoop", + "private_key_id": "90d335332507dfc685eb29f9ff2192f3b4187efa", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0wgUXF3/LGxYL\n1+xMEuqg+0ZxBqDjqjxo/8stbnyP3VDr6hKRzc6PziNKDm1BhkHC5saxYbuzVeHB\nG+6N/9HhGSDcmB3y4LIKYDFyQWjsuw88rL358zd/wK8bOD+2uaQpEzJyF10u+7Za\naaobA/N3kIjK1pb26iAyMcXz79X0SzwhSeYkgB8v8KLbKeqGuXv9Zx7FQkxqJZwc\nwhbuSdDw+h6Itn8c5jAkRhYDLR2MKC9Ai9wa2pLKAIyp4y1jf9MeloJcyuEGVKOj\nOb5C0WAlM4Oj00ce7NXweZVG5+FOzQSXewwm2FqrEswGn107fkyasUR0Xo06ItdR\nVPuIEtknAgMBAAECggEAHkDvCytit0LkUL0mDqGH5cPIyXgbi59dlxFhF0yLyqR3\nO9UkoIS60vTkkSuS+8mVziJEFUJPYTe5nlGnftrXbP6Asos/T/xtsDDjdcUe46h3\nZ2deMKyVmGtOo5api1LM+Bb/dXsVnJyCq+VNlFH3+QYW7yQ1hkQveVc9U5PL0qRQ\n8VjLigB8WFGYYfeY3yjCcqmpKVjh7g1P/ovhh68AZwgzBIsk2MncNv3nw2kuEeQs\nWWqRM2AlxmTuIPSQ4EfSdC5pozKmi4B6tRyjsZHzuF1NQIRSFap8w6hHY3c98HDy\nbnvpbcyOGlsiZZBvaw3Lg5bEzc/5bX0m51+2lBZK0QKBgQDe2dBWs1OjFpCjFGWL\ngYEbvFAdFJjJoGpuyXAssFTs4PYOGCoRGZhsEFBLpMwKKpp/XmuuPSOnmpoxeJxt\nfqdzcZLM/w9tRqGEpXKZREy3KqTQOa4T1SmS0FmG4tqjrEXz2NijdZ1PII7ucqQL\n5Y/jk7LSS7Xq7zhBIZyQs4ZPfwKBgQDPpU0+QI8g5ZaYR8hjn67Z9GWjWw41xcIJ\nmPcIebzIecWb9pPpi4+OnOhabgponJIjmuwA0vh/EY6IbNflSSk/cf6Z/8m9xmWz\nzqBEYS2lujB4C7RSQjYH6Y8NlHbie2o41ISVmjInyGFCpAriiVFUM06gupl7Tnk+\n6Vckv9nKWQKBgQC+yQUHJPGGnyvmofCpdY692wNPUjHX9EEKZeRmLfQW9CVTPbbN\n+va2FWVYzVZtobmxL3nKqscal05I6jQpvZPITsRaQkbHy/89m5M3yfRPn++H4Mm6\navTznvH2e8Ko+zTMJaqajnfFpV8Ynwb4tGjycaFXTsAIyRKFGCx86WUkKwKBgAHU\n0WOVKi3+GF/rcib+x4oAj8zrBqsOvXFcOgGHIVUbTdTcTd2nb3Kwi5QQmGLnzpol\nyaMQOUTVoM4vN5A8HvMCTF6LVPopf8ggMGWp/b8Sb07/u21mTBexxaM3Bf1lXUB3\nD1xKadrT95eg3r+0ulTlxvG/846U2Jjnce9PCdqxAoGAd/by0om43YdCIEhb8zAa\nF4UeZFNHTDEoB1Sfy6VXnNvzxaAAU33jpDI/msL/9s57S2QwXJ2sPKg2FJlsIjFF\n1/7gIuGP/R0+Ydn9nFfeOJEhiyQ2boR/9xnmLAbZ9sKOCOI1jqEe0baPzauKxg+k\ndYKjhRfU0S1KEP9EqokQlIM=\n-----END PRIVATE KEY-----\n", + "client_email": "echoscoop@echoscoop.iam.gserviceaccount.com", + "client_id": "106961019233346264626", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/echoscoop%40echoscoop.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +}