35 lines
888 B
TypeScript
35 lines
888 B
TypeScript
import { Application, Router } from "https://deno.land/x/oak/mod.ts";
|
|
import { getImage, uploadImage, deleteImage, chunks, mergeChunks, announce, site, icons} from './routes.ts';
|
|
import "https://deno.land/std@0.178.0/dotenv/load.ts";
|
|
|
|
|
|
const router = new Router();
|
|
|
|
router.get('/', async(ctx: RouterContext, next: any) => {
|
|
try {
|
|
await ctx.send({
|
|
root: `${Deno.cwd()}/site`,
|
|
index: "index.html"
|
|
})
|
|
} catch {
|
|
await next()
|
|
}
|
|
|
|
})
|
|
.get('/:filename', site)
|
|
.get('/i/:filename', icons)
|
|
.post('/upload', uploadImage)
|
|
.post('/announce', announce)
|
|
.post('/uploadchunk', chunks)
|
|
.post('/finish', mergeChunks)
|
|
.delete('/image/:filename', deleteImage)
|
|
.get('/image/:filename', getImage)
|
|
|
|
const app = new Application();
|
|
|
|
app.use(router.routes())
|
|
app.use(router.allowedMethods());
|
|
|
|
app.listen({ port: Deno.env.get("PORT") });
|
|
console.log(`Server is running on port ${Deno.env.get("PORT")}`)
|