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 | #!/usr/bin/python3 | ||||||
| 
 | 
 | ||||||
| import os,re,subprocess | import os,re,time,getpass,subprocess | ||||||
| from string import Template | from string import Template | ||||||
| from argparse import ArgumentParser | from argparse import ArgumentParser | ||||||
| 
 | 
 | ||||||
|  | @ -57,6 +57,9 @@ print(args) | ||||||
| # Global Constants # | # Global Constants # | ||||||
| #################### | #################### | ||||||
| 
 | 
 | ||||||
|  | # logged in user | ||||||
|  | user = getpass.getuser() | ||||||
|  | 
 | ||||||
| # set path to blog | # set path to blog | ||||||
| try: | try: | ||||||
|     blog_dir = os.path.abspath(os.path.expanduser(vars(args)['blog_dir'])) |     blog_dir = os.path.abspath(os.path.expanduser(vars(args)['blog_dir'])) | ||||||
|  | @ -68,6 +71,15 @@ except: | ||||||
| 
 | 
 | ||||||
| (pbconf,blogconf,l10nconf) = (False,False,False) | (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 # | # Help Functions # | ||||||
| ################## | ################## | ||||||
|  | @ -87,40 +99,42 @@ def parse_conf(path): | ||||||
|     return aVars |     return aVars | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| ###################### | ###################### | ||||||
| # Parse Config Files # | # Parse Config Files # | ||||||
| ###################### | ###################### | ||||||
| 
 | 
 | ||||||
| pbconfpath = os.path.join("/","etc","picoblogger","pb.conf") |  | ||||||
| try: | try: | ||||||
|     if os.path.isfile(pbconfpath): |     if os.path.isfile(pbconfpath): | ||||||
|         pbconf = parse_conf(pbconfpath) |         pbconf = parse_conf(pbconfpath) | ||||||
| except: | except: | ||||||
|     print("Couldn't parse systems global picoblogger configuration (/etc/picoblogger/pb.conf).") |     print("Couldn't parse systems global picoblogger configuration (%s)."%pbconfpath) | ||||||
|     raise |     raise | ||||||
| 
 | 
 | ||||||
| blogconfpath = os.path.join(blog_dir,"pb.conf") | 
 | ||||||
| try: | try: | ||||||
|     if os.path.isfile(blogconfpath): |     if os.path.isfile(blogconfpath): | ||||||
|         blogconf = parse_conf(blogconfpath) |         blogconf = parse_conf(blogconfpath) | ||||||
| 
 | 
 | ||||||
| except: | except: | ||||||
|     print("Couldn't parse blog's local configuration ([blog-dir]/pb.conf).") |     print("Couldn't parse blog's local configuration (%s)."%blogconfpath) | ||||||
|     raise |     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: | try: | ||||||
|     if os.path.isfile(l10nconfpath): |     if os.path.isfile(l10nconfpath): | ||||||
|         l10nconf = parse_conf(l10nconfpath) |         l10nconf = parse_conf(l10nconfpath) | ||||||
|         print(l10nconf) |  | ||||||
| except: | except: | ||||||
|     print("Couldn't parse localization file ([blog-dir]/l10n/['BLOG_LANG']/static.conf).") |     print("Couldn't parse localization file (%s)."%l10nconfpath) | ||||||
|     raise |     raise | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| tplDir = os.path.join(blog_dir,"templates") | ######################## | ||||||
|  | # Templating functions # | ||||||
|  | ######################## | ||||||
|      |      | ||||||
| def update_blog(subsection): | def update_blog(subsection): | ||||||
|  |     # Joins config defined variables into templates | ||||||
|      |      | ||||||
|     tplIndex = os.path.join(tplDir,"index.htm") |     tplIndex = os.path.join(tplDir,"index.htm") | ||||||
|     blogIndex = os.path.join(blog_dir,"index.html") |     blogIndex = os.path.join(blog_dir,"index.html") | ||||||
|  | @ -152,6 +166,10 @@ def update_blog(subsection): | ||||||
|         print(tmpIndex, file=f) |         print(tmpIndex, file=f) | ||||||
| 
 | 
 | ||||||
|          |          | ||||||
|  | ################## | ||||||
|  | # Main Functions # | ||||||
|  | ################## | ||||||
|  | 
 | ||||||
| # blog functions | # blog functions | ||||||
| 
 | 
 | ||||||
| if vars(args)['target'] == 'blog': | if vars(args)['target'] == 'blog': | ||||||
|  | @ -160,8 +178,20 @@ if vars(args)['target'] == 'blog': | ||||||
|     ## update subsections or whole blog |     ## update subsections or whole blog | ||||||
| 
 | 
 | ||||||
|     if vars(args)['action'] == 'update': |     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']) |         update_blog(vars(args)['subsection']) | ||||||
|  |         print("Updated your blog.")         | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     ## add a new blog at -d blog-directory |     ## add a new blog at -d blog-directory | ||||||
|  | @ -178,7 +208,18 @@ if vars(args)['target'] == 'draft': | ||||||
|     ## add new draft |     ## add new draft | ||||||
| 
 | 
 | ||||||
|     if vars(args)['action'] == 'add': |     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 |     ## list drafts | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue