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"
|
__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