format
This commit is contained in:
parent
d684ad6045
commit
a72e440222
1 changed files with 26 additions and 17 deletions
43
server.js
43
server.js
|
@ -2,7 +2,7 @@ import html2png from '@besties/html2png'
|
||||||
import express from 'express'
|
import express from 'express'
|
||||||
import fs from 'node:fs'
|
import fs from 'node:fs'
|
||||||
|
|
||||||
const app = express();
|
const app = express()
|
||||||
|
|
||||||
const figtreeRegular = fs.readFileSync('./assets/Figtree-Regular.woff')
|
const figtreeRegular = fs.readFileSync('./assets/Figtree-Regular.woff')
|
||||||
const figtreeMedium = fs.readFileSync('./assets/Figtree-Medium.woff')
|
const figtreeMedium = fs.readFileSync('./assets/Figtree-Medium.woff')
|
||||||
|
@ -10,8 +10,6 @@ const figtreeExtraBold = fs.readFileSync('./assets/Figtree-ExtraBold.woff')
|
||||||
const ATTR_REGEX = /["&]/g
|
const ATTR_REGEX = /["&]/g
|
||||||
const CONTENT_REGEX = /[&<]/g
|
const CONTENT_REGEX = /[&<]/g
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function escape(value, is_attr = false) {
|
function escape(value, is_attr = false) {
|
||||||
const str = String(value)
|
const str = String(value)
|
||||||
const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX
|
const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX
|
||||||
|
@ -30,20 +28,31 @@ function escape(value, is_attr = false) {
|
||||||
return escaped + str.slice(Math.max(0, last))
|
return escaped + str.slice(Math.max(0, last))
|
||||||
}
|
}
|
||||||
|
|
||||||
app.get('/', function(req, res) {
|
app.get('/', function (req, res) {
|
||||||
res.redirect("https://git.gay/gitgay/og.git");
|
res.redirect('https://git.gay/gitgay/og.git')
|
||||||
});
|
})
|
||||||
|
|
||||||
app.get('/:owner/:repo', async function(req, res) {
|
app.get('/:owner/:repo', async function (req, res) {
|
||||||
let repo = await (await fetch(`https://git.gay/api/v1/repos/${req.params.owner}/${req.params.repo}`)).json();
|
let repo = await (
|
||||||
let infoHtml = `
|
await fetch(
|
||||||
<p style="font-size: 36px; color: #9A8FA7;">${escape(repo.owner.full_name)} ${escape(`@${repo.owner.login}`)}</p>
|
`https://git.gay/api/v1/repos/${req.params.owner}/${req.params.repo}`
|
||||||
<p style="font-weight: 800; font-size: 4.5rem; line-height: 1.2em;">${escape(repo.name)}</p>
|
)
|
||||||
`;
|
).json()
|
||||||
|
let infoHtml = `
|
||||||
|
<p style="font-size: 36px; color: #9A8FA7;">${escape(
|
||||||
|
repo.owner.full_name
|
||||||
|
)} ${escape(`@${repo.owner.login}`)}</p>
|
||||||
|
<p style="font-weight: 800; font-size: 4.5rem; line-height: 1.2em;">${escape(
|
||||||
|
repo.name
|
||||||
|
)}</p>
|
||||||
|
`
|
||||||
|
|
||||||
if (repo.description) infoHtml = `${infoHtml}<p style="font-size: 42px; font-weight: 500; color: #9A8FA7;">${escape(repo.description)}</p>`;
|
if (repo.description)
|
||||||
|
infoHtml = `${infoHtml}<p style="font-size: 42px; font-weight: 500; color: #9A8FA7;">${escape(
|
||||||
|
repo.description
|
||||||
|
)}</p>`
|
||||||
|
|
||||||
let img = await html2png(
|
let img = await html2png(
|
||||||
`<div class="main">
|
`<div class="main">
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="info">
|
<div class="info">
|
||||||
|
@ -117,9 +126,9 @@ app.get('/:owner/:repo', async function(req, res) {
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
|
|
||||||
res.send(img);
|
res.send(img)
|
||||||
})
|
})
|
||||||
|
|
||||||
app.listen(8085);
|
app.listen(8085)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue