From ba0f643dca085ad997b2075ed90bca5545180748 Mon Sep 17 00:00:00 2001 From: Deon George Date: Sun, 9 Jun 2024 21:14:27 +1000 Subject: [PATCH] Improvements to e692de7, which wasnt picking up netmail alerts --- app/Classes/FTN/Packet.php | 4 ++-- app/Models/Address.php | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/Classes/FTN/Packet.php b/app/Classes/FTN/Packet.php index 9f39039..c98a6a6 100644 --- a/app/Classes/FTN/Packet.php +++ b/app/Classes/FTN/Packet.php @@ -405,9 +405,9 @@ abstract class Packet extends FTNBase implements \Iterator, \Countable return (string)$this; } - public function mail(Builder $msgs): self + public function mail(Collection $msgs): self { - $this->messages = $msgs->get(); + $this->messages = $msgs; return $this; } diff --git a/app/Models/Address.php b/app/Models/Address.php index 87729bf..1733db6 100644 --- a/app/Models/Address.php +++ b/app/Models/Address.php @@ -1052,7 +1052,7 @@ class Address extends Model if ($num->count() > $this->system->pkt_msgs) Log::notice(sprintf('%s:= Only sending [%d] echomails for [%s]',self::LOGKEY,$this->system->pkt_msgs,$this->ftn)); - return $this->system->packet($this)->mail($num->take($this->system->pkt_msgs)); + return $this->system->packet($this)->mail($num->take($this->system->pkt_msgs)->get()); } return NULL; @@ -1081,11 +1081,13 @@ class Address extends Model if (($num=$this->netmailAlertWaiting())->count()) { Log::debug(sprintf('%s:= Packaging [%d] netmail alerts to [%s]',self::LOGKEY,$num->count(),$this->ftn)); + $msgs = $num->get(); + // Find any message that defines a packet password - $pass = $num + $pass = $msgs ->map(function($item) { $passpos = strpos($item->subject,':'); - return (($passpos > 0) && ($passpos < 8)) ? substr($item->subject,0,$passpos) : NULL; + return (($passpos > 0) && ($passpos <= 8)) ? substr($item->subject,0,$passpos) : NULL; }) ->filter() ->pop(); @@ -1093,7 +1095,7 @@ class Address extends Model Log::debug(sprintf('%s:= Overwriting system packet password with [%s] for [%s]',self::LOGKEY,$pass,$this->ftn)); return $this->system->packet($this,$pass)->mail( - $num->filter(fn($item)=>preg_match("/^{$pass}:/",$item->subject)) + $msgs->filter(fn($item)=>preg_match("/^{$pass}:/",$item->subject)) ->transform(function($item) use ($pass) { $item->subject = preg_replace("/^{$pass}:/",'',$item->subject); return $item; @@ -1108,7 +1110,7 @@ class Address extends Model if ($num->count() > $this->system->pkt_msgs) Log::alert(sprintf('%s:= Only sending [%d] netmails for [%s]',self::LOGKEY,$this->system->pkt_msgs,$this->ftn)); - return $this->system->packet($this)->mail($num->take($this->system->pkt_msgs)); + return $this->system->packet($this)->mail($num->take($this->system->pkt_msgs)->get()); } return NULL; @@ -1180,11 +1182,11 @@ class Address extends Model /** * Netmail alerts waiting to be sent to this system * - * @return Collection + * @return Builder * @throws \Exception * @note The packet password to use is on the subject line for these alerts */ - public function netmailAlertWaiting(): Collection + public function netmailAlertWaiting(): Builder { $netmails = $this ->UncollectedNetmail() @@ -1196,7 +1198,7 @@ class Address extends Model ->groupBy(['netmails.id']) ->get(); - return Netmail::whereIn('id',$netmails->pluck('id'))->get(); + return Netmail::whereIn('id',$netmails->pluck('id')); } public function nodes(): Collection