import express from 'express' import { Eta } from 'eta' import render, { renderHtml } from './lib/render.js' const debug = process.env.DEBUG ? true : false const eta = new Eta({ views: 'views', cache: !debug }) const app = express() app.get('/', function (req, res) { res.redirect('https://git.gay/gitgay/og.git') }) app.get('/:owner/:repo', async function (req, res) { const repoResp = await fetch( `https://git.gay/api/v1/repos/${req.params.owner}/${req.params.repo}` ) const repo = await repoResp.json() const html = await eta.renderAsync('repo', { repo, debug }) if (debug) { res.send(renderHtml(html)) return } res.type('png') res.set('Content-Disposition', 'inline') res.send(await render(html)) }) app.get('/:owner/:repo/:type/:num', async function (req, res) { const issueResp = await fetch( `https://git.gay/api/v1/repos/${req.params.owner}/${req.params.repo}/${req.params.type}/${req.params.num}` ) const issue = await issueResp.json() const html = await eta.renderAsync('issue', { issue, debug }) if (debug) { res.send(renderHtml(html)) return } res.type('png') res.set('Content-Disposition', 'inline') res.send(await render(html)) }) app.listen(8085)