forked from ProjectSegfault/website
		
	new data loading (only announcements for now)
This commit is contained in:
		| @@ -5,6 +5,13 @@ import type { Provider } from "@auth/core/providers"; | ||||
| import type { Profile } from "@auth/core/types"; | ||||
| import { redirect, type Handle } from "@sveltejs/kit"; | ||||
| import { sequence } from "@sveltejs/kit/hooks"; | ||||
| import { announcements } from "./stores"; | ||||
| import axios from "axios"; | ||||
| import { Agent } from "https"; | ||||
|  | ||||
| const agent = new Agent({ | ||||
| 	family: 4 | ||||
| }); | ||||
|  | ||||
| const hasAuth = | ||||
| 	!env.AUTH_CLIENT_ID || | ||||
| @@ -51,3 +58,24 @@ export const handle: Handle = sequence( | ||||
| 				return result; | ||||
| 		  } | ||||
| ); | ||||
|  | ||||
| const updateMap = async () => { | ||||
| 	try { | ||||
| 		const res = await axios( | ||||
| 			env.KUMA_URL, | ||||
| 			{ httpsAgent: agent, timeout: 10000 } | ||||
| 		); | ||||
|  | ||||
| 		if (res.status === 200) { | ||||
| 			announcements.set(res.data); | ||||
| 		} else { | ||||
| 			announcements.set({ error: true, message: "Error: " + res.status }); | ||||
| 		} | ||||
| 	} catch (err) { | ||||
| 		announcements.set({ error: true, message: "Error: " + err }); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| updateMap(); | ||||
|  | ||||
| setInterval(updateMap, 30000); | ||||
| @@ -1,11 +1,6 @@ | ||||
| import type { PageServerLoad } from "./$types"; | ||||
| import axios from "axios"; | ||||
| import { Agent } from "https"; | ||||
| import { env } from "$env/dynamic/private"; | ||||
|  | ||||
| const agent = new Agent({ | ||||
| 	family: 4 | ||||
| }); | ||||
| import { announcements } from "../stores"; | ||||
| import { get } from "svelte/store"; | ||||
|  | ||||
| export const load = (async () => { | ||||
| 	const meta = { | ||||
| @@ -13,15 +8,8 @@ export const load = (async () => { | ||||
| 		description: "Open source development and hosted services." | ||||
| 	}; | ||||
|  | ||||
| 	try { | ||||
| 		const res = await axios(env.KUMA_URL, { httpsAgent: agent }); | ||||
|  | ||||
| 		if (res.status === 200) { | ||||
| 			return { announcements: res.data, ...meta }; | ||||
| 		} else { | ||||
| 			return { error: true, message: "Error: " + res.status }; | ||||
| 		} | ||||
| 	} catch (err) { | ||||
| 		return { error: true, message: "Error: " + err }; | ||||
| 	return { | ||||
| 		announcements: get(announcements), | ||||
| 		...meta | ||||
| 	} | ||||
| }) satisfies PageServerLoad; | ||||
|   | ||||
							
								
								
									
										3
									
								
								src/stores.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/stores.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| import { writable, type Writable } from "svelte/store"; | ||||
|  | ||||
| export const announcements: Writable<{}> = writable({}); | ||||
		Reference in New Issue
	
	Block a user