Search in sources :

Example 1 with CSV

use of org.wikivoyage.listings.output.CSV 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)

Example 2 with CSV

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

the class CsvOutputTests method Generate.

/**
 * Test CSV generation of the sample
 */
@Test
public void Generate() throws Exception {
    List<Listing> pois = new ArrayList<Listing>();
    pois.add(getSample());
    String output = File.createTempFile("wikivoyage-listings-unit-tests", ".tmp").getAbsolutePath();
    new CSV().write(pois, output, "20160720");
    compareWithSample(output, "sample-result.csv");
}
Also used : Listing(org.wikivoyage.listings.entity.Listing) CSV(org.wikivoyage.listings.output.CSV) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Aggregations

CSV (org.wikivoyage.listings.output.CSV)2 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Test (org.junit.Test)1 Listing (org.wikivoyage.listings.entity.Listing)1 DumpDownloader (org.wikivoyage.listings.input.DumpDownloader)1 DumpReadException (org.wikivoyage.listings.input.DumpReadException)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