spansh.py: added --nofeet option to outdatedstations

… which excludes Odyssey settlements from the outdated stations search.

fixes #10

Also now excluding carriers / settlements _from the search itself_
instead of removing returned results. So now the `--count` will be
properly respected. Will need updating if/when new station types are
introduced.
This commit is contained in:
alterNERDtive 2022-09-05 16:17:08 +02:00
parent d2af6b90e4
commit 5718099d5a
Signed by: alterNERDtive
GPG key ID: 547787A4FE6533F1
3 changed files with 55 additions and 25 deletions

View file

@ -1,15 +1,29 @@
# devel
## Added
* `spansh.py`: `--raw` option. Prints the raw JSON returned from a query.
* `spansh.py`: `--nofeet` option for `outdatedstations`. Excludes Odyssey
settlements from the result set.
## Changed
* `spansh.py`: Now uses <https://spansh.uk> instead of <https://spansh.co.uk>.
-----
# 0.7 (2021-01-28) # 0.7 (2021-01-28)
## Changed ## Changed
* spansh.py: Fleet carriers are now explicitly excluded from the outdated * `spansh.py`: Fleet carriers are now explicitly excluded from the outdated
stations list. stations list.
## Fixed ## Fixed
* explorationtools.py: Searching for a CMDR with public profile, but hidden * `explorationtools.py`: Searching for a CMDR with public profile, but hidden
activity will no longer error out. activity will no longer error out.
* explorationtools.py: Searching for a CMDR with public profile, but hidden * `explorationtools.py`: Searching for a CMDR with public profile, but hidden
flight log will no longer error out. flight log will no longer error out.
----- -----

View file

@ -36,7 +36,7 @@ positional arguments:
CMDR a list of CMDR names (must have their location public on CMDR a list of CMDR names (must have their location public on
EDSM!) EDSM!)
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
--system SYSTEM the target system (must be in EDDN!) --system SYSTEM the target system (must be in EDDN!)
--short short output (only makes sense with `--text`) --short short output (only makes sense with `--text`)
@ -51,7 +51,7 @@ usage: edts.py [-h] {coords} ...
Script for interfacing with Alots hosted EDTS API. Script for interfacing with Alots hosted EDTS API.
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
subcommands: subcommands:
@ -66,7 +66,7 @@ usage: edts.py coords [-h] [--maxuncertainty [MAXUNCERTAINTY]] system
positional arguments: positional arguments:
system the system name to get coordinates for system the system name to get coordinates for
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
--maxuncertainty [MAXUNCERTAINTY] --maxuncertainty [MAXUNCERTAINTY]
maximum accepted uncertainty, if any maximum accepted uncertainty, if any
@ -81,7 +81,7 @@ usage: explorationtools.py [-h]
A collection of tools useful for exploration. A collection of tools useful for exploration.
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
subcommands: subcommands:
@ -111,7 +111,7 @@ usage: explorationtools.py bodycount [-h] system
positional arguments: positional arguments:
system system to query system system to query
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
``` ```
@ -122,7 +122,7 @@ usage: explorationtools.py distancebetween [-h] [--roundto [ROUNDTO]]
positional arguments: positional arguments:
system the systems to measure system the systems to measure
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
--roundto [ROUNDTO] the number of digits to round to (default: 2) --roundto [ROUNDTO] the number of digits to round to (default: 2)
``` ```
@ -135,7 +135,7 @@ positional arguments:
name the commander in question name the commander in question
apikey the commanders EDSM API key. Can be empty for public profiles. apikey the commanders EDSM API key. Can be empty for public profiles.
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
--system output the commanders last known system (default) --system output the commanders last known system (default)
--coords output the commanders last known position in {x,y,z} --coords output the commanders last known position in {x,y,z}
@ -149,7 +149,7 @@ usage: explorationtools.py findsystem [-h] system
positional arguments: positional arguments:
system the system in question system the system in question
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
``` ```
@ -159,19 +159,20 @@ usage: explorationtools.py systemlist [-h] partialsystem
positional arguments: positional arguments:
partialsystem the partial system name to query against partialsystem the partial system name to query against
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
``` ```
### spansh.py ### ### spansh.py ###
``` ```
usage: spansh.py [-h] {nearestsystem,oldstations,systemexists} ... usage: spansh.py [-h] [--raw] {nearestsystem,oldstations,systemexists} ...
Script for interfacing with Spanshs API. Script for interfacing with Spanshs API.
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
--raw output raw json (mostly for debugging)
subcommands: subcommands:
{nearestsystem,oldstations,systemexists} {nearestsystem,oldstations,systemexists}
@ -191,7 +192,7 @@ usage: spansh.py nearestsystem [-h] [--short | --parsable]
positional arguments: positional arguments:
coordinate the coordinates to search for (order: x, y, z) coordinate the coordinates to search for (order: x, y, z)
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
--short short output format (system name only) --short short output format (system name only)
--parsable parsable output format (<name>|<x>,<y>,<z>|<distance>) --parsable parsable output format (<name>|<x>,<y>,<z>|<distance>)
@ -199,9 +200,9 @@ optional arguments:
``` ```
usage: spansh.py oldstations [-h] [--system [SYSTEM]] [--count [COUNT]] usage: spansh.py oldstations [-h] [--system [SYSTEM]] [--count [COUNT]]
[--minage [MINAGE]] [--short] [--minage [MINAGE]] [--short] [--nofeet]
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
--system [SYSTEM] a single system to query. If not present, get the oldest --system [SYSTEM] a single system to query. If not present, get the oldest
stations overall. stations overall.
@ -209,6 +210,7 @@ optional arguments:
--minage [MINAGE] minimum age of data (in days) to be considered --minage [MINAGE] minimum age of data (in days) to be considered
“outdated”. Defaults to 365 (= 1year). “outdated”. Defaults to 365 (= 1year).
--short short output format (system/station names only) --short short output format (system/station names only)
--nofeet omit Odyssey settlements
``` ```
``` ```
@ -217,7 +219,7 @@ usage: spansh.py systemexists [-h] system
positional arguments: positional arguments:
system the system to search for system the system to search for
optional arguments: options:
-h, --help show this help message and exit -h, --help show this help message and exit
``` ```

View file

@ -86,11 +86,9 @@ def getOldStationsInSystem(system, raw=False):
if raw: return json if raw: return json
ret = "" ret = ""
# exclude carriers if len(json["results"]) == 0:
stations = list(filter(lambda station: not station["type"] == "Drake-Class Carrier", json["results"]))
if len(stations) == 0:
raise NotFoundError() raise NotFoundError()
for station in stations: for station in json["results"]:
# systems including the given name as a word will also trigger; # systems including the given name as a word will also trigger;
# looking for e.g. “Mari” will also give you stuff in “Mac Mari”! # looking for e.g. “Mari” will also give you stuff in “Mac Mari”!
if station["system_name"] == system: if station["system_name"] == system:
@ -161,6 +159,8 @@ parser_oldstations.add_argument("--minage", nargs="?", type=int, default=365,
+ "365 (= 1year).") + "365 (= 1year).")
parser_oldstations.add_argument("--short", action='store_true', parser_oldstations.add_argument("--short", action='store_true',
help="short output format (system/station names only)") help="short output format (system/station names only)")
parser_oldstations.add_argument("--nofeet", action='store_true',
help="omit Odyssey settlements")
parser_systemexists = subparsers.add_parser("systemexists", parser_systemexists = subparsers.add_parser("systemexists",
help="Checks if a given system exists in the search database.") help="Checks if a given system exists in the search database.")
@ -188,15 +188,29 @@ try:
"value": [ "value": [
"2017-11-06", "2017-11-06",
(datetime.now() - timedelta(days=args.minage)).strftime("%Y-%m-%d") (datetime.now() - timedelta(days=args.minage)).strftime("%Y-%m-%d")
], ],
"comparison": "<=>" "comparison": "<=>"
} },
"type":
{
"value": [
"Asteroid base",
"Coriolis Starport",
"Mega ship",
"Ocellus Starport",
"Orbis Starport",
"Outpost",
"Planetary Outpost",
"Planetary Port",
"Settlement" if not args.nofeet else ""
]
} }
}
SORT = { SORT = {
"updated_at": { "updated_at": {
"direction": "asc" "direction": "asc"
}
} }
}
if args.system: if args.system:
out = getOldStationsInSystem(args.system, args.raw) out = getOldStationsInSystem(args.system, args.raw)
else: else: