From fe5ac26e53eff8e8341d861ec340995fb2dbea21 Mon Sep 17 00:00:00 2001 From: Ville Rantanen Date: Thu, 25 Jun 2015 09:16:35 +0300 Subject: [PATCH] added date and color to SimpleWebPage --- reporting/markslider.py | 28 ++++++++++++++++++++------- web_serving/SimpleWebPage.py | 37 +++++++++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 16 deletions(-) diff --git a/reporting/markslider.py b/reporting/markslider.py index e78d270..b357ef0 100755 --- a/reporting/markslider.py +++ b/reporting/markslider.py @@ -469,15 +469,31 @@ def add_highlight(s,opts): return colorify(tagged,opts) def launch(reader,opts,offset): - """ Launch in a string using tags $!command$! - Used with highlight - Remove empty lines from beginning and end of stdout. + """ Launch in a string using tags $!command$! or $>command$> + Remove empty lines from beginning and end of stdout in $> commands. + Detects URLS and markdown images ![Alt text](/path/to/img.jpg) """ if not opts.execute: return s=reader.get_current_page()[offset[1]] - if s.find("$!")+s.find("$>")==-2: - return + urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', s) + images = re.findall('!\[[^]]+\]\([^\)]+\)', s) + if s.find("$!")==-1 and s.find("$>")==-1 and len(urls)==0 and len(images)==0: + return + + if len(urls)>0: + # Remove ) at the end of url: [name](link) markdown syntax + subprocess.call("xdg-open '%s' &"%(urls[0].rstrip(")"),), + stdout=subprocess.PIPE,stderr=subprocess.PIPE, + shell=True) + return + + if len(images)>0: + image = re.sub('.*\(([^\)]+)\).*', "\\1",images[0]) + subprocess.call("xdg-open '%s' &"%(image,), + stdout=subprocess.PIPE,stderr=subprocess.PIPE, + shell=True) + return run_command=re.match("(.*)\$!(.*)\$!(.*)",s) show_command=re.match("(.*)\$>(.*)\$>(.*)",s) @@ -496,8 +512,6 @@ def launch(reader,opts,offset): return if run_command != None: subprocess.call(run_command.group(2), - #~ stdout=subprocess.PIPE, - #~ stderr=subprocess.PIPE, shell=True,executable="/bin/bash") inkey=getch.get() return diff --git a/web_serving/SimpleWebPage.py b/web_serving/SimpleWebPage.py index 6a71489..19b3581 100755 --- a/web_serving/SimpleWebPage.py +++ b/web_serving/SimpleWebPage.py @@ -3,7 +3,7 @@ ''' A script that creates index.html indexes for a folder. ''' -import os,sys +import os,sys,time import urllib INDEXFILE='index.html' @@ -54,21 +54,40 @@ def generate_index(opts): def get_filelink(path,fname): fsize=os.path.getsize(os.path.join(path,fname)) fsstr=sizeof(fsize) - return ''+fname+''+fsstr+'\n' - + fdate=time.localtime(os.path.getmtime(os.path.join(path,fname))) + fdstr=time.strftime("%Y/%m/%d %H:%M:%S",fdate) + return ''+fname+''+fsstr+''+fdstr+'\n' def get_pathlink(path): - return ''+path+'\n' + fdate=time.localtime(os.path.getmtime(path)) + fdstr=time.strftime("%Y/%m/%d %H:%M:%S",fdate) + return ''+path+'[DIR]'+fdstr+'\n' def get_header(title): header=''' Index of '''+title+''' +

Index of '''+title+'''

- +
NameSize
''' return header @@ -78,11 +97,11 @@ def get_footer(): return footer def sizeof(num): - for x in ['bytes','KB','MB','GB','TB']: + for x in [' B','KB','MB','GB','TB']: if num < 1024.0: - if x=='bytes': - return "%d %s" % (num, x) - return "%3.1f %s" % (num, x) + if x==' B': + return "%d %s" % (num, x) + return "%3.1f %s" % (num, x) num /= 1024.0 opts=setup()
NameSizeModified