Thurion / EDSM-RSE-for-EDMC

Elite: Dangerous Star Map - Red Star Eliminator (EDSM-RSE) is a plugin that displays the name and distance to a nearby system, that is on EDSM but is missing coordinates (therefore being displayed as red system)
GNU General Public License v2.0
34 stars 2 forks source link

EDMC 5.x/Odyssey compatibility #62

Closed ghost closed 3 years ago

ghost commented 3 years ago

With the upcoming Odyssey release, players must upgrade to EDMC 5.x for proper Odyssey support. Many third party sites will stop accepting data from older EDMC versions, so this upgrade is not optional.

However, EDSM-RSE-for-EDMC generates quite a few warnings under EDMC 5.0.1, such as:

2021-05-18 20:56:34.395 - DEBUG - 18696:14816:14816 config.AbstractConfig.getint:344: Attempt to use Deprecated getint() method File "EDMarketConnector.py", line 1705, in File "EDMarketConnector.py", line 346, in init File "plug.pyc", line 159, in load_plugins File "plug.pyc", line 55, in init File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 129, in plugin_start3 plugin_start(plugin_dir) File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 108, in plugin_start this.rseData.ignoredProjectsFlags = config.getint(this.CONFIG_IGNORED_PROJECTS) File "config.pyc", line 344, in getint

2021-05-18 20:56:34.397 - DEBUG - 18696:14816:14816 config.AbstractConfig.getint:344: Attempt to use Deprecated getint() method File "EDMarketConnector.py", line 1705, in File "EDMarketConnector.py", line 346, in init File "plug.pyc", line 159, in load_plugins File "plug.pyc", line 55, in init File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 129, in plugin_start3 plugin_start(plugin_dir) File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 115, in plugin_start this.enabled = checkTransmissionOptions() File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 100, in checkTransmissionOptions eddn = (config.getint("output") & config.OUT_SYS_EDDN) == config.OUT_SYS_EDDN File "config.pyc", line 344, in getint

2021-05-18 20:56:34.399 - DEBUG - 18696:14816:14816 config.AbstractConfig.getint:344: Attempt to use Deprecated getint() method File "EDMarketConnector.py", line 1705, in File "EDMarketConnector.py", line 346, in init File "plug.pyc", line 159, in load_plugins File "plug.pyc", line 55, in init File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 129, in plugin_start3 plugin_start(plugin_dir) File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 115, in plugin_start this.enabled = checkTransmissionOptions() File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 101, in checkTransmissionOptions edsm = config.getint("edsm_out") and 1 File "config.pyc", line 344, in getint

Based on a quick grep through the EDMC logs, the methods get() and getint() have been deprecated.

Thurion commented 3 years ago

There is an update which is currently in testing. You can download the latest version from the https://github.com/Thurion/EDSM-RSE-for-EDMC/tree/development branch.

ghost commented 3 years ago

Ok, after a couple of jumps with the development version, I get a message about a red system in 2399.88 LY distance, but the todo field only display a "?". Checking the EDMC log gives:

Exception in Tkinter callback Traceback (most recent call last): File "tkinter__init.pyc", line 1892, in call__ File "C:\Users\ue\AppData\Local\EDMarketConnector\plugins\EDSM-RSE-for-EDMC-development\load.py", line 159, in update_ui_unconfirmed_system this.actionText["text"] = elite_system.getActionText() AttributeError: 'EliteSystem' object has no attribute 'getActionText'

Thurion commented 3 years ago

Thanks for testing. I'll look into this as soon as I can.

Thurion commented 3 years ago

I pushed a fix in 5fc4ae4. Could you update again, please?

ghost commented 3 years ago

After a delay caused by a cascade of colored snakes, I was able to test the new version, and this works as expected.

One last suggestion: If you accept CarrierJump events in addition to FSDJump events, people will also see if they jump near an actionable system while doing the Space Uber thing. The relevant fields of the entry are identical for both, so this would be a relatively minor change. Example journal entry:

{"timestamp":"2020-12-27T17:11:22Z","event":"CarrierJump","Docked":true,"StationName":"X6Z-69Q","StationType":"FleetCarrier","MarketID":3704657408,"StationFaction":{"Name":"FleetCarrier"},"StationGovernment":"$government_Carrier;","StationGovernment_Localised":"Private Ownership ","StationServices":["dock","autodock","commodities","contacts","crewlounge","rearm","refuel","repair","engineer","flightcontroller","stationoperations","stationMenu","carriermanagement","carrierfuel"],"StationEconomy":"$economy_Carrier;","StationEconomy_Localised":"Private Enterprise","StationEconomies":[{"Name":"$economy_Carrier;","Name_Localised":"Private Enterprise","Proportion":1.0}],"StarSystem":"Diaguandri","SystemAddress":670417429889,"StarPos":[-41.0625,-62.15625,-103.25],"SystemAllegiance":"Independent","SystemEconomy":"$economy_HighTech;","SystemEconomy_Localised":"High Tech","SystemSecondEconomy":"$economy_Refinery;","SystemSecondEconomy_Localised":"Refinery","SystemGovernment":"$government_Democracy;","SystemGovernment_Localised":"Democracy","SystemSecurity":"$SYSTEM_SECURITY_medium;","SystemSecurity_Localised":"Medium Security","Population":10303479,"Body":"Diaguandri B","BodyID":3,"BodyType":"Star","Factions":[{"Name":"Diaguandri Interstellar","FactionState":"None","Government":"Corporate","Influence":0.133333,"Allegiance":"Independent","Happiness":"$Faction_HappinessBand2;","Happiness_Localised":"Happy","MyReputation":100.0},{"Name":"People's MET 20 Liberals","FactionState":"Boom","Government":"Democracy","Influence":0.163184,"Allegiance":"Federation","Happiness":"$Faction_HappinessBand2;","Happiness_Localised":"Happy","MyReputation":100.0,"RecoveringStates":[{"State":"War","Trend":0}],"ActiveStates":[{"State":"Boom"}]},{"Name":"Natural Diaguandri Regulatory State","FactionState":"None","Government":"Dictatorship","Influence":0.133333,"Allegiance":"Independent","Happiness":"$Faction_HappinessBand2;","Happiness_Localised":"Happy","MyReputation":100.0},{"Name":"Cartel of Diaguandri","FactionState":"None","Government":"Anarchy","Influence":0.00995,"Allegiance":"Independent","Happiness":"$Faction_HappinessBand2;","Happiness_Localised":"Happy","MyReputation":100.0,"RecoveringStates":[{"State":"PirateAttack","Trend":0}]},{"Name":"Revolutionary Party of Diaguandri","FactionState":"None","Government":"Democracy","Influence":0.2,"Allegiance":"Federation","Happiness":"$Faction_HappinessBand2;","Happiness_Localised":"Happy","MyReputation":100.0,"RecoveringStates":[{"State":"Election","Trend":0}]},{"Name":"The Brotherhood of the Dark Circle","FactionState":"None","Government":"Corporate","Influence":0.101493,"Allegiance":"Independent","Happiness":"$Faction_HappinessBand2;","Happiness_Localised":"Happy","MyReputation":100.0,"RecoveringStates":[{"State":"War","Trend":0}]},{"Name":"EXO","FactionState":"CivilUnrest","Government":"Democracy","Influence":0.258706,"Allegiance":"Independent","Happiness":"$Faction_HappinessBand2;","Happiness_Localised":"Happy","MyReputation":100.0,"PendingStates":[{"State":"Expansion","Trend":0}],"RecoveringStates":[{"State":"Election","Trend":0}],"ActiveStates":[{"State":"Boom"},{"State":"CivilUnrest"}]}],"SystemFaction":{"Name":"EXO","FactionState":"CivilUnrest"},"Conflicts":[{"WarType":"war","Status":"","Faction1":{"Name":"People's MET 20 Liberals","Stake":"Red Copper Mining Group","WonDays":4},"Faction2":{"Name":"The Brotherhood of the Dark Circle","Stake":"","WonDays":0}},{"WarType":"election","Status":"","Faction1":{"Name":"Revolutionary Party of Diaguandri","Stake":"Diaguandri Clarity Systems","WonDays":1},"Faction2":{"Name":"EXO","Stake":"Ray Gateway","WonDays":4}}],"EDDMapColor":-65536}

Thurion commented 3 years ago

Thanks for testing the new version.

The CarrierJump event is already being processed: https://github.com/Thurion/EDSM-RSE-for-EDMC/blob/5fc4ae4cc25536ed8202cf82f9cb3f99df2d40c0/load.py#L355

Since there don't seems to be any major bugs in the code anymore, I'm going to make a release so every user gets notified and can update.