diff --git a/CHANGELOG.md b/CHANGELOG.md index 66a45fff9..c291485a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 12.x.x (unreleased) ### Improvements +- Client: Preferences Registry ### Bugfixes - @@ -11,12 +12,26 @@ You should also include the user name that made the change. ## 12.x.x (unreleased) +### Improvements +- Client: Add vi-VN language support + +### Bugfixes +- Server: リモートユーザーを正しくブロックできるように修正する @xianonn +- Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo +- Client: MiAuth認証ページが機能していない @syuilo +- Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa + +## 12.117.1 (2022/07/19) + ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes +- Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo -- Client: ユーザー情報の取得の再試行を修正する @xianonn +- Client: ユーザー情報の取得の再試行を修正 @xianonn +- Client: MFMチートシートの挙動を修正 @syuilo +- Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 (2022/07/18) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bd475d985..d599d39cf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -140,6 +140,34 @@ Misskey uses Vue(v3) as its front-end framework. - **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.** - Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome. +## nirax +niraxは、Misskeyで使用しているオリジナルのフロントエンドルーティングシステムです。 +**vue-routerから影響を多大に受けているので、まずはvue-routerについて学ぶことをお勧めします。** + +### ルート定義 +ルート定義は、以下の形式のオブジェクトの配列です。 + +``` ts +{ + name?: string; + path: string; + component: Component; + query?: Record; + loginRequired?: boolean; + hash?: string; + globalCacheKey?: string; + children?: RouteDef[]; +} +``` + +> **Warning** +> 現状、ルートは定義された順に評価されます。 +> たとえば、`/foo/:id`ルート定義の次に`/foo/bar`ルート定義がされていた場合、後者がマッチすることはありません。 + +### 複数のルーター +vue-routerとの最大の違いは、niraxは複数のルーターが存在することを許可している点です。 +これにより、アプリ内ウィンドウでブラウザとは個別にルーティングすることなどが可能になります。 + ## Notes ### How to resolve conflictions occurred at yarn.lock? diff --git a/locales/index.js b/locales/index.js index 98c30fe01..92cd9b467 100644 --- a/locales/index.js +++ b/locales/index.js @@ -36,6 +36,7 @@ const languages = [ 'sk-SK', 'ug-CN', 'uk-UA', + 'vi-VN', 'zh-CN', 'zh-TW', ]; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index e071b4bda..f8895bd99 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -52,6 +52,7 @@ searchUser: "ユーザーを検索" reply: "返信" loadMore: "もっと見る" showMore: "もっと見る" +showLess: "閉じる" youGotNewFollower: "フォローされました" receiveFollowRequest: "フォローリクエストされました" followRequestAccepted: "フォローが承認されました" @@ -561,6 +562,7 @@ author: "作者" leaveConfirm: "未保存の変更があります。破棄しますか?" manage: "管理" plugins: "プラグイン" +preferencesBackups: "設定のバックアップ" deck: "デッキ" undeck: "デッキ解除" useBlurEffectForModal: "モーダルにぼかし効果を使用" @@ -952,6 +954,25 @@ _plugin: installWarn: "信頼できないプラグインはインストールしないでください。" manage: "プラグインの管理" +_preferencesBackups: + list: "作成したバックアップ" + saveNew: "新規保存" + loadFile: "ファイルを読み込み" + apply: "このデバイスに適用" + save: "上書き保存" + inputName: "バックアップ名を入力" + cannotSave: "保存できません" + nameAlreadyExists: "バックアップ名「{name}」は既に存在します。違う名前を指定してください。" + applyConfirm: "バックアップ「{name}」を現在のデバイスに適用しますか?現在のデバイス設定は失われます。" + saveConfirm: "{name}に上書き保存しますか?" + deleteConfirm: "{name}を削除しますか?" + renameConfirm: "「{old}」を「{new}」に変更しますか?" + noBackups: "バックアップはありません。「新規保存」で現在のクライアント設定をサーバーに保存できます。" + createdAt: "作成日時: {date} {time}" + updatedAt: "更新日時: {date} {time}" + cannotLoad: "読み込みできません" + invalidFile: "ファイル形式が違います。" + _registry: scope: "スコープ" key: "キー" @@ -1038,6 +1059,8 @@ _mfm: sparkleDescription: "キラキラしたパーティクルのエフェクトを追加します。" rotate: "回転" rotateDescription: "指定した角度で回転させます。" + plain: "プレーン" + plainDescription: "内側の構文を全て無効にします。" _instanceTicker: none: "表示しない" diff --git a/locales/sk-SK.yml b/locales/sk-SK.yml index 2ac0a8566..4fbdc1cb1 100644 --- a/locales/sk-SK.yml +++ b/locales/sk-SK.yml @@ -885,6 +885,7 @@ enableAutoSensitiveDescription: "Ak je zapnuté, príznak NSFW sa na médiách a activeEmailValidationDescription: "Dôkladnejšie overí e-mailovú adresu používateľa tým, že zistí, či ide o vyradenú e-mailovú adresu a či sa s ňou dá skutočne komunikovať. Ak nie je začiarknuté, e-mailová adresa sa kontroluje len ako text." navbar: "Navigačný panel" account: "Účty" +move: "Pohyb" _sensitiveMediaDetection: description: "Strojové učenie sa použije na automatickú detekciu citlivých médií na účely ich moderovania. Mierne sa zvýši zaťaženie servera." sensitivity: "Citlivosť detekcie" @@ -1691,6 +1692,7 @@ _deck: alwaysShowMainColumn: "Vždy zobraziť v hlavnom stĺpci" columnAlign: "Zarovnať stĺpce" addColumn: "Pridať stĺpec" + configureColumn: "Nastavenie stĺpcov" swapLeft: "Vymeniť vľavo" swapRight: "Vymeniť vpravo" swapUp: "Vymeniť hore" diff --git a/package.json b/package.json index e5958c16a..80677a14f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "12.117.0", + "version": "12.118.0-beta.4", "codename": "indigo", "repository": { "type": "git", @@ -52,9 +52,9 @@ "@types/gulp": "4.0.9", "@types/gulp-rename": "2.0.1", "@typescript-eslint/eslint-plugin": "latest", - "@typescript-eslint/parser": "5.30.6", + "@typescript-eslint/parser": "5.31.0", "cross-env": "7.0.3", - "cypress": "10.3.0", + "cypress": "10.3.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-vue": "latest", "start-server-and-test": "1.14.0", diff --git a/packages/backend/package.json b/packages/backend/package.json index cf460bf13..5c727b8c3 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -14,12 +14,12 @@ "test": "yarn mocha" }, "optionalDependencies": { - "@tensorflow/tfjs-node": "3.18.0" + "@tensorflow/tfjs-node": "3.19.0" }, "dependencies": { - "@bull-board/api": "4.0.0", - "@bull-board/koa": "4.0.0", - "@bull-board/ui": "4.0.0", + "@bull-board/api": "4.1.1", + "@bull-board/koa": "4.1.1", + "@bull-board/ui": "4.1.1", "@discordapp/twemoji": "14.0.2", "@elastic/elasticsearch": "7.17.0", "@koa/cors": "3.3.0", @@ -28,15 +28,14 @@ "@peertube/http-signature": "1.6.0", "@sinonjs/fake-timers": "9.1.2", "@syuilo/aiscript": "0.11.1", - "abort-controller": "3.0.0", "ajv": "8.11.0", "archiver": "5.3.1", "autobind-decorator": "2.4.0", "autwh": "0.1.0", - "aws-sdk": "2.1165.0", + "aws-sdk": "2.1185.0", "bcryptjs": "2.4.3", "blurhash": "1.1.5", - "bull": "4.8.4", + "bull": "4.8.5", "cacheable-lookup": "6.0.4", "cbor": "8.1.0", "chalk": "5.0.1", @@ -45,13 +44,13 @@ "cli-highlight": "2.1.11", "color-convert": "2.0.1", "content-disposition": "0.5.4", - "date-fns": "2.28.0", + "date-fns": "2.29.1", "deep-email-validator": "0.1.21", "escape-regexp": "0.0.1", "feed": "4.2.2", - "file-type": "17.1.2", + "file-type": "17.1.4", "fluent-ffmpeg": "2.1.2", - "got": "12.1.0", + "got": "12.3.0", "hpagent": "0.1.2", "ioredis": "4.28.5", "ip-cidr": "3.0.10", @@ -61,7 +60,7 @@ "json5": "2.2.1", "json5-loader": "4.0.1", "jsonld": "6.0.0", - "jsrsasign": "10.5.25", + "jsrsasign": "10.5.26", "koa": "2.13.4", "koa-bodyparser": "4.3.0", "koa-favicon": "2.1.0", @@ -71,14 +70,14 @@ "koa-send": "5.0.1", "koa-slow": "2.1.0", "koa-views": "7.0.2", - "mfm-js": "0.23.0-canary.1", + "mfm-js": "0.23.0", "mime-types": "2.1.35", "misskey-js": "0.0.14", "mocha": "10.0.0", "ms": "3.0.0-canary.1", "multer": "1.4.4", "nested-property": "4.0.0", - "node-fetch": "3.2.8", + "node-fetch": "3.2.10", "nodemailer": "6.7.7", "nsfwjs": "2.4.1", "oauth": "^0.9.15", @@ -91,32 +90,30 @@ "pug": "3.0.2", "punycode": "2.1.1", "pureimage": "0.3.14", - "qrcode": "1.5.0", + "qrcode": "1.5.1", "random-seed": "0.3.0", "ratelimiter": "3.4.1", "re2": "1.17.7", "redis-lock": "0.1.4", "reflect-metadata": "0.1.13", "rename": "1.0.4", - "require-all": "3.0.0", "rndstr": "1.0.0", "rss-parser": "3.12.0", "s-age": "1.1.2", - "sanitize-html": "2.7.0", + "sanitize-html": "2.7.1", "semver": "7.3.7", "sharp": "0.30.6", "speakeasy": "2.0.0", "strict-event-emitter-types": "2.0.0", "stringz": "2.1.0", - "style-loader": "3.3.1", "summaly": "2.7.0", "syslog-pro": "1.0.0", - "systeminformation": "5.12.0", + "systeminformation": "5.12.1", "tinycolor2": "1.4.2", "tmp": "0.2.1", "ts-loader": "9.3.1", - "ts-node": "10.8.2", - "tsc-alias": "1.6.11", + "ts-node": "10.9.1", + "tsc-alias": "1.7.0", "tsconfig-paths": "4.0.0", "twemoji-parser": "14.0.0", "typeorm": "0.3.7", @@ -125,21 +122,20 @@ "uuid": "8.3.2", "web-push": "3.5.0", "websocket": "1.0.34", - "ws": "8.8.0", + "ws": "8.8.1", "xev": "3.0.2" }, "devDependencies": { - "@redocly/openapi-core": "1.0.0-beta.100", + "@redocly/openapi-core": "1.0.0-beta.105", "@types/bcryptjs": "2.4.2", - "@types/bull": "3.15.8", + "@types/bull": "3.15.9", "@types/cbor": "6.0.0", "@types/escape-regexp": "0.0.1", "@types/fluent-ffmpeg": "2.1.20", - "@types/is-url": "1.2.30", "@types/js-yaml": "4.0.5", "@types/jsdom": "16.2.14", "@types/jsonld": "1.5.6", - "@types/jsrsasign": "10.5.1", + "@types/jsrsasign": "10.5.2", "@types/koa": "2.13.5", "@types/koa-bodyparser": "4.3.7", "@types/koa-cors": "0.0.2", @@ -152,7 +148,7 @@ "@types/koa__multer": "2.0.4", "@types/koa__router": "8.0.11", "@types/mocha": "9.1.1", - "@types/node": "18.0.3", + "@types/node": "18.6.3", "@types/node-fetch": "3.0.3", "@types/nodemailer": "6.4.4", "@types/oauth": "0.9.1", @@ -174,10 +170,10 @@ "@types/web-push": "3.3.2", "@types/websocket": "1.0.5", "@types/ws": "8.5.3", - "@typescript-eslint/eslint-plugin": "5.30.6", - "@typescript-eslint/parser": "5.30.6", + "@typescript-eslint/eslint-plugin": "5.31.0", + "@typescript-eslint/parser": "5.31.0", "cross-env": "7.0.3", - "eslint": "8.19.0", + "eslint": "8.20.0", "eslint-plugin-import": "2.26.0", "execa": "6.1.0", "form-data": "^4.0.0", diff --git a/packages/backend/src/misc/get-file-info.ts b/packages/backend/src/misc/get-file-info.ts index 42061fcf8..1c988b248 100644 --- a/packages/backend/src/misc/get-file-info.ts +++ b/packages/backend/src/misc/get-file-info.ts @@ -101,13 +101,17 @@ export async function getFileInfo(path: string, opts: { let porn = false; if (!opts.skipSensitiveDetection) { - [sensitive, porn] = await detectSensitivity( + await detectSensitivity( path, type.mime, opts.sensitiveThreshold ?? 0.5, opts.sensitiveThresholdForPorn ?? 0.75, opts.enableSensitiveMediaDetectionForVideos ?? false, - ); + ).then(value => { + [sensitive, porn] = value; + }, error => { + warnings.push(`detectSensitivity failed: ${error}`); + }); } return { diff --git a/packages/backend/src/remote/activitypub/renderer/block.ts b/packages/backend/src/remote/activitypub/renderer/block.ts index 13815fb76..802d7280b 100644 --- a/packages/backend/src/remote/activitypub/renderer/block.ts +++ b/packages/backend/src/remote/activitypub/renderer/block.ts @@ -7,7 +7,7 @@ import { Blocking } from '@/models/entities/blocking.js'; * @param block The block to be rendered. The blockee relation must be loaded. */ export function renderBlock(block: Blocking) { - if (block.blockee?.url == null) { + if (block.blockee?.uri == null) { throw new Error('renderBlock: missing blockee uri'); } diff --git a/packages/backend/src/server/api/endpoints/i/notifications.ts b/packages/backend/src/server/api/endpoints/i/notifications.ts index a2249803e..2b343dabd 100644 --- a/packages/backend/src/server/api/endpoints/i/notifications.ts +++ b/packages/backend/src/server/api/endpoints/i/notifications.ts @@ -13,7 +13,7 @@ export const meta = { limit: { duration: 60000, - max: 10, + max: 15, }, kind: 'read:notifications', diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js index 957011542..b0d529ec3 100644 --- a/packages/backend/src/server/web/boot.js +++ b/packages/backend/src/server/web/boot.js @@ -138,6 +138,8 @@

Don't worry, it's (probably) not your fault.

If the problem persists after refreshing, please contact your instance's administrator.
You may also try the following options:

+

Update your os and browser.

+

Disable an adblocker.