Browse Source

First draft

Not tested, but starts to implement required features
master
Raphael Roberts 7 years ago
parent
commit
74a000216e
  1. 17
      build.py
  2. 25
      ext_open.py
  3. 35
      load_save.py
  4. 5
      windowless.vbs

17
build.py

@ -1,8 +1,7 @@
import os
import os.path as osp
import datetime
from util import no_parents
from util import get_drives
from util import no_parents,get_drives
def build(after,*starts):
if isinstance(after,datetime.datetime):
after = after.timestamp()
@ -21,6 +20,14 @@ def build(after,*starts):
except:
print('Error',root,sep= ': ')
return ret
if __name__ == "__main__":
td = datetime.datetime.today()
ret = build(datetime.datetime(td.year,(td.month - 1 -1)%12+1,1),r'X:\Users\Ralphie')
def build_ext(ext,paths):
ret = {}
for path in paths:
if path.endswith(ext):
name = osp.basename(path)
try:
ret[name].append(path)
except KeyError:
ret[name] = [path]
return ret

25
ext_open.py

@ -0,0 +1,25 @@
import subprocess
from binaryornot.check import is_binary
import os
EDITOR_PATH =
def edit(path,params=[]):
call_chain = [EDITOR_PATH] + params
if not is_binary(path):
call_chain.append(path)
subprocess.call(call_chain)
def standalone(path,params=[],windowless =False,cwd = None):
path2windowless = os.path.join(os.path.dirname(__file__),'windowless.vbs')
params = list(map(os.path.expandvars,params))
if not cwd:
cwd = os.path.dirname(path)
else:
cwd = os.path.expandvars(cwd)
if windowless:
cmd = ' '.join('~{}~'.format(arg) if ' ' in arg else arg for arg in [fullpath]+params)
print(cmd)
subprocess.check_output(["cscript.exe",path2windowless,cmd,cwd])
else:
subprocess.Popen([fullpath]+params,cwd=cwd)

35
load_save.py

@ -0,0 +1,35 @@
import json
from build import build, build_ext_list
import time
def full(ext,*starts):
stime = time.time()
paths = build(0,*starts)
names = build_ext_list(ext,paths)
return {
"meta" : {
"ext" : ext,
"time": stime,
},
"data": names
}
def save(ext_map):
ext = ext_map["meta"]["ext"]
with open(f"{ext}-cache.json","w") as file:
json.dump(ext_map,file)
def load(ext):
with open(f"{ext}-cache.json") as file:
return json.load(file)
def update(ext,*starts):
ext_map = load(ext)
prev_time = ext_map["meta"]["time"]
stime = time.time()
paths = build(prev_time,*starts)
names = build_ext_list(ext,paths)
ext_map.update(names)
ext_map["meta"]["time"] = stime
save(ext_map)
return ext_map

5
windowless.vbs

@ -0,0 +1,5 @@
Const Quote = """"
Set Shell = CreateObject("WScript.Shell")
Shell.CurrentDirectory = WScript.Arguments(1)
command = Replace(WScript.Arguments(0),"~",Quote)
Shell.Run command, 0, False
Loading…
Cancel
Save