ipselect IPSELECT filters messages for specific destinations according to criteria set out in various parameter files. These selections can be made on any combination of FIP header fields and/or text strings in the data. In order to make its selection, whole wire service feeds are sent to the select input queue where this program receives them. Only a single copy will be sent to a destination even though several criteria lines may be met. The selection criteria files are held in tables/select and have the format : 1. Main file : tables/select/MAIN_SELECTION This file detects the source of the incoming message and gets the relevant Selection file. Syntax : ; comment source: (SU) (tab) file: (selection file) [opt (tab) ; comment ] (nl) ie source:RNS file:RNS_BIGCUSTOMER ; single complicated client source:RNS file:RNS_SMALLNO2 ; single simple client source:XTA file:XTA_EVERYONE ; all clients for a single src extra-fiphdr: (extra FipHdr info to add to each output file) Note there is an internal FipHdr field (Z9) which has the filename in for tracking purposes. ; add Z9 field at the end of the HK fiphdr. eg extra-fiphdr:HK:\HK (\Z9) 2. Selection Files : (also in /tables/select) There can be either : one selection file for all selections/all sources or a selection file per source or a selection file per client or a selection file per client per source or a mixture of these depending on the size and complexity of all the selections. The format of the selection file is : ; comment (hdr field) = string [opt (tab) & (hdr) = string ...] (tab) >dest (nl) (hdr field) = string [opt (tab) | (hdr) = string ...] (tab) >dest (nl) where Each selection is on a single line. If necessary, multiple conditions can be specified with the '&' to AND them or '|' to OR them. The operation equal, '=', can also be NOT equal '!='. Source Header fields (in SH) are preceeded by X, ie XC for category. A '*' is used a wild card string; a '?' is single wild card chr. To search for a string/chr embedded somewhere in a field, uses a '*' before and after. If embedded spaces are needed in the string-to-be-searched, use an '*'. Note that the search string is case_insensitive. Dest must be a valid destination in the tables/sys/USERS file. Both the selection file and the main file are scanned completely, so that one file may be sent to none, one or several destinations according to the same or different criteriae. ie ; Sports copy to Tranmere Rovers FC. XC=S* & XK=*Football* >tranmere EP=TAR. >tarmac RD=*Broken_Hill* >bhp $$=*Cariba* | $$=*Kataga* >fubble For Free text search - use '$$' as the pseudo header string. No embedded spaces are allowed for free text. Note that this version will only scan the first 64k of text. The maximun number of new destinations from a single input file is 100. Duplicate files are NOT sent to a single destination from a single file - so if it matches any number of times, only one copy is sent. Input parameters are (all optional) : -t : scan time for directory default: 5 secs -i/-q : queue to scan default: spool/select -o : output queue default: spool/2go -O : output queue for delayed items default: spool/delay -D : done queue for storing input files default: deleted -l : do NOT log every incoming file default: log each found item -m : main selection file in tables/select default: MAIN_SELECTION -d : delay selection file in tables/select default: none -n : nice number there default: reduce by 5 -S : send ALL copies default: send once Normally only one copy is sent per destination; use this to send as many times as there are selections -v : display version number and exit. Version Control ;008j1 17jul98 added -o/-O and logging by default.. .. first go at WINNT .. maximum number of destinations is now 100 ;a 29jul98 zap FipHdr fields to zap XZ etc ;b 13dec02 added -D done queue ;c-d 23jan03 bugette in search only 2 items checked ;e-f 11aug03 bug -m not working - does now ;g 04sep03 added extraFipHdr and widgets ;h-i 24sep04 speedy ;j1 16aug06 added timing-stats (copyright) 2018 and previous years FingerPost Ltd.