First draft.
parent
905da70079
commit
692da8db27
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env python3.6
|
||||
# coding=utf-8
|
||||
import json
|
||||
|
||||
from qutescript import qutescript
|
||||
|
||||
|
||||
@qutescript
|
||||
def dump_to_log(request):
|
||||
with open('qutescript.debug.log', 'a') as logfile:
|
||||
line = json.dumps(request.dump())
|
||||
logfile.writelines([line])
|
||||
|
||||
if __name__ == '__main__':
|
||||
dump_to_log()
|
@ -1 +1,10 @@
|
||||
__version__ = "0.1.0"
|
||||
|
||||
from .decorators import qutescript
|
||||
from .request import Request, build_request
|
||||
|
||||
__all__ = [
|
||||
'build_request',
|
||||
'qutescript',
|
||||
'Request',
|
||||
]
|
||||
|
@ -0,0 +1,33 @@
|
||||
# coding=utf-8
|
||||
|
||||
import sys
|
||||
|
||||
import os
|
||||
|
||||
from .request import build_request
|
||||
|
||||
log_file_path = './qutescript.log'
|
||||
|
||||
|
||||
def write_log(message, file_path=None):
|
||||
file_path = file_path or log_file_path
|
||||
file_path = os.path.abspath(os.path.expanduser(file_path))
|
||||
with open(file_path, 'a') as logfile:
|
||||
logfile.writelines([message])
|
||||
|
||||
|
||||
def qutescript(func):
|
||||
def wrapper():
|
||||
request = build_request()
|
||||
command = func(request)
|
||||
if not command:
|
||||
return
|
||||
if not request.fifo:
|
||||
write_log('ERROR: userscript returned command: {}, '
|
||||
'but QUTE_FIFO was not found in passed environment.\n'
|
||||
'Try: :spawn --userscript /path/to/script ?')
|
||||
sys.exit(1)
|
||||
with open(request.fifo, 'w') as fifo:
|
||||
fifo.write('{}\n'.format(command))
|
||||
|
||||
return wrapper
|
@ -0,0 +1,54 @@
|
||||
# coding=utf-8
|
||||
|
||||
|
||||
class Request(object):
|
||||
def __init__(self):
|
||||
self.mode = None
|
||||
self.user_agent = None
|
||||
self.fifo = None
|
||||
self.html = None
|
||||
self.text = None
|
||||
self.config_dir = None
|
||||
self.data_dir = None
|
||||
self.download_dir = None
|
||||
self.commandline_text = None
|
||||
self.url = None
|
||||
self.title = None
|
||||
self.selected_text = None
|
||||
self.selected_html = None
|
||||
|
||||
def dump(self):
|
||||
return {
|
||||
'mode': self.mode,
|
||||
'user_agent': self.user_agent,
|
||||
'fifo': self.fifo,
|
||||
'html': self.html,
|
||||
'text': self.text,
|
||||
'config_dir': self.config_dir,
|
||||
'data_dir': self.data_dir,
|
||||
'download_dir': self.download_dir,
|
||||
'commandline_text': self.commandline_text,
|
||||
'url': self.url,
|
||||
'title': self.title,
|
||||
'selected_text': self.selected_text,
|
||||
'selected_html': self.selected_html,
|
||||
}
|
||||
|
||||
|
||||
def build_request():
|
||||
import os
|
||||
request = Request()
|
||||
request.mode = os.getenv('QUTE_MODE')
|
||||
request.user_agent = os.getenv('QUTE_USER_AGENT')
|
||||
request.fifo = os.getenv('QUTE_FIFO')
|
||||
request.html = os.getenv('QUTE_HTML')
|
||||
request.text = os.getenv('QUTE_TEXT')
|
||||
request.config_dir = os.getenv('QUTE_CONFIG_DIR')
|
||||
request.data_dir = os.getenv('QUTE_DATA_DIR')
|
||||
request.download_dir = os.getenv('QUTE_DOWNLOAD_DIR')
|
||||
request.commandline_text = os.getenv('QUTE_COMMANDLINE_TEXT')
|
||||
request.url = os.getenv('QUTE_URL')
|
||||
request.title = os.getenv('QUTE_TITLE')
|
||||
request.selected_text = os.getenv('QUTE_SELECTED_TEXT')
|
||||
request.selected_html = os.getenv('QUTE_SELECTED_HTML')
|
||||
return request
|
Loading…
Reference in New Issue