From 84855593186d37e26ecb5394e759479c88f184ee Mon Sep 17 00:00:00 2001 From: Kainoa Kanter <44733677+ThatOneCalculator@users.noreply.github.com> Date: Wed, 2 Feb 2022 07:51:41 -0800 Subject: Twitterの埋め込みを修正しました [Fix Twitter embed] (#8193) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix Twitter embed * Update packages/backend/src/server/web/views/gallery-post.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/channel.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/base.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/base.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/clip.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/channel.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/note.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/gallery-post.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/page.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/user.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/page.pug Co-authored-by: rinsuki <428rinsuki+git@gmail.com> * Yay! * Update packages/backend/src/server/web/views/base.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/base.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update packages/backend/src/server/web/views/base.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> * Update page.pug * Update channel.pug * Update gallery-post.pug * Update note.pug * Update page.pug * Update user.pug Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> Co-authored-by: rinsuki <428rinsuki+git@gmail.com> --- packages/backend/src/server/web/views/base.pug | 5 ++++- packages/backend/src/server/web/views/channel.pug | 3 --- packages/backend/src/server/web/views/clip.pug | 2 -- packages/backend/src/server/web/views/gallery-post.pug | 2 -- packages/backend/src/server/web/views/note.pug | 4 +--- packages/backend/src/server/web/views/page.pug | 2 -- packages/backend/src/server/web/views/user.pug | 2 -- 7 files changed, 5 insertions(+), 15 deletions(-) (limited to 'packages/backend/src/server/web') diff --git a/packages/backend/src/server/web/views/base.pug b/packages/backend/src/server/web/views/base.pug index 42c068c403..8e880bf04c 100644 --- a/packages/backend/src/server/web/views/base.pug +++ b/packages/backend/src/server/web/views/base.pug @@ -21,6 +21,7 @@ html meta(name='referrer' content='origin') meta(name='theme-color' content='#86b300') meta(name='theme-color-orig' content='#86b300') + meta(property='twitter:card' content='summary') meta(property='og:site_name' content= instanceName || 'Misskey') meta(name='viewport' content='width=device-width, initial-scale=1') link(rel='icon' href= icon || '/favicon.ico') @@ -42,7 +43,9 @@ html block meta block og - meta(property='og:image' content=img) + meta(property='og:title' content= title || 'Misskey') + meta(property='og:description' content= desc || '✨🌎✨ A interplanetary communication platform ✨🚀✨') + meta(property='og:image' content= img) style include ../style.css diff --git a/packages/backend/src/server/web/views/channel.pug b/packages/backend/src/server/web/views/channel.pug index 273632f0e0..486f0ecc47 100644 --- a/packages/backend/src/server/web/views/channel.pug +++ b/packages/backend/src/server/web/views/channel.pug @@ -16,6 +16,3 @@ block og meta(property='og:description' content= channel.description) meta(property='og:url' content= url) meta(property='og:image' content= channel.bannerUrl) - -block meta - meta(name='twitter:card' content='summary') diff --git a/packages/backend/src/server/web/views/clip.pug b/packages/backend/src/server/web/views/clip.pug index 8de53f19d6..7a84d50f6c 100644 --- a/packages/backend/src/server/web/views/clip.pug +++ b/packages/backend/src/server/web/views/clip.pug @@ -26,8 +26,6 @@ block meta meta(name='misskey:user-id' content=user.id) meta(name='misskey:clip-id' content=clip.id) - meta(name='twitter:card' content='summary') - // todo if user.twitter meta(name='twitter:creator' content=`@${user.twitter.screenName}`) diff --git a/packages/backend/src/server/web/views/gallery-post.pug b/packages/backend/src/server/web/views/gallery-post.pug index 95bbb2437c..ca0663a481 100644 --- a/packages/backend/src/server/web/views/gallery-post.pug +++ b/packages/backend/src/server/web/views/gallery-post.pug @@ -25,8 +25,6 @@ block meta meta(name='misskey:user-username' content=user.username) meta(name='misskey:user-id' content=user.id) - meta(name='twitter:card' content='summary') - // todo if user.twitter meta(name='twitter:creator' content=`@${user.twitter.screenName}`) diff --git a/packages/backend/src/server/web/views/note.pug b/packages/backend/src/server/web/views/note.pug index fce91bdabe..34b03f9833 100644 --- a/packages/backend/src/server/web/views/note.pug +++ b/packages/backend/src/server/web/views/note.pug @@ -26,9 +26,7 @@ block meta meta(name='misskey:user-username' content=user.username) meta(name='misskey:user-id' content=user.id) meta(name='misskey:note-id' content=note.id) - - meta(name='twitter:card' content='summary') - + // todo if user.twitter meta(name='twitter:creator' content=`@${user.twitter.screenName}`) diff --git a/packages/backend/src/server/web/views/page.pug b/packages/backend/src/server/web/views/page.pug index cb9e1039e1..b6c9548025 100644 --- a/packages/backend/src/server/web/views/page.pug +++ b/packages/backend/src/server/web/views/page.pug @@ -26,8 +26,6 @@ block meta meta(name='misskey:user-id' content=user.id) meta(name='misskey:page-id' content=page.id) - meta(name='twitter:card' content='summary') - // todo if user.twitter meta(name='twitter:creator' content=`@${user.twitter.screenName}`) diff --git a/packages/backend/src/server/web/views/user.pug b/packages/backend/src/server/web/views/user.pug index 1a8a6b4413..2adec0f889 100644 --- a/packages/backend/src/server/web/views/user.pug +++ b/packages/backend/src/server/web/views/user.pug @@ -25,8 +25,6 @@ block meta meta(name='misskey:user-username' content=user.username) meta(name='misskey:user-id' content=user.id) - meta(name='twitter:card' content='summary') - if profile.twitter meta(name='twitter:creator' content=`@${profile.twitter.screenName}`) -- cgit v1.2.3-freya From 508af8d45816af63386597f28ca1f6d8253acd4c Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 3 Feb 2022 21:38:57 +0900 Subject: refactor --- packages/backend/src/server/proxy/proxy-media.ts | 5 ++++ packages/backend/src/server/web/url-preview.ts | 30 +++++++++++++++++------- packages/backend/src/services/drive/add-file.ts | 24 +++++++++---------- 3 files changed, 38 insertions(+), 21 deletions(-) (limited to 'packages/backend/src/server/web') diff --git a/packages/backend/src/server/proxy/proxy-media.ts b/packages/backend/src/server/proxy/proxy-media.ts index c234b70c55..b7dcd0292b 100644 --- a/packages/backend/src/server/proxy/proxy-media.ts +++ b/packages/backend/src/server/proxy/proxy-media.ts @@ -11,6 +11,11 @@ import { FILE_TYPE_BROWSERSAFE } from '@/const'; export async function proxyMedia(ctx: Koa.Context) { const url = 'url' in ctx.query ? ctx.query.url : 'https://' + ctx.params.url; + if (typeof url !== 'string') { + ctx.status = 400; + return; + } + // Create temp file const [path, cleanup] = await createTemp(); diff --git a/packages/backend/src/server/web/url-preview.ts b/packages/backend/src/server/web/url-preview.ts index 71465c8083..26fffbea88 100644 --- a/packages/backend/src/server/web/url-preview.ts +++ b/packages/backend/src/server/web/url-preview.ts @@ -9,22 +9,34 @@ import { getJson } from '@/misc/fetch'; const logger = new Logger('url-preview'); module.exports = async (ctx: Koa.Context) => { + const url = ctx.query.url; + if (typeof url !== 'string') { + ctx.status = 400; + return; + } + + const lang = ctx.query.lang; + if (Array.isArray(lang)) { + ctx.status = 400; + return; + } + const meta = await fetchMeta(); logger.info(meta.summalyProxy - ? `(Proxy) Getting preview of ${ctx.query.url}@${ctx.query.lang} ...` - : `Getting preview of ${ctx.query.url}@${ctx.query.lang} ...`); + ? `(Proxy) Getting preview of ${url}@${lang} ...` + : `Getting preview of ${url}@${lang} ...`); try { const summary = meta.summalyProxy ? await getJson(`${meta.summalyProxy}?${query({ - url: ctx.query.url, - lang: ctx.query.lang || 'ja-JP', - })}`) : await summaly(ctx.query.url, { + url: url, + lang: lang ?? 'ja-JP', + })}`) : await summaly(url, { followRedirects: false, - lang: ctx.query.lang || 'ja-JP', + lang: lang ?? 'ja-JP', }); - logger.succ(`Got preview of ${ctx.query.url}: ${summary.title}`); + logger.succ(`Got preview of ${url}: ${summary.title}`); summary.icon = wrap(summary.icon); summary.thumbnail = wrap(summary.thumbnail); @@ -33,8 +45,8 @@ module.exports = async (ctx: Koa.Context) => { ctx.set('Cache-Control', 'max-age=604800, immutable'); ctx.body = summary; - } catch (e) { - logger.warn(`Failed to get preview of ${ctx.query.url}: ${e}`); + } catch (err) { + logger.warn(`Failed to get preview of ${url}: ${err}`); ctx.status = 200; ctx.set('Cache-Control', 'max-age=86400, immutable'); ctx.body = '{}'; diff --git a/packages/backend/src/services/drive/add-file.ts b/packages/backend/src/services/drive/add-file.ts index a89e068f45..9a8a543904 100644 --- a/packages/backend/src/services/drive/add-file.ts +++ b/packages/backend/src/services/drive/add-file.ts @@ -160,8 +160,8 @@ export async function generateAlts(path: string, type: string, generateWeb: bool webpublic: null, thumbnail, }; - } catch (e) { - logger.warn(`GenerateVideoThumbnail failed: ${e}`); + } catch (err) { + logger.warn(`GenerateVideoThumbnail failed: ${err}`); return { webpublic: null, thumbnail: null, @@ -191,8 +191,8 @@ export async function generateAlts(path: string, type: string, generateWeb: bool thumbnail: null, }; } - } catch (e) { - logger.warn(`sharp failed: ${e}`); + } catch (err) { + logger.warn(`sharp failed: ${err}`); return { webpublic: null, thumbnail: null, @@ -215,8 +215,8 @@ export async function generateAlts(path: string, type: string, generateWeb: bool } else { logger.debug(`web image not created (not an required image)`); } - } catch (e) { - logger.warn(`web image not created (an error occured)`, e); + } catch (err) { + logger.warn(`web image not created (an error occured)`, err as Error); } } else { logger.info(`web image not created (from remote)`); @@ -234,8 +234,8 @@ export async function generateAlts(path: string, type: string, generateWeb: bool } else { logger.debug(`thumbnail not created (not an required file)`); } - } catch (e) { - logger.warn(`thumbnail not created (an error occured)`, e); + } catch (err) { + logger.warn(`thumbnail not created (an error occured)`, err as Error); } // #endregion thumbnail @@ -451,9 +451,9 @@ export async function addFile({ file.storedInternal = false; file = await DriveFiles.insert(file).then(x => DriveFiles.findOneOrFail(x.identifiers[0])); - } catch (e) { + } catch (err) { // duplicate key error (when already registered) - if (isDuplicateKeyValueError(e)) { + if (isDuplicateKeyValueError(err)) { logger.info(`already registered ${file.uri}`); file = await DriveFiles.findOne({ @@ -461,8 +461,8 @@ export async function addFile({ userId: user ? user.id : null, }) as DriveFile; } else { - logger.error(e); - throw e; + logger.error(err as Error); + throw err; } } } else { -- cgit v1.2.3-freya From 1162f8bcff4d749f402e2edf60cb484255becffa Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 9 Feb 2022 13:23:29 +0900 Subject: feat(client): update fontawesome v6 and self-hosting Resolve #7475 --- CHANGELOG.md | 2 ++ gulpfile.js | 6 +++++- packages/backend/src/server/web/views/base.pug | 4 ++-- packages/client/package.json | 1 + packages/client/yarn.lock | 5 +++++ 5 files changed, 15 insertions(+), 3 deletions(-) (limited to 'packages/backend/src/server/web') diff --git a/CHANGELOG.md b/CHANGELOG.md index 4aefe8528b..2b15c3a5ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,8 @@ You should also include the user name that made the change. - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo +- クライアント: UIのアイコンを更新 @syuilo +- クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes diff --git a/gulpfile.js b/gulpfile.js index 3bc0b23bee..b7aa4e328e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -19,6 +19,10 @@ gulp.task('copy:client:fonts', () => gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/')) ); +gulp.task('copy:client:fontawesome', () => + gulp.src('./packages/client/node_modules/@fortawesome/fontawesome-free/**/*').pipe(gulp.dest('./built/_client_dist_/fontawesome/')) +); + gulp.task('copy:client:locales', cb => { fs.mkdirSync('./built/_client_dist_/locales', { recursive: true }); @@ -50,7 +54,7 @@ gulp.task('build:backend:style', () => { }); gulp.task('build', gulp.parallel( - 'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts' + 'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts', 'copy:client:fontawesome' )); gulp.task('default', gulp.task('build')); diff --git a/packages/backend/src/server/web/views/base.pug b/packages/backend/src/server/web/views/base.pug index 8e880bf04c..b8b733dd60 100644 --- a/packages/backend/src/server/web/views/base.pug +++ b/packages/backend/src/server/web/views/base.pug @@ -30,8 +30,8 @@ html link(rel='prefetch' href='https://xn--931a.moe/assets/info.jpg') link(rel='prefetch' href='https://xn--931a.moe/assets/not-found.jpg') link(rel='prefetch' href='https://xn--931a.moe/assets/error.jpg') - link(rel='preload' href='https://use.fontawesome.com/releases/v5.15.3/css/all.css' as='style') - link(rel='stylesheet' href='https://use.fontawesome.com/releases/v5.15.3/css/all.css') + link(rel='preload' href='/assets/fontawesome/css/all.css' as='style') + link(rel='stylesheet' href='/assets/fontawesome/css/all.css') title block title diff --git a/packages/client/package.json b/packages/client/package.json index 7bc74a1c17..cf4214e72b 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@discordapp/twemoji": "13.1.0", + "@fortawesome/fontawesome-free": "6.0.0-beta3", "@syuilo/aiscript": "0.11.1", "@types/escape-regexp": "0.0.1", "@types/glob": "7.2.0", diff --git a/packages/client/yarn.lock b/packages/client/yarn.lock index 5670241442..e06e376bc5 100644 --- a/packages/client/yarn.lock +++ b/packages/client/yarn.lock @@ -130,6 +130,11 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@fortawesome/fontawesome-free@6.0.0-beta3": + version "6.0.0-beta3" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.0.0-beta3.tgz#120e4a158a0de983924ce151bc35f27de46398b7" + integrity sha512-4SqOuhC8tSLeQvbW1nDmq6T7+8vdSgHy/w7PRwCFzMQCbKuYFIir/3UuWsV1QblX1lt7SGlSgwbaCv9XhRt8HA== + "@hapi/hoek@^9.0.0": version "9.2.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131" -- cgit v1.2.3-freya From 6ef9721dd39b93f9ea488c480275d6f464213a28 Mon Sep 17 00:00:00 2001 From: Sol Fisher Romanoff Date: Wed, 9 Feb 2022 06:41:52 +0200 Subject: fix: add instance favicon where it's missing (#8270) --- packages/backend/src/server/web/index.ts | 3 +++ 1 file changed, 3 insertions(+) (limited to 'packages/backend/src/server/web') diff --git a/packages/backend/src/server/web/index.ts b/packages/backend/src/server/web/index.ts index e95a115aec..a0667f0c20 100644 --- a/packages/backend/src/server/web/index.ts +++ b/packages/backend/src/server/web/index.ts @@ -276,6 +276,7 @@ router.get('/@:user/pages/:page', async (ctx, next) => { page: _page, profile, instanceName: meta.name || 'Misskey', + icon: meta.iconUrl, }); if (['public'].includes(page.visibility)) { @@ -305,6 +306,7 @@ router.get('/clips/:clip', async (ctx, next) => { clip: _clip, profile, instanceName: meta.name || 'Misskey', + icon: meta.iconUrl, }); ctx.set('Cache-Control', 'public, max-age=180'); @@ -350,6 +352,7 @@ router.get('/channels/:channel', async (ctx, next) => { await ctx.render('channel', { channel: _channel, instanceName: meta.name || 'Misskey', + icon: meta.iconUrl, }); ctx.set('Cache-Control', 'public, max-age=180'); -- cgit v1.2.3-freya