forked from cory/tildefriends
		
	Organized the index slightly.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3235 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		| @@ -1,5 +1,7 @@ | ||||
| "use strict"; | ||||
|  | ||||
| //! {"category": "work in progress"} | ||||
|  | ||||
| class Log { | ||||
| 	constructor(name, capacity) { | ||||
| 		this._name = name; | ||||
|   | ||||
| @@ -27,48 +27,60 @@ function index() { | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		let packagesByCategory = {}; | ||||
| 		packages.forEach(function(app) { | ||||
| 			let category = (app.manifest ? app.manifest.category : null) || "other"; | ||||
| 			if (!packagesByCategory[category]) { | ||||
| 				packagesByCategory[category] = []; | ||||
| 			} | ||||
| 			packagesByCategory[category].push(app); | ||||
| 		}); | ||||
|  | ||||
| 		terminal.cork(); | ||||
| 		terminal.clear(); | ||||
| 		terminal.print("Available applications [active users]:"); | ||||
| 		packages.sort(function(x, y) { | ||||
| 			return Math.sign(x.owner.localeCompare(y.owner)) * 10 + Math.sign(x.name.localeCompare(y.name)) * 1; | ||||
| 		}).forEach(function(app) { | ||||
| 			let users = usersByApp["/~" + app.owner + "/" + app.name]; | ||||
| 			let services = servicesByApp["/~" + app.owner + "/" + app.name]; | ||||
| 			let message = []; | ||||
| 			if (users || services) { | ||||
| 				message.push(" ["); | ||||
| 				if (users) { | ||||
| 					let counts = {}; | ||||
| 					for (let i = 0; i < users.length; i++) { | ||||
| 						counts[users[i]] = (counts[users[i]] || 0) + 1; | ||||
| 		for (let category in packagesByCategory) { | ||||
| 			terminal.print({style: "font-weight: bold", value: category}); | ||||
| 			packagesByCategory[category].sort(function(x, y) { | ||||
| 				return Math.sign(x.owner.localeCompare(y.owner)) * 10 + Math.sign(x.name.localeCompare(y.name)) * 1; | ||||
| 			}).forEach(function(app) { | ||||
| 				let users = usersByApp["/~" + app.owner + "/" + app.name]; | ||||
| 				let services = servicesByApp["/~" + app.owner + "/" + app.name]; | ||||
| 				let message = []; | ||||
| 				if (users || services) { | ||||
| 					message.push(" ["); | ||||
| 					if (users) { | ||||
| 						let counts = {}; | ||||
| 						for (let i = 0; i < users.length; i++) { | ||||
| 							counts[users[i]] = (counts[users[i]] || 0) + 1; | ||||
| 						} | ||||
| 						let names = Object.keys(counts).sort(); | ||||
| 						for (let i = 0; i < names.length; i++) { | ||||
| 							var name = names[i]; | ||||
| 							if (message.length > 1) { | ||||
| 								message.push(", "); | ||||
| 							} | ||||
| 							message.push({class: "orange", value: name}); | ||||
| 							if (counts[name] > 1) { | ||||
| 								message.push({class: "base01", value: "(x" + counts[name] + ")"}); | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 					let names = Object.keys(counts).sort(); | ||||
| 					for (let i = 0; i < names.length; i++) { | ||||
| 						var name = names[i]; | ||||
| 						if (message.length > 1) { | ||||
| 					if (services) { | ||||
| 						if (users) { | ||||
| 							message.push(", "); | ||||
| 						} | ||||
| 						message.push({class: "orange", value: name}); | ||||
| 						if (counts[name] > 1) { | ||||
| 							message.push({class: "base01", value: "(x" + counts[name] + ")"}); | ||||
| 						} | ||||
| 						message.push("⚒".repeat(services.length)); | ||||
| 					} | ||||
| 					message.push("]"); | ||||
| 				} | ||||
| 				if (services) { | ||||
| 					if (users) { | ||||
| 						message.push(", "); | ||||
| 					} | ||||
| 					message.push("⚒".repeat(services.length)); | ||||
| 				} | ||||
| 				message.push("]"); | ||||
| 			} | ||||
| 			terminal.print( | ||||
| 				"* ", | ||||
| 				{href: "/~" + app.owner + "/" + app.name, target: "_self"}, | ||||
| 				message, | ||||
| 				app.manifest && app.manifest.description ? " - " + app.manifest.description.toString() : ""); | ||||
| 		}); | ||||
| 				terminal.print( | ||||
| 					"• ", | ||||
| 					{href: "/~" + app.owner + "/" + app.name, target: "_self"}, | ||||
| 					message, | ||||
| 					app.manifest && app.manifest.description ? " - " + app.manifest.description.toString() : ""); | ||||
| 			}); | ||||
| 		} | ||||
| 		terminal.uncork(); | ||||
| 	}); | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| "use strict"; | ||||
|  | ||||
| //! {"permissions": ["network"]} | ||||
| //! {"category": "libraries", "permissions": ["network"]} | ||||
|  | ||||
| terminal.print("Hello, world!"); | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| "use strict"; | ||||
|  | ||||
| //! {"category": "libraries"} | ||||
|  | ||||
| function fileList(settings) { | ||||
| 	let prefix = settings.prefix || ""; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user