X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FModels%2FChannel.php;h=da9f6a7360ad772002d0b1307cd751853c77314b;hb=dc4019f7a7aa5ba98964e52e481d9d22ed080f3c;hp=edc2ba8664be682bc3638fbb16e485b905ca55a1;hpb=0b25d0e8a22a13f09efbeab94d0b353ae603bc16;p=alttp.git diff --git a/app/Models/Channel.php b/app/Models/Channel.php index edc2ba8..da9f6a7 100644 --- a/app/Models/Channel.php +++ b/app/Models/Channel.php @@ -2,13 +2,24 @@ namespace App\Models; +use Illuminate\Broadcasting\PrivateChannel; +use Illuminate\Database\Eloquent\BroadcastsEvents; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Arr; -class Channel extends Model -{ +class Channel extends Model { + + use BroadcastsEvents; use HasFactory; + public function broadcastOn($event) { + $channels = [ + new PrivateChannel('Channel.'.$this->id), + ]; + return $channels; + } + public function getCurrentEpisode() { return $this->episodes() ->where('start', '<', now()->subMinutes(10)) @@ -70,6 +81,9 @@ class Channel extends Model $distance = abs(intval($guess->guess) - intval($solution)); if (is_null($min_distance) || $distance == $min_distance) { $candidates[] = $guess; + if (is_null($min_distance)) { + $min_distance = $distance; + } } else if ($distance < $min_distance) { $candidates = [$guess]; $min_distance = $distance; @@ -135,6 +149,14 @@ class Channel extends Model return false; } + public function listAnd($entries) { + $lang = empty($this->languages) ? 'en' : $this->languages[0]; + if ($lang == 'de') { + return Arr::join($entries, ', ', ' und '); + } + return Arr::join($entries, ', ', ' and '); + } + public function crews() { return $this->hasMany(ChannelCrew::class); }