Compare commits

..

No commits in common. "22ba6fe35c46d25eea8d363868fe55ed83e93bd3" and "e2cd09ac9899ee5c99899b629b8f3420cc645bae" have entirely different histories.

20 changed files with 727 additions and 954 deletions

View File

@ -9,9 +9,10 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use App\Classes\FTN\Packet; use App\Classes\FTN\{Message,Packet};
use App\Exceptions\InvalidFTNException; use App\Exceptions\InvalidFTNException;
use App\Traits\{QueryCacheableConfig,ScopeActive}; use App\Traits\{QueryCacheableConfig,ScopeActive};

View File

@ -6,10 +6,7 @@ use Illuminate\Database\Eloquent\Relations\Pivot;
class AddressEchoarea extends Pivot class AddressEchoarea extends Pivot
{ {
protected function casts(): array protected $casts = [
{ 'subscribed' => 'datetime:Y-m-d H:i',
return [ ];
'subscribed' => 'datetime:Y-m-d H:i',
];
}
} }

View File

@ -28,12 +28,9 @@ class Domain extends Model
private const CACHE_TIME = 3600; private const CACHE_TIME = 3600;
private const STATS_MONTHS = 6; private const STATS_MONTHS = 6;
protected function casts(): array protected $casts = [
{ 'homepage' => CompressedStringOrNull::class,
return [ ];
'homepage' => CompressedStringOrNull::class,
];
}
/* SCOPES */ /* SCOPES */

View File

@ -11,15 +11,12 @@ class Dynamic extends Model
{ {
use SoftDeletes; use SoftDeletes;
protected function casts(): array protected $casts = [
{ 'arguments' => CollectionOrNull::class,
return [ 'next_at' => 'datetime:Y-m-d H:i:s',
'arguments' => CollectionOrNull::class, 'start_date' => 'datetime:Y-m-d',
'next_at' => 'datetime:Y-m-d H:i:s', 'start_time' => 'datetime:H:i:s',
'start_date' => 'datetime:Y-m-d', ];
'start_time' => 'datetime:H:i:s',
];
}
/* RELATIONS */ /* RELATIONS */

View File

@ -45,13 +45,10 @@ class Echoarea extends Model
private const CACHE_TIME = 3600; private const CACHE_TIME = 3600;
protected function casts(): array protected $casts = [
{ 'first_message' => 'datetime:Y-m-d H:i:s',
return [ 'last_message' => 'datetime:Y-m-d H:i:s',
'first_message' => 'datetime:Y-m-d H:i:s', ];
'last_message' => 'datetime:Y-m-d H:i:s',
];
}
/* RELATIONS */ /* RELATIONS */

View File

@ -34,20 +34,17 @@ final class Echomail extends Model implements Packet
// When generating a packet for this echomail, the packet recipient is our tftn // When generating a packet for this echomail, the packet recipient is our tftn
public Address $tftn; public Address $tftn;
protected function casts(): array protected $casts = [
{ 'to' => UTF8StringOrNull::class,
return [ 'from' => UTF8StringOrNull::class,
'to' => UTF8StringOrNull::class, 'subject' => UTF8StringOrNull::class,
'from' => UTF8StringOrNull::class, 'datetime' => 'datetime:Y-m-d H:i:s',
'subject' => UTF8StringOrNull::class, 'kludges' => CollectionOrNull::class,
'datetime' => 'datetime:Y-m-d H:i:s', 'msg' => CompressedStringOrNull::class,
'kludges' => CollectionOrNull::class, 'msg_src' => CompressedStringOrNull::class,
'msg' => CompressedStringOrNull::class, 'rogue_seenby' => CollectionOrNull::class,
'msg_src' => CompressedStringOrNull::class, 'rogue_path' => CollectionOrNull::class, // @deprecated?
'rogue_seenby' => CollectionOrNull::class, ];
'rogue_path' => CollectionOrNull::class, // @deprecated?
];
}
public function __get($key) public function __get($key)
{ {
@ -261,7 +258,7 @@ final class Echomail extends Model implements Packet
$exportto = $model $exportto = $model
->echoarea ->echoarea
->addresses ->addresses
->filter(fn($item)=>$model->echoarea->can_read($item->security)) ->filter(function($item) use ($model) { return $model->echoarea->can_read($item->security); })
->pluck('id') ->pluck('id')
->diff(our_address($model->fftn->zone->domain,FALSE)->pluck('id')) ->diff(our_address($model->fftn->zone->domain,FALSE)->pluck('id'))
->diff($seenby); ->diff($seenby);

View File

@ -25,18 +25,15 @@ class File extends Model
public Collection $set_seenby; public Collection $set_seenby;
public string $src_file = ''; public string $src_file = '';
protected function casts(): array protected $casts = [
{ 'kludges' => CollectionOrNull::class,
return [ 'datetime' => 'datetime:Y-m-d H:i:s',
'kludges' => CollectionOrNull::class, 'desc' => CompressedStringOrNull::class,
'datetime' => 'datetime:Y-m-d H:i:s', 'ldesc' => CompressedStringOrNull::class,
'desc' => CompressedStringOrNull::class, 'rogue_seenby' => CollectionOrNull::class,
'ldesc' => CompressedStringOrNull::class, 'rogue_path' => CollectionOrNull::class,
'rogue_seenby' => CollectionOrNull::class, 'size' => 'int',
'rogue_path' => CollectionOrNull::class, ];
'size' => 'int',
];
}
public static function boot() public static function boot()
{ {
@ -149,21 +146,18 @@ class File extends Model
$rogue->push($sb); $rogue->push($sb);
} }
if (count($rogue)) { $model->rogue_seenby = $rogue;
$model->rogue_seenby = $rogue;
$model->save();
}
$model->seenby()->sync($seenby); $model->seenby()->sync($seenby);
$model->save();
// See if we need to export this file. // See if we need to export this file.
if ($model->filearea->sec_read) { if ($model->filearea->sec_read) {
$exportto = $model $exportto = $model
->filearea ->filearea
->addresses ->addresses
->filter(fn($item)=>$model->filearea->can_read($item->security)) ->filter(function($item) use ($model) { return $model->filearea->can_read($item->security); })
->pluck('id') ->pluck('id')
->diff(our_address($model->fftn->zone->domain,FALSE)->pluck('id'))
->diff($seenby); ->diff($seenby);
if ($exportto->count()) { if ($exportto->count()) {

View File

@ -11,13 +11,10 @@ class Filearea extends Model
{ {
use SoftDeletes,ScopeActive,AreaSecurity; use SoftDeletes,ScopeActive,AreaSecurity;
protected function casts(): array protected $casts = [
{ 'first_file' => 'datetime:Y-m-d H:i:s',
return [ 'last_file' => 'datetime:Y-m-d H:i:s',
'first_file' => 'datetime:Y-m-d H:i:s', ];
'last_file' => 'datetime:Y-m-d H:i:s',
];
}
protected $fillable = [ protected $fillable = [
'name', 'name',

View File

@ -7,23 +7,20 @@ use Illuminate\Support\Facades\Config;
class Job extends Model class Job extends Model
{ {
public $timestamps = false; public $timestamps = false;
protected function casts(): array protected $casts = [
{ 'payload' => 'array',
return [ 'reserved_at' => 'datetime',
'payload' => 'array', 'available_at' => 'datetime',
'reserved_at' => 'datetime', 'created_at' => 'datetime',
'available_at' => 'datetime', ];
'created_at' => 'datetime',
];
}
public function __construct(array $attributes=[]) public function __construct(array $attributes = [])
{ {
parent::__construct($attributes); parent::__construct($attributes);
$this->table = Config::get('queue.connections.' . (Config::get('queue.default', 'database')) . '.table', 'jobs'); $this->table = Config::get('queue.connections.' . (Config::get('queue.default', 'database')) . '.table', 'jobs');
} }
public function getDisplayNameAttribute() public function getDisplayNameAttribute()
{ {
@ -69,4 +66,4 @@ class Job extends Model
{ {
return unserialize($this->payload['data']['command']); return unserialize($this->payload['data']['command']);
} }
} }

View File

@ -34,19 +34,16 @@ final class Netmail extends Model implements Packet
'Via' => 'set_path', 'Via' => 'set_path',
]; ];
protected function casts(): array protected $casts = [
{ 'to' => UTF8StringOrNull::class,
return [ 'from' => UTF8StringOrNull::class,
'to' => UTF8StringOrNull::class, 'subject' => UTF8StringOrNull::class,
'from' => UTF8StringOrNull::class, 'datetime' => 'datetime:Y-m-d H:i:s',
'subject' => UTF8StringOrNull::class, 'kludges' => CollectionOrNull::class,
'datetime' => 'datetime:Y-m-d H:i:s', 'msg' => CompressedStringOrNull::class,
'kludges' => CollectionOrNull::class, 'msg_src' => CompressedStringOrNull::class,
'msg' => CompressedStringOrNull::class, 'sent_at' => 'datetime:Y-m-d H:i:s',
'msg_src' => CompressedStringOrNull::class, ];
'sent_at' => 'datetime:Y-m-d H:i:s',
];
}
public function __get($key) public function __get($key)
{ {

View File

@ -9,12 +9,9 @@ class Nodelist extends Model
{ {
use SoftDeletes; use SoftDeletes;
protected function casts(): array protected $casts = [
{ 'date' => 'datetime:Y-m-d H:i:s'
return [ ];
'date' => 'datetime:Y-m-d H:i:s'
];
}
protected $fillable = ['date','domain_id']; protected $fillable = ['date','domain_id'];

View File

@ -12,12 +12,9 @@ class Origin extends Model
public const UPDATED_AT = NULL; public const UPDATED_AT = NULL;
protected function casts(): array protected $casts = [
{ 'value' => UTF8StringOrNull::class,
return [ ];
'value' => UTF8StringOrNull::class,
];
}
public function complete(Address $o): string public function complete(Address $o): string
{ {

View File

@ -6,10 +6,7 @@ use Illuminate\Database\Eloquent\Relations\Pivot;
class ViaPivot extends Pivot class ViaPivot extends Pivot
{ {
protected function casts(): array protected $casts = [
{ 'datetime' => 'datetime',
return [ ];
'datetime' => 'datetime', }
];
}
}

View File

@ -35,13 +35,10 @@ class Setup extends Model
public const MAX_BATCH_FILES = 5; public const MAX_BATCH_FILES = 5;
public const MAX_MSGS_PKT = 50; public const MAX_MSGS_PKT = 50;
protected function casts(): array protected $casts = [
{ 'options' => 'array',
return [ 'servers' => 'array',
'options' => 'array', ];
'servers' => 'array',
];
}
/** /**
* @throws \Exception * @throws \Exception

View File

@ -17,12 +17,9 @@ class System extends Model
public const default = 'Discovered System'; public const default = 'Discovered System';
protected function casts(): array protected $casts = [
{ 'last_session' => 'datetime:Y-m-d H:i:s'
return [ ];
'last_session' => 'datetime:Y-m-d H:i:s'
];
}
/* STATIC */ /* STATIC */

View File

@ -12,12 +12,9 @@ class Tagline extends Model
public const UPDATED_AT = NULL; public const UPDATED_AT = NULL;
protected function casts(): array protected $casts = [
{ 'value' => UTF8StringOrNull::class,
return [ ];
'value' => UTF8StringOrNull::class,
];
}
public function complete(): string public function complete(): string
{ {

View File

@ -12,12 +12,9 @@ class Tearline extends Model
public const UPDATED_AT = NULL; public const UPDATED_AT = NULL;
protected function casts(): array protected $casts = [
{ 'value' => UTF8StringOrNull::class,
return [ ];
'value' => UTF8StringOrNull::class,
];
}
public function complete(): string public function complete(): string
{ {

View File

@ -53,16 +53,13 @@ class User extends Authenticatable implements MustVerifyEmail
/** /**
* The attributes that should be cast to native types. * The attributes that should be cast to native types.
* *
* @return array * @var array
*/ */
protected function casts(): array protected $casts = [
{ 'email_verified_at' => 'datetime',
return [ 'last_on' => 'datetime:Y-m-d H:i:s',
'email_verified_at' => 'datetime', 'passkey' => 'json',
'last_on' => 'datetime:Y-m-d H:i:s', ];
'passkey' => 'json',
];
}
/* RELATIONS */ /* RELATIONS */

1430
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -16,6 +16,8 @@
{{-- Scripts --}} {{-- Scripts --}}
@section('scripts') @section('scripts')
@include('layouts.partials.scripts') @include('layouts.partials.scripts')
@yield('page-scripts')
@show @show
</body> </body>
</html> </html>