You can add a draft by 'draft add [name]' now and receive a simple template with current time and date and UNIX username as author. At this Time emacs is hardcoded as editor.
Also I expanded the 'blog update' program logic.
This commit is contained in:
parent
22df72569b
commit
e52104895b
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import os,re,subprocess
|
||||
import os,re,time,getpass,subprocess
|
||||
from string import Template
|
||||
from argparse import ArgumentParser
|
||||
|
||||
|
@ -57,6 +57,9 @@ print(args)
|
|||
# Global Constants #
|
||||
####################
|
||||
|
||||
# logged in user
|
||||
user = getpass.getuser()
|
||||
|
||||
# set path to blog
|
||||
try:
|
||||
blog_dir = os.path.abspath(os.path.expanduser(vars(args)['blog_dir']))
|
||||
|
@ -68,6 +71,15 @@ except:
|
|||
|
||||
(pbconf,blogconf,l10nconf) = (False,False,False)
|
||||
|
||||
# path to blog's templates
|
||||
tplDir = os.path.join(blog_dir,"templates")
|
||||
|
||||
# paths to configs
|
||||
pbconfpath = os.path.join("/","etc","picoblogger","pb.conf") # global config
|
||||
blogconfpath = os.path.join(blog_dir,"pb.conf") # local config
|
||||
|
||||
|
||||
|
||||
##################
|
||||
# Help Functions #
|
||||
##################
|
||||
|
@ -87,41 +99,43 @@ def parse_conf(path):
|
|||
return aVars
|
||||
|
||||
|
||||
|
||||
######################
|
||||
# Parse Config Files #
|
||||
######################
|
||||
|
||||
pbconfpath = os.path.join("/","etc","picoblogger","pb.conf")
|
||||
try:
|
||||
if os.path.isfile(pbconfpath):
|
||||
pbconf = parse_conf(pbconfpath)
|
||||
except:
|
||||
print("Couldn't parse systems global picoblogger configuration (/etc/picoblogger/pb.conf).")
|
||||
print("Couldn't parse systems global picoblogger configuration (%s)."%pbconfpath)
|
||||
raise
|
||||
|
||||
blogconfpath = os.path.join(blog_dir,"pb.conf")
|
||||
|
||||
try:
|
||||
if os.path.isfile(blogconfpath):
|
||||
blogconf = parse_conf(blogconfpath)
|
||||
|
||||
except:
|
||||
print("Couldn't parse blog's local configuration ([blog-dir]/pb.conf).")
|
||||
print("Couldn't parse blog's local configuration (%s)."%blogconfpath)
|
||||
raise
|
||||
|
||||
l10nconfpath = os.path.join(blog_dir,"l10n",blogconf['BLOG_LANG'],"static.conf")
|
||||
l10nconfpath = os.path.join(blog_dir,"l10n",blogconf['BLOG_LANG'],"static.conf") # localization file
|
||||
try:
|
||||
if os.path.isfile(l10nconfpath):
|
||||
l10nconf = parse_conf(l10nconfpath)
|
||||
print(l10nconf)
|
||||
except:
|
||||
print("Couldn't parse localization file ([blog-dir]/l10n/['BLOG_LANG']/static.conf).")
|
||||
print("Couldn't parse localization file (%s)."%l10nconfpath)
|
||||
raise
|
||||
|
||||
|
||||
tplDir = os.path.join(blog_dir,"templates")
|
||||
########################
|
||||
# Templating functions #
|
||||
########################
|
||||
|
||||
def update_blog(subsection):
|
||||
|
||||
# Joins config defined variables into templates
|
||||
|
||||
tplIndex = os.path.join(tplDir,"index.htm")
|
||||
blogIndex = os.path.join(blog_dir,"index.html")
|
||||
|
||||
|
@ -151,6 +165,10 @@ def update_blog(subsection):
|
|||
with open(blogIndex,"w", encoding=l10nconf['BLOG_CHARSET']) as f:
|
||||
print(tmpIndex, file=f)
|
||||
|
||||
|
||||
##################
|
||||
# Main Functions #
|
||||
##################
|
||||
|
||||
# blog functions
|
||||
|
||||
|
@ -160,8 +178,20 @@ if vars(args)['target'] == 'blog':
|
|||
## update subsections or whole blog
|
||||
|
||||
if vars(args)['action'] == 'update':
|
||||
print("Updating your block.")
|
||||
|
||||
if vars(args)['subsection'] in ('recent','all'):
|
||||
pass
|
||||
|
||||
if vars(args)['subsection'] in ('archive','all'):
|
||||
pass
|
||||
|
||||
if vars(args)['subsection'] in ('feed','all'):
|
||||
pass
|
||||
|
||||
# Joining all templates
|
||||
update_blog(vars(args)['subsection'])
|
||||
print("Updated your blog.")
|
||||
|
||||
|
||||
|
||||
## add a new blog at -d blog-directory
|
||||
|
@ -178,7 +208,18 @@ if vars(args)['target'] == 'draft':
|
|||
## add new draft
|
||||
|
||||
if vars(args)['action'] == 'add':
|
||||
subprocess.call(["emacs",os.path.join(blog_dir,"templates/article.txt")])
|
||||
draft = os.path.join(blog_dir,"drafts",vars(args)['name'] + ".txt")
|
||||
tpl = os.path.join(tplDir,"article.tpl")
|
||||
sTpl = open(tpl).read()
|
||||
subs = {"DATE" : time.strftime("%x",time.localtime()), "TIME" : time.strftime("%X",time.localtime()),
|
||||
"AUTHOR" : user
|
||||
}
|
||||
|
||||
sTpl = Template(sTpl).safe_substitute(subs)
|
||||
with open(draft,"w", encoding=l10nconf['BLOG_CHARSET']) as f:
|
||||
print(sTpl, file=f)
|
||||
|
||||
subprocess.call(["emacs", "nw", draft])
|
||||
|
||||
|
||||
## list drafts
|
||||
|
|
Loading…
Reference in New Issue