mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-06-04 01:21:03 +03:00
eddn/fsssignaldiscovered: Start on cleaning up chennin's work
This commit is contained in:
parent
afda16853b
commit
d5ec54dbea
@ -152,7 +152,7 @@ class EDDN:
|
|||||||
self.session.headers['User-Agent'] = user_agent
|
self.session.headers['User-Agent'] = user_agent
|
||||||
self.replayfile: Optional[TextIO] = None # For delayed messages
|
self.replayfile: Optional[TextIO] = None # For delayed messages
|
||||||
self.replaylog: List[str] = []
|
self.replaylog: List[str] = []
|
||||||
self.fsssignals: Optional[Mapping[str, Any]] = None
|
self.fss_signals: List[Mapping[str, Any]] = []
|
||||||
|
|
||||||
if config.eddn_url is not None:
|
if config.eddn_url is not None:
|
||||||
self.eddn_url = config.eddn_url
|
self.eddn_url = config.eddn_url
|
||||||
@ -1308,31 +1308,33 @@ class EDDN:
|
|||||||
this.eddn.export_journal_entry(cmdr, entry, msg)
|
this.eddn.export_journal_entry(cmdr, entry, msg)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def batch_journal_fsssignaldiscovered(
|
def enqueue_journal_fsssignaldiscovered(self, entry: MutableMapping[str, Any]) -> None:
|
||||||
|
"""
|
||||||
|
Queue up an FSSSignalDiscovered journal event for later sending.
|
||||||
|
|
||||||
|
:param entry: the journal entry to batch
|
||||||
|
"""
|
||||||
|
if entry is None or entry == "":
|
||||||
|
logger.warning(f"Supplied event was empty: {entry!r}")
|
||||||
|
return
|
||||||
|
|
||||||
|
logger.trace_if("plugin.eddn.fsssignaldiscovered", f"Appending FSSSignalDiscovered entry:\n"
|
||||||
|
f" {json.dumps(entry)}")
|
||||||
|
self.fss_signals.append(entry)
|
||||||
|
|
||||||
|
def export_journal_fsssignaldiscovered(
|
||||||
self, cmdr: str, system_name: str, system_starpos: list, is_beta: bool, entry: MutableMapping[str, Any]
|
self, cmdr: str, system_name: str, system_starpos: list, is_beta: bool, entry: MutableMapping[str, Any]
|
||||||
) -> Optional[str]:
|
) -> Optional[str]:
|
||||||
"""
|
"""
|
||||||
Augment and keep FSSSignalDiscovered journal events
|
Send an FSSSignalDiscovered message to EDDN on the correct schema.
|
||||||
|
|
||||||
:param cmdr: the commander under which this upload is made
|
:param cmdr: the commander under which this upload is made
|
||||||
:param system_name: Name of current star system
|
:param system_name: Name of current star system
|
||||||
:param system_starpos: Coordinates of current star system
|
:param system_starpos: Coordinates of current star system
|
||||||
:param is_beta: whether or not we are in beta mode
|
:param is_beta: whether or not we are in beta mode
|
||||||
:param entry: the journal entry to batch
|
:param entry: the non-FSSSignalDiscovered journal entry that triggered this batch send
|
||||||
"""
|
"""
|
||||||
# {
|
logger.trace_if("plugin.eddn", f"This non-FSSS entry is {json.dumps(entry)}")
|
||||||
# "timestamp": "2021-01-15T02:54:18Z",
|
|
||||||
# "event": "FSSSignalDiscovered",
|
|
||||||
# "SystemAddress": 1900279744859,
|
|
||||||
# "SignalName": "$USS_HighGradeEmissions;",
|
|
||||||
# "SignalName_Localised": "Unidentified signal source",
|
|
||||||
# "USSType": "$USS_Type_ValuableSalvage;",
|
|
||||||
# "USSType_Localised": "Encoded emissions",
|
|
||||||
# "SpawningState": "",
|
|
||||||
# "SpawningFaction": "Free Marlinists of Carinae",
|
|
||||||
# "ThreatLevel": 0,
|
|
||||||
# "TimeRemaining": 718.508789
|
|
||||||
# }
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# Elisions
|
# Elisions
|
||||||
entry = filter_localised(entry)
|
entry = filter_localised(entry)
|
||||||
@ -1350,30 +1352,11 @@ class EDDN:
|
|||||||
entry.pop(removekey)
|
entry.pop(removekey)
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
if not self.fsssignals:
|
|
||||||
self.fsssignals = []
|
|
||||||
if entry is not None and entry != "":
|
|
||||||
logger.trace_if("plugin.eddn", f"Appending FSSSignalDiscovered entry: {json.dumps(entry)}")
|
|
||||||
self.fsssignals.append(entry)
|
|
||||||
|
|
||||||
def export_journal_fsssignaldiscovered(
|
|
||||||
self, cmdr: str, system_name: str, system_starpos: list, is_beta: bool, entry: MutableMapping[str, Any]
|
|
||||||
) -> Optional[str]:
|
|
||||||
logger.trace_if("plugin.eddn", f"This non-FSSS entry is {json.dumps(entry)}")
|
|
||||||
"""
|
|
||||||
Send an FSSSignalDiscovered message to EDDN on the correct schema.
|
|
||||||
|
|
||||||
:param cmdr: the commander under which this upload is made
|
|
||||||
:param system_name: Name of current star system
|
|
||||||
:param system_starpos: Coordinates of current star system
|
|
||||||
:param is_beta: whether or not we are in beta mode
|
|
||||||
:param entry: the non-FSSSignalDiscovered journal entry that triggered this batch send
|
|
||||||
"""
|
|
||||||
msg = {
|
msg = {
|
||||||
'$schemaRef': f'https://eddn.edcd.io/schemas/fsssignaldiscovered/1{"/test" if is_beta else ""}',
|
'$schemaRef': f'https://eddn.edcd.io/schemas/fsssignaldiscovered/1{"/test" if is_beta else ""}',
|
||||||
'message': {
|
'message': {
|
||||||
"event": "FSSSignalDiscovered",
|
"event": "FSSSignalDiscovered",
|
||||||
"signals": self.fsssignals
|
"signals": self.fss_signals
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# Readd Horizons and Odyssey to the outer message not each signal
|
# Readd Horizons and Odyssey to the outer message not each signal
|
||||||
@ -1391,8 +1374,8 @@ class EDDN:
|
|||||||
return ret
|
return ret
|
||||||
|
|
||||||
logger.trace_if("plugin.eddn", f"FSSSignalDiscovered batch is {json.dumps(msg)}")
|
logger.trace_if("plugin.eddn", f"FSSSignalDiscovered batch is {json.dumps(msg)}")
|
||||||
this.eddn.export_journal_entry(cmdr, self.fsssignals[-1], msg)
|
this.eddn.export_journal_entry(cmdr, self.fss_signals[-1], msg)
|
||||||
self.fsssignals = None
|
self.fss_signals = []
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def canonicalise(self, item: str) -> str:
|
def canonicalise(self, item: str) -> str:
|
||||||
@ -1737,25 +1720,8 @@ def journal_entry( # noqa: C901, CCR001
|
|||||||
entry
|
entry
|
||||||
)
|
)
|
||||||
|
|
||||||
# NB: If adding FSSSignalDiscovered these absolutely come in at login
|
|
||||||
# time **BEFORE** the `Location` event, so we won't yet know things
|
|
||||||
# like SystemName, or StarPos.
|
|
||||||
# We can either have the "now send the batch" code add such (but
|
|
||||||
# that has corner cases around changing systems in the meantime),
|
|
||||||
# drop those events, or if the schema allows, send without those
|
|
||||||
# augmentations.
|
|
||||||
|
|
||||||
elif event_name == 'fsssignaldiscovered':
|
elif event_name == 'fsssignaldiscovered':
|
||||||
# Drop the event if we don't know system/starpos. Do something else?
|
this.eddn.enqueue_journal_fsssignaldiscovered(entry)
|
||||||
if system is None or 'StarPos' not in state or state['StarPos'] is None:
|
|
||||||
return ""
|
|
||||||
this.eddn.batch_journal_fsssignaldiscovered(
|
|
||||||
cmdr,
|
|
||||||
system,
|
|
||||||
state['StarPos'],
|
|
||||||
is_beta,
|
|
||||||
entry
|
|
||||||
)
|
|
||||||
|
|
||||||
elif event_name == 'fssallbodiesfound':
|
elif event_name == 'fssallbodiesfound':
|
||||||
return this.eddn.export_journal_fssallbodiesfound(
|
return this.eddn.export_journal_fssallbodiesfound(
|
||||||
@ -1775,7 +1741,7 @@ def journal_entry( # noqa: C901, CCR001
|
|||||||
entry
|
entry
|
||||||
)
|
)
|
||||||
# Simple queue: send batched FSSSignalDiscovereds once a non-FSSSignalDiscovered is observed
|
# Simple queue: send batched FSSSignalDiscovereds once a non-FSSSignalDiscovered is observed
|
||||||
if event_name != 'fsssignaldiscovered' and this.eddn.fsssignals is not None and len(this.eddn.fsssignals) > 0:
|
if event_name != 'fsssignaldiscovered' and this.eddn.fss_signals is not None and len(this.eddn.fss_signals) > 0:
|
||||||
return this.eddn.export_journal_fsssignaldiscovered(
|
return this.eddn.export_journal_fsssignaldiscovered(
|
||||||
cmdr,
|
cmdr,
|
||||||
system,
|
system,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user