From 4df2074477d4ad6f09f2ceaa1672e946659faa1c Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Sat, 1 Apr 2023 10:06:15 +0200 Subject: [PATCH] mempool weather added --- .../MempoolSpace/CacheRecommendedFees.php | 43 +++++++++++-------- .../livewire/banner/mempool-weather.blade.php | 12 ++++-- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/app/Console/Commands/MempoolSpace/CacheRecommendedFees.php b/app/Console/Commands/MempoolSpace/CacheRecommendedFees.php index 6cb8f34a..f72ae99e 100644 --- a/app/Console/Commands/MempoolSpace/CacheRecommendedFees.php +++ b/app/Console/Commands/MempoolSpace/CacheRecommendedFees.php @@ -4,6 +4,7 @@ namespace App\Console\Commands\MempoolSpace; use Illuminate\Console\Command; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Log; use OpenAI; class CacheRecommendedFees extends Command @@ -25,27 +26,31 @@ class CacheRecommendedFees extends Command */ public function handle(): void { - $apiKey = config('services.open-ai.apiKey'); - $client = OpenAI::client($apiKey); + try { + $apiKey = config('services.open-ai.apiKey'); + $client = OpenAI::client($apiKey); - $result = Http::get('https://mempool.space/api/v1/fees/recommended'); - $result = $result->json(); + $result = Http::get('https://mempool.space/api/v1/fees/recommended'); + $result = $result->json(); - $result = $client->completions() - ->create([ - 'model' => 'text-davinci-003', - 'prompt' => sprintf('Erstelle einen Wetterbericht für den Bitcoin Mempool mit folgenden Gebühren: fastestFee: %s sat/vB, halfHourFee: %s sat/vB, hourFee: %s sat/vB, economyFee: %s sat/vB, minimumFee: %s sat/vB. Fasse mit maximal 400 Zeichen zusammen und schreibe im Stile eines Wetterberichtes aus dem Fernsehen um. Schreibe nichts von schnellen Gebühren, sondern interpretiere die Gebühren anders. Schreibe auch nichts von schnellen Gebühren. Alle Gebühren über 40 ist krass heiß. Gebühren über 20 sind übermäßig warm. Gebühren über 10 sind normal warm. Und Gebühren unter 2 sind sehr kalt.', - $result['fastestFee'], - $result['halfHourFee'], - $result['hourFee'], - $result['economyFee'], - $result['minimumFee'] - ), - 'max_tokens' => 400, - 'temperature' => 1 - ]); + $result = $client->completions() + ->create([ + 'model' => 'text-davinci-003', + 'prompt' => sprintf('Erstelle einen Wetterbericht für den Bitcoin Mempool mit folgenden Gebühren: fastestFee: %s sat/vB, halfHourFee: %s sat/vB, hourFee: %s sat/vB, economyFee: %s sat/vB, minimumFee: %s sat/vB. Fasse mit maximal 400 Zeichen zusammen und schreibe im Stile eines Wetterberichtes aus dem Fernsehen um. Schreibe nichts von schnellen Gebühren, sondern interpretiere die Gebühren anders. Schreibe auch nichts von schnellen Gebühren. Alle Gebühren über 40 ist krass heiß. Gebühren über 20 sind übermäßig warm. Gebühren über 10 sind normal warm. Und Gebühren unter 2 sind sehr kalt.', + $result['fastestFee'], + $result['halfHourFee'], + $result['hourFee'], + $result['economyFee'], + $result['minimumFee'] + ), + 'max_tokens' => 400, + 'temperature' => 1 + ]); - cache()->put('mempool-weather', $result['choices'][0]['text'], now()->addMinutes(62)); - cache()->put('mempool-weather-changed', now()->toDateTimeString(), now()->addMinutes(62)); + cache()->put('mempool-weather', $result['choices'][0]['text'], now()->addMinutes(62)); + cache()->put('mempool-weather-changed', now()->toDateTimeString(), now()->addMinutes(62)); + } catch (\Exception $exception) { + Log::error($exception->getMessage()); + } } } diff --git a/resources/views/livewire/banner/mempool-weather.blade.php b/resources/views/livewire/banner/mempool-weather.blade.php index dfafd5e4..2314864b 100644 --- a/resources/views/livewire/banner/mempool-weather.blade.php +++ b/resources/views/livewire/banner/mempool-weather.blade.php @@ -32,9 +32,15 @@ Blockhöhe -
- {{ $weather }} (um {{ \App\Support\Carbon::parse($changed)->asTime() }} Uhr aktualisiert - stündlich) -
+ @if(!empty($weather)) +
+ {{ $weather }} (um {{ \App\Support\Carbon::parse($changed)->asTime() }} Uhr aktualisiert - stündlich) +
+ @else +
+ Wetterdaten werden in Kürze wieder verfügbar sein. (OpenAI Quota exceeded) +
+ @endif