Fix web page exploding for unlinked guilds
Now it should at least show something, though features like invite won't work correctly. More work needed.
This commit is contained in:
		| @@ -96,7 +96,7 @@ as.router.get("/guild", defineEventHandler(async event => { | |||||||
| 	// Unlinked guild | 	// Unlinked guild | ||||||
| 	if (!row) { | 	if (!row) { | ||||||
| 		const links = getChannelRoomsLinks(guild_id, []) | 		const links = getChannelRoomsLinks(guild_id, []) | ||||||
| 		return pugSync.render(event, "guild.pug", {guild_id, nonce, ...links}) | 		return pugSync.render(event, "guild.pug", {guild, guild_id, nonce, ...links}) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Linked guild | 	// Linked guild | ||||||
|   | |||||||
| @@ -33,15 +33,34 @@ test("web guild: access denied when guild id messed up", async t => { | |||||||
| 	t.match(content, /the selected server doesn't exist/) | 	t.match(content, /the selected server doesn't exist/) | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| test("web invite: access denied with invalid nonce", async t => { | test("web invite: access denied with invalid nonce", async t => { | ||||||
| 	const content = await router.test("get", "/invite?nonce=1") | 	const content = await router.test("get", "/invite?nonce=1") | ||||||
| 	t.match(content, /This QR code has expired./) | 	t.match(content, /This QR code has expired./) | ||||||
| }) | }) | ||||||
|  |  | ||||||
| test("web guild: can view guild", async t => { |  | ||||||
|  |  | ||||||
|  | test("web guild: can view unbridged guild", async t => { | ||||||
|  | 	const content = await router.test("get", "/guild?guild_id=66192955777486848", { | ||||||
|  | 		sessionData: { | ||||||
|  | 			managedGuilds: ["66192955777486848"] | ||||||
|  | 		}, | ||||||
|  | 		api: { | ||||||
|  | 			async getStateEvent(roomID, type, key) { | ||||||
|  | 				return {} | ||||||
|  | 			}, | ||||||
|  | 			async getMembers(roomID, membership) { | ||||||
|  | 				return {chunk: []} | ||||||
|  | 			}, | ||||||
|  | 			async getFullHierarchy(roomID) { | ||||||
|  | 				return [] | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | 	t.match(content, /<h1[^<]*Function & Arg/) | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | test("web guild: can view bridged guild", async t => { | ||||||
| 	const content = await router.test("get", "/guild?guild_id=112760669178241024", { | 	const content = await router.test("get", "/guild?guild_id=112760669178241024", { | ||||||
| 		sessionData: { | 		sessionData: { | ||||||
| 			managedGuilds: ["112760669178241024"] | 			managedGuilds: ["112760669178241024"] | ||||||
|   | |||||||
							
								
								
									
										63
									
								
								test/data.js
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								test/data.js
									
									
									
									
									
								
							| @@ -189,6 +189,69 @@ module.exports = { | |||||||
| 			max_stage_video_channel_users: 300, | 			max_stage_video_channel_users: 300, | ||||||
| 			system_channel_flags: 0|0, | 			system_channel_flags: 0|0, | ||||||
| 			safety_alerts_channel_id: null | 			safety_alerts_channel_id: null | ||||||
|  | 		}, | ||||||
|  | 		fna: { | ||||||
|  | 			application_id: null, | ||||||
|  | 			roles: [], | ||||||
|  | 			activity_instances: [], | ||||||
|  | 			banner: null, | ||||||
|  | 			stickers: [], | ||||||
|  | 			joined_at: "2020-04-25T07:36:09.644000+00:00", | ||||||
|  | 			default_message_notifications: 1, | ||||||
|  | 			afk_timeout: 60, | ||||||
|  | 			clan: null, | ||||||
|  | 			hub_type: null, | ||||||
|  | 			afk_channel_id: "216367750216548362", | ||||||
|  | 			discovery_splash: null, | ||||||
|  | 			splash: null, | ||||||
|  | 			explicit_content_filter: 0, | ||||||
|  | 			max_members: 500000, | ||||||
|  | 			premium_subscription_count: 0, | ||||||
|  | 			voice_states: [], | ||||||
|  | 			id: "66192955777486848", | ||||||
|  | 			premium_tier: 0, | ||||||
|  | 			name: "Function & Arg", | ||||||
|  | 			premium_progress_bar_enabled: false, | ||||||
|  | 			icon: "8bfeb3237cd8697d1d1cd5c626ca8cea", | ||||||
|  | 			large: true, | ||||||
|  | 			verification_level: 0, | ||||||
|  | 			public_updates_channel_id: null, | ||||||
|  | 			stage_instances: [], | ||||||
|  | 			rules_channel_id: null, | ||||||
|  | 			emojis: [], | ||||||
|  | 			owner_id: "66186356581208064", | ||||||
|  | 			threads: [], | ||||||
|  | 			max_stage_video_channel_users: 50, | ||||||
|  | 			description: null, | ||||||
|  | 			unavailable: false, | ||||||
|  | 			features: [ | ||||||
|  | 				"CHANNEL_ICON_EMOJIS_GENERATED", | ||||||
|  | 				"NEW_THREAD_PERMISSIONS", | ||||||
|  | 				"THREADS_ENABLED", | ||||||
|  | 				"SOUNDBOARD" | ||||||
|  | 			], | ||||||
|  | 			latest_onboarding_question_id: null, | ||||||
|  | 			max_video_channel_users: 25, | ||||||
|  | 			home_header: null, | ||||||
|  | 			mfa_level: 0, | ||||||
|  | 			system_channel_id: null, | ||||||
|  | 			guild_scheduled_events: [], | ||||||
|  | 			nsfw_level: 0, | ||||||
|  | 			vanity_url_code: null, | ||||||
|  | 			member_count: 966, | ||||||
|  | 			presences: [], | ||||||
|  | 			application_command_counts: {}, | ||||||
|  | 			system_channel_flags: 0, | ||||||
|  | 			preferred_locale: "en-US", | ||||||
|  | 			region: "deprecated", | ||||||
|  | 			inventory_settings: null, | ||||||
|  | 			soundboard_sounds: [], | ||||||
|  | 			version: 1711491959939, | ||||||
|  | 			incidents_data: null, | ||||||
|  | 			embedded_activities: [], | ||||||
|  | 			nsfw: false, | ||||||
|  | 			safety_alerts_channel_id: null, | ||||||
|  | 			lazy: true | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
| 	user: { | 	user: { | ||||||
|   | |||||||
| @@ -29,10 +29,12 @@ const sync = new HeatSync({watchFS: false}) | |||||||
|  |  | ||||||
| const discord = { | const discord = { | ||||||
| 	guilds: new Map([ | 	guilds: new Map([ | ||||||
| 		[data.guild.general.id, data.guild.general] | 		[data.guild.general.id, data.guild.general], | ||||||
|  | 		[data.guild.fna.id, data.guild.fna], | ||||||
| 	]), | 	]), | ||||||
| 	guildChannelMap: new Map([ | 	guildChannelMap: new Map([ | ||||||
| 		[data.guild.general.id, [data.channel.general.id]], | 		[data.guild.general.id, [data.channel.general.id]], | ||||||
|  | 		[data.guild.fna.id, []], | ||||||
| 	]), | 	]), | ||||||
| 	application: { | 	application: { | ||||||
| 		id: "684280192553844747" | 		id: "684280192553844747" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Cadence Ember
					Cadence Ember