forked from cory/tildefriends
		
	Just messing around with things. Not sure I've made anything better.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3722 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		@@ -1 +1 @@
 | 
			
		||||
{"type":"tildefriends-app","files":{"app.js":"&bKoyBQBiMZinCQUoQIqGpeehKgqkANw8Ns2OYECYW30=.sha256","index.html":"&zwiRwroNQ1SnCsq97zB8dRiGwY4H+ii4ZtuKR385zdI=.sha256","vue-material.js":"&K5cdLqXYCENPak/TCINHQhyJhpS4G9DlZHGwoh/LF2g=.sha256","tf-user.js":"&taC9THJslxAMy72UIplFjALJx1VHv2l+qfjWoRhhrS4=.sha256","tf-message.js":"&KjVh7zASx0TZtZTsS6lJ7T70K9tyXcf+ink4vK7gSWI=.sha256","tf.js":"&u6n7Eqa1ryFuL9AhlYeJ/WzXYh6zxECKVfhG8/ecRM8=.sha256","commonmark.min.js":"&5x6ek3tFrKTZX6hXNNyFsjmhvrjmWpUkwuuaiyVV1Us=.sha256","vue.js":"&g1wvA+yHl1sVC+eufTsg9If7ZeVyMTBU+h0tks7ZNzE=.sha256","vue-material-theme-default-dark.css":"&RP2nr+2CR18BpHHw5ST9a5GJUCOG9n0G2kuGkcQioWE=.sha256","vue-material.min.css":"&kGbUM2QgFSyHZRzqQb0b+0S3EVIlZ0AXpdiAVjIhou8=.sha256","roboto.css":"&jJv43Om673mQO5JK0jj7714s5E+5Yrf82H6LcDx7wUs=.sha256","material-icons.css":"&a28PdcVvgq/DxyIvJAx/e+ZOEtOuHnr3kjLWKyzH11M=.sha256"}}
 | 
			
		||||
{"type":"tildefriends-app","files":{"app.js":"&bbZBdFOrGh6o0X+ypAaRhfAls89Ir/IICcUN3xlO02w=.sha256","index.html":"&zwiRwroNQ1SnCsq97zB8dRiGwY4H+ii4ZtuKR385zdI=.sha256","vue-material.js":"&K5cdLqXYCENPak/TCINHQhyJhpS4G9DlZHGwoh/LF2g=.sha256","tf-user.js":"&KmUw2D8yehJU95RQ+8DWP69w/5wK7yWR6fUc5/LIpio=.sha256","tf-message.js":"&KjVh7zASx0TZtZTsS6lJ7T70K9tyXcf+ink4vK7gSWI=.sha256","tf.js":"&u6n7Eqa1ryFuL9AhlYeJ/WzXYh6zxECKVfhG8/ecRM8=.sha256","commonmark.min.js":"&5x6ek3tFrKTZX6hXNNyFsjmhvrjmWpUkwuuaiyVV1Us=.sha256","vue.js":"&g1wvA+yHl1sVC+eufTsg9If7ZeVyMTBU+h0tks7ZNzE=.sha256","vue-material-theme-default-dark.css":"&RP2nr+2CR18BpHHw5ST9a5GJUCOG9n0G2kuGkcQioWE=.sha256","vue-material.min.css":"&kGbUM2QgFSyHZRzqQb0b+0S3EVIlZ0AXpdiAVjIhou8=.sha256","roboto.css":"&jJv43Om673mQO5JK0jj7714s5E+5Yrf82H6LcDx7wUs=.sha256","material-icons.css":"&a28PdcVvgq/DxyIvJAx/e+ZOEtOuHnr3kjLWKyzH11M=.sha256"}}
 | 
			
		||||
@@ -273,33 +273,35 @@ async function refresh() {
 | 
			
		||||
		app.postMessage({connections: await ssb.connections()}),
 | 
			
		||||
		app.postMessage({apps: await core.apps()}),
 | 
			
		||||
		followingDeep(db, [whoami], 2).then(function(f) {
 | 
			
		||||
			getRecentPostIds(db, whoami, [].concat([whoami], f), k_posts_max).then(async function(ids) {
 | 
			
		||||
				return getPosts(db, ids);
 | 
			
		||||
			}).then(async function(posts) {
 | 
			
		||||
				var roots = posts.map(function(x) {
 | 
			
		||||
					try {
 | 
			
		||||
						return JSON.parse(x.content).root;
 | 
			
		||||
					} catch {
 | 
			
		||||
						return null;
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
				roots = roots.filter(function(root) {
 | 
			
		||||
					return root && posts.every(post => post.id != root);
 | 
			
		||||
				});
 | 
			
		||||
				return [].concat(posts, await getPosts(db, roots));
 | 
			
		||||
			}).then(function(posts) {
 | 
			
		||||
				return Promise.all(posts.map(x => app.postMessage({message: x})));
 | 
			
		||||
			});
 | 
			
		||||
			Promise.all(f.map(function(id) {
 | 
			
		||||
				return Promise.all([
 | 
			
		||||
					getVotes(db, id).then(function(votes) {
 | 
			
		||||
						return app.postMessage({votes: votes});
 | 
			
		||||
					}),
 | 
			
		||||
					getAbout(db, id).then(function(user) {
 | 
			
		||||
						return app.postMessage({user: {user: id, about: user}});
 | 
			
		||||
					}),
 | 
			
		||||
				]);
 | 
			
		||||
			}));
 | 
			
		||||
			return Promise.all([
 | 
			
		||||
				getRecentPostIds(db, whoami, [].concat([whoami], f), k_posts_max).then(async function(ids) {
 | 
			
		||||
					return getPosts(db, ids);
 | 
			
		||||
				}).then(async function(posts) {
 | 
			
		||||
					var roots = posts.map(function(x) {
 | 
			
		||||
						try {
 | 
			
		||||
							return JSON.parse(x.content).root;
 | 
			
		||||
						} catch {
 | 
			
		||||
							return null;
 | 
			
		||||
						}
 | 
			
		||||
					});
 | 
			
		||||
					roots = roots.filter(function(root) {
 | 
			
		||||
						return root && posts.every(post => post.id != root);
 | 
			
		||||
					});
 | 
			
		||||
					return [].concat(posts, await getPosts(db, roots));
 | 
			
		||||
				}).then(function(posts) {
 | 
			
		||||
					return Promise.all(posts.map(x => app.postMessage({message: x})));
 | 
			
		||||
				}),
 | 
			
		||||
				Promise.all(f.map(function(id) {
 | 
			
		||||
					return Promise.all([
 | 
			
		||||
						getVotes(db, id).then(function(votes) {
 | 
			
		||||
							return app.postMessage({votes: votes});
 | 
			
		||||
						}),
 | 
			
		||||
						getAbout(db, id).then(function(user) {
 | 
			
		||||
							return app.postMessage({user: {user: id, about: user}});
 | 
			
		||||
						}),
 | 
			
		||||
					]);
 | 
			
		||||
				})),
 | 
			
		||||
			]);
 | 
			
		||||
		}),
 | 
			
		||||
		sendUser(db, whoami),
 | 
			
		||||
	]);
 | 
			
		||||
 
 | 
			
		||||
@@ -78,16 +78,24 @@ Vue.component('tf-user', {
 | 
			
		||||
							<div v-if="users[id].name">{{id}}</div>
 | 
			
		||||
							<div>{{users[id].description}}</div>
 | 
			
		||||
							<div><md-switch v-model="following">Following</md-switch></div>
 | 
			
		||||
							<md-list>
 | 
			
		||||
								<md-subheader>Followers</md-subheader>
 | 
			
		||||
								<md-list-item v-for="follower in Object.keys((users[id] && users[id].followers) ? users[id].followers : {})" v-bind:key="'follower-' + follower">
 | 
			
		||||
									<tf-user :id="follower"></tf-user>
 | 
			
		||||
								</md-list-item>
 | 
			
		||||
								<md-subheader>Following</md-subheader>
 | 
			
		||||
								<md-list-item v-for="user in Object.keys((users[id] && users[id].following) ? users[id].following : {})" v-bind:key="'following-' + user">
 | 
			
		||||
									<tf-user :id="user"></tf-user>
 | 
			
		||||
								</md-list-item>
 | 
			
		||||
							</md-list>
 | 
			
		||||
							<div class="md-layout">
 | 
			
		||||
								<div class="md-layout-item">
 | 
			
		||||
									<md-list>
 | 
			
		||||
										<md-subheader>Followers</md-subheader>
 | 
			
		||||
										<md-list-item v-for="follower in Object.keys((users[id] && users[id].followers) ? users[id].followers : {})" v-bind:key="'follower-' + follower">
 | 
			
		||||
											<tf-user :id="follower"></tf-user>
 | 
			
		||||
										</md-list-item>
 | 
			
		||||
									</md-list>
 | 
			
		||||
								</div>
 | 
			
		||||
								<div class="md-layout-item">
 | 
			
		||||
									<md-list>
 | 
			
		||||
										<md-subheader>Following</md-subheader>
 | 
			
		||||
										<md-list-item v-for="user in Object.keys((users[id] && users[id].following) ? users[id].following : {})" v-bind:key="'following-' + user">
 | 
			
		||||
											<tf-user :id="user"></tf-user>
 | 
			
		||||
										</md-list-item>
 | 
			
		||||
									</md-list>
 | 
			
		||||
								</div>
 | 
			
		||||
							</div>
 | 
			
		||||
						</template>
 | 
			
		||||
					</md-dialog-content>
 | 
			
		||||
					<md-dialog-actions>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user