Skip to content

Commit

Permalink
Merge branch 'develop' into enhancement/2203/add-global-exception-han…
Browse files Browse the repository at this point in the history
…dling
  • Loading branch information
Rixxan authored May 13, 2024
2 parents df642a6 + b8e8972 commit 44f809f
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 32 deletions.
6 changes: 3 additions & 3 deletions EDMarketConnector.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import sys
import threading
import webbrowser
import tempfile
from os import chdir, environ, path
from time import localtime, strftime, time
from typing import TYPE_CHECKING, Any, Literal
Expand Down Expand Up @@ -49,8 +50,6 @@
# output until after this redirect is done, if needed.
if getattr(sys, 'frozen', False):
# By default py2exe tries to write log to dirname(sys.executable) which fails when installed
import tempfile

# unbuffered not allowed for text in python3, so use `1 for line buffering
log_file_path = path.join(tempfile.gettempdir(), f'{appname}.log')
sys.stdout = sys.stderr = open(log_file_path, mode='wt', buffering=1) # Do NOT use WITH here.
Expand Down Expand Up @@ -634,7 +633,8 @@ def open_window(systray: 'SysTrayIcon') -> None:
self.help_menu.add_command(command=lambda: self.updater.check_for_updates()) # Check for Updates...
# About E:D Market Connector
self.help_menu.add_command(command=lambda: not self.HelpAbout.showing and self.HelpAbout(self.w))
self.help_menu.add_command(command=prefs.help_open_log_folder) # Open Log Folder
logfile_loc = pathlib.Path(tempfile.gettempdir()) / appname
self.help_menu.add_command(command=lambda: prefs.open_folder(logfile_loc)) # Open Log Folder

self.menubar.add_cascade(menu=self.help_menu)
if sys.platform == 'win32':
Expand Down
6 changes: 3 additions & 3 deletions monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import ctypes
from ctypes.wintypes import BOOL, HWND, LPARAM, LPWSTR

from watchdog.events import FileCreatedEvent, FileSystemEventHandler
from watchdog.events import FileSystemEventHandler, FileSystemEvent
from watchdog.observers import Observer
from watchdog.observers.api import BaseObserver

Expand All @@ -60,7 +60,7 @@
FileSystemEventHandler = object # dummy
if TYPE_CHECKING:
# this isn't ever used, but this will make type checking happy
from watchdog.events import FileCreatedEvent
from watchdog.events import FileSystemEvent
from watchdog.observers import Observer
from watchdog.observers.api import BaseObserver

Expand Down Expand Up @@ -346,7 +346,7 @@ def running(self) -> bool:
"""
return bool(self.thread and self.thread.is_alive())

def on_created(self, event: 'FileCreatedEvent') -> None:
def on_created(self, event: 'FileSystemEvent') -> None:
"""Watchdog callback when, e.g. client (re)started."""
if not event.is_directory and self._RE_LOGFILE.search(basename(event.src_path)):

Expand Down
39 changes: 21 additions & 18 deletions plugins/inara.py
Original file line number Diff line number Diff line change
Expand Up @@ -550,23 +550,6 @@ def journal_entry( # noqa: C901, CCR001

# Ship change
if event_name == 'Loadout' and this.shipswap:
cur_ship = {
'shipType': state['ShipType'],
'shipGameID': state['ShipID'],
'shipName': state['ShipName'], # Can be None
'shipIdent': state['ShipIdent'], # Can be None
'isCurrentShip': True,
}

if state['HullValue']:
cur_ship['shipHullValue'] = state['HullValue']

if state['ModulesValue']:
cur_ship['shipModulesValue'] = state['ModulesValue']

cur_ship['shipRebuyCost'] = state['Rebuy']
new_add_event('setCommanderShip', entry['timestamp'], cur_ship)

this.loadout = make_loadout(state)
new_add_event('setCommanderShipLoadout', entry['timestamp'], this.loadout)
this.shipswap = False
Expand Down Expand Up @@ -854,7 +837,7 @@ def journal_entry( # noqa: C901, CCR001
for ship in this.fleet:
new_add_event('setCommanderShip', entry['timestamp'], ship)
# Loadout
if event_name == 'Loadout' and not this.newsession:
if event_name == 'Loadout':
loadout = make_loadout(state)
if this.loadout != loadout:
this.loadout = loadout
Expand All @@ -868,6 +851,26 @@ def journal_entry( # noqa: C901, CCR001

new_add_event('setCommanderShipLoadout', entry['timestamp'], this.loadout)

cur_ship = {
'shipType': state['ShipType'],
'shipGameID': state['ShipID'],
'shipName': state['ShipName'], # Can be None
'shipIdent': state['ShipIdent'], # Can be None
'isCurrentShip': True,
'shipMaxJumpRange': entry['MaxJumpRange'],
'shipCargoCapacity': entry['CargoCapacity']
}
if state['HullValue']:
cur_ship['shipHullValue'] = state['HullValue']

if state['ModulesValue']:
cur_ship['shipModulesValue'] = state['ModulesValue']

if state['Rebuy']:
cur_ship['shipRebuyCost'] = state['Rebuy']

new_add_event('setCommanderShip', entry['timestamp'], cur_ship)

# Stored modules
if event_name == 'StoredModules':
items = {mod['StorageSlot']: mod for mod in entry['Items']} # Impose an order
Expand Down
23 changes: 16 additions & 7 deletions prefs.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import sys
import tempfile
import tkinter as tk
import webbrowser
from os import system
from os.path import expanduser, expandvars, join, normpath
from tkinter import colorchooser as tkColorChooser # type: ignore # noqa: N812
Expand Down Expand Up @@ -40,14 +39,21 @@

def help_open_log_folder() -> None:
"""Open the folder logs are stored in."""
logfile_loc = pathlib.Path(tempfile.gettempdir())
logfile_loc /= f'{appname}'
logger.warning(
DeprecationWarning("This function is deprecated, use open_log_folder instead. "
"This function will be removed in 6.0 or later")
)
open_folder(pathlib.Path(tempfile.gettempdir()) / appname)


def open_folder(file: pathlib.Path) -> None:
"""Open the given file in the OS file explorer."""
if sys.platform.startswith('win'):
# On Windows, use the "start" command to open the folder
system(f'start "" "{logfile_loc}"')
system(f'start "" "{file}"')
elif sys.platform.startswith('linux'):
# On Linux, use the "xdg-open" command to open the folder
system(f'xdg-open "{logfile_loc}"')
system(f'xdg-open "{file}"')


class PrefsVersion:
Expand Down Expand Up @@ -296,6 +302,9 @@ def __init__(self, parent: tk.Tk, callback: Optional[Callable]):
):
self.geometry(f"+{position.left}+{position.top}")

# Set Log Directory
self.logfile_loc = pathlib.Path(tempfile.gettempdir()) / appname

def __setup_output_tab(self, root_notebook: ttk.Notebook) -> None:
output_frame = nb.Frame(root_notebook)
output_frame.columnconfigure(0, weight=1)
Expand Down Expand Up @@ -623,7 +632,7 @@ def __setup_config_tab(self, notebook: ttk.Notebook) -> None: # noqa: CCR001
config_frame,
# LANG: Label on button used to open a filesystem folder
text=tr.tl('Open Log Folder'), # Button that opens a folder in Explorer/Finder
command=lambda: help_open_log_folder()
command=lambda: open_folder(self.logfile_loc)
).grid(column=2, padx=self.PADX, pady=0, sticky=tk.NSEW, row=cur_row)

# Big spacer
Expand Down Expand Up @@ -884,7 +893,7 @@ def __setup_plugin_tab(self, notebook: ttk.Notebook) -> None: # noqa: CCR001
plugins_frame,
# LANG: Label on button used to open a filesystem folder
text=tr.tl('Open'), # Button that opens a folder in Explorer/Finder
command=lambda: webbrowser.open(f'file:///{config.plugin_dir_path}')
command=lambda: open_folder(config.plugin_dir_path)
).grid(column=1, padx=self.PADX, pady=self.PADY, sticky=tk.N, row=cur_row)

enabled_plugins = list(filter(lambda x: x.folder and x.module, plug.PLUGINS))
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
requests==2.31.0
pillow==10.3.0
watchdog==3.0.0
watchdog==4.0.0
infi.systray==0.1.12; sys_platform == 'win32'
semantic-version==2.10.0

0 comments on commit 44f809f

Please sign in to comment.