Complete rework of packet parsing and packet generation
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
@php
|
||||
use App\Models\Netmail;
|
||||
use App\Classes\FTN\Message;
|
||||
@endphp
|
||||
|
||||
@extends('layouts.app')
|
||||
@section('htmlheader_title')
|
||||
Verify Packet
|
||||
@@ -82,7 +87,7 @@
|
||||
<div class="col-12">
|
||||
<h4 class="accordion-header">
|
||||
<span class="accordion-button" id="pktmsg" data-bs-toggle="collapse" data-bs-target="#collapse_msg_{{ $loop->parent->parent->index }}_{{ $loop->index }}" aria-expanded="false">
|
||||
@if($msg->isNetmail()) Netmail @else Echomail <strong>{{ $msg->echoarea }}</strong> @endif : {{ $msg->msgid }}
|
||||
@if($msg instanceof Netmail) Netmail @else Echomail <strong>{{ $msg->echoarea->name }}</strong> @endif : {{ $msg->msgid }}
|
||||
</span>
|
||||
</h4>
|
||||
|
||||
@@ -98,48 +103,40 @@
|
||||
|
||||
<div class="row pb-2">
|
||||
<div class="col-4">
|
||||
DATE: <strong class="highlight">{{ $msg->date }}</strong>
|
||||
DATE: <strong class="highlight">{{ $msg->datetime }}</strong>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
FLAGS: <strong class="highlight">{{ $msg->flags()->filter()->keys()->join(', ') }}</strong>
|
||||
FLAGS: <strong class="highlight">{{ $msg->flags()->keys()->join(', ') }}</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row pb-2">
|
||||
<div class="col-4">
|
||||
FROM: <strong class="highlight">{!! \App\Classes\FTN\Message::tr($msg->user_from) !!}</strong> (<strong class="highlight">{{ $msg->fftn }}</strong>)
|
||||
FROM: <strong class="highlight">{!! Message::tr($msg->from) !!}</strong> (<strong class="highlight">{{ $msg->fftn->ftn }}</strong>)
|
||||
</div>
|
||||
<div class="col-4">
|
||||
TO: <strong class="highlight">{!! \App\Classes\FTN\Message::tr($msg->user_to) !!}</strong>@if($msg->isNetmail()) (<strong class="highlight">{{ $msg->tftn }}</strong>) @endif
|
||||
TO: <strong class="highlight">{!! Message::tr($msg->to) !!}</strong>@if($msg instanceof Netmail) (<strong class="highlight">{{ $msg->tftn->ftn }}</strong>) @endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
SUBJECT: <strong class="highlight">{!! \App\Classes\FTN\Message::tr($msg->subject) !!}</strong>
|
||||
SUBJECT: <strong class="highlight">{!! Message::tr($msg->subject) !!}</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
<div class="pad pb-0">
|
||||
<pre class="highlight">{!! \App\Classes\FTN\Message::tr($msg->message).sprintf("\r * Origin: %s",$msg->origin) !!}</pre>
|
||||
<pre class="highlight">{!! Message::tr($msg->msg_src) !!}</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($msg->tagline)
|
||||
@if($msg instanceof Netmail)
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
TAGLINE: <br><strong class="highlight">{{ $msg->tagline }}</strong>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($msg->isNetmail())
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
VIA: <br><strong class="highlight">{!! $msg->via->join('</strong><br><strong class="highlight">') !!}</strong>
|
||||
VIA: <br><strong class="highlight">{!! $msg->path->join('</strong> -> <strong class="highlight">') !!}</strong>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
@@ -159,7 +156,7 @@
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
<strong>KLUDGES:</strong> <br>
|
||||
@foreach ($msg->kludge->sort(function($v,$k) { return $k; })->reverse() as $k => $v)
|
||||
@foreach ($msg->kludges->sort(function($v,$k) { return $k; })->reverse() as $k => $v)
|
||||
<strong class="highlight">{{ $k }}</strong> {{ $v }}<br>
|
||||
@endforeach
|
||||
</div>
|
||||
|
@@ -1,10 +1,11 @@
|
||||
@php
|
||||
use App\Classes\FTN\Message;
|
||||
use App\Models\{Echomail,Netmail};
|
||||
@endphp
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
TO: <strong class="highlight">{!! Message::tr($msg->to) !!}</strong> @if ($msg instanceof \App\Models\Netmail)(<strong class="highlight">{{ $msg->tftn->ftn }}</strong>)@endif
|
||||
TO: <strong class="highlight">{!! Message::tr($msg->to) !!}</strong> @if ($msg instanceof Netmail)(<strong class="highlight">{{ $msg->tftn->ftn }}</strong>)@endif
|
||||
</div>
|
||||
<div class="col-4">
|
||||
DATE: <strong class="highlight">{{ $msg->datetime->format('Y-m-d H:i:s') }}</strong>
|
||||
@@ -16,19 +17,30 @@ use App\Classes\FTN\Message;
|
||||
FROM: <strong class="highlight">{!! Message::tr($msg->from) !!}</strong> (<strong class="highlight">{{ $msg->fftn->ftn }}</strong>)
|
||||
</div>
|
||||
<div class="col-4">
|
||||
MSGID: <strong class="highlight">{{ $msg->msgid }}</strong>@if($x=\App\Models\Echomail::where('replyid',$msg->msgid)->count()) (<strong class="highlight">{{$x}}</strong> replies)@endif @if($msg->replyid)<br>REPLY: <strong class="highlight">{{ $msg->replyid }}</strong>@endif
|
||||
MSGID: <strong class="highlight">{{ $msg->msgid }}</strong>@if($x=Echomail::where('replyid',$msg->msgid)->count()) (<strong class="highlight">{{$x}}</strong> replies)@endif @if($msg->replyid)<br>REPLY: <strong class="highlight">{{ $msg->replyid }}</strong>@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row pt-1 pb-2">
|
||||
<div class="col-4">
|
||||
SUBJECT: <strong class="highlight">{!! Message::tr($msg->subject) !!}</strong>
|
||||
@if($msg->flags()->count())
|
||||
<div class="row pt-1">
|
||||
<div class="offset-4 col-8">
|
||||
FLAGS: <strong class="highlight">{!! $msg->flags()->keys()->map(fn($item)=>strtoupper($item))->join('</strong>, <strong class="highlight">') !!}</strong>
|
||||
</div>
|
||||
</div>
|
||||
@if ($msg instanceof \App\Models\Echomail)
|
||||
<div class="col-4">
|
||||
@endif
|
||||
|
||||
@if ($msg instanceof Echomail)
|
||||
<div class="row pt-1 pb-2">
|
||||
<div class="offset-4 col-4">
|
||||
ECHOAREA: <strong class="highlight">{{ $msg->echoarea->name }}</strong> (<strong class="highlight">{{ $msg->echoarea->domain->name }}</strong>)
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="row pt-1 pb-2">
|
||||
<div class="col-8">
|
||||
SUBJECT: <strong class="highlight">{!! Message::tr($msg->subject) !!}</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row pb-2">
|
||||
@@ -39,63 +51,63 @@ use App\Classes\FTN\Message;
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if ($msg instanceof \App\Models\Echomail)
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
KLUDGES: <br>
|
||||
@foreach($msg->kludges as $k=>$v)
|
||||
<strong class="highlight">{{ $k }}</strong> {{ $v }}<br>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if ($msg instanceof Echomail)
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
SEENBY: <br><strong class="highlight">{!! $msg->seenby->pluck('ftn2d')->join('</strong>, <strong class="highlight">') !!}</strong>
|
||||
</div>
|
||||
|
||||
@if ($msg->rogue_seenby->count())
|
||||
<br><small>[<strong>NOTE</strong>: Some seen-by values couldnt be identified - ({{ $msg->rogue_seenby->join(',') }})]</small>
|
||||
@if($msg->rogue_seenby->count())
|
||||
<br><small>[<strong>NOTE</strong>: Some seen-by values couldnt be identified - ({{ $msg->rogue_seenby->transform(fn($item)=>str_replace('0:','',$item))->join(',') }})]</small>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($msg->flags & Message::FLAG_LOCAL)
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
<strong class="highlight">Local message</strong>
|
||||
</div>
|
||||
<!-- @todo for the nodes we export to, highlight those that we have actually sent it, vs those that havent received it yet -->
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
PATH: <br><strong class="highlight">{!! $msg->pathorder()->join('</strong> -> <strong class="highlight">') !!}</strong>
|
||||
|
||||
@if(($msg instanceof Echomail) && $msg->rogue_path->count())
|
||||
<br><small>[<strong>NOTE</strong>: Some path values couldnt be identified - ({{ $msg->rogue_path->join(',') }})]</small>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@elseif ((! $msg->flags) || ($msg->flags & (Message::FLAG_INTRANSIT|Message::FLAG_RECD)))
|
||||
<!-- @todo for the nodes we export to, highlight those that we have actually sent it, vs those that havent received it yet -->
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
PATH: <br><strong class="highlight">{!! $msg->pathorder()->join('</strong> -> <strong class="highlight">') !!}</strong>
|
||||
|
||||
@if (($msg instanceof \App\Models\Echomail) && $msg->rogue_path->count())
|
||||
<br><small>[<strong>NOTE</strong>: Some path values couldnt be identified - ({{ $msg->rogue_path->join(',') }})]</small>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
@if($msg instanceof Netmail)
|
||||
RECEIVED:<br>
|
||||
@if ($msg instanceof \App\Models\Netmail)
|
||||
@foreach ($msg->received as $path)
|
||||
<strong class="highlight">{{ $path->pivot->recv_pkt }}</strong> from <strong class="highlight">{{ $path->ftn }}</strong> {{ $msg->created_at }}
|
||||
@endforeach
|
||||
@elseif ($msg instanceof \App\Models\Echomail)
|
||||
<strong class="highlight">{{ ($x=$msg->path->sortBy('pivot.parent_id')->last())->pivot->recv_pkt }}</strong> from <strong class="highlight">{{ $x->ftn }}</strong> {{ $x->pivot->recv_at }}
|
||||
@endif
|
||||
</div>
|
||||
@foreach ($msg->path as $path)
|
||||
<strong class="highlight">{{ $path->pivot->recv_pkt }}</strong> from <strong class="highlight">{{ $path->ftn }}</strong> {{ $msg->created_at }}
|
||||
@endforeach
|
||||
@elseif ($msg instanceof Echomail)
|
||||
RECEIVED:<br>
|
||||
<strong class="highlight">{{ ($x=$msg->path->sortBy('pivot.parent_id')->last())->pivot->recv_pkt }}</strong> from <strong class="highlight">{{ $x->ftn }}</strong> {{ $x->pivot->recv_at }}
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
<script type="text/javascript" src="{{ asset('ansilove/ansilove.js') }}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
var msg = new Uint8Array({!! json_encode(array_values(unpack('C*',str_replace("\r","\n",$msg->msg)))) !!});
|
||||
var msg = new Uint8Array({!! json_encode(array_values(unpack('C*',str_replace("\r","\n",$msg->content)))) !!});
|
||||
retina = window.devicePixelRatio > 1;
|
||||
|
||||
AnsiLove.renderBytes(
|
||||
msg,
|
||||
function (canvas, sauce) {
|
||||
console.log(canvas);
|
||||
document.getElementById("canvas").appendChild(canvas);
|
||||
},
|
||||
{'font': '80x25', 'bits': 8, 'icecolors': 0, 'columns': 80}
|
||||
|
Reference in New Issue
Block a user