mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2026-11-04 01:42:26 +03:00
Merge branch 'beta'
This commit is contained in:
21 files changed
+138
-46
No files matched your search
@@ -59,7 +59,7 @@ jobs:
|
||||
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
# based on.
|
||||
- name: Checkout head commits
|
||||
# https://github.com/actions/checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
#with:
|
||||
#ref: ${{github.head.sha}}
|
||||
#repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
@@ -53,7 +53,7 @@ jobs:
|
||||
# Get Python set up
|
||||
####################################################################
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version-file: '.python-version'
|
||||
cache: 'pip' # caching pip dependencies
|
||||
|
||||
@@ -22,11 +22,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
cache: 'pip' # caching pip dependencies
|
||||
python-version-file: '.python-version'
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
OWNER: 'EDCD'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: '${{ env.CHECKOUT_BRANCH }}'
|
||||
submodules: true
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
|
||||
- name: Create pull request against target branch
|
||||
if: steps.check_for_changes.outputs.changes == 'true'
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
script: |
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- name: Setting global variables
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
id: var
|
||||
with:
|
||||
script: |
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
name: Linux environment build steps
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
submodules: true
|
||||
- name: Create .gitversion
|
||||
@@ -78,7 +78,7 @@ jobs:
|
||||
shell: powershell
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
@@ -101,7 +101,7 @@ jobs:
|
||||
# presumably due to a Windows CL length limit.
|
||||
exclusions: 'EDMarketConnector/EDMarketConnector-release-*.* EDMarketConnector/.editorconfig EDMarketConnector/.flake8 EDMarketConnector/.git* EDMarketConnector/.mypy.ini EDMarketConnector/.pre-commit-config.yaml EDMarketConnector/build.py EDMarketConnector/*.manifest EDMarketConnector/coriolis-data/ EDMarketConnector/img/ EDMarketConnector/pyproject.toml EDMarketConnector/scripts/ EDMarketConnector/tests/'
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version-file: '.python-version'
|
||||
architecture: "x86"
|
||||
@@ -155,7 +155,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Download binary
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: Built files
|
||||
path: ./
|
||||
|
||||
@@ -6,6 +6,24 @@ This is the master changelog for Elite Dangerous Market Connector. Entries are
|
||||
in the source (not distributed with the Windows installer) for the
|
||||
currently used version.
|
||||
---
|
||||
Release 5.13.2
|
||||
===
|
||||
This release contains an update to a series of behind-the-scenes tools, as well as adding Corsair, Cobra Mk V,
|
||||
Type-11, and Panther CLipper Mk II information.
|
||||
|
||||
**Changes and Enhancements**
|
||||
* Adds Missing Ship Information
|
||||
* Updates Dependencies
|
||||
* Minor Logic Improvements for Journal Monitoring
|
||||
|
||||
**Plugin Developers**
|
||||
* nb.Entry is deprecated, and is slated for removal in 6.0 or later. Please migrate to nb.EntryMenu
|
||||
* nb.ColoredButton is deprecated, and is slated for removal in 6.0 or later. Please migrate to tk.Button
|
||||
* Calling internal translations with `_()` is deprecated, and is slated for removal in 6.0 or later. Please migrate to importing `translations` and calling `translations.translate` or `translations.tl` directly
|
||||
* `Translations` as the translate system singleton is deprecated, and is slated for removal in 6.0 or later. Please migrate to the `translations` singleton
|
||||
* `help_open_log_folder()` is deprecated, and is slated for removal in 6.0 or later. Please migrate to open_folder()
|
||||
* `update_feed` is deprecated, and is slated for removal in 6.0 or later. Please migrate to `get_update_feed()`
|
||||
|
||||
Release 5.13.1
|
||||
===
|
||||
This release fixes a bug with 5.13.0 that could cause the program to fail to launch if a non-English locale
|
||||
|
||||
@@ -2248,7 +2248,7 @@ sys.path: {sys.path}'''
|
||||
msg = tk.messagebox.askyesno(
|
||||
title=title, message=message, detail=detail, icon=tkinter.messagebox.ERROR, type=tkinter.messagebox.YESNO,
|
||||
parent=root
|
||||
)
|
||||
) # type: ignore
|
||||
if msg:
|
||||
webbrowser.open(
|
||||
"https://github.com/EDCD/EDMarketConnector/issues/new?"
|
||||
|
||||
+1
-1
@@ -705,7 +705,7 @@ class Session:
|
||||
self.credentials = credentials
|
||||
|
||||
self.state = Session.STATE_INIT
|
||||
self.auth = Auth(self.credentials['cmdr'])
|
||||
self.auth = Auth(self.credentials['cmdr']) # type: ignore
|
||||
|
||||
access_token = self.auth.refresh()
|
||||
if access_token:
|
||||
|
||||
+2
-2
@@ -52,9 +52,9 @@ appcmdname = 'EDMC'
|
||||
# <https://semver.org/#semantic-versioning-specification-semver>
|
||||
# Major.Minor.Patch(-prerelease)(+buildmetadata)
|
||||
# NB: Do *not* import this, use the functions appversion() and appversion_nobuild()
|
||||
_static_appversion = '5.13.1'
|
||||
_static_appversion = '5.13.2'
|
||||
_cached_version: semantic_version.Version | None = None
|
||||
copyright = '© 2015-2019 Jonathan Harris, 2020-2024 EDCD'
|
||||
copyright = '© 2015-2019 Jonathan Harris, 2020-2025 EDCD'
|
||||
|
||||
|
||||
update_interval = 8*60*60 # 8 Hours
|
||||
|
||||
+1
-1
Submodule coriolis-data updated: c59e4b79dc...51ec5c2d13.
+2
-2
@@ -123,12 +123,12 @@ class Dashboard(FileSystemEventHandler):
|
||||
|
||||
if self.observer:
|
||||
logger.debug('Calling self.observer.stop()')
|
||||
self.observer.stop()
|
||||
self.observer.stop() # type: ignore
|
||||
logger.debug('Done')
|
||||
|
||||
if self.observer:
|
||||
logger.debug('Joining self.observer...')
|
||||
self.observer.join()
|
||||
self.observer.join() # type: ignore
|
||||
logger.debug('Done')
|
||||
self.observer = None # type: ignore
|
||||
|
||||
|
||||
+4
-1
@@ -479,7 +479,8 @@ ship_name_map = {
|
||||
'belugaliner': 'Beluga Liner',
|
||||
'cobramkiii': 'Cobra MkIII',
|
||||
'cobramkiv': 'Cobra MkIV',
|
||||
'cobramkv': 'Cobra MkV',
|
||||
'cobramkv': 'Cobra Mk V',
|
||||
'corsair': 'Corsair',
|
||||
'clipper': 'Panther Clipper',
|
||||
'cutter': 'Imperial Cutter',
|
||||
'diamondback': 'Diamondback Scout',
|
||||
@@ -501,9 +502,11 @@ ship_name_map = {
|
||||
'independent_fighter': 'Taipan Fighter',
|
||||
'krait_mkii': 'Krait MkII',
|
||||
'krait_light': 'Krait Phantom',
|
||||
'lakonminer': 'Type-11 Prospector',
|
||||
'mamba': 'Mamba',
|
||||
'mandalay': 'Mandalay',
|
||||
'orca': 'Orca',
|
||||
'panthermkii': 'Panther Clipper Mk II',
|
||||
'python': 'Python',
|
||||
'python_nx': 'Python Mk II',
|
||||
'scout': 'Taipan Fighter',
|
||||
|
||||
@@ -119,6 +119,21 @@
|
||||
"cobramkv_armour_reactive": {
|
||||
"mass": 27
|
||||
},
|
||||
"corsair_armour_grade1": {
|
||||
"mass": 0
|
||||
},
|
||||
"corsair_armour_grade2": {
|
||||
"mass": 32
|
||||
},
|
||||
"corsair_armour_grade3": {
|
||||
"mass": 63
|
||||
},
|
||||
"corsair_armour_mirrored": {
|
||||
"mass": 63
|
||||
},
|
||||
"corsair_armour_reactive": {
|
||||
"mass": 63
|
||||
},
|
||||
"cutter_armour_grade1": {
|
||||
"mass": 0
|
||||
},
|
||||
@@ -671,6 +686,9 @@
|
||||
"hpt_mininglaser_turret_small": {
|
||||
"mass": 2
|
||||
},
|
||||
"hpt_miningtoolv2_fixed_large": {
|
||||
"mass": 8
|
||||
},
|
||||
"hpt_missing_hardpoint": {
|
||||
"mass": 0
|
||||
},
|
||||
@@ -2289,6 +2307,12 @@
|
||||
"fuelmul": 0.012,
|
||||
"fuelpower": 2.9
|
||||
},
|
||||
"int_largecargorack_size7_class1": {
|
||||
"mass": 0
|
||||
},
|
||||
"int_largecargorack_size8_class1": {
|
||||
"mass": 0
|
||||
},
|
||||
"int_lifesupport_size1_class1": {
|
||||
"mass": 1.3
|
||||
},
|
||||
@@ -2503,6 +2527,9 @@
|
||||
"int_multidronecontrol_mining_size3_class3": {
|
||||
"mass": 10
|
||||
},
|
||||
"int_multidronecontrol_miningv2_size5_class5": {
|
||||
"mass": 64
|
||||
},
|
||||
"int_multidronecontrol_operations_size3_class3": {
|
||||
"mass": 10
|
||||
},
|
||||
@@ -3427,6 +3454,21 @@
|
||||
"krait_mkii_armour_reactive": {
|
||||
"mass": 67
|
||||
},
|
||||
"lakonminer_armour_grade1": {
|
||||
"mass": 0
|
||||
},
|
||||
"lakonminer_armour_grade2": {
|
||||
"mass": 32
|
||||
},
|
||||
"lakonminer_armour_grade3": {
|
||||
"mass": 63
|
||||
},
|
||||
"lakonminer_armour_mirrored": {
|
||||
"mass": 63
|
||||
},
|
||||
"lakonminer_armour_reactive": {
|
||||
"mass": 63
|
||||
},
|
||||
"mamba_armour_grade1": {
|
||||
"mass": 0
|
||||
},
|
||||
@@ -3472,6 +3514,21 @@
|
||||
"orca_armour_reactive": {
|
||||
"mass": 87
|
||||
},
|
||||
"panthermkii_armour_grade1": {
|
||||
"mass": 0
|
||||
},
|
||||
"panthermkii_armour_grade2": {
|
||||
"mass": 75
|
||||
},
|
||||
"panthermkii_armour_grade3": {
|
||||
"mass": 150
|
||||
},
|
||||
"panthermkii_armour_mirrored": {
|
||||
"mass": 150
|
||||
},
|
||||
"panthermkii_armour_reactive": {
|
||||
"mass": 150
|
||||
},
|
||||
"python_armour_grade1": {
|
||||
"mass": 0
|
||||
},
|
||||
|
||||
+1
-1
@@ -722,7 +722,7 @@ class EDLogs(FileSystemEventHandler):
|
||||
cap = module['Item'].split('size')
|
||||
cap = cap[1].split('_')
|
||||
cap = 2 ** int(cap[0])
|
||||
ship = ship_name_map[entry["Ship"]]
|
||||
ship = ship_name_map.get(entry["Ship"], entry["Ship"])
|
||||
fuel = {'Main': cap, 'Reserve': ships[ship]['reserveFuelCapacity']}
|
||||
data_dict.update({"FuelCapacity": fuel})
|
||||
data_dict.update({
|
||||
|
||||
+12
-10
@@ -223,22 +223,24 @@ class EDDNSender:
|
||||
|
||||
def convert_legacy_file(self):
|
||||
"""Convert a legacy file's contents into the sqlite3 db."""
|
||||
# DEPRECATED: Legacy files no longer used as of 5.6.0. Will remove in 6.0 or later.
|
||||
filename = config.app_dir_path / 'replay.jsonl'
|
||||
if not filename.exists():
|
||||
return
|
||||
logger.info("Converting legacy `replay.jsonl` to `eddn_queue-v1.db`")
|
||||
try:
|
||||
with open(filename, 'r+', buffering=1) as replay_file:
|
||||
logger.info("Converting legacy `replay.jsonl` to `eddn_queue-v1.db`")
|
||||
with filename.open('r', encoding='utf-8') as replay_file:
|
||||
for line in replay_file:
|
||||
cmdr, msg = json.loads(line)
|
||||
self.add_message(cmdr, msg)
|
||||
|
||||
except FileNotFoundError:
|
||||
except Exception as e:
|
||||
logger.exception("Failed to convert legacy file: %s", e)
|
||||
return
|
||||
|
||||
logger.info("Conversion to `eddn_queue-v1.db` complete, removing `replay.jsonl`")
|
||||
# Best effort at removing the file/contents
|
||||
with open(filename, 'w') as replay_file:
|
||||
replay_file.truncate()
|
||||
os.unlink(filename)
|
||||
logger.info("Conversion complete, removing `replay.jsonl`")
|
||||
try:
|
||||
filename.unlink()
|
||||
except Exception as e:
|
||||
logger.warning("Could not delete legacy file: %s", e)
|
||||
|
||||
def close(self) -> None:
|
||||
"""Clean up any resources."""
|
||||
|
||||
@@ -209,7 +209,7 @@ if sys.platform == 'win32':
|
||||
config_home: The home directory path
|
||||
Returns:
|
||||
Localized path as string
|
||||
"""
|
||||
""" # noqa: D205, D407
|
||||
if not path:
|
||||
return path
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# We can't rely on just picking this up from either the base (not venv),
|
||||
# or venv-init-time version. Specify here so that dependabot will prod us
|
||||
# about new versions.
|
||||
setuptools==78.1.1
|
||||
setuptools==80.9.0
|
||||
|
||||
# Static analysis tools
|
||||
flake8==7.2.0
|
||||
@@ -14,11 +14,11 @@ flake8-noqa==1.4.0
|
||||
flake8-polyfill==1.0.2
|
||||
flake8-use-fstring==1.4
|
||||
|
||||
mypy==1.15.0
|
||||
pep8-naming==0.14.1
|
||||
safety==3.4.0
|
||||
mypy==1.18.2
|
||||
pep8-naming==0.15.1
|
||||
safety==3.6.2
|
||||
types-requests==2.32.0.20250328
|
||||
types-setuptools==80.0.0.20250429
|
||||
types-setuptools==80.9.0.20250529
|
||||
|
||||
# Code formatting tools
|
||||
autopep8==2.3.2
|
||||
@@ -34,9 +34,9 @@ mistune==3.1.3
|
||||
py2exe==0.13.0.2; sys_platform == 'win32'
|
||||
|
||||
# Testing
|
||||
pytest==8.3.5
|
||||
pytest==8.4.2
|
||||
pytest-cov==6.1.1 # Pytest code coverage support
|
||||
coverage[toml]==7.8.0 # pytest-cov dep. This is here to ensure that it includes TOML support for pyproject.toml configs
|
||||
coverage[toml]==7.11.0 # pytest-cov dep. This is here to ensure that it includes TOML support for pyproject.toml configs
|
||||
coverage-conditional-plugin==0.9.0
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
requests==2.32.4
|
||||
pillow==11.2.1
|
||||
requests==2.32.5
|
||||
pillow==12.0.0
|
||||
watchdog==6.0.0
|
||||
simplesystray==0.1.0; sys_platform == 'win32'
|
||||
semantic-version==2.10.0
|
||||
# For manipulating folder permissions and the like.
|
||||
pywin32==310; sys_platform == 'win32'
|
||||
psutil==6.1.1
|
||||
psutil==7.1.0
|
||||
@@ -28,7 +28,7 @@ def get_arg(call: ast.Call) -> str:
|
||||
|
||||
arg = call.args[0]
|
||||
if isinstance(arg, ast.Constant):
|
||||
return arg.value
|
||||
return str(arg.value)
|
||||
if isinstance(arg, ast.Name):
|
||||
return f"VARIABLE! CHECK CODE! {arg.id}"
|
||||
return f"Unknown! {type(arg)=} {ast.dump(arg)} ||| {ast.unparse(arg)}"
|
||||
|
||||
+13
-1
@@ -39,10 +39,14 @@
|
||||
"hullMass": 210,
|
||||
"reserveFuelCapacity": 0.51
|
||||
},
|
||||
"Cobra MkV": {
|
||||
"Cobra Mk V": {
|
||||
"hullMass": 150,
|
||||
"reserveFuelCapacity": 0.49
|
||||
},
|
||||
"Corsair": {
|
||||
"hullMass": 265,
|
||||
"reserveFuelCapacity": 0.41
|
||||
},
|
||||
"Diamondback Explorer": {
|
||||
"hullMass": 260,
|
||||
"reserveFuelCapacity": 0.52
|
||||
@@ -123,6 +127,10 @@
|
||||
"hullMass": 290,
|
||||
"reserveFuelCapacity": 0.79
|
||||
},
|
||||
"Panther Clipper Mk II": {
|
||||
"hullMass": 1200,
|
||||
"reserveFuelCapacity": 1.11
|
||||
},
|
||||
"Python": {
|
||||
"hullMass": 350,
|
||||
"reserveFuelCapacity": 0.83
|
||||
@@ -139,6 +147,10 @@
|
||||
"hullMass": 1200,
|
||||
"reserveFuelCapacity": 0.77
|
||||
},
|
||||
"Type-11 Prospector": {
|
||||
"hullMass": 320,
|
||||
"reserveFuelCapacity": 0.6
|
||||
},
|
||||
"Type-6 Transporter": {
|
||||
"hullMass": 155,
|
||||
"reserveFuelCapacity": 0.39
|
||||
|
||||
@@ -222,7 +222,7 @@ class _Theme:
|
||||
widget = event.widget
|
||||
if widget and widget['state'] != tk.DISABLED:
|
||||
try:
|
||||
widget.configure(state=tk.ACTIVE)
|
||||
widget.configure(state=tk.ACTIVE) # type: ignore
|
||||
|
||||
except Exception:
|
||||
logger.exception(f'Failure setting widget active: {widget=}')
|
||||
@@ -239,7 +239,7 @@ class _Theme:
|
||||
widget = event.widget
|
||||
if widget and widget['state'] != tk.DISABLED:
|
||||
try:
|
||||
widget.configure(state=tk.NORMAL)
|
||||
widget.configure(state=tk.NORMAL) # type: ignore
|
||||
|
||||
except Exception:
|
||||
logger.exception(f'Failure setting widget normal: {widget=}')
|
||||
|
||||
Reference in new issue
Block a user