forked from endorphant/ttbp
		
	added permalinks
This commit is contained in:
		
							parent
							
								
									9b8d321812
								
							
						
					
					
						commit
						0ed42304c8
					
				
							
								
								
									
										46
									
								
								bin/core.py
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								bin/core.py
									
									
									
									
									
								
							| @ -46,10 +46,10 @@ def load_files(): | |||||||
|     global FILES |     global FILES | ||||||
| 
 | 
 | ||||||
|     FILES = [] |     FILES = [] | ||||||
|     for file in os.listdir(DATA): |     for filename in os.listdir(DATA): | ||||||
|         filename = os.path.join(DATA, file) |         filename = os.path.join(DATA, filename) | ||||||
|         if os.path.isfile(filename) and os.path.splitext(filename)[1] == ".txt": |         if os.path.isfile(filename) and os.path.splitext(filename)[1] == ".txt": | ||||||
|             FILES.append(file) |             FILES.append(filename) | ||||||
| 
 | 
 | ||||||
|     FILES.sort() |     FILES.sort() | ||||||
|     FILES.reverse() |     FILES.reverse() | ||||||
| @ -67,8 +67,9 @@ def write(outurl="default.html"): | |||||||
| 
 | 
 | ||||||
|     outfile.write("\n") |     outfile.write("\n") | ||||||
| 
 | 
 | ||||||
|     for file in FILES: |     for filename in FILES: | ||||||
|         for line in write_entry(file): |         write_page(filename) | ||||||
|  |         for line in write_entry(filename): | ||||||
|             outfile.write(line) |             outfile.write(line) | ||||||
| 
 | 
 | ||||||
|         outfile.write("\n") |         outfile.write("\n") | ||||||
| @ -80,10 +81,35 @@ def write(outurl="default.html"): | |||||||
| 
 | 
 | ||||||
|     return os.path.join(LIVE+USER,os.path.basename(os.path.realpath(WWW)),outurl) |     return os.path.join(LIVE+USER,os.path.basename(os.path.realpath(WWW)),outurl) | ||||||
| 
 | 
 | ||||||
| def write_entry(file): | def write_page(filename): | ||||||
|  |     # makes a single permalink page | ||||||
|  | 
 | ||||||
|  |     outurl = os.path.join(WWW, "".join(parse_date(filename))+".html") | ||||||
|  |     outfile = open(outurl, "w") | ||||||
|  | 
 | ||||||
|  |     outfile.write("<!--generated by the tilde.town blogging platform on "+time.strftime("%d %B %y")+"\nhttp://tilde.town/~endorphant/ttbp/-->\n\n") | ||||||
|  | 
 | ||||||
|  |     for line in HEADER: | ||||||
|  |         outfile.write(line) | ||||||
|  | 
 | ||||||
|  |     outfile.write("\n") | ||||||
|  | 
 | ||||||
|  |     for line in write_entry(filename): | ||||||
|  |         outfile.write(line) | ||||||
|  | 
 | ||||||
|  |     outfile.write("\n") | ||||||
|  | 
 | ||||||
|  |     for line in FOOTER: | ||||||
|  |         outfile.write(line) | ||||||
|  | 
 | ||||||
|  |     outfile.close() | ||||||
|  | 
 | ||||||
|  |     return outurl | ||||||
|  | 
 | ||||||
|  | def write_entry(filename): | ||||||
|     # dump given file into entry format, return as list of strings |     # dump given file into entry format, return as list of strings | ||||||
| 
 | 
 | ||||||
|     date = parse_date(file) |     date = parse_date(filename) | ||||||
| 
 | 
 | ||||||
|     entry = [ |     entry = [ | ||||||
|         "\t\t<p><a name=\""+date[0]+date[1]+date[2]+"\"></a><br /><br /></p>\n", |         "\t\t<p><a name=\""+date[0]+date[1]+date[2]+"\"></a><br /><br /></p>\n", | ||||||
| @ -93,7 +119,7 @@ def write_entry(file): | |||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
|     raw = [] |     raw = [] | ||||||
|     rawfile = open(os.path.join(DATA, file), "r") |     rawfile = open(os.path.join(DATA, filename), "r") | ||||||
| 
 | 
 | ||||||
|     for line in rawfile: |     for line in rawfile: | ||||||
|         raw.append(line) |         raw.append(line) | ||||||
| @ -104,7 +130,9 @@ def write_entry(file): | |||||||
|         if line == "\n": |         if line == "\n": | ||||||
|             entry.append("</p>\n\t\t\t<p>") |             entry.append("</p>\n\t\t\t<p>") | ||||||
| 
 | 
 | ||||||
|     entry.append("</p>\n\t\t</div>\n") |     entry.append("</p>\n") | ||||||
|  |     entry.append("\t\t\t<p style=\"font-size:.6em; font-color:#808080; text-align: right;\"><a href=\""+"".join(date)+".html\">permalink</a></p>\n") | ||||||
|  |     entry.append("\n\t\t</div>\n") | ||||||
| 
 | 
 | ||||||
|     return entry |     return entry | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										3130
									
								
								bin/inflect.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3130
									
								
								bin/inflect.py
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										27
									
								
								bin/ttbp.py
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								bin/ttbp.py
									
									
									
									
									
								
							| @ -9,12 +9,14 @@ import json | |||||||
| 
 | 
 | ||||||
| import core | import core | ||||||
| import chatter | import chatter | ||||||
|  | import inflect | ||||||
| 
 | 
 | ||||||
| ## system globals | ## system globals | ||||||
| SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin") | SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin") | ||||||
| LIVE = "http://tilde.town/~" | LIVE = "http://tilde.town/~" | ||||||
| FEEDBACK = os.path.join("/home", "endorphant", "ttbp-mail") | FEEDBACK = os.path.join("/home", "endorphant", "ttbp-mail") | ||||||
| USERFILE = os.path.join("/home", "endorphant", "projects", "ttbp", "users.txt") | USERFILE = os.path.join("/home", "endorphant", "projects", "ttbp", "users.txt") | ||||||
|  | p = inflect.engine() | ||||||
| 
 | 
 | ||||||
| ## user globals | ## user globals | ||||||
| USER = os.path.basename(os.path.expanduser("~")) | USER = os.path.basename(os.path.expanduser("~")) | ||||||
| @ -126,7 +128,7 @@ def gen_header(): | |||||||
|     header.append("\n\t</head>") |     header.append("\n\t</head>") | ||||||
|     header.append("\n\t<body>") |     header.append("\n\t<body>") | ||||||
|     header.append("\n\t\t<div id=\"meta\">") |     header.append("\n\t\t<div id=\"meta\">") | ||||||
|     header.append("\n\t\t\t<h1><a href=\"#\">~"+USER+"</a>@<a href=\"/~endorphant/ttbp\">TTBP</a></h1>") |     header.append("\n\t\t\t<h1><a href=\"index.html#\">~"+USER+"</a>@<a href=\"/~endorphant/ttbp\">TTBP</a></h1>") | ||||||
|     header.append("\n\t\t</div>\n") |     header.append("\n\t\t</div>\n") | ||||||
|     header.append("\n\t\t<!---put your custom html here-->\n\n\n\n") |     header.append("\n\t\t<!---put your custom html here-->\n\n\n\n") | ||||||
|     header.append("\n\t\t<!---don't put anything after this line-->\n") |     header.append("\n\t\t<!---don't put anything after this line-->\n") | ||||||
| @ -243,6 +245,9 @@ def main_menu(): | |||||||
|         feedback_menu() |         feedback_menu() | ||||||
|     elif choice == '4': |     elif choice == '4': | ||||||
|         redraw(DUST) |         redraw(DUST) | ||||||
|  |     elif choice == 'secret': | ||||||
|  |         redraw("here are your recorded feelings, listed by date:\n\n") | ||||||
|  |         view_entries() | ||||||
|     elif choice == "none": |     elif choice == "none": | ||||||
|         return stop() |         return stop() | ||||||
|     else: |     else: | ||||||
| @ -257,7 +262,7 @@ def feedback_menu(): | |||||||
|     choice = raw_input("\npick a category for your feedback: ") |     choice = raw_input("\npick a category for your feedback: ") | ||||||
| 
 | 
 | ||||||
|     cat = "" |     cat = "" | ||||||
|     if choice in ['0', '1', '2']: |     if choice in ['0', '1', '2', '3']: | ||||||
|         cat = SUBJECTS[int(choice)] |         cat = SUBJECTS[int(choice)] | ||||||
|         raw_input("\ncomposing a "+cat+" to ~endorphant.\n\npress <enter> to open an external text editor. mail will be sent once you save and quit.\n") |         raw_input("\ncomposing a "+cat+" to ~endorphant.\n\npress <enter> to open an external text editor. mail will be sent once you save and quit.\n") | ||||||
|         redraw(send_feedback(cat)) |         redraw(send_feedback(cat)) | ||||||
| @ -296,6 +301,7 @@ def send_feedback(subject="none", mailbox=os.path.join(FEEDBACK, USER+"-"+time.s | |||||||
|     return "mail sent. thanks for writing! i'll try to respond to you soon." |     return "mail sent. thanks for writing! i'll try to respond to you soon." | ||||||
| 
 | 
 | ||||||
| def view_neighbors(): | def view_neighbors(): | ||||||
|  |     # TODO: rewrite this so you don't have to traverse a second list?? | ||||||
| 
 | 
 | ||||||
|     users = [] |     users = [] | ||||||
| 
 | 
 | ||||||
| @ -306,12 +312,27 @@ def view_neighbors(): | |||||||
|     for user in users: |     for user in users: | ||||||
|         userRC = json.load(open(os.path.join("/home", user, ".ttbp", "config", "ttbprc"))) |         userRC = json.load(open(os.path.join("/home", user, ".ttbp", "config", "ttbprc"))) | ||||||
|         url = LIVE+user+"/"+userRC["publish dir"] |         url = LIVE+user+"/"+userRC["publish dir"] | ||||||
|         print("\t~"+user+"\t at "+url) |         count = 0 | ||||||
|  |         for filename in os.listdir(os.path.join("/home", user, ".ttbp", "entries")): | ||||||
|  |             if os.path.splitext(filename)[1] == ".txt" and len(os.path.splitext(filename)[0]) == 8: | ||||||
|  |                 count += 1 | ||||||
|  |         user = "~"+user | ||||||
|  |         if len(user) < 8: | ||||||
|  |             user += "\t" | ||||||
|  |         print("\t"+user+"\t at "+url+"\t("+p.no("entry", count)+")") | ||||||
| 
 | 
 | ||||||
|     raw_input("\n\npress <enter> to go back home.\n\n") |     raw_input("\n\npress <enter> to go back home.\n\n") | ||||||
|     redraw() |     redraw() | ||||||
| 
 | 
 | ||||||
|     return |     return | ||||||
|  | 
 | ||||||
|  | def view_entries(): | ||||||
|  | 
 | ||||||
|  |     entries = [] | ||||||
|  | 
 | ||||||
|  |     raw_input("\n\npress <ctrl-c> to go back home.\n\n") | ||||||
|  |     redraw() | ||||||
|  |     return | ||||||
| ##### | ##### | ||||||
| 
 | 
 | ||||||
| start() | start() | ||||||
|  | |||||||
| @ -1,7 +1,10 @@ | |||||||
| TO-DO: | TO-DO: | ||||||
| 	(goals for stable release) | 	(goals for stable release) | ||||||
| 	-make individual permalink pages |  | ||||||
| 	-add credits page | 	-add credits page | ||||||
|  | 	-browse own entries | ||||||
|  | 	-show most recent global entries | ||||||
|  | 	-filename validator (only process entries if they're | ||||||
|  | 	.  ttbp/entries/YYMMDD.txt") | ||||||
| 
 | 
 | ||||||
| ------ | ------ | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user