ipxadora This program takes output files from MediaSystems Adora system and builds a queue structure containing all the files suitable for a pulse database to gather. In order to process the file correctly, there is a ROUTING code either in the FipHdr OR as a Tag in the data PLUS an (optional) FORMAT code for the name of a parameter file to use. For ROUTING FipHdr QR or Tag <ROUTING> in the <START> section For FORMAT FipHdr QF or Tag <FORMAT> in the <START> section Valid ROUTINGs are CLASSLINKER - create a PCS ClassLinker structure PULSE - create individual Pulse files and send to spool/2ftp with FipHdr SINGLE - create single file per ad and add FipHdr plus DU:(fip-dest) and send to spool/2go ALL - create one file for all ads and add FipHdr plus DU:(fip-dest) and send to spool/2go The FORMAT code is use as the name of the parameter file in tables/setup and, if not there, defaults to the ROUTING code. The program first goes and gets its parameter file : tables/setup/XADORA.(Format Code) eg tables/setup/XADORA.PULSE for Pulse files. The format of this file is : ; comment line toptag: XML tag which is the wrapper around a single ad Do not specify the '<>/' chrs. default: FIP-ADORA-DATA datatag: Tag signifying that Screen data follows Do not specify the '<>/' chrs. default: DATA convert-adtype: convert-style: AdTypes/Styles which need to be converted. (these two are exactly the same thing) There are normally several adtypes each specified on its own line convert-style:"Complete Text T" break:<$f"HelveticaNeue-Condensed"> Sub parameters are ( all optional): start: (Markup to insert at the top of the data) end: (Markup to insert after the data) break: (Markup to insert when a BREAK code is found) pub: (Pub code) The 'pub:(pub code)' is used to specify the markup for a particular publication code. Where there are multiple lines for the same Style, always specify the 'pub' lines before the default. Pub code refers to the <PUBCODE> tag. ignore-adtype: Adtype/Style to ignore for this Route. ignore-style: Adtype/Style to ignore for this Route. xml-format: XML character format/style/name to be converted. justif-format: Format name to be converted. Sub parameters are the same a 'convert-style' Any formats NOT specified are just ignored. xml-font-change: XML font change from default for style default: change is ignored xml-font-change:"Euro Sans" "<$f42Euro Sans 3342>" xml-leading-change:(FipSeq) Quark and other page makeup can change leading using in-line markup Use this for mapping changes - the new value is in FipHdr field E0 xml-leading-change:<*p(0,0,0,E0,0,0,g,"International English")> extra-fiphdr: Extra FipHdr information for output files Used only for Types - PULSE and FIP default: none pulse-epsf-fiphdr: FipHdr fields for pulse epsf and text pulse-text-fiphdr: These default to the adding a 'DF' FipHDr field which is used to select the FTP parameter file for that type. defaults are pulse-epsf-fiphdr:#DF:PULSE.EPSF pulse-text-fiphdr:#DF:PULSE.TEXT use-old-urn: If there is an Old URN, use that rather than the current. fiphdr-routing-field: FipHdr field containing the routing code if not QR eg fiphdr-routing-field:DU classlinker-ignore-subclass: Ignore the Subclass for ClassLinker pulse-path: cl-path: cl-ftp-path: fip-output-path: hires-path: Main data path for the High Resolution data files default is /home/ds/lithos/highres map-drive: Map a PC drive letter to a Unix Path default for all is the 'data-path' syntax - map-drive:(drive letter) (spaces/tab) (UnixPath) eg map-drive:K /home/ds/bigdisk/low-availability force-case:nochg/upper/lower Force the case of all Header fields - URN, PUB etc. default is no-change. image:(name) magic:(magic) script:(script) Define an external script to be used for converting non-epsf hires files. See example below for the two types of TIFF. allow-top-spaces: Normally for all preceding spaces and blank lines are stripped from the top of the converted file. This preserves spaces etc. justif-file-before: Markup and other data to insert BEFORE any data in the output file. justif-before: Markup and other data to insert BEFORE any data in the output file. justif-after: Markup and other data to insert AFTER any data in the output file. justif-file-after: Markup and other data to insert AFTER any data in the output file. justif-format-start: justif-format-end: The 2 chrs which start and stop a format default is justif-format-start:xD1 justif-format-end:xD2 justif-meta: Meta chr for formats chr default:{ justif-break: Break Code chr default:320 (hex D0) justif-comment-start: justif-comment-end: justif-comment-end2: The 2 chrs which start and stop a comment default is justif-comment-start:xEE justif-comment-end:xEF justif-comment-end2:xED justif-hide-start: justif-hide-end: The 2 chrs which start and stop hidden text default is justif-hide-start:xFD justif-hide-end:xFE xml-chr: justif-chr: Replacement chr or string for a specific chr in the data. You will need to check 'Justif Manager' for the codes used on your system. This is used only for special chrs. Functions are covered by the other parameters. Generally only accented chrs and Pi's will need to be mapped. Both chr and string are in FipSeq and will be parsed. eg justif-chr:xDB <$f$BI> justif-chr:xE0 r justif-chr:@ <\@> For xml entities, use e9999 or uAAAA to specify big numbers e is a 4 digit DECIMAL number u is a 4 digit HEX number These two give exactly the same result : xml-chr:e8364 (EURO) xml-chr:u20ac (EURO) Remeber that both these take 4 digit numbers - so zero pad pls. xml-chr:e0732 ^ default-xml-chr:s If a high end (ie not latin1 and > decimal 255) entity is not specified in the 'xml-chr' parameters, use this to force the chr to a single default chr. default is '?' justif-end-of-line: Used to replace the CR in the data. default is <\n> An optional 'pub:' parameter may be added for those Pubs which need a different eoln. These should be specified BEFORE the default/catch-all-the-others. eg ; End of line - for Adsmart we just want the Space justif-end-of-line:s pub:AD justif-end-of-line:<\n> want-quark-quads:no/yes/left/right/centre/justified use the <*J> etc commands at the beginning of the line (ie not at the end where Justif has them) no - do NOT output the command at start of each line (default) yes - do and start with setting as quad Left left - do and start with setting as quad Left right - do and start with setting as quad Right center - do and start with setting as quad Centre justified - do and start with setting as quad Justified force - do and start with setting as quad ForceJustified (only the first letter is crucial) justif-qc:C Quark code for a justif Quad Centre - xE0 justif-qr:R Quark code for a justif Quad Right - xE1 justif-ql:L Quark code for a justif Quad Left - xE2 justif-qj:J Quark code for a justif Quad Justif/Middle - xE4 Single Justif chrs for Quark Quads, These are flagged if want-quark-quads:yes To make the Justif QL be a Quark *J, justif-QL:J res-fork-software: EtherShare, Ushare, None default is ethershare res-fork-path: Offset to the resource fork default is /.rsrc res-fork-type-epsf: 4 letter code for the EPSF type default: 'EPSF' res-fork-type-text: 4 letter code for the TEXT type default: 'TEXT' res-fork-creator: 4 letter code for the creator default: 'FIPO' ignore-first-eoln: (pub) Make the first end of line a space for this pub.. strip-multiple-spaces: Used to do just that ! ftp-classlinker: Send all ClassLinker files to spool/2ftp and do NOT build a normal Classlinker file structure default is NO send-classlinker-log:yes/no if FTPing Classlinker files, use this to NOT bother with the log default is YES if 'ftp-classlinker' has been set. cl-urn-size: pulse-urn-size: fip-urn-size: Change the size of the URN - defaults to 6 new-urn: FipSeq to alter the URN eg to add a leading zero new-urn:0QX xml-hyphen: (FipSeq) Replacement text for a hyphen for the XML feed (ie NOT Justif) default is '-' For quark, pls remember to double any backies : xml-hyphen:<\-> xml-bold xml-end-bold xml-underline xml-end-underline xml-italic xml-end-italic xml-default-leading:8 for 8pts ClassLinker normally writes it data files to a structure on its local drive. If this happens to be on another system - NFS drives for example - it is a good idea to check that drive is actually mounted beforehand. A parameter file keyword, 'chkexists' can be used to check whether a specified file or queue exists before the input queue is scavenged (or output written). As filenames starting with a dot are ignored, one way to implement this is to touch a file in this input queue. eg : cd /mountedOnRemote/spool/input touch .DontZapMePls While in the parameter file we could have something like : chkexists:/mountedOnRemote/spool/input/.DontZapMePls Or if the classlinker-path is /tweedle/dum chkexists:Tester will look for a file or folder called '/tweedle/dum/Tester' Input parameters are (all optional) : -1 : (path/filename) run this single file and stop default: spooled -C : do NOT check EPSFs for embedded low res default: do -d : done queue for incoming default: none -e : extra suffix for Parameter files default: none ie -e DTI and the ROUTING is FREEAD uses XADORA.FREEAD.DTI not XADORA.FREEAD do not specify the '.' This suffix is also added to any DF: for ftp files. -i : input queue to scan default: spool/xadora -l : do NOT log incoming files default: log files -L : log ALL incidents plus files default: log files -O : Check File/Queue name for output default: none see above If the path starts with a '/', it is considered a hard path otherwise it is considered relative to the output queue. -w : file wait interval default: 5 secs -x : debugging - show XML tags default: no use only with the -1 single file option -X : debugging - show XML tags and stop.default: no use only with the -1 single file option -z : name of parameter file default: XADORA in tables/setup if not default -v : print version no and exit ------------------------------- XML version ----------- xml.a - formats/styles Note that the CHARACTER styles/formats are decoded using 'xml-format' So if the ; CharacterFormats xml-format:"Ad Text" start:"<$f42Helvetica 45 Light42>" xml-format:"Ad Bold" start:"<$f42Helvetica 55 Roman42>" ; Fractions are shrunk! xml-format:"Fraction" start:"<$f42Helvetica Fraction42h90" xml-format:"Ad Reference Number" start:"<$f42Helvetica 45 Light42>" xml-format:"Euro Symbol" start:<$f42Euro Sans42>" xml.b fonts - changing within a style use xml-font-change where the charstyle stays the same but the font changes xml-font-change:"Euro Sans" start:<$f42Euro Sans42>" on changing back, the full format is used as in 'xml-format' xml.c - Watch out for high number entities/chrs ; <!ENTITY ensp " "> <!-- en space, U+2002 ISOpub --> ; <!ENTITY emsp " "> <!-- em space, U+2003 ISOpub --> ; <!ENTITY thinsp " "> <!-- thin space, U+2009 ISOpub --> ; <!ENTITY ndash "–"> <!-- en dash, U+2013 ISOpub --> ; <!ENTITY mdash "—"> <!-- em dash, U+2014 ISOpub --> ; <!ENTITY euro "€"> <!-- euro sign, U+20AC NEW --> xml-chr:e8194 <\s> xml-chr:e8195 <\s><\s> xml-chr:e8201 <\p> xml-chr:e8211 - xml-chr:e8212 <\m> ;;xml-chr:u20ac EURO xml.d mapping bold, italic, underline and hyphens xml-hyphen:<\-> default is '-' xml-bold: default is '<b>' xml-underline: default is '<u>' xml-italic: default is '<i>' xml-end-bold: xml-end-underline: xml-end-italic: all these default to '<$>' ------------------------------- -- Example of converting TIFFs to EPSF using image alchemy ; What convertions do we want to do (double quotes to keep the spaces) image:tiffII magic:"II*00" script:"/usr/forum/bin/alchemy QN QN.eps -Q -o -e --." image:tiffMM magic:"MM00*" script:"/usr/forum/bin/alchemy QN QN.eps -Q -o -e --." The script MUST generate a file in spool/epsf with the same filename as the input with an Extra extension of '.eps'. Note that FipHdr fields available for 'image': QF - (optional) input parameter giving Format file - WEB for XADORA.WEB QR - (optional) input parameter giving Routing - PULSE, CLASSLINKER, etc QN - Full Path and Filename of the input file to be converted SN - name of the input file to the this program ------------------------------- Example of input Data. The Stored procedure produces an XML feed with three types of main tags START - giving the parameters chosen. FIP-ADORA-DATA - structure for each Ad EXIT - stating number of ads processed and exit code. <?xml version="1.0" standalone="yes" ?> <START> <FORMAT>TEST <ROUTING>PULSE <START-PUBDATE>11-may-1999 <START-PUB>du </START> <FIP-ADORA-DATA> <FIP-NO/>1 <PUBDATE/>18-May-1999 <PUB/>Canterbury Extra <SECTION/>BMD <CLASS/>90 <CLASSKEY/>90 <SUBCLASS/>9004 <URN/>0007HU0001 <ADTYPE/>Space Booking P <OLDURN/> <PUBCODE/>du <MATERIAL/>9944 <MATVER/>0 <DATA> }QzRb Qse0,30m bd,%0RQse9,1RQu45Rp~nADTo jumble sale at the old school house in Folkes nADTo}yQse9,0RQif %s ne 0Rb ohich; is great value, hon> QfiRQbfR~</FIP-ADORA-DATA>| .... etc etc <EXIT> <NO-OF-ADS>98 <EXIT-STATUS>NormalEnd.Sqlstatus=2 </EXIT> ------------------------------- FipHdr fields for PULSE and FIP/SINGLE The following FipHdr fields are added to each indvidual Ad file created for both Pulse and/or Fip routings : QT AdType QP PubCode QD InsertDate QE InsertDate as CCYYMMDD QC Class QK ClassKey QS SubClass QO oldURN QN URN QH Hires QX full adinsert URN with insertion sequence no QM Material QV Matver QB 1000000 - Material number QY 1000000 - Matver number QW OutputType - TEXT or EPSF any ad which has a ad-type or style specified in by 'convert-adtype:' or 'convert-style:' is TEXT; all others are EPSF (QL is used for FTPing the ClassLinker Log) (QF is used for FTPing the ClassLinker data resource fork folder name) (QZ is used for FTPing the ClassLinker data type folder name EpsfFiles or QuarkText) Also remember QF and QR are FORMAT and ROUTING -- For the XML variant, QJ is used as the Vertical in points when floating the ad vertically (only for the top and tail) (if Centred - QJ is half the difference) Q1 is the total depth (<Height100mm> in points) Q2 is the total width (<Width100mm> in points) Q3 is same as QJ BUT is NOT present/blank if < 2pts (2pts is the min ptsize in quark6.5) Q4 is same as QJ BUT is minimum 3pts QL is used as the Horizontal in points when floating the ad vertically (only for the top and tail) (if Centred - QL is half the difference) ; Q0 is an option on Q3 which is ONLY there if > 2pts option:Q0 Q3 Version Control ;003r4 31mar06 Adora XML version ;a-h XML ;i 20sep06 bugette trailing spaces removed in xml-chr too early ;j-l 21sep06 new XMLinternals (;l for bugette in justif-chr/xml-chr) ;m 22nov06 bug in XML where style has no font and bugette2 for xml-chr ;n-p1 31may07 added VertAlignment and conv-adtype ... end: (;3p1 TagAtt) ;p2 25jun08 add fiphdr for all EPSadd fiphdr for all EPSF ;q 31apr09 new, flexi tags... ;r1 18sep09 STYLE/STYLES are the same now ;2 20may10 slash in OldUrn ;3 5apr12 bugette ;4 18dec13 interpret leading-style ;002n 08sep00 'chkexits/wait' for NFS and started outputData and ftp for CLASSLINKER ;a-b 28feb01 cleanup plus ignore-adtype ;c-d added new-urn and allowed CR ;e 18aug03 added QM/QV ;f-h 05sep03 added quark justif <*C>R/L/J etc ;i 08nov03 added xED support for Justif warings (in Green) ;j-n 18aug04 added QB and QY for million - material/matver plus -e for extra Parameter name plus justif-file-before/after ;001a 29jul99 added FIP-SINGLE and QF/<FORMAT> ;a 28sep99 save Pub PP, PubDate PD, Section PS - better ALLname (copyright) 2014 and previous years FingerPost Ltd.