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 
"""
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+'''
-| Name | Size |
+| Name | Size | Modified |
'''
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()