/* * [TidyElectronicMacros.java] * * Summary: Put electronic macros into canonical form. Correct titles. * * Copyright: (c) 2012-2017 Roedy Green, Canadian Mind Products, http://mindprod.com * * Licence: This software may be copied and used freely for any purpose but military. * http://mindprod.com/contact/nonmil.html * * Requires: JDK 1.8+ * * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/ * * Version History: * 1.0 2012-02-18 initial version */ package com.mindprod.stores; import com.mindprod.common18.EIO; import com.mindprod.common18.Misc; import com.mindprod.common18.ST; import com.mindprod.fastcat.FastCat; import com.mindprod.htmlmacros.macro.Global; import com.mindprod.htmlmacros.support.ConfigurationForMindprod; import com.mindprod.hunkio.HunkIO; import java.io.File; import java.io.IOException; import static java.lang.System.*; /** * Put electronic macros into canonical form. Correct titles. *

* Use -dry to not actually change the files. * * @author Roedy Green, Canadian Mind Products * @version 1.0 2012-02-18 initial version * @since 2012-02-18 */ public class TidyElectronicMacros extends ManipulateMacros { // invoked by stores/extractelectronicsummary.btm /** * true if want extra debugging information */ private static final boolean DEBUGGING = false; /** * how to use from command line. run only on book dir. */ private static final String USAGE = "\nTidyElectronicMacros.exe Configuration"; /** * where website files are kept */ protected static File electronicDir; /** * Build entire file with Electronic head and one Electronic macro * Used by several programs * * @param asin electronic ASIN number * @param bestbuycawebcode bestbuyca product number * @param bestbuysku bestbuy use product number * @param canadacomputers canadacomputer part number * @param ncixcasku ncixca sku * @param ncixussku ncixus sku * @param neweggcaitem newegg.ca part number * @param neweggitem newegg.com part number * @param staplescaitem staples.ca part number * @param staplesitem staples.com part number * @param tigercaedpno tigerdirect.ca part number * @param tigeredpno tigerdirect.com part number * @param price price $xx.xx * @param title title of electronic * @param weight weight in any units * @param dim dimenions * @param notes comments about book * @param discontinued true if no longer manufactured * * @return generated Tidied Book macro */ public static String buildTidiedElectronicsFile( final String asin, final String bestbuycawebcode, final String bestbuysku, final String canadacomputers, final String ncixcasku, final String ncixussku, final String neweggcaitem, final String neweggitem, final String staplescaitem, final String staplesitem, final String tigercaedpno, final String tigeredpno, final String price, final String title, final String weight, final String dim, final String notes, final boolean discontinued ) { final FastCat sb = new FastCat( 4 + 3 + 13 * 3 + 3 ); sb.append( "\n" ); sb.append( "\n" ); sb.append( "" ); return sb.toString(); } /** * tidy electronic macros in e:\mindprod\electronic. Correct ElectronicHead * * @param args not used * * @throws java.io.IOException if trouble reading or writing files containing Book macros. */ public static void main( String[] args ) throws IOException { Global.installConfiguration( new ConfigurationForMindprod() ); final File webrootDir = new File( Global.configuration.getLocalWebrootWithSlashes() ); electronicDir = new File( webrootDir, "electronic" ); final String[] files = electronicDir.list( new ElectronicMacroFileFilter() ); for ( String fileName : files ) { final File sourceFile = new File( electronicDir, fileName ); final String big = HunkIO.readEntireFile( sourceFile, HunkIO.UTF8 ); try { final String electronicMacro = findFirstMacroContents( big, "Electronic" ); if ( electronicMacro == null ) { err.println( "missing