Perliminary properties viewer plugin
This commit is contained in:
@@ -25,12 +25,12 @@ def daemon_threaded(fn):
|
||||
|
||||
|
||||
class Manifest:
|
||||
path: str = os.path.dirname(os.path.realpath(__file__))
|
||||
name: str = "Youtube Download"
|
||||
author: str = "ITDominator"
|
||||
version: str = "0.0.1"
|
||||
support: str = ""
|
||||
permissions: {} = {
|
||||
path: str = os.path.dirname(os.path.realpath(__file__))
|
||||
name: str = "Youtube Download"
|
||||
author: str = "ITDominator"
|
||||
version: str = "0.0.1"
|
||||
support: str = ""
|
||||
requests: {} = {
|
||||
'ui_target': "plugin_control_list",
|
||||
'pass_fm_events': "true"
|
||||
|
||||
@@ -39,9 +39,9 @@ class Manifest:
|
||||
|
||||
class Plugin(Manifest):
|
||||
def __init__(self):
|
||||
self._fm_event_system = None
|
||||
self._event_sleep_time = .5
|
||||
self._fm_event_message = None
|
||||
self._event_system = None
|
||||
self._event_sleep_time = .5
|
||||
self._event_message = None
|
||||
|
||||
|
||||
def get_ui_element(self):
|
||||
@@ -50,24 +50,38 @@ class Plugin(Manifest):
|
||||
return button
|
||||
|
||||
def set_fm_event_system(self, fm_event_system):
|
||||
self._fm_event_system = fm_event_system
|
||||
self._event_system = fm_event_system
|
||||
|
||||
def run(self):
|
||||
self._module_event_observer()
|
||||
|
||||
|
||||
@threaded
|
||||
def _do_download(self, widget=None, eve=None):
|
||||
self._event_system.push_gui_event([self.name, "get_current_state", ()])
|
||||
self.wait_for_fm_message()
|
||||
|
||||
state = self._event_message
|
||||
subprocess.Popen([f'{self.path}/download.sh' , state.tab.get_current_directory()])
|
||||
self._event_message = None
|
||||
|
||||
|
||||
def wait_for_fm_message(self):
|
||||
while not self._event_message:
|
||||
pass
|
||||
|
||||
@daemon_threaded
|
||||
def _module_event_observer(self):
|
||||
while True:
|
||||
time.sleep(self._event_sleep_time)
|
||||
event = self._fm_event_system.read_module_event()
|
||||
event = self._event_system.read_module_event()
|
||||
if event:
|
||||
try:
|
||||
if event[0] == self.name:
|
||||
target_id, method_target, data = self._fm_event_system.consume_module_event()
|
||||
target_id, method_target, data = self._event_system.consume_module_event()
|
||||
|
||||
if not method_target:
|
||||
self._fm_event_message = data
|
||||
self._event_message = data
|
||||
else:
|
||||
method = getattr(self.__class__, f"{method_target}")
|
||||
if data:
|
||||
@@ -76,14 +90,3 @@ class Plugin(Manifest):
|
||||
method(*(self,))
|
||||
except Exception as e:
|
||||
print(repr(e))
|
||||
|
||||
|
||||
@threaded
|
||||
def _do_download(self, widget=None, eve=None):
|
||||
self._fm_event_system.push_gui_event([self.name, "get_current_state", ()])
|
||||
while not self._fm_event_message:
|
||||
pass
|
||||
|
||||
state = self._fm_event_message
|
||||
subprocess.Popen([f'{self.path}/download.sh' , state.tab.get_current_directory()])
|
||||
self._fm_event_message = None
|
||||
|
Reference in New Issue
Block a user