GithubHelp home page GithubHelp logo

thurion / edsm-rse-for-edmc Goto Github PK

View Code? Open in Web Editor NEW
34.0 6.0 2.0 4.17 MB

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)

License: GNU General Public License v2.0

Python 99.72% Batchfile 0.28%
edmc elite-dangerous edmc-plugin

edsm-rse-for-edmc's People

Contributors

amiganer avatar rapidfirecrh avatar thurion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

samael amiganer

edsm-rse-for-edmc's Issues

give min and max range on distance

Cometborne - Today at 11:42 AM
One recommendation I have is to not give "the distance", but a range.
Basically, if you have the position from Alot's formulas and the uncertainty, you can calculate the 8 corners of the cube where the star should be
And then you can calculate the distances between the current position and those 8 corners, and report the minimum and maximum

Initialization Error under 5.11.0+f93485e

After updating to version 5.11.0+f93485e of EDMC, EDSM-RSE is not showing in the window.

I removed the installation in the plugins directory, stopped EDMC, installed a fresh download from GitHub, and restarted EDMC with no impact to this state.

Reviewing the logs, I see the following:L

2024-06-09 14:59:02.984 UTC - ERROR - 2716:16232:16232 plug.Plugin.get_app:129: Failed for Plugin "EDSM-RSE"
Traceback (most recent call last):
  File "plug.pyc", line 111, in get_app
  File "C:\Users\Clark\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 329, in plugin_app
    this.unconfirmedSystem = RseHyperlinkLabel(this.frame, compound=tk.RIGHT, popup_copy=True)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Clark\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\load.py", line 93, in __init__
    self.menu.add_command(label=_("Ignore once"), command=self.ignore_once)
    ^^^^^^^^^
AttributeError: 'RseHyperlinkLabel' object has no attribute 'menu'

Included as it might be needed:

2024-06-09 14:59:02.776 UTC - DEBUG - 2716:16232:16232 <plugins>.EDSM-RSE.load.plugin_start:150: Debug messages are enabled.
2024-06-09 14:59:02.779 UTC - DEBUG - 2716:16232:16232 <plugins>.EDSM-RSE.load.plugin_start:151: Python Version: 3.11.9 (tags/v3.11.9:de54cf5, Apr  2 2024, 10:00:00) [MSC v.1938 32 bit (Intel)].

List of more systems close by

Add a button or label to the main window that opens another window with a list of nearby systems. All should be clickable and open the corresponding EDSM page.

EDSM hidden systems not being removed

RSE does not appear to be removing hidden systems from its database.

[12:23 PM] Xalder: RSE is telling me to scan the Navbeacon at Ravenhold... rather it specifically says "Unconfirmed: [New]Ravenhold ... Action: Scan navbeacon."
[12:23 PM] Xalder: I'm at that system and have scanned the navbeacon but RSE hasn't changed. Not sure what else it wants.
[12:29 PM] Xalder: Okay it's a game of triple links for the same system, starting with this one. https://www.edsm.net/en/system/id/22749414/name/%5BNew%5DRavenhold
[12:29 PM] Xalder: RSE is telling me to go there, which moved to https://www.edsm.net/en/system/id/4427405/name/Eol+Prou+RS-T+d3-612 which moved to https://www.edsm.net/en/system/id/22982534/name/Ravenhold

Hidden systems can be retrieved from https://www.edsm.net/api-v1/hidden-systems?showid=1

Handle duplicate system names

Duplicate system names are already in the database but need to be handled in the program.
EliteSystem.getUncertainty() * 1.732051 can be use to calculate the worst case. If the distance from the current system to the duplicate system is smaller than the worst case it must be considered as overlapping and is therefore valid. Following cases need to be considered:

  • Only one of the duplicates is valid: Delete it from the database
  • More than one duplicate is valid: Ask the user to which system they jumped to. Remove the selected one from the database.

EDMC is moving to Python 3.7 'soon'

I see you have a dual-python release dev branch. You might want to look into making a release based on it sooner rather than later as it now won't be too long before latest EDMC release is based on Python 3.7.

Interface for settings

A tab in settings containing the following options needs to be implemented:

  • As radiobuttons
    • radius to search for "red" systems
      • 250
      • 500
      • 750
      • 1000
      • 2000
    • update interval in jumps
      • 1 (every jump)
      • 3
      • 5
      • 7
  • A checkbox whether to automatically copy the destination to the clipboard
  • A link to this Github project
  • A small text that mentions EDTS for the database

All of these settings need to be stored. A single entry should suffice with the right bit mask.

It shows systems close by that are 17k ly away. Systems on eddb/edsm seem to be right

I am currently in the bubble, in Alpha Fornacis and the plugin shows me target systems that are pretty far away. Example: It says I should scan Blua Eaec KF-C d14-109 and shows a distance of 46ly but the system is 17 000 ly away.

I first thought the system was wrong in eddb but a quick lookup in edsm showed the same distance as the galaxy map, so eddb is correct.
When I ignore the system it gives me more like this, all 15k or more ly away. EDMC is the latest release and it shows my position correctly.

First systems that it shows wrong (all are 46,44ly away according to RSE):
Blua Eaec KF-C d14-109
Scheau Flyi ZJ-D c14-4964
Blaa Phoe NY-Z d136
Aucopp VB-G b17-2
Byua Chrea ZT-T b19-1
Boewnst VE-P c22-97

Certificate failure when retrieving projects

I've been getting the following error for the last few days. (I know it was working on 27 SEP 2021 at 2240 US Eastern Time (UTC-4).

`2021-10-02 21:13:23.501 - DEBUG - 216408:213652:213652 .EDSM-RSE.RseData.RseData._query_rse_api:282: Error calling RSE API.
Traceback (most recent call last):
File "urllib\request.pyc", line 1346, in do_open
File "http\client.pyc", line 1257, in request
File "http\client.pyc", line 1303, in _send_request
File "http\client.pyc", line 1252, in endheaders
File "http\client.pyc", line 1012, in _send_output
File "http\client.pyc", line 952, in send
File "http\client.pyc", line 1426, in connect
File "ssl.pyc", line 500, in wrap_socket
File "ssl.pyc", line 1040, in _create
File "ssl.pyc", line 1309, in do_handshake
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\Clark\AppData\Local\EDMarketConnector\plugins\EDSM-RSE\RseData.py", line 272, in _query_rse_api
url = urlopen(rse_url, timeout=10)
File "urllib\request.pyc", line 214, in urlopen
File "urllib\request.pyc", line 517, in open
File "urllib\request.pyc", line 534, in _open
File "urllib\request.pyc", line 494, in _call_chain
File "urllib\request.pyc", line 1389, in https_open
File "urllib\request.pyc", line 1349, in do_open
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129)>
2021-10-02 21:13:23.520 - DEBUG - 216408:213652:213652 .EDSM-RSE.RseData.RseData._query_rse_api:283: Tried to call https://cyberlord.de/rse/projects.py.
2021-10-02 21:13:23.521 - ERROR - 216408:213652:213652 .EDSM-RSE.RseData.RseData.initialize:415: Could not get information about projects.`

Update mechanism for the database

A way to update the local database with the press of a button. A unix time stamp of when the database was created is stored in there an can be used to check if a newer version is available.

Permanently ingore systems

Currently systems can be ignored for an EDMC session (as long as the program runs). Also add the option to ignore them permanently.
Write the system names to a file in the plugin's folder.

Plugin does not work on Linux

Error:

loading plugin EDSM-RSE from "/home/deepfield/.local/share/EDMarketConnector/plugins/EDSM-RSE/load.py"
Traceback (most recent call last):
  File "/home/deepfield/Games/edmc/plug.py", line 193, in load_plugins
    found.append(Plugin(name, os.path.join(config.plugin_dir, name, 'load.py')))
  File "/home/deepfield/Games/edmc/plug.py", line 94, in __init__
    ('.py', 'r', imp.PY_SOURCE))
  File "/home/deepfield/.local/share/EDMarketConnector/plugins/EDSM-RSE/load.py", line 34, in <module>
    from RseData import RseData, EliteSystem
  File "/home/deepfield/.local/share/EDMarketConnector/plugins/EDSM-RSE/RseData.py", line 25, in <module>
    import psycopg2
  File "/home/deepfield/.local/share/EDMarketConnector/plugins/EDSM-RSE/psycopg2/__init__.py", line 50, in <module>
    from psycopg2._psycopg import (                     # noqa
ImportError: No module named _psycopg

Skipping entries button

During the test drive in the bubble, I came across various "unconfirmed" systems that had been added to EDSM in Gamma/early 1.0 and were renamed or deleted from the game later. See the trilateration needed room on the EDSM discord for examples.

Right now, such a system is a show-stopper because you cannot jump to it. This leaves either

  1. jumping around at random until you get another system
  2. waiting until one of the EDSM admins has confirmed the name chang and updated EDSM
  3. stopping EMDC, opening the DB with sqliteadmin, and deleting the system manually

There should be some kind of skip/ignore button in the UI that will remove the system from the local DB, and re-runs the search.

cyberlord.de

After having problems accessing the database online hosted on cyberlord.de it now appears that the site is running from two IP addresses. For me cyberlord.de resolves as follows:

Pinging cyberlord.de [213.120.234.109] with 32 bytes of data:

The script cannot connect to the database.

Altering the script to 185.80.92.171 resolves the issue and EDSM-RSE returns systems again.

Putting both 185.80.92.171 and cyberlord.de into a browser resolve to the same default Apache page.

Ignore Once

I would appreciate if one of the right-click actions was 'ignore once' so that i can pull up the next system after submitting a distance, but where i'd like that system re-presented on the next jump. currently i need to ignore this session, then restart.

Suggestion: Rename copy to clipboard

A suggestion just to change description of the checkbox: "copy system name to clipboard after jump" or something like that, to eliminate potential confusion

Add label to show what to do

With the addition of navbeacons, it is no longer only required to jump into a system. We need a label to tell the user what to do.

Copy system name on click

Currently, clicking on the system name opens the EDSM page for it.

I'm aware you can turn on automatic copy into clipboard, but there are several reasons one might prefer not to have his clipboard changed automatically.

It would be great to have the option to "Click system name to copy it into clipboard".

If you still want the ability to open the EDSM page, you could display:

Unconfirmed: Eol Prou Zo-U B18-28 (EDSM)

and add the ability to click on EDSM to open its page.

Interface elements on the main window

A frame needs to be shown on the main window if a "red" system was found. If no system was found, the frame needs to be hidden.

Possible way to display the information:

Closest "red" system:  Bleae Aewsy MH-L d8-9
Distance: 100 Ly (±17)

The system name needs to be copyable with a right click like the system the player is currently in and a a left click should open the EDSM page.
The number in parenthesis for the distance shows the worst case. Another possibility would be to show the uncertainty (10 in this case).

Overlay issue

I have the always on top box checked. while browsing internet, EDDN, EDSM ect it stays on top. However when in game; Elite Dangerous, it doesnt display over game. Ive tried uninstalling, reinstalling, disable setting and re-enabling overlay but still wont work. For a while it worked perfectly fine until I got online today.

Is there is work around or is this a bug?

Scanned Systems Not Marked as 'Done'

Had a couple previously offered (and scanned) systems come up today.

Didn't log all of them, but 'We Jenuteki' was definitely one of them. I ignored the first instance, and scanned 'We Jenuteki' again.

Can the delete on nav beacon scan be checked over? Happy to support testing if needed.

Suggestion to Add a Github Topic

Github has a tags feature that I've found to be quite useful for finding repos related to Elite Dangerous. I noticed that this one might benefit from adding the elite-dangerous tag. Github calls them topics and says: To associate your repository with the elite-dangerous topic, visit your repo's landing page and select "manage topics." I'm very glad I found this fun app, and hope this would help others to do so as well.

Show if current system is incomplete on EDSM

  • Add option to enable this feaure
  • Feature only works if EDDN, EDSM or overwrite is enabled
  • Trigger on FSSDiscoveryScan: Make EDSM API call to get number of known bodies if system is not new. If the system is new, show a message like "no data on EDSM"
  • Trigger on FSSAllBodiesFound: Add system to local cache so it won't call EDSM's API again
    • Add a clear cache button
  • Possible number mismatch (e.g. when Fdev renamed a body and the old one is still on EDSM): Maybe generate a report to clean it up

Jobs

Thoughts on the new jobs coming through RSE:

Should the end user be able to choose which jobs they want to participate in?
Should we have the ability to turn off jobs at the server level?
How should someone submit for a new job to be added (google forums maybe)?

error as of EDMC v. 5.6.0

2022-11-28 22:13:02.779 UTC - ERROR - 14116:20016:20016 plug.Plugin.init:62: : Failed for Plugin "EDSM-RSE-for-EDMC-development"
Traceback (most recent call last):
File "plug.pyc", line 53, in init
File "C:\Users\rapid\AppData\Local\EDMarketConnector\plugins\EDSM-RSE-for-EDMC-development\load.py", line 147, in plugin_start3
plugin_start(plugin_dir)
File "C:\Users\rapid\AppData\Local\EDMarketConnector\plugins\EDSM-RSE-for-EDMC-development\load.py", line 132, in plugin_start
this.enabled = check_transmission_options()
File "C:\Users\rapid\AppData\Local\EDMarketConnector\plugins\EDSM-RSE-for-EDMC-development\load.py", line 113, in check_transmission_options
eddn = (config.get_int("output") & config.OUT_SYS_EDDN) == config.OUT_SYS_EDDN
AttributeError: 'WinConfig' object has no attribute 'OUT_SYS_EDDN'
2022-11-28 22:13:02.783 UTC - ERROR - 14116:20016:20016 plug.load_plugins:159: Failure loading found Plugin "EDSM-RSE-for-EDMC-development"
Traceback (most recent call last):
File "plug.pyc", line 157, in load_plugins
File "plug.pyc", line 53, in init
File "C:\Users\rapid\AppData\Local\EDMarketConnector\plugins\EDSM-RSE-for-EDMC-development\load.py", line 147, in plugin_start3
plugin_start(plugin_dir)
File "C:\Users\rapid\AppData\Local\EDMarketConnector\plugins\EDSM-RSE-for-EDMC-development\load.py", line 132, in plugin_start
this.enabled = check_transmission_options()
File "C:\Users\rapid\AppData\Local\EDMarketConnector\plugins\EDSM-RSE-for-EDMC-development\load.py", line 113, in check_transmission_options
eddn = (config.get_int("output") & config.OUT_SYS_EDDN) == config.OUT_SYS_EDDN
AttributeError: 'WinConfig' object has no attribute 'OUT_SYS_EDDN'

EDMC 5.x/Odyssey compatibility

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.

Bundle sqlite3 files with the plugin

EDMC doesn't include the sqlite3 python files and binaries and therefore must be bundled with the plugin.
They can be found at Python27\Lib\sqlite3 and Python27\DLLs\

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.