Search in sources :

Example 1 with ValidationReport

use of org.wikivoyage.listings.output.ValidationReport in project wikivoyage-listings by baturin.

the class Main method main.

public static void main(String[] args) {
    HashMap<String, OutputFormat> formats = new HashMap<>();
    formats.put("csv", new CSV());
    formats.put("osmand-xml", new OsmXml(false));
    formats.put("osmand-xml-user-defined", new OsmXml(true));
    formats.put("xml", new Xml());
    formats.put("obf", new OBF(false, "tmp", "tmp/pois.xml"));
    formats.put("obf-user-defined", new OBF(true, "tmp", "tmp/pois.xml"));
    formats.put("sql", new SQL());
    formats.put("gpx", new GPX());
    formats.put("osmand.gpx", new OsmAndGPX());
    formats.put("kml", new KML());
    formats.put("validation-report", new ValidationReport());
    CommandLine cl = new CommandLine();
    String[] formatNames = formats.keySet().toArray(new String[formats.keySet().size()]);
    cl.parse(args, formatNames);
    fileNames = new FileNames(cl.listingsDir, cl.dumpsCacheDir, cl.workingDir);
    try {
        if (cl.help) {
            cl.printHelp((String[]) formats.keySet().toArray());
        } else if (cl.dailyUpdate) {
            dailyUpdate(cl, formats);
        } else {
            String inputFilename;
            // To embed in files to provide freshness information to users (example: "Generated from Wikivoyage 2016/07/20 data").
            String dumpDate = "";
            createWorkingDir();
            if (cl.inputFile != null) {
                inputFilename = cl.inputFile;
                log.info("Take POIs from '" + inputFilename + "'");
            } else {
                DumpDownloader downloader = new DumpDownloader();
                if (cl.inputUrl != null) {
                    inputFilename = fileNames.workingDirPath("dump.xml.bz2");
                    downloader.downloadDumpFromUrl(cl.inputUrl, inputFilename);
                } else {
                    createDumpsCacheDir();
                    List<String> dumpDates = downloader.listDumps(cl.inputLatest);
                    dumpDate = dumpDates.get(0);
                    inputFilename = fileNames.dumpCacheFilename(cl.inputLatest, dumpDate);
                    if (!FileUtils.fileExists(inputFilename)) {
                        String dumpUrl = downloader.dumpUrl(cl.inputLatest, dumpDate);
                        downloader.downloadDumpFromUrl(dumpUrl, inputFilename);
                    } else {
                        log.info("Use cached dump");
                    }
                }
            }
            if (cl.outputFormat != null) {
                OutputFormat format = formats.get(cl.outputFormat);
                generateFileForFormat(inputFilename, cl.outputFilename, format, dumpDate);
            }
            UnrecognizeTemplateCounter.getInstance().logUnrecognizeTemplatesSummary();
            log.info("Finished");
        }
    } catch (Exception e) {
        System.err.println("Failure");
        e.printStackTrace();
    }
}
Also used : HashMap(java.util.HashMap) CSV(org.wikivoyage.listings.output.CSV) OutputFormat(org.wikivoyage.listings.output.OutputFormat) KML(org.wikivoyage.listings.output.KML) GPX(org.wikivoyage.listings.output.GPX) OsmAndGPX(org.wikivoyage.listings.output.OsmAndGPX) FileUtilsException(org.wikivoyage.listings.utils.FileUtilsException) DumpReadException(org.wikivoyage.listings.input.DumpReadException) IOException(java.io.IOException) WriteOutputException(org.wikivoyage.listings.output.WriteOutputException) SQL(org.wikivoyage.listings.output.SQL) DumpDownloader(org.wikivoyage.listings.input.DumpDownloader) OBF(org.wikivoyage.listings.output.OBF) OsmAndGPX(org.wikivoyage.listings.output.OsmAndGPX) ValidationReport(org.wikivoyage.listings.output.ValidationReport) OsmXml(org.wikivoyage.listings.output.OsmXml) Xml(org.wikivoyage.listings.output.Xml) OsmXml(org.wikivoyage.listings.output.OsmXml) List(java.util.List)

Aggregations

IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 List (java.util.List)1 DumpDownloader (org.wikivoyage.listings.input.DumpDownloader)1 DumpReadException (org.wikivoyage.listings.input.DumpReadException)1 CSV (org.wikivoyage.listings.output.CSV)1 GPX (org.wikivoyage.listings.output.GPX)1 KML (org.wikivoyage.listings.output.KML)1 OBF (org.wikivoyage.listings.output.OBF)1 OsmAndGPX (org.wikivoyage.listings.output.OsmAndGPX)1 OsmXml (org.wikivoyage.listings.output.OsmXml)1 OutputFormat (org.wikivoyage.listings.output.OutputFormat)1 SQL (org.wikivoyage.listings.output.SQL)1 ValidationReport (org.wikivoyage.listings.output.ValidationReport)1 WriteOutputException (org.wikivoyage.listings.output.WriteOutputException)1 Xml (org.wikivoyage.listings.output.Xml)1 FileUtilsException (org.wikivoyage.listings.utils.FileUtilsException)1