From: Stefan Huber Date: Mon, 20 Jan 2014 19:56:20 +0000 (+0100) Subject: Add support to supply a map template file via -t X-Git-Url: https://git.sthu.org/?a=commitdiff_plain;h=73f10a4c532adf21f7dbb3cc87bd6a2ae748930b;p=dvrdb.git Add support to supply a map template file via -t --- diff --git a/dvr-managedb b/dvr-managedb index 71bab84..aaf68e2 100755 --- a/dvr-managedb +++ b/dvr-managedb @@ -302,22 +302,36 @@ def printDataset(db, id): return True -def processMap(db, query, providers): +default_map_template = """ + + + + + +
+ + +""" + + +def processMap(db, query, providers, template=default_map_template): """Print a map webpage to stdout of the datasets selected by query, using - the given geocoding providers.""" + the given geocoding providers. The string '%COORDINATES' in template will + be replaced by a list of triples and printed to stdout.""" - print(""" - - - - - - + coordlist += " [%s, %s, %s],\n" % (loc[0], loc[1], repr(text)) - -
- - - """) + webpage = webpage.replace("%COORDINATES", coordlist) + print(webpage) def processGeolocation(db, query, provider): @@ -530,6 +532,8 @@ COMMAND: OPTIONS: -d FILE Use given sqlite3 database. -q COND Use this WHERE SQL-condition to select some datasets. + -t FILE When generating maps, use the given FILE as template. The term + '%COORDINATES' will be replaced by the list of coordinate triples. """) @@ -538,9 +542,10 @@ if __name__ == "__main__": dbfn = None query = None cmd = None + maptemplatefn = None try: - opts, args = getopt.getopt(sys.argv[1:], "ad:ghq:lm") + opts, args = getopt.getopt(sys.argv[1:], "ad:ghq:lmt:") for opt, arg in opts: if opt in ["-a", "-l", "-g", "-m"]: @@ -552,6 +557,8 @@ if __name__ == "__main__": sys.exit(os.EX_OK) elif opt == "-q": query = arg + elif opt == "-t": + maptemplatefn = arg else: print("Unknown option '", opt, "'.", file=sys.stderr) assert(False) @@ -569,6 +576,15 @@ if __name__ == "__main__": print("No database given.", file=sys.stderr) sys.exit(os.EX_USAGE) + maptemplate = default_map_template + if maptemplatefn is not None: + try: + with open(maptemplatefn, "r") as f: + maptemplate = f.read() + except FileNotFoundError as e: + print(e, file=sys.stderr) + sys.exit(os.EX_USAGE) + db = Database(dbfn) if cmd == "-a": @@ -597,6 +613,6 @@ if __name__ == "__main__": if not providers.isNameValid(arg): print("Unknown provider '%s'." % arg, file=sys.stderr) sys.exit(os.EX_USAGE) - processMap(db, query, args) + processMap(db, query, args, maptemplate) sys.exit(os.EX_OK)