From 71713483707912b60d13643b273b000b36fc5ad2 Mon Sep 17 00:00:00 2001 From: myrmidex Date: Mon, 27 Apr 2026 00:59:45 +0200 Subject: [PATCH] 11 - Add PolitenessService and crawler delay config --- .env.example | 2 ++ app/Services/PolitenessService.php | 19 +++++++++++++++ config/crawler.php | 2 ++ tests/Unit/Services/PolitenessServiceTest.php | 23 +++++++++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 app/Services/PolitenessService.php create mode 100644 tests/Unit/Services/PolitenessServiceTest.php diff --git a/.env.example b/.env.example index 79935dc..f83cd0b 100644 --- a/.env.example +++ b/.env.example @@ -61,3 +61,5 @@ AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}" + +CRAWLER_MIN_DOMAIN_DELAY_SECONDS=10 diff --git a/app/Services/PolitenessService.php b/app/Services/PolitenessService.php new file mode 100644 index 0000000..5114458 --- /dev/null +++ b/app/Services/PolitenessService.php @@ -0,0 +1,19 @@ + env('CRAWLER_USER_AGENT', 'TroveBot/0.1 (+https://trove.lvl0.xyz/bot)'), + + 'min_domain_delay_seconds' => env('CRAWLER_MIN_DOMAIN_DELAY_SECONDS', 10), ]; diff --git a/tests/Unit/Services/PolitenessServiceTest.php b/tests/Unit/Services/PolitenessServiceTest.php new file mode 100644 index 0000000..f9a2c6b --- /dev/null +++ b/tests/Unit/Services/PolitenessServiceTest.php @@ -0,0 +1,23 @@ +assertSame(10, (new PolitenessService)->minDelayFor('example.com')); + } + + public function test_min_delay_for_respects_config_override(): void + { + config()->set('crawler.min_domain_delay_seconds', 30); + + $this->assertSame(30, (new PolitenessService)->minDelayFor('example.com')); + } +}