More UTF8 message processing fixes, specifically related to tagline/tearline/origin processing
This commit is contained in:
@@ -35,9 +35,6 @@ final class Echomail extends Model implements Packet
|
||||
'to' => UTF8StringOrNull::class,
|
||||
'from' => UTF8StringOrNull::class,
|
||||
'subject' => UTF8StringOrNull::class,
|
||||
'origin' => UTF8StringOrNull::class,
|
||||
'tearline' => UTF8StringOrNull::class,
|
||||
'tagline' => UTF8StringOrNull::class,
|
||||
'datetime' => 'datetime:Y-m-d H:i:s',
|
||||
'kludges' => CollectionOrNull::class,
|
||||
'msg' => CompressedStringOrNull::class,
|
||||
@@ -123,18 +120,46 @@ final class Echomail extends Model implements Packet
|
||||
if (isset($model->errors) && $model->errors->count())
|
||||
throw new \Exception('Cannot save, validation errors exist');
|
||||
|
||||
if ($model->set->has('set_tagline'))
|
||||
$model->tagline_id = Tagline::firstOrCreate(['value'=>$model->set_tagline])->id;
|
||||
if ($model->set->has('set_tagline')) {
|
||||
$x = Tagline::where('value',utf8_encode($model->set_tagline))->single();
|
||||
|
||||
if ($model->set->has('set_tearline'))
|
||||
$model->tearline_id = Tearline::firstOrCreate(['value'=>$model->set_tearline])->id;
|
||||
if (! $x) {
|
||||
$x = new Tagline;
|
||||
$x->value = $model->set_tagline;
|
||||
$x->save();
|
||||
}
|
||||
|
||||
$model->tagline_id = $x->id;
|
||||
}
|
||||
|
||||
if ($model->set->has('set_tearline')) {
|
||||
$x = Tearline::where('value',utf8_encode($model->set_tearline))->single();
|
||||
|
||||
if (! $x) {
|
||||
$x = new Tearline;
|
||||
$x->value = $model->set_tearline;
|
||||
$x->save();
|
||||
}
|
||||
|
||||
$model->tearline_id = $x->id;
|
||||
}
|
||||
|
||||
if ($model->set->has('set_origin')) {
|
||||
// Make sure our origin contains our FTN
|
||||
$m = [];
|
||||
if ((preg_match('#^(.*)\s+\(([0-9]+:[0-9]+/[0-9]+.*)\)+\s*$#',$model->set_origin,$m))
|
||||
&& (Address::findFTN(sprintf('%s@%s',$m[2],$model->fftn->domain->name))?->id === $model->fftn_id))
|
||||
$model->origin_id = Origin::firstOrCreate(['value'=>$m[1]])->id;
|
||||
{
|
||||
$x = Origin::where('value',utf8_encode($m[1]))->single();
|
||||
|
||||
if (! $x) {
|
||||
$x = new Origin;
|
||||
$x->value = $m[1];
|
||||
$x->save();
|
||||
}
|
||||
|
||||
$model->origin_id = $x->id;
|
||||
}
|
||||
}
|
||||
|
||||
// If we can rebuild the message content, then we can do away with msg_src
|
||||
|
Reference in New Issue
Block a user