incremented to v.5, adding entry browsing
This commit is contained in:
		
							parent
							
								
									4622af4683
								
							
						
					
					
						commit
						4ff3b2b65a
					
				| @ -1,5 +1,5 @@ | ||||
| ============== | ||||
| | TILDE TOWN | | ||||
| |  BLOGGING  |   ver 0.4 (kinda unstable) | ||||
| |  BLOGGING  |   ver 0.5 (fairly unstable) | ||||
| |  PLATFORM  |   ~endorphant/projects/ttbp/changelog.txt | ||||
| ==============    | ||||
|  | ||||
| @ -154,17 +154,20 @@ def meta(entries = FILES): | ||||
|     # [2] wc -w | ||||
|     # [3] timestamp "DD month YYYY at HH:MM" | ||||
|     # [4] entry date YYYY-MM-DD | ||||
|     # [5] author | ||||
|     # sorted in reverse date order by [4] | ||||
| 
 | ||||
|     meta = [] | ||||
| 
 | ||||
|     for filename in FILES: | ||||
|     for filename in entries: | ||||
|       ctime = os.path.getctime(filename) | ||||
|       wc = subprocess.check_output(["wc","-w",filename]).split()[0] | ||||
|       timestamp = time.strftime("%Y-%m-%d %H:%M", time.localtime(ctime)) | ||||
|       date = "-".join(parse_date(filename)) | ||||
|       author = os.path.split(os.path.split(os.path.split(os.path.split(filename)[0])[0])[0])[1] | ||||
| 
 | ||||
|       meta.append([filename, ctime, wc, timestamp, date]) | ||||
| 
 | ||||
|       meta.append([filename, ctime, wc, timestamp, date, author]) | ||||
| 
 | ||||
|     meta.sort(key = lambda filename:filename[4]) | ||||
|     meta.reverse() | ||||
|  | ||||
							
								
								
									
										117
									
								
								bin/ttbp.py
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								bin/ttbp.py
									
									
									
									
									
								
							| @ -210,7 +210,9 @@ def main_menu(): | ||||
|     #redraw() | ||||
|     menuOptions = [ | ||||
|             "record your feels", | ||||
|             "review your feels", | ||||
|             "check out your neighbors", | ||||
|             "browse global feels", | ||||
|             "change your settings", | ||||
|             "send some feedback", | ||||
|             "(wip) see credits"] | ||||
| @ -230,14 +232,16 @@ def main_menu(): | ||||
|         today = time.strftime("%Y%m%d") | ||||
|         write_entry(os.path.join(DATA, today+".txt")) | ||||
|     elif choice == '1': | ||||
|         users = [] | ||||
| 
 | ||||
|         for townie in os.listdir("/home"): | ||||
|             if os.path.exists(os.path.join("/home", townie, ".ttbp", "config", "ttbprc")): | ||||
|                 users.append(townie) | ||||
|         redraw("here are your recorded feels, listed by date:\n\n") | ||||
|         view_own() | ||||
|     elif choice == '2': | ||||
|         users = find_ttbps() | ||||
|         redraw("the following "+p.no("user", len(users))+" "+p.plural("is", len(users))+" recording feels on ttbp:\n\n") | ||||
|         view_neighbors(users) | ||||
|     elif choice == '2': | ||||
|     elif choice == '3': | ||||
|         redraw("now viewing most recent entries\n\n") | ||||
|         view_feed() | ||||
|     elif choice == '4': | ||||
|         pretty_settings = "\n\ttext editor:\t" +SETTINGS["editor"] | ||||
|         pretty_settings += "\n\tpublish dir:\t" +os.path.join(PUBLIC, SETTINGS["publish dir"]) | ||||
| 
 | ||||
| @ -245,14 +249,11 @@ def main_menu(): | ||||
|         setup() | ||||
|         raw_input("\nyou're all good to go, "+chatter.say("friend")+"! hit <enter> to continue.\n\n") | ||||
|         redraw() | ||||
|     elif choice == '3': | ||||
|     elif choice == '5': | ||||
|         redraw() | ||||
|         feedback_menu() | ||||
|     elif choice == '4': | ||||
|     elif choice == '6': | ||||
|         redraw(DUST) | ||||
|     elif choice == 'secret': | ||||
|         redraw("here are your recorded feels, listed by date:\n\n") | ||||
|         view_entries() | ||||
|     elif choice == "none": | ||||
|         return stop() | ||||
|     else: | ||||
| @ -332,19 +333,105 @@ def view_neighbors(users): | ||||
| 
 | ||||
|     return | ||||
| 
 | ||||
| def view_entries(entryDir=DATA): | ||||
| def view_own(): | ||||
| 
 | ||||
|     filenames = [] | ||||
| 
 | ||||
|     for entry in os.listdir(DATA): | ||||
|         filenames.append(os.path.join(DATA, entry)) | ||||
|     metas = core.meta(filenames) | ||||
| 
 | ||||
|     entries = [] | ||||
|     for entry in metas: | ||||
|         #print(entry) | ||||
|         entries.append(""+entry[4]+" ("+p.no("word", entry[2])+") ") | ||||
| 
 | ||||
|     for entry in core.meta(): | ||||
|         entries.append(entry[4]+" ("+p.no("word", entry[2])+") ") | ||||
|     view_entries(metas, entries, "here are your recorded feels, listed by date: \n\n") | ||||
|     redraw() | ||||
| 
 | ||||
|     return | ||||
| 
 | ||||
| def view_entries(metas, entries, prompt): | ||||
| 
 | ||||
|     print_menu(entries) | ||||
| 
 | ||||
|     choice = raw_input("\n\npick an entry to read, or press <ctrl-c> to go back home.\n\n") | ||||
|     choice = list_select(entries, "pick an entry from the list, or <ctrl-c> to go home: ") | ||||
| 
 | ||||
|     redraw("now reading ~"+metas[choice][5]+"'s feels on "+metas[choice][4]+"\n> press <q> to return to feels list.\n\n") | ||||
| 
 | ||||
|     show_entry(metas[choice][0]) | ||||
|     #redraw("here are your recorded feels, listed by date:\n\n") | ||||
|     redraw(prompt) | ||||
| 
 | ||||
|     return view_entries(metas, entries, prompt) | ||||
| 
 | ||||
| def show_entry(filename): | ||||
| 
 | ||||
|     subprocess.call(["less", filename]) | ||||
| 
 | ||||
|     return | ||||
| 
 | ||||
| def view_feed(): | ||||
| 
 | ||||
|     feedList = [] | ||||
| 
 | ||||
|     for townie in find_ttbps(): | ||||
|         entryDir = os.path.join("/home", townie, ".ttbp", "entries") | ||||
|         filenames = os.listdir(entryDir) | ||||
|         for entry in filenames: | ||||
|             feedList.append(os.path.join(entryDir, entry)) | ||||
|    | ||||
|     metas = core.meta(feedList) | ||||
|     metas.sort(key = lambda entry:entry[3]) | ||||
|     metas.reverse() | ||||
|     | ||||
|     entries = [] | ||||
|     for entry in metas[0:10]: | ||||
|         pad = "" | ||||
|         if len(entry[5]) < 8: | ||||
|             pad = "\t" | ||||
| 
 | ||||
|         entries.append("~"+entry[5]+pad+"\ton "+entry[4]+" ("+p.no("word", entry[2])+") ") | ||||
| 
 | ||||
|     #print_menu(entries) | ||||
|     view_entries(metas, entries, "most recent ten entries: \n\n") | ||||
| 
 | ||||
|     redraw() | ||||
| 
 | ||||
|     return | ||||
| ##### | ||||
| 
 | ||||
| def find_ttbps(): | ||||
|     # looks for users with a valid ttbp config and returns a list of them | ||||
|     users = [] | ||||
| 
 | ||||
|     for townie in os.listdir("/home"): | ||||
|         if os.path.exists(os.path.join("/home", townie, ".ttbp", "config", "ttbprc")): | ||||
|             users.append(townie) | ||||
| 
 | ||||
|     return users | ||||
| 
 | ||||
| def list_select(options, prompt): | ||||
|     # runs the prompt for the list until a valid index is imputted | ||||
| 
 | ||||
|     ans = "" | ||||
|     invalid = True | ||||
| 
 | ||||
|     while invalid: | ||||
|         choice = raw_input("\n\n"+prompt) | ||||
| 
 | ||||
|         try: | ||||
|             ans = int(choice) | ||||
|         except ValueError: | ||||
|             choice = raw_input("\n\n"+prompt+"\n\n") | ||||
| 
 | ||||
|         invalid = False | ||||
| 
 | ||||
|     if ans >= len(options): | ||||
|         return list_select(options, prompt) | ||||
| 
 | ||||
|     return ans | ||||
| 
 | ||||
| ##### | ||||
| 
 | ||||
| start() | ||||
|  | ||||
| @ -7,7 +7,7 @@ TO-DO: | ||||
| 		-only count/process entries if filename is | ||||
| 		.ttbp/entries/YYMMDD.txt" | ||||
| 	-browse own entries | ||||
| 		-started this one, call 'secret' from ttbp, | ||||
| 		-started this one, call 'beta' from ttbp to test, | ||||
| 		function is view_entries() on ttbp.py | ||||
| 	-browse other blogs | ||||
| 	-show most recent global entries | ||||
| @ -21,6 +21,10 @@ TO-DO: | ||||
| 
 | ||||
| CHANGELOG: | ||||
| 
 | ||||
| ver 0.5 | ||||
| 	-added reading own entries | ||||
| 	-added reading 10 most recent global entries | ||||
| 
 | ||||
| ver 0.4 | ||||
| 	-added list of all users with a ttbp | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										14
									
								
								docs.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								docs.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| USER DOCS | ||||
| ========= | ||||
| 
 | ||||
| ENTRIES | ||||
| -you can use html | ||||
| -you can also put things between <!-- comments --> to have them show up | ||||
| in the feed but not render in a browser (but people can still read | ||||
| them with view-source) | ||||
| 
 | ||||
| PAGE LAYOUT | ||||
| 
 | ||||
| -to change stylesheet, edit your ~/.ttbp/www/style.css | ||||
| -to change header, edit your ~/.ttbp/config/header.txt | ||||
| -to change footer, edit your ~/.ttbp/config/footer.txt | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user