Changed nodelist import processing since we have a DB contraint on mailer address and port
This commit is contained in:
parent
6b8704b1cf
commit
12f9ee1960
@ -54,6 +54,7 @@ class EchoareaImport implements ShouldQueue
|
|||||||
{
|
{
|
||||||
// Get the file from the host
|
// Get the file from the host
|
||||||
$file = $this->getFileFromHost('',self::importkey,$this->file);
|
$file = $this->getFileFromHost('',self::importkey,$this->file);
|
||||||
|
Log::debug(sprintf('%s:Loading file [%s] (%s).',static::LOGKEY,$file,getcwd()));
|
||||||
$lines = $this->getFileLines($file);
|
$lines = $this->getFileLines($file);
|
||||||
Log::debug(sprintf('%s:Processing [%d] lines.',static::LOGKEY,$lines));
|
Log::debug(sprintf('%s:Processing [%d] lines.',static::LOGKEY,$lines));
|
||||||
|
|
||||||
|
@ -54,6 +54,7 @@ class NodelistImport implements ShouldQueue
|
|||||||
|
|
||||||
// Get the file from the host
|
// Get the file from the host
|
||||||
$file = $this->getFileFromHost('',self::importkey,$this->file);
|
$file = $this->getFileFromHost('',self::importkey,$this->file);
|
||||||
|
Log::debug(sprintf('%s:Loading file [%s] (%s).',static::LOGKEY,$file,getcwd()));
|
||||||
$lines = $this->getFileLines($file);
|
$lines = $this->getFileLines($file);
|
||||||
Log::debug(sprintf('%s:Processing [%d] lines.',static::LOGKEY,$lines));
|
Log::debug(sprintf('%s:Processing [%d] lines.',static::LOGKEY,$lines));
|
||||||
|
|
||||||
@ -81,7 +82,7 @@ class NodelistImport implements ShouldQueue
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::debug(sprintf('%s:Importing nodelist for [%s] dated [%s] lines.',static::LOGKEY,$do->name,$date->format('Y-m-d')));
|
Log::debug(sprintf('%s:Importing nodelist for [%s] dated [%s].',static::LOGKEY,$do->name,$date->format('Y-m-d')));
|
||||||
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
$no = Nodelist::firstOrCreate(['date'=>$date,'domain_id'=>$do->id]);
|
$no = Nodelist::firstOrCreate(['date'=>$date,'domain_id'=>$do->id]);
|
||||||
@ -212,56 +213,6 @@ class NodelistImport implements ShouldQueue
|
|||||||
$sysop = trim(str_replace('_',' ',$fields[4]));
|
$sysop = trim(str_replace('_',' ',$fields[4]));
|
||||||
$system = trim(str_replace('_',' ',$fields[2]));
|
$system = trim(str_replace('_',' ',$fields[2]));
|
||||||
|
|
||||||
// Get the System
|
|
||||||
if ($ao->system_id && (($ao->system->sysop === $sysop) || ($ao->system->name === $system))) {
|
|
||||||
$so = $ao->system;
|
|
||||||
|
|
||||||
// Dont change the system details if a user exists here, or its us
|
|
||||||
if ((! $so->users->count()) && ($so->id != $us->system_id)) {
|
|
||||||
// If the sysop name is different
|
|
||||||
if ($so->sysop !== $sysop) {
|
|
||||||
Log::debug(sprintf('%s:Sysop Name changed for BBS [%s:%s] from [%s] to [%s]',
|
|
||||||
self::LOGKEY,$so->id,$so->name,$so->sysop,$sysop));
|
|
||||||
|
|
||||||
$so->sysop = $sysop;
|
|
||||||
|
|
||||||
// We have the same name has changed.
|
|
||||||
} elseif ($so->name !== $system) {
|
|
||||||
Log::debug(sprintf('%s:System Name changed for BBS [%s:%s] to [%s]',
|
|
||||||
self::LOGKEY,$so->id,$so->name,$system));
|
|
||||||
|
|
||||||
$so->name = $system;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// We'll search and see if we already have that system
|
|
||||||
} else {
|
|
||||||
$so = System::where('name',$system)
|
|
||||||
->where('sysop',$sysop)
|
|
||||||
->firstOrNew();
|
|
||||||
|
|
||||||
if ($so->exists)
|
|
||||||
Log::debug(sprintf('%s:Linking address [%d:%d/%d] to [%s:%s]',self::LOGKEY,$zo->zone_id,$ao->host_id,$ao->node_id,$so->id,$so->name));
|
|
||||||
else
|
|
||||||
Log::debug(sprintf('%s:New System [%s] with address [%d:%d/%d]',self::LOGKEY,$system,$zo->zone_id,$ao->host_id,$ao->node_id));
|
|
||||||
|
|
||||||
$so->name = $system;
|
|
||||||
$so->sysop = $sysop;
|
|
||||||
$so->active = TRUE;
|
|
||||||
|
|
||||||
if (! $so->exists)
|
|
||||||
$so->notes = sprintf('Created by Nodelist Import: %d',$no->id);
|
|
||||||
}
|
|
||||||
|
|
||||||
$so->phone = $fields[5] != '-Unpublished-' ? $fields[5] : NULL;
|
|
||||||
$so->location = trim(str_replace('_',' ',$fields[3]));
|
|
||||||
/*
|
|
||||||
if (! in_array($fields[5],['-Unpublished-']))
|
|
||||||
$so->phone = $fields[5];
|
|
||||||
|
|
||||||
$so->baud = $fields[6];
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Flags
|
// Flags
|
||||||
$method = NULL;
|
$method = NULL;
|
||||||
$address = '';
|
$address = '';
|
||||||
@ -318,13 +269,69 @@ class NodelistImport implements ShouldQueue
|
|||||||
Log::debug(sprintf('%s: - Not configured to handle flag [%s]',self::LOGKEY,$x->first()));
|
Log::debug(sprintf('%s: - Not configured to handle flag [%s]',self::LOGKEY,$x->first()));
|
||||||
continue 2;
|
continue 2;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the System
|
||||||
|
if ($ao->system_id && (($ao->system->sysop === $sysop) || ($ao->system->name === $system))) {
|
||||||
|
$so = $ao->system;
|
||||||
|
|
||||||
|
// Dont change the system details if a user exists here, or its us
|
||||||
|
if ((! $so->users->count()) && ($so->id != $us->system_id)) {
|
||||||
|
// If the sysop name is different
|
||||||
|
if ($so->sysop !== $sysop) {
|
||||||
|
Log::debug(sprintf('%s:Sysop Name changed for BBS [%s:%s] from [%s] to [%s]',
|
||||||
|
self::LOGKEY,$so->id,$so->name,$so->sysop,$sysop));
|
||||||
|
|
||||||
|
$so->sysop = $sysop;
|
||||||
|
|
||||||
|
// We have the same name has changed.
|
||||||
|
} elseif ($so->name !== $system) {
|
||||||
|
Log::debug(sprintf('%s:System Name changed for BBS [%s:%s] to [%s]',
|
||||||
|
self::LOGKEY,$so->id,$so->name,$system));
|
||||||
|
|
||||||
|
$so->name = $system;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// We'll search and see if we already have that system
|
||||||
|
} else {
|
||||||
|
$so = System::where(function ($q) use ($system,$sysop) {
|
||||||
|
return $q->where('name',$system)
|
||||||
|
->where('sysop',$sysop);
|
||||||
|
})
|
||||||
|
->orWhere(function ($q) use ($address,$port) {
|
||||||
|
return $q->where('mailer_address',$address)
|
||||||
|
->where('mailer_port',$port);
|
||||||
|
})
|
||||||
|
->firstOrNew();
|
||||||
|
|
||||||
|
if ($so->exists)
|
||||||
|
Log::debug(sprintf('%s:Linking address [%d:%d/%d] to [%s:%s]',self::LOGKEY,$zo->zone_id,$ao->host_id,$ao->node_id,$so->id,$so->name));
|
||||||
|
else
|
||||||
|
Log::debug(sprintf('%s:New System [%s] with address [%d:%d/%d]',self::LOGKEY,$system,$zo->zone_id,$ao->host_id,$ao->node_id));
|
||||||
|
|
||||||
|
$so->name = $system;
|
||||||
|
$so->sysop = $sysop;
|
||||||
|
$so->active = TRUE;
|
||||||
|
|
||||||
|
if (! $so->exists)
|
||||||
|
$so->notes = sprintf('Created by Nodelist Import: %d',$no->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
$so->phone = $fields[5] != '-Unpublished-' ? $fields[5] : NULL;
|
||||||
|
$so->location = trim(str_replace('_',' ',$fields[3]));
|
||||||
|
/*
|
||||||
|
if (! in_array($fields[5],['-Unpublished-']))
|
||||||
|
$so->phone = $fields[5];
|
||||||
|
|
||||||
|
$so->baud = $fields[6];
|
||||||
|
*/
|
||||||
|
|
||||||
if ($method && ($ao->role != DomainController::NODE_PVT)) {
|
if ($method && ($ao->role != DomainController::NODE_PVT)) {
|
||||||
$so->mailer_type = $method;
|
$so->mailer_type = $method;
|
||||||
$so->mailer_address = $address;
|
$so->mailer_address = $address;
|
||||||
$so->mailer_port = $port;
|
$so->mailer_port = $port;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Save the system record
|
// Save the system record
|
||||||
$so->save();
|
$so->save();
|
||||||
|
Loading…
Reference in New Issue
Block a user