| 
									
										
										
										
											2023-12-09 20:25:49 +00:00
										 |  |  | import * as blog from './blog.js'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | async function main() { | 
					
						
							| 
									
										
										
										
											2024-01-10 02:23:40 +00:00
										 |  |  | 	if (request.path.startsWith('%') && request.path.endsWith('.sha256')) { | 
					
						
							| 
									
										
										
										
											2024-02-24 11:09:34 -05:00
										 |  |  | 		let id = request.path.startsWith('%25') | 
					
						
							|  |  |  | 			? '%' + request.path.substring(3) | 
					
						
							|  |  |  | 			: request.path; | 
					
						
							| 
									
										
										
										
											2024-01-11 00:33:53 +00:00
										 |  |  | 		let message = await blog.get_blog_message(id); | 
					
						
							|  |  |  | 		if (message) { | 
					
						
							| 
									
										
										
										
											2024-02-24 11:09:34 -05:00
										 |  |  | 			respond({ | 
					
						
							|  |  |  | 				data: await blog.render_blog_post_html(message), | 
					
						
							|  |  |  | 				content_type: 'text/html; charset=utf-8', | 
					
						
							|  |  |  | 			}); | 
					
						
							| 
									
										
										
										
											2024-01-10 02:23:40 +00:00
										 |  |  | 		} else { | 
					
						
							| 
									
										
										
										
											2024-02-24 11:09:34 -05:00
										 |  |  | 			respond({ | 
					
						
							|  |  |  | 				data: `Message ${id} not found.`, | 
					
						
							|  |  |  | 				content_type: 'text/html; charset=utf-8', | 
					
						
							|  |  |  | 			}); | 
					
						
							| 
									
										
										
										
											2023-12-09 20:25:49 +00:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2024-01-10 02:23:40 +00:00
										 |  |  | 	} else if (request.path == 'atom') { | 
					
						
							|  |  |  | 		let blogs = await blog.get_posts(); | 
					
						
							| 
									
										
										
										
											2024-02-24 11:09:34 -05:00
										 |  |  | 		respond({ | 
					
						
							|  |  |  | 			data: blog.render_atom(blogs), | 
					
						
							|  |  |  | 			content_type: 'application/atom+xml', | 
					
						
							|  |  |  | 		}); | 
					
						
							| 
									
										
										
										
											2023-12-09 20:25:49 +00:00
										 |  |  | 	} else { | 
					
						
							| 
									
										
										
										
											2024-01-10 02:23:40 +00:00
										 |  |  | 		let blogs = await blog.get_posts(); | 
					
						
							|  |  |  | 		for (let blog_post of blogs) { | 
					
						
							|  |  |  | 			let title = (blog_post.title || '').replaceAll(/\W/g, '_').toLowerCase(); | 
					
						
							|  |  |  | 			if (request.path === title) { | 
					
						
							| 
									
										
										
										
											2024-02-24 11:09:34 -05:00
										 |  |  | 				respond({ | 
					
						
							|  |  |  | 					data: await blog.render_blog_post_html(blog_post), | 
					
						
							|  |  |  | 					content_type: 'text/html; charset=utf-8', | 
					
						
							|  |  |  | 				}); | 
					
						
							| 
									
										
										
										
											2024-01-10 02:23:40 +00:00
										 |  |  | 				return; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2024-02-24 11:09:34 -05:00
										 |  |  | 		respond({ | 
					
						
							|  |  |  | 			data: blog.render_html(blogs), | 
					
						
							|  |  |  | 			content_type: 'text/html; charset=utf-8', | 
					
						
							|  |  |  | 		}); | 
					
						
							| 
									
										
										
										
											2023-12-09 20:25:49 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-24 11:09:34 -05:00
										 |  |  | main().catch(function (error) { | 
					
						
							|  |  |  | 	respond({ | 
					
						
							|  |  |  | 		data: `<!DOCTYPE html>
 | 
					
						
							|  |  |  | 	<pre style="color: #f00">${error.message}\n${error.stack}</pre>`, | 
					
						
							|  |  |  | 		content_type: 'text/html', | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | }); |