Add GreasemonkeyScript.__str__

This commit is contained in:
Florian Bruhin 2021-06-09 18:32:43 +02:00
parent e328b08616
commit 02f136238b
2 changed files with 14 additions and 15 deletions

View File

@ -101,6 +101,9 @@ class GreasemonkeyScript:
HEADER_REGEX = r'// ==UserScript==|\n+// ==/UserScript==\n'
PROPS_REGEX = r'// @(?P<prop>[^\s]+)\s*(?P<val>.*)'
def __str__(self):
return self.name
@classmethod
def parse(cls, source, filename=None):
"""GreasemonkeyScript factory.
@ -301,7 +304,7 @@ class GreasemonkeyManager(QObject):
scripts.append(script)
self.scripts_reloaded.emit()
return sorted(scripts, key=lambda script: script.name)
return sorted(scripts, key=str)
def add_script(self, script, force=False):
"""Add a GreasemonkeyScript to this manager.
@ -312,8 +315,7 @@ class GreasemonkeyManager(QObject):
"""
if script.requires:
log.greasemonkey.debug(
"Deferring script until requirements are "
"fulfilled: {}".format(script.name))
f"Deferring script until requirements are fulfilled: {script}")
self._get_required_scripts(script, force)
else:
self._add_script(script)
@ -327,14 +329,13 @@ class GreasemonkeyManager(QObject):
self._run_idle.append(script)
else:
if script.run_at:
log.greasemonkey.warning("Script {} has invalid run-at "
"defined, defaulting to "
"document-end"
.format(script.name))
log.greasemonkey.warning(
f"Script {script} has invalid run-at defined, defaulting to "
"document-end")
# Default as per
# https://wiki.greasespot.net/Metadata_Block#.40run-at
self._run_end.append(script)
log.greasemonkey.debug("Loaded script: {}".format(script.name))
log.greasemonkey.debug(f"Loaded script: {script}")
def _required_url_to_file_path(self, url):
requires_dir = os.path.join(_scripts_dirs()[0], 'requires')
@ -346,9 +347,8 @@ class GreasemonkeyManager(QObject):
self._in_progress_dls.remove(download)
if not self._add_script_with_requires(script):
log.greasemonkey.debug(
"Finished download {} for script {} "
"but some requirements are still pending"
.format(download.basename, script.name))
"Finished download {download.basename} for script {script} "
"but some requirements are still pending")
def _add_script_with_requires(self, script, quiet=False):
"""Add a script with pending downloads to this GreasemonkeyManager.
@ -372,8 +372,7 @@ class GreasemonkeyManager(QObject):
for url in reversed(script.requires):
target_path = self._required_url_to_file_path(url)
log.greasemonkey.debug(
"Adding required script for {} to IIFE: {}"
.format(script.name, url))
f"Adding required script for {script} to IIFE: {url}")
with open(target_path, encoding='utf8') as f:
script.add_required_script(f.read())
@ -446,7 +445,7 @@ def greasemonkey_reload(force: bool = False, quiet: bool = False) -> None:
quiet: Suppress message after loading scripts.
"""
scripts = gm_manager.load_scripts(force=force)
names = '\n'.join(script.name for script in scripts)
names = '\n'.join(str(script) for script in scripts)
if not quiet:
message.info(f"Loaded scripts:\n\n{names}")

View File

@ -343,7 +343,7 @@ class BrowserPage(QWebPage):
for script in toload:
if frame is self.mainFrame() or script.runs_on_sub_frames:
log.webview.debug('Running GM script: {}'.format(script.name))
log.webview.debug(f'Running GM script: {script}')
frame.evaluateJavaScript(script.code())
@pyqtSlot('QWebFrame*', 'QWebPage::Feature')