Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs

This commit is contained in:
Bryan Ashby 2017-02-12 21:38:34 -07:00
commit 118ebb5bc4
1 changed files with 51 additions and 14 deletions

View File

@ -167,7 +167,7 @@ function FTNMessageScanTossModule() {
return dir; return dir;
}; };
this.getOutgoingPacketFileName = function(basePath, messageId, isTemp) { this.getOutgoingPacketFileName = function(basePath, messageId, isTemp, fileCase) {
// //
// Generating an outgoing packet file name comes with a few issues: // Generating an outgoing packet file name comes with a few issues:
// * We must use DOS 8.3 filenames due to legacy systems that receive // * We must use DOS 8.3 filenames due to legacy systems that receive
@ -185,12 +185,18 @@ function FTNMessageScanTossModule() {
// * We already have a system for 8-character serial number gernation that is // * We already have a system for 8-character serial number gernation that is
// used for e.g. in FTS-0009.001 MSGIDs... let's use that! // used for e.g. in FTS-0009.001 MSGIDs... let's use that!
// //
const name = ftnUtil.getMessageSerialNumber(messageId); const name = ftnUtil.getMessageSerialNumber(messageId);
const ext = (true === isTemp) ? 'pk_' : 'pkt'; const ext = (true === isTemp) ? 'pk_' : 'pkt';
return paths.join(basePath, `${name}.${ext}`);
let fileName = `${name}.${ext}`;
if('upper' === fileCase) {
fileName = fileName.toUpperCase();
}
return paths.join(basePath, fileName);
}; };
this.getOutgoingFlowFileExtension = function(destAddress, flowType, exportType) { this.getOutgoingFlowFileExtension = function(destAddress, flowType, exportType, fileCase) {
let ext; let ext;
switch(flowType) { switch(flowType) {
@ -200,13 +206,23 @@ function FTNMessageScanTossModule() {
case 'request' : ext = 'req'; break; case 'request' : ext = 'req'; break;
case 'requests' : ext = 'hrq'; break; case 'requests' : ext = 'hrq'; break;
} }
if('upper' === fileCase) {
ext = ext.toUpperCase();
}
return ext; return ext;
}; };
this.getOutgoingFlowFileName = function(basePath, destAddress, flowType, exportType) { this.getOutgoingFlowFileName = function(basePath, destAddress, flowType, exportType, fileCase) {
let basename; let basename;
const ext = self.getOutgoingFlowFileExtension(destAddress, flowType, exportType);
const ext = self.getOutgoingFlowFileExtension(
destAddress,
flowType,
exportType,
fileCase
);
if(destAddress.point) { if(destAddress.point) {
@ -219,6 +235,10 @@ function FTNMessageScanTossModule() {
`0000${destAddress.net.toString(16)}`.substr(-4) + `0000${destAddress.net.toString(16)}`.substr(-4) +
`0000${destAddress.node.toString(16)}`.substr(-4); `0000${destAddress.node.toString(16)}`.substr(-4);
} }
if('upper' === fileCase) {
basename = basename.toUpperCase();
}
return paths.join(basePath, `${basename}.${ext}`); return paths.join(basePath, `${basename}.${ext}`);
}; };
@ -549,7 +569,13 @@ function FTNMessageScanTossModule() {
packetHeader.password = exportOpts.nodeConfig.packetPassword || ''; packetHeader.password = exportOpts.nodeConfig.packetPassword || '';
// use current message ID for filename seed // use current message ID for filename seed
const pktFileName = self.getOutgoingPacketFileName(self.exportTempDir, message.messageId, createTempPacket); const pktFileName = self.getOutgoingPacketFileName(
self.exportTempDir,
message.messageId,
createTempPacket,
exportOpts.fileCase
);
exportedFiles.push(pktFileName); exportedFiles.push(pktFileName);
ws = fs.createWriteStream(pktFileName); ws = fs.createWriteStream(pktFileName);
@ -629,7 +655,13 @@ function FTNMessageScanTossModule() {
packetHeader.password = exportOpts.nodeConfig.packetPassword || ''; packetHeader.password = exportOpts.nodeConfig.packetPassword || '';
// use current message ID for filename seed // use current message ID for filename seed
const pktFileName = self.getOutgoingPacketFileName(self.exportTempDir, remainMessageId, createTempPacket); const pktFileName = self.getOutgoingPacketFileName(
self.exportTempDir,
remainMessageId,
createTempPacket,
exportOpts.filleCase
);
exportedFiles.push(pktFileName); exportedFiles.push(pktFileName);
ws = fs.createWriteStream(pktFileName); ws = fs.createWriteStream(pktFileName);
@ -666,6 +698,7 @@ function FTNMessageScanTossModule() {
network : Config.messageNetworks.ftn.networks[areaConfig.network], network : Config.messageNetworks.ftn.networks[areaConfig.network],
destAddress : Address.fromString(uplink), destAddress : Address.fromString(uplink),
networkName : areaConfig.network, networkName : areaConfig.network,
fileCase : self.moduleConfig.nodes[nodeConfigKey].fileCase || 'lower',
}; };
if(_.isString(exportOpts.network.localAddress)) { if(_.isString(exportOpts.network.localAddress)) {
@ -717,19 +750,21 @@ function FTNMessageScanTossModule() {
function moveFilesToOutgoing(exportedFileNames, callback) { function moveFilesToOutgoing(exportedFileNames, callback) {
async.each(exportedFileNames, (oldPath, nextFile) => { async.each(exportedFileNames, (oldPath, nextFile) => {
const ext = paths.extname(oldPath).toLowerCase(); const ext = paths.extname(oldPath).toLowerCase();
if('.pk_' === ext) { if('.pk_' === ext.toLowerCase()) {
// //
// For a given temporary .pk_ file, we need to move it to the outoing // For a given temporary .pk_ file, we need to move it to the outoing
// directory with the appropriate BSO style filename. // directory with the appropriate BSO style filename.
// //
const ext = self.getOutgoingFlowFileExtension( const newExt = self.getOutgoingFlowFileExtension(
exportOpts.destAddress, exportOpts.destAddress,
'mail', 'mail',
exportType); exportType,
exportOpts.fileCase
);
const newPath = paths.join( const newPath = paths.join(
outgoingDir, outgoingDir,
`${paths.basename(oldPath, 'pk_')}${ext}`); `${paths.basename(oldPath, ext)}${newExt}`);
fse.move(oldPath, newPath, nextFile); fse.move(oldPath, newPath, nextFile);
} else { } else {
@ -750,7 +785,9 @@ function FTNMessageScanTossModule() {
outgoingDir, outgoingDir,
exportOpts.destAddress, exportOpts.destAddress,
'ref', 'ref',
exportType); exportType,
exportOpts.fileCase
);
// directive of '^' = delete file after transfer // directive of '^' = delete file after transfer
self.flowFileAppendRefs(flowFilePath, [ newPath ], '^', err => { self.flowFileAppendRefs(flowFilePath, [ newPath ], '^', err => {