feat: add lot of new logos
2
.gitignore
vendored
@@ -25,3 +25,5 @@ logs
|
|||||||
|
|
||||||
# ESLint
|
# ESLint
|
||||||
.eslintcache
|
.eslintcache
|
||||||
|
|
||||||
|
public/**/svg
|
||||||
|
|||||||
4
app.vue
@@ -44,7 +44,7 @@ const updateQRCode = async () => {
|
|||||||
|
|
||||||
if (!isValidState.value) return;
|
if (!isValidState.value) return;
|
||||||
|
|
||||||
const logoUrl = `/${state.logo}.png`;
|
const logoUrl = `/logos/${state.logo}.png`;
|
||||||
await renderQRCodeToCanvas(canvas.value, state.content, logoUrl);
|
await renderQRCodeToCanvas(canvas.value, state.content, logoUrl);
|
||||||
|
|
||||||
qrCode.value = canvas.value.toDataURL(`image/${state.format}`);
|
qrCode.value = canvas.value.toDataURL(`image/${state.format}`);
|
||||||
@@ -74,7 +74,7 @@ const downloadQRCode = () => {
|
|||||||
const copyQRCode = async () => {
|
const copyQRCode = async () => {
|
||||||
if (isQRCodeEmpty.value) return;
|
if (isQRCodeEmpty.value) return;
|
||||||
|
|
||||||
const logoUrl = `/${state.logo}.png`;
|
const logoUrl = `/logos/${state.logo}.png`;
|
||||||
await renderQRCodeToCanvas(canvas.value, state.content, logoUrl);
|
await renderQRCodeToCanvas(canvas.value, state.content, logoUrl);
|
||||||
|
|
||||||
const qrCode = canvas.value.toDataURL(`image/png`);
|
const qrCode = canvas.value.toDataURL(`image/png`);
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 13 KiB |
BIN
public/logos/bereal.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/logos/bitcoinsv.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/logos/buymeacoffee.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/logos/diaspora.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/logos/discord.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/logos/dropbox.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
public/logos/ello.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/logos/facebook.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/logos/flickr.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
public/logos/github.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/logos/googlemaps.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/logos/googlemeet.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
public/logos/googlemessages.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/logos/imessage.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/logos/instagram.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/logos/kik.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/logos/line.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/logos/linkedin.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
public/logos/litecoin.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/logos/mastodon.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/logos/medium.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/logos/messenger.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/logos/monero.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
public/logos/onlyfans.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/logos/patreon.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
public/logos/paypal.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/logos/peertube.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
public/logos/pinterest.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/logos/reddit.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/logos/session.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/logos/signal.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/logos/snapchat.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/logos/spotify.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/logos/substack.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
public/logos/telegram.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
public/logos/threema.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/logos/twitch.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
public/logos/venmo.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/logos/viber.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/logos/wechat.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
public/logos/whatsapp.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/logos/x.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
public/logos/youtube.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
public/logos/zoom.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 10 KiB |
@@ -22,7 +22,7 @@ export default defineEventHandler(async (event) => {
|
|||||||
const { format, logo, content } = parsed.data;
|
const { format, logo, content } = parsed.data;
|
||||||
|
|
||||||
const canvas = createCanvas(CANVAS_SIZE, CANVAS_SIZE);
|
const canvas = createCanvas(CANVAS_SIZE, CANVAS_SIZE);
|
||||||
const logoUrl = resolve("public", `${logo}.png`);
|
const logoUrl = resolve("public", `logos/${logo}.png`);
|
||||||
await renderQRCodeToCanvas(canvas, content, logoUrl);
|
await renderQRCodeToCanvas(canvas, content, logoUrl);
|
||||||
|
|
||||||
let image = canvas.toBuffer();
|
let image = canvas.toBuffer();
|
||||||
|
|||||||
@@ -1,6 +1,52 @@
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
export const LOGOS = ["session", "github"] as const;
|
// TODO: might be better to load these dynamically lol
|
||||||
|
export const LOGOS = [
|
||||||
|
"bereal",
|
||||||
|
"bitcoinsv",
|
||||||
|
"buymeacoffee",
|
||||||
|
"diaspora",
|
||||||
|
"discord",
|
||||||
|
"dropbox",
|
||||||
|
"ello",
|
||||||
|
"facebook",
|
||||||
|
"flickr",
|
||||||
|
"github",
|
||||||
|
"googlemaps",
|
||||||
|
"googlemeet",
|
||||||
|
"googlemessages",
|
||||||
|
"imessage",
|
||||||
|
"instagram",
|
||||||
|
"kik",
|
||||||
|
"line",
|
||||||
|
"linkedin",
|
||||||
|
"litecoin",
|
||||||
|
"mastodon",
|
||||||
|
"medium",
|
||||||
|
"messenger",
|
||||||
|
"monero",
|
||||||
|
"onlyfans",
|
||||||
|
"patreon",
|
||||||
|
"paypal",
|
||||||
|
"peertube",
|
||||||
|
"pinterest",
|
||||||
|
"reddit",
|
||||||
|
"session",
|
||||||
|
"signal",
|
||||||
|
"snapchat",
|
||||||
|
"spotify",
|
||||||
|
"substack",
|
||||||
|
"telegram",
|
||||||
|
"threema",
|
||||||
|
"twitch",
|
||||||
|
"venmo",
|
||||||
|
"viber",
|
||||||
|
"wechat",
|
||||||
|
"whatsapp",
|
||||||
|
"x",
|
||||||
|
"youtube",
|
||||||
|
"zoom",
|
||||||
|
] as const;
|
||||||
|
|
||||||
export const IMAGE_FORMATS = ["png", "jpeg", "webp"] as const;
|
export const IMAGE_FORMATS = ["png", "jpeg", "webp"] as const;
|
||||||
|
|
||||||
|
|||||||