From b9a57715e865e00a6104709ccfedd0f893a9e19f Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 20 Nov 2021 13:54:28 +0900 Subject: [PATCH 01/44] update banner image --- README.md | 2 +- assets/about/banner.svg | Bin 39137 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 assets/about/banner.svg diff --git a/README.md b/README.md index a60f71cac..ce94a054c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Misskey](/assets/about/banner.svg)](https://join.misskey.page/) +[![Misskey](https://github.com/misskey-dev/assets/blob/main/banner.png?raw=true)](https://join.misskey.page/)

Misskey

diff --git a/assets/about/banner.svg b/assets/about/banner.svg deleted file mode 100644 index 75308c09500782cd00e8a312bbc86472d308557d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39137 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 z 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 From 5e33ca3da01ef29b0b9953ba3c8093f2c24526d2 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 20 Nov 2021 18:21:18 +0900 Subject: [PATCH 02/44] Update README.md --- README.md | 103 ++++++++---------------------------------------------- 1 file changed, 15 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index ce94a054c..b08ecb313 100644 --- a/README.md +++ b/README.md @@ -1,116 +1,43 @@ [![Misskey](https://github.com/misskey-dev/assets/blob/main/banner.png?raw=true)](https://join.misskey.page/) -

Misskey

-
-[![Dependencies](https://img.shields.io/david/misskey-dev/misskey.svg?style=for-the-badge&logo=npm)](https://david-dm.org/misskey-dev/misskey) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge&logo=github)](http://makeapullrequest.com) -[![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech) +**🌎 A forever evolving, interplanetary microblogging platform. 🚀** -**A forever evolving, interplanetary microblogging platform.** +**Misskey** is a distributed microblogging platform with advanced features such as Reactions and a highly customizable UI. -Misskey is a decentralized microblogging platform born on Earth. -Since it exists within the Fediverse (a universe where various social media platforms are organized), -it is mutually linked with other social media platforms. -Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? Find an instance! +[Learn more](https://misskey-hub.net/) Become a Patron!
---- +
-Do you have a question? Or are you experiencing trouble? -Visit [our forum](https://forum.misskey.io/)! - ---- - -![](https://ja.mstdn.wiki/images/e/ed/Deck.jpg) - -:sparkles: Features ----------------------------------------------------------------- -

Posting

-

-Post your ideas, discussion topics, fun moments, or anything else you want to share! Misskey supports text, emoji, pictures, videos, and polls! -

+## ✨ Find an instance +Please see the [Instances list](https://misskey-hub.net/instances.html). ---- +## 📦 Create your own instance +Please see the [Installation Guide](https://misskey-hub.net/docs/install/install.html). -

Reactions

-

-Reactions are the simplest way to respond to others' posts. Simply pick a reaction emote from the list! Reactions on Misskey are much more expressive than other social media services which only allow “liking”. -

- ---- - -

Interface

-

-Customize the UI to your own tastes! No UI will work for everyone, so Misskey is completely customizable. Make Misskey *yours* by editing the style, adjusting timeline layouts, and placing widgets. -

- ---- - -

Misskey Drive

-

-Organize and store your files! Want to post a picture you have already uploaded? Wish you could organize your files into folders? Misskey Drive is a solution! -

- ---- - -...and more! - -:package: Create your own instance ----------------------------------------------------------------- -Please see the [Setup and Installation Guide](https://misskey-hub.net/docs/install/install.html). - -:wrench: Contribution ----------------------------------------------------------------- +## 🛠️ Contribute Please see the [Contribution Guide](./CONTRIBUTING.md). -### Collaborators - - - - - - - - - - - - - - - - - - - - - -
syuiloAyaMorisawamei23acid-chickenrinsukitamainaXelticau1-liquid
@syuilo@AyaMorisawa@mei23@acid-chicken@rinsuki@tamaina@Xeltica@u1-liquid
+## 🚀 Join the community +Misskey's [Discord server is available](https://discord.gg/Wp8gVStHW3). ---- +
-To receive updates of this repo, follow [@repo@misskey.io](https://misskey.io/@repo) on fediverse. +
-Related projects ----------------------------------------------------------------- -- [misskey.js](https://github.com/misskey-dev/misskey.js) - Misskey SDK for JavaScript -- [mfm.js](https://github.com/misskey-dev/mfm.js) - MFM parser - -Sponsors ----------------------------------------------------------------- +## Sponsors
RSS3
-:heart: Backers ----------------------------------------------------------------- +## Backers From 1ec4156b49287ac7403adecbf68b534495d1638d Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 20 Nov 2021 18:22:29 +0900 Subject: [PATCH 03/44] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b08ecb313..be01643dd 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@
- + ## ✨ Find an instance Please see the [Instances list](https://misskey-hub.net/instances.html). From f5bea67515d00a4ff981f6fb11a951abe8c4d8a6 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 21 Nov 2021 13:36:44 +0900 Subject: [PATCH 04/44] =?UTF-8?q?client:=20=E3=83=8E=E3=83=BC=E3=83=88?= =?UTF-8?q?=E3=81=AB=E3=83=A2=E3=83=87=E3=83=AC=E3=83=BC=E3=82=BF=E3=83=BC?= =?UTF-8?q?=E3=83=90=E3=83=83=E3=82=B8=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=81=AE=E3=82=92=E5=BB=83=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 9 +++++++++ packages/client/src/components/note-detailed.vue | 8 -------- packages/client/src/components/note-header.vue | 9 --------- packages/client/src/ui/chat/note-header.vue | 8 -------- 4 files changed, 9 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f24c80fc9..d315743fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,15 @@ --> +## 12.x.x (unreleased) + +### Improvements + +### Bugfixes + +### Changes +- クライアント: ノートにモデレーターバッジを表示するのを廃止 + ## 12.97.0 (2021/11/19) ### Improvements diff --git a/packages/client/src/components/note-detailed.vue b/packages/client/src/components/note-detailed.vue index 5fd8e9f6e..378dd6516 100644 --- a/packages/client/src/components/note-detailed.vue +++ b/packages/client/src/components/note-detailed.vue @@ -42,8 +42,6 @@ bot - - @@ -1017,12 +1015,6 @@ export default defineComponent({ border: solid 0.5px var(--divider); border-radius: 4px; } - - > .admin, - > .moderator { - margin-right: 0.5em; - color: var(--badge); - } } } } diff --git a/packages/client/src/components/note-header.vue b/packages/client/src/components/note-header.vue index ca4be1e67..3bbeeece1 100644 --- a/packages/client/src/components/note-header.vue +++ b/packages/client/src/components/note-header.vue @@ -5,8 +5,6 @@
bot
-
-
@@ -79,13 +77,6 @@ export default defineComponent({ border-radius: 3px; } - > .admin, - > .moderator { - flex-shrink: 0; - margin-right: 0.5em; - color: var(--badge); - } - > .username { flex-shrink: 9999999; margin: 0 .5em 0 0; diff --git a/packages/client/src/ui/chat/note-header.vue b/packages/client/src/ui/chat/note-header.vue index 0b318ba8f..32b4573dc 100644 --- a/packages/client/src/ui/chat/note-header.vue +++ b/packages/client/src/ui/chat/note-header.vue @@ -5,8 +5,6 @@ bot - -
@@ -79,12 +77,6 @@ export default defineComponent({ border-radius: 3px; } - > .admin, - > .moderator { - margin-right: 0.5em; - color: var(--badge); - } - > .username { margin: 0 .5em 0 0; overflow: hidden; From 270df5c5b05a1e1d0ab1009fa386e6d74744f000 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 21 Nov 2021 13:43:07 +0900 Subject: [PATCH 05/44] move tools dir into src --- .../{ => src}/tools/accept-migration.ts | 0 packages/backend/{ => src}/tools/add-emoji.ts | 0 .../backend/{ => src}/tools/demote-admin.ts | 0 .../backend/{ => src}/tools/mark-admin.ts | 0 .../{ => src}/tools/refresh-question.ts | 0 .../{ => src}/tools/resync-remote-user.ts | 0 .../{ => src}/tools/show-signin-history.ts | 0 packages/backend/tools/accept-migration.js | 26 ---------- .../backend/tools/accept-migration.js.map | 1 - packages/backend/tools/add-emoji.js | 30 ------------ packages/backend/tools/add-emoji.js.map | 1 - packages/backend/tools/demote-admin.js | 30 ------------ packages/backend/tools/demote-admin.js.map | 1 - packages/backend/tools/mark-admin.js | 30 ------------ packages/backend/tools/mark-admin.js.map | 1 - packages/backend/tools/refresh-question.js | 14 ------ .../backend/tools/refresh-question.js.map | 1 - packages/backend/tools/resync-remote-user.js | 26 ---------- .../backend/tools/resync-remote-user.js.map | 1 - packages/backend/tools/show-signin-history.js | 47 ------------------- .../backend/tools/show-signin-history.js.map | 1 - 21 files changed, 210 deletions(-) rename packages/backend/{ => src}/tools/accept-migration.ts (100%) rename packages/backend/{ => src}/tools/add-emoji.ts (100%) rename packages/backend/{ => src}/tools/demote-admin.ts (100%) rename packages/backend/{ => src}/tools/mark-admin.ts (100%) rename packages/backend/{ => src}/tools/refresh-question.ts (100%) rename packages/backend/{ => src}/tools/resync-remote-user.ts (100%) rename packages/backend/{ => src}/tools/show-signin-history.ts (100%) delete mode 100644 packages/backend/tools/accept-migration.js delete mode 100644 packages/backend/tools/accept-migration.js.map delete mode 100644 packages/backend/tools/add-emoji.js delete mode 100644 packages/backend/tools/add-emoji.js.map delete mode 100644 packages/backend/tools/demote-admin.js delete mode 100644 packages/backend/tools/demote-admin.js.map delete mode 100644 packages/backend/tools/mark-admin.js delete mode 100644 packages/backend/tools/mark-admin.js.map delete mode 100644 packages/backend/tools/refresh-question.js delete mode 100644 packages/backend/tools/refresh-question.js.map delete mode 100644 packages/backend/tools/resync-remote-user.js delete mode 100644 packages/backend/tools/resync-remote-user.js.map delete mode 100644 packages/backend/tools/show-signin-history.js delete mode 100644 packages/backend/tools/show-signin-history.js.map diff --git a/packages/backend/tools/accept-migration.ts b/packages/backend/src/tools/accept-migration.ts similarity index 100% rename from packages/backend/tools/accept-migration.ts rename to packages/backend/src/tools/accept-migration.ts diff --git a/packages/backend/tools/add-emoji.ts b/packages/backend/src/tools/add-emoji.ts similarity index 100% rename from packages/backend/tools/add-emoji.ts rename to packages/backend/src/tools/add-emoji.ts diff --git a/packages/backend/tools/demote-admin.ts b/packages/backend/src/tools/demote-admin.ts similarity index 100% rename from packages/backend/tools/demote-admin.ts rename to packages/backend/src/tools/demote-admin.ts diff --git a/packages/backend/tools/mark-admin.ts b/packages/backend/src/tools/mark-admin.ts similarity index 100% rename from packages/backend/tools/mark-admin.ts rename to packages/backend/src/tools/mark-admin.ts diff --git a/packages/backend/tools/refresh-question.ts b/packages/backend/src/tools/refresh-question.ts similarity index 100% rename from packages/backend/tools/refresh-question.ts rename to packages/backend/src/tools/refresh-question.ts diff --git a/packages/backend/tools/resync-remote-user.ts b/packages/backend/src/tools/resync-remote-user.ts similarity index 100% rename from packages/backend/tools/resync-remote-user.ts rename to packages/backend/src/tools/resync-remote-user.ts diff --git a/packages/backend/tools/show-signin-history.ts b/packages/backend/src/tools/show-signin-history.ts similarity index 100% rename from packages/backend/tools/show-signin-history.ts rename to packages/backend/src/tools/show-signin-history.ts diff --git a/packages/backend/tools/accept-migration.js b/packages/backend/tools/accept-migration.js deleted file mode 100644 index 309a4ab5e..000000000 --- a/packages/backend/tools/accept-migration.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -// ex) node built/tools/accept-migration Yo 1000000000001 -Object.defineProperty(exports, "__esModule", { value: true }); -const typeorm_1 = require("typeorm"); -const index_1 = require("@/config/index"); -(0, typeorm_1.createConnection)({ - type: 'postgres', - host: index_1.default.db.host, - port: index_1.default.db.port, - username: index_1.default.db.user, - password: index_1.default.db.pass, - database: index_1.default.db.db, - extra: index_1.default.db.extra, - synchronize: false, - dropSchema: false, -}).then(c => { - c.query(`INSERT INTO migrations(timestamp,name) VALUES (${process.argv[3]}, '${process.argv[2]}${process.argv[3]}');`).then(() => { - console.log('done'); - process.exit(0); - }).catch(e => { - console.log('ERROR:'); - console.log(e); - process.exit(1); - }); -}); -//# sourceMappingURL=accept-migration.js.map \ No newline at end of file diff --git a/packages/backend/tools/accept-migration.js.map b/packages/backend/tools/accept-migration.js.map deleted file mode 100644 index c158a4966..000000000 --- a/packages/backend/tools/accept-migration.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"accept-migration.js","sourceRoot":"","sources":["accept-migration.ts"],"names":[],"mappings":";AAAA,yDAAyD;;AAEzD,qCAA2C;AAC3C,0CAAoC;AAEpC,IAAA,0BAAgB,EAAC;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,eAAM,CAAC,EAAE,CAAC,IAAI;IACpB,IAAI,EAAE,eAAM,CAAC,EAAE,CAAC,IAAI;IACpB,QAAQ,EAAE,eAAM,CAAC,EAAE,CAAC,IAAI;IACxB,QAAQ,EAAE,eAAM,CAAC,EAAE,CAAC,IAAI;IACxB,QAAQ,EAAE,eAAM,CAAC,EAAE,CAAC,EAAE;IACtB,KAAK,EAAE,eAAM,CAAC,EAAE,CAAC,KAAK;IACtB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;CACjB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;IACX,CAAC,CAAC,KAAK,CAAC,kDAAkD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAChI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/backend/tools/add-emoji.js b/packages/backend/tools/add-emoji.js deleted file mode 100644 index df02f554a..000000000 --- a/packages/backend/tools/add-emoji.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const index_1 = require("@/models/index"); -const gen_id_1 = require("@/misc/gen-id"); -async function main(name, url, alias) { - const aliases = alias != null ? [alias] : []; - await index_1.Emojis.save({ - id: (0, gen_id_1.genId)(), - host: null, - name, - url, - aliases, - updatedAt: new Date() - }); -} -const args = process.argv.slice(2); -const name = args[0]; -const url = args[1]; -if (!name) - throw new Error('require name'); -if (!url) - throw new Error('require url'); -main(name, url).then(() => { - console.log('success'); - process.exit(0); -}).catch(e => { - console.warn(e); - process.exit(1); -}); -//# sourceMappingURL=add-emoji.js.map \ No newline at end of file diff --git a/packages/backend/tools/add-emoji.js.map b/packages/backend/tools/add-emoji.js.map deleted file mode 100644 index 03bf31b98..000000000 --- a/packages/backend/tools/add-emoji.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"add-emoji.js","sourceRoot":"","sources":["add-emoji.ts"],"names":[],"mappings":";;AAAA,0CAAwC;AACxC,0CAAsC;AAEtC,KAAK,UAAU,IAAI,CAAC,IAAY,EAAE,GAAW,EAAE,KAAc;IAC5D,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/C,MAAM,cAAM,CAAC,IAAI,CAAC;QACjB,EAAE,EAAE,IAAA,cAAK,GAAE;QACX,IAAI,EAAE,IAAI;QACV,IAAI;QACJ,GAAG;QACH,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE;KACrB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpB,IAAI,CAAC,IAAI;IAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;AAC3C,IAAI,CAAC,GAAG;IAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AAEzC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACzB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/backend/tools/demote-admin.js b/packages/backend/tools/demote-admin.js deleted file mode 100644 index d6a296883..000000000 --- a/packages/backend/tools/demote-admin.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const postgre_1 = require("../db/postgre"); -const typeorm_1 = require("typeorm"); -const user_1 = require("@/models/entities/user"); -async function main(username) { - if (!username) - throw `username required`; - username = username.replace(/^@/, ''); - await (0, postgre_1.initDb)(); - const Users = (0, typeorm_1.getRepository)(user_1.User); - const res = await Users.update({ - usernameLower: username.toLowerCase(), - host: null - }, { - isAdmin: false - }); - if (res.affected !== 1) { - throw 'Failed'; - } -} -const args = process.argv.slice(2); -main(args[0]).then(() => { - console.log('Success'); - process.exit(0); -}).catch(e => { - console.error(`Error: ${e.message || e}`); - process.exit(1); -}); -//# sourceMappingURL=demote-admin.js.map \ No newline at end of file diff --git a/packages/backend/tools/demote-admin.js.map b/packages/backend/tools/demote-admin.js.map deleted file mode 100644 index 4403e2bab..000000000 --- a/packages/backend/tools/demote-admin.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"demote-admin.js","sourceRoot":"","sources":["demote-admin.ts"],"names":[],"mappings":";;AAAA,2CAAuC;AACvC,qCAAwC;AACxC,iDAA8C;AAE9C,KAAK,UAAU,IAAI,CAAC,QAAgB;IACnC,IAAI,CAAC,QAAQ;QAAE,MAAM,mBAAmB,CAAC;IACzC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAA,gBAAM,GAAE,CAAC;IACf,MAAM,KAAK,GAAG,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC;IAElC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QAC9B,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE;QACrC,IAAI,EAAE,IAAI;KACV,EAAE;QACF,OAAO,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;QACvB,MAAM,QAAQ,CAAC;KACf;AACF,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/backend/tools/mark-admin.js b/packages/backend/tools/mark-admin.js deleted file mode 100644 index 4563d9c33..000000000 --- a/packages/backend/tools/mark-admin.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const postgre_1 = require("../db/postgre"); -const typeorm_1 = require("typeorm"); -const user_1 = require("@/models/entities/user"); -async function main(username) { - if (!username) - throw `username required`; - username = username.replace(/^@/, ''); - await (0, postgre_1.initDb)(); - const Users = (0, typeorm_1.getRepository)(user_1.User); - const res = await Users.update({ - usernameLower: username.toLowerCase(), - host: null - }, { - isAdmin: true - }); - if (res.affected !== 1) { - throw 'Failed'; - } -} -const args = process.argv.slice(2); -main(args[0]).then(() => { - console.log('Success'); - process.exit(0); -}).catch(e => { - console.error(`Error: ${e.message || e}`); - process.exit(1); -}); -//# sourceMappingURL=mark-admin.js.map \ No newline at end of file diff --git a/packages/backend/tools/mark-admin.js.map b/packages/backend/tools/mark-admin.js.map deleted file mode 100644 index 5633e2f89..000000000 --- a/packages/backend/tools/mark-admin.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"mark-admin.js","sourceRoot":"","sources":["mark-admin.ts"],"names":[],"mappings":";;AAAA,2CAAuC;AACvC,qCAAwC;AACxC,iDAA8C;AAE9C,KAAK,UAAU,IAAI,CAAC,QAAgB;IACnC,IAAI,CAAC,QAAQ;QAAE,MAAM,mBAAmB,CAAC;IACzC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAA,gBAAM,GAAE,CAAC;IACf,MAAM,KAAK,GAAG,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC;IAElC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QAC9B,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE;QACrC,IAAI,EAAE,IAAI;KACV,EAAE;QACF,OAAO,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;QACvB,MAAM,QAAQ,CAAC;KACf;AACF,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/backend/tools/refresh-question.js b/packages/backend/tools/refresh-question.js deleted file mode 100644 index 0536c3820..000000000 --- a/packages/backend/tools/refresh-question.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const question_1 = require("@/remote/activitypub/models/question"); -async function main(uri) { - return await (0, question_1.updateQuestion)(uri); -} -const args = process.argv.slice(2); -const uri = args[0]; -main(uri).then(result => { - console.log(`Done: ${result}`); -}).catch(e => { - console.warn(e); -}); -//# sourceMappingURL=refresh-question.js.map \ No newline at end of file diff --git a/packages/backend/tools/refresh-question.js.map b/packages/backend/tools/refresh-question.js.map deleted file mode 100644 index 3db6d0b8b..000000000 --- a/packages/backend/tools/refresh-question.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"refresh-question.js","sourceRoot":"","sources":["refresh-question.ts"],"names":[],"mappings":";;AAAA,mEAAsE;AAEtE,KAAK,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,MAAM,IAAA,yBAAc,EAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/backend/tools/resync-remote-user.js b/packages/backend/tools/resync-remote-user.js deleted file mode 100644 index 05d76ecc9..000000000 --- a/packages/backend/tools/resync-remote-user.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const postgre_1 = require("@/db/postgre"); -const Acct = require("misskey-js/built/acct"); -async function main(acct) { - await (0, postgre_1.initDb)(); - const { resolveUser } = await Promise.resolve().then(() => require('@/remote/resolve-user')); - const { username, host } = Acct.parse(acct); - await resolveUser(username, host, {}, true); -} -// get args -const args = process.argv.slice(2); -let acct = args[0]; -// normalize args -acct = acct.replace(/^@/, ''); -// check args -if (!acct.match(/^\w+@\w/)) { - throw `Invalid acct format. Valid format are user@host`; -} -console.log(`resync ${acct}`); -main(acct).then(() => { - console.log('Done'); -}).catch(e => { - console.warn(e); -}); -//# sourceMappingURL=resync-remote-user.js.map \ No newline at end of file diff --git a/packages/backend/tools/resync-remote-user.js.map b/packages/backend/tools/resync-remote-user.js.map deleted file mode 100644 index 456d7da1d..000000000 --- a/packages/backend/tools/resync-remote-user.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resync-remote-user.js","sourceRoot":"","sources":["resync-remote-user.ts"],"names":[],"mappings":";;AAAA,0CAAsC;AACtC,8CAA8C;AAE9C,KAAK,UAAU,IAAI,CAAC,IAAY;IAC/B,MAAM,IAAA,gBAAM,GAAE,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,GAAG,2CAAa,uBAAuB,EAAC,CAAC;IAE9D,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,WAAW;AACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnB,iBAAiB;AACjB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAE9B,aAAa;AACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;IAC3B,MAAM,iDAAiD,CAAC;CACxD;AAED,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AAE9B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/backend/tools/show-signin-history.js b/packages/backend/tools/show-signin-history.js deleted file mode 100644 index daeea8461..000000000 --- a/packages/backend/tools/show-signin-history.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const index_1 = require("@/models/index"); -// node built/tools/show-signin-history username -// => {Success} {Date} {IPAddrsss} -// node built/tools/show-signin-history username user-agent,x-forwarded-for -// with user-agent and x-forwarded-for -// node built/tools/show-signin-history username all -// with full request headers -async function main(username, headers) { - const user = await index_1.Users.findOne({ - host: null, - usernameLower: username.toLowerCase(), - }); - if (user == null) - throw new Error('User not found'); - const history = await index_1.Signins.find({ - userId: user.id - }); - for (const signin of history) { - console.log(`${signin.success ? 'OK' : 'NG'} ${signin.createdAt ? signin.createdAt.toISOString() : 'Unknown'} ${signin.ip}`); - // headers - if (headers != null) { - for (const key of Object.keys(signin.headers)) { - if (headers.includes('all') || headers.includes(key)) { - console.log(` ${key}: ${signin.headers[key]}`); - } - } - } - } -} -// get args -const args = process.argv.slice(2); -let username = args[0]; -let headers; -if (args[1] != null) { - headers = args[1].split(/,/).map(header => header.toLowerCase()); -} -// normalize args -username = username.replace(/^@/, ''); -main(username, headers).then(() => { - process.exit(0); -}).catch(e => { - console.warn(e); - process.exit(1); -}); -//# sourceMappingURL=show-signin-history.js.map \ No newline at end of file diff --git a/packages/backend/tools/show-signin-history.js.map b/packages/backend/tools/show-signin-history.js.map deleted file mode 100644 index b421825bc..000000000 --- a/packages/backend/tools/show-signin-history.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"show-signin-history.js","sourceRoot":"","sources":["show-signin-history.ts"],"names":[],"mappings":";;AAAA,0CAAgD;AAEhD,gDAAgD;AAChD,mCAAmC;AAEnC,2EAA2E;AAC3E,uCAAuC;AAEvC,oDAAoD;AACpD,6BAA6B;AAE7B,KAAK,UAAU,IAAI,CAAC,QAAgB,EAAE,OAAkB;IACvD,MAAM,IAAI,GAAG,MAAM,aAAK,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE;KACrC,CAAC,CAAC;IAEH,IAAI,IAAI,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,MAAM,eAAO,CAAC,IAAI,CAAC;QAClC,MAAM,EAAE,IAAI,CAAC,EAAE;KACf,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7H,UAAU;QACV,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACrD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACjD;aACD;SACD;KACD;AACF,CAAC;AAED,WAAW;AACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,OAA6B,CAAC;AAElC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;IACpB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;CACjE;AAED,iBAAiB;AACjB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAEtC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file From 8e04bd12cf5714bddb1ff1967ab2f77b32b7ad42 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 21 Nov 2021 14:01:53 +0900 Subject: [PATCH 06/44] =?UTF-8?q?fix(client):=20=E3=83=AD=E3=82=B0?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=81=AB=E3=81=8A=E3=81=84=E3=81=A6=E3=83=91?= =?UTF-8?q?=E3=82=B9=E3=83=AF=E3=83=BC=E3=83=89=E3=81=8C=E8=AA=A4=E3=81=A3?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=82=8B=E9=9A=9B=E3=81=AE=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=81=8C?= =?UTF-8?q?=E6=AD=A3=E3=81=97=E3=81=8F=E8=A1=A8=E7=A4=BA=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + locales/ja-JP.yml | 1 + packages/client/src/components/signin.vue | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d315743fe..b4314ee81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### Improvements ### Bugfixes +- クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 ### Changes - クライアント: ノートにモデレーターバッジを表示するのを廃止 diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 9877248eb..633cd0e85 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -808,6 +808,7 @@ ffVisibility: "つながりの公開範囲" ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開範囲を設定できます。" continueThread: "さらにスレッドを見る" deleteAccountConfirm: "アカウントが削除されます。よろしいですか?" +incorrectPassword: "パスワードが間違っています。" _emailUnavailable: used: "既に使用されています" diff --git a/packages/client/src/components/signin.vue b/packages/client/src/components/signin.vue index 51913f7a2..f640e948a 100644 --- a/packages/client/src/components/signin.vue +++ b/packages/client/src/components/signin.vue @@ -197,6 +197,14 @@ export default defineComponent({ }); break; } + case '932c904e-9460-45b7-9ce6-7ed33be7eb2c': { + os.alert({ + type: 'error', + title: this.$ts.loginFailed, + text: this.$ts.incorrectPassword, + }); + break; + } case 'e03a5f46-d309-4865-9b69-56282d94e1eb': { showSuspendedDialog(); break; From 9604ad3dc1f9329706115805742857786a6c1b40 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 21 Nov 2021 14:09:41 +0900 Subject: [PATCH 07/44] =?UTF-8?q?fix(client):=20=E3=83=AA=E3=82=A2?= =?UTF-8?q?=E3=82=AF=E3=82=B7=E3=83=A7=E3=83=B3=E3=83=84=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E3=83=81=E3=83=83=E3=83=97=E3=80=81Renote=E3=83=84=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E3=83=81=E3=83=83=E3=83=97=E3=81=AE=E3=83=A6=E3=83=BC?= =?UTF-8?q?=E3=82=B6=E3=83=BC=E3=81=AE=E4=B8=A6=E3=81=B3=E9=A0=86=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + packages/client/src/components/reactions-viewer.reaction.vue | 4 +--- packages/client/src/components/renote-button.vue | 4 +--- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4314ee81..8b2934a75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ ### Bugfixes - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 +- クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 ### Changes - クライアント: ノートにモデレーターバッジを表示するのを廃止 diff --git a/packages/client/src/components/reactions-viewer.reaction.vue b/packages/client/src/components/reactions-viewer.reaction.vue index 65f92c39e..44c6e9809 100644 --- a/packages/client/src/components/reactions-viewer.reaction.vue +++ b/packages/client/src/components/reactions-viewer.reaction.vue @@ -97,9 +97,7 @@ export default defineComponent({ limit: 11 }); - const users = reactions - .sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime()) - .map(x => x.user); + const users = reactions.map(x => x.user); os.popup(XDetails, { showing, diff --git a/packages/client/src/components/renote-button.vue b/packages/client/src/components/renote-button.vue index 62780cace..280283ec6 100644 --- a/packages/client/src/components/renote-button.vue +++ b/packages/client/src/components/renote-button.vue @@ -48,9 +48,7 @@ export default defineComponent({ limit: 11 }); - const users = renotes - .sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime()) - .map(x => x.user); + const users = renotes.map(x => x.user); if (users.length < 1) return; From aaba43e7544d201791ca2c9a9427d7d645dc6eef Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 21 Nov 2021 18:40:09 +0900 Subject: [PATCH 08/44] Update README.md --- README.md | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index be01643dd..18b3adfba 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,18 @@ [Learn more](https://misskey-hub.net/) +--- + +[✨ Find an instance](https://misskey-hub.net/instances.html) +• +[📦 Create your own instance](https://misskey-hub.net/docs/install/install.html) +• +[🛠️ Contribute](./CONTRIBUTING.md) +• +[🚀 Join the community](https://discord.gg/Wp8gVStHW3) + +--- + Become a Patron!
@@ -16,17 +28,19 @@ -## ✨ Find an instance -Please see the [Instances list](https://misskey-hub.net/instances.html). - -## 📦 Create your own instance -Please see the [Installation Guide](https://misskey-hub.net/docs/install/install.html). - -## 🛠️ Contribute -Please see the [Contribution Guide](./CONTRIBUTING.md). - -## 🚀 Join the community -Misskey's [Discord server is available](https://discord.gg/Wp8gVStHW3). +## ✨ Features +- **ActivityPub support**\ + It is possible to interact with other software. +- **Reactions**\ + You can add "reactions" to each post, making it easy for you to express your feelings. +- **Drive**\ + An interface to manage uploaded files such as images, videos, sounds, etc. + You can also organize your favorite content into folders, making it easy to share again. +- **Rich Web UI**\ + Misskey has a rich WebUI by default. + It is highly customizable by flexibly changing the layout and installing various widgets and themes. + Furthermore, plug-ins can be created using AiScript, a original programming language. +- and more...
From dec7c4f722f2ac766b367fa5f1442a41f5e408b6 Mon Sep 17 00:00:00 2001 From: "Richard \"EpicKitty\" Bowey" Date: Fri, 26 Nov 2021 04:39:57 +0000 Subject: [PATCH 09/44] Implemented a rotate MFM (#8016) Co-authored-by: Richard Bowey --- locales/en-US.yml | 2 ++ packages/client/src/components/mfm.ts | 5 +++++ packages/client/src/pages/mfm-cheat-sheet.vue | 11 +++++++++++ packages/client/src/scripts/mfm-tags.ts | 2 +- 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/locales/en-US.yml b/locales/en-US.yml index 37da6fdc9..c5c8afb50 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -931,6 +931,8 @@ _mfm: rainbowDescription: "Makes the content appear in rainbow colors." sparkle: "Sparkle" sparkleDescription: "Gives content a sparkling particle effect." + rotate: "Rotate" + rotateDescription: "Rotates the content by 90 degrees" _reversi: reversi: "Reversi" gameSettings: "Game settings" diff --git a/packages/client/src/components/mfm.ts b/packages/client/src/components/mfm.ts index d41cf6fc2..d1da365d9 100644 --- a/packages/client/src/components/mfm.ts +++ b/packages/client/src/components/mfm.ts @@ -184,6 +184,11 @@ export default defineComponent({ count, speed, }, genEl(token.children)); } + case 'rotate': { + const degrees = parseInt(token.props.args.deg) || '90'; + style = `transform: rotate(${degrees}deg); transform-origin: center center;`; + break; + } } if (style == null) { return h('span', {}, ['$[', token.props.name, ' ', ...genEl(token.children), ']']); diff --git a/packages/client/src/pages/mfm-cheat-sheet.vue b/packages/client/src/pages/mfm-cheat-sheet.vue index e9a3b6deb..ee9d807e7 100644 --- a/packages/client/src/pages/mfm-cheat-sheet.vue +++ b/packages/client/src/pages/mfm-cheat-sheet.vue @@ -281,6 +281,16 @@
+
+
{{ $ts._mfm.rotate }}
+
+

{{ $ts._mfm.rotateDescription }}

+
+ + MFM +
+
+
@@ -328,6 +338,7 @@ export default defineComponent({ preview_blur: `$[blur ${this.$ts._mfm.dummy}]`, preview_rainbow: `$[rainbow 🍮]`, preview_sparkle: `$[sparkle 🍮]`, + preview_rotate: `$[rotate 🍮]`, } }, }); diff --git a/packages/client/src/scripts/mfm-tags.ts b/packages/client/src/scripts/mfm-tags.ts index 1b18210aa..18e8d7038 100644 --- a/packages/client/src/scripts/mfm-tags.ts +++ b/packages/client/src/scripts/mfm-tags.ts @@ -1 +1 @@ -export const MFM_TAGS = ['tada', 'jelly', 'twitch', 'shake', 'spin', 'jump', 'bounce', 'flip', 'x2', 'x3', 'x4', 'font', 'blur', 'rainbow', 'sparkle']; +export const MFM_TAGS = ['tada', 'jelly', 'twitch', 'shake', 'spin', 'jump', 'bounce', 'flip', 'x2', 'x3', 'x4', 'font', 'blur', 'rainbow', 'sparkle', 'rotate']; From b4ebf254c898bf998170e41d09c20cf6a0ddafd0 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 26 Nov 2021 13:41:31 +0900 Subject: [PATCH 10/44] Update ja-JP.yml --- locales/ja-JP.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 633cd0e85..77b7a2cf2 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -824,7 +824,7 @@ _ffVisibility: _signup: almostThere: "ほとんど完了です" - emailAddressInfo: "あなたが使っているメールアドレスを入力してください。" + emailAddressInfo: "あなたが使っているメールアドレスを入力してください。メールアドレスが公開されることはありません。" emailSent: "入力されたメールアドレス({email})宛に確認のメールが送信されました。メールに記載されたリンクにアクセスすると、アカウントの作成が完了します。" _accountDelete: @@ -945,6 +945,8 @@ _mfm: rainbowDescription: "内容をレインボーにします。" sparkle: "キラキラ" sparkleDescription: "キラキラしたパーティクルのエフェクトを追加します。" + rotate: "回転" + rotateDescription: "指定した角度で回転させます。" _reversi: reversi: "リバーシ" From d9775c147f9dc5cec208b583a473df06b72305d7 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Fri, 26 Nov 2021 13:41:49 +0900 Subject: [PATCH 11/44] =?UTF-8?q?fix:=20tools=E3=81=8C=E5=8B=95=E3=81=8B?= =?UTF-8?q?=E3=81=AA=E3=81=84=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3=20(#8008?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move tools * Fix DB --- packages/backend/src/tools/add-emoji.ts | 5 ++++- packages/backend/src/tools/demote-admin.ts | 4 +--- packages/backend/src/tools/mark-admin.ts | 4 +--- packages/backend/src/tools/refresh-question.ts | 5 ++++- packages/backend/src/tools/show-signin-history.ts | 5 ++++- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/backend/src/tools/add-emoji.ts b/packages/backend/src/tools/add-emoji.ts index 9ffe7dfa8..6c750bcab 100644 --- a/packages/backend/src/tools/add-emoji.ts +++ b/packages/backend/src/tools/add-emoji.ts @@ -1,7 +1,10 @@ -import { Emojis } from '@/models/index'; +import { initDb } from '@/db/postgre'; import { genId } from '@/misc/gen-id'; async function main(name: string, url: string, alias?: string): Promise { + await initDb(); + const { Emojis } = await import('@/models/index'); + const aliases = alias != null ? [ alias ] : []; await Emojis.save({ diff --git a/packages/backend/src/tools/demote-admin.ts b/packages/backend/src/tools/demote-admin.ts index d7c6d1cec..b326c946e 100644 --- a/packages/backend/src/tools/demote-admin.ts +++ b/packages/backend/src/tools/demote-admin.ts @@ -1,13 +1,11 @@ import { initDb } from '../db/postgre'; -import { getRepository } from 'typeorm'; -import { User } from '@/models/entities/user'; async function main(username: string) { if (!username) throw `username required`; username = username.replace(/^@/, ''); await initDb(); - const Users = getRepository(User); + const { Users } = await import('@/models/index'); const res = await Users.update({ usernameLower: username.toLowerCase(), diff --git a/packages/backend/src/tools/mark-admin.ts b/packages/backend/src/tools/mark-admin.ts index 62ed0f09e..0833f2226 100644 --- a/packages/backend/src/tools/mark-admin.ts +++ b/packages/backend/src/tools/mark-admin.ts @@ -1,13 +1,11 @@ import { initDb } from '../db/postgre'; -import { getRepository } from 'typeorm'; -import { User } from '@/models/entities/user'; async function main(username: string) { if (!username) throw `username required`; username = username.replace(/^@/, ''); await initDb(); - const Users = getRepository(User); + const { Users } = await import('@/models/index'); const res = await Users.update({ usernameLower: username.toLowerCase(), diff --git a/packages/backend/src/tools/refresh-question.ts b/packages/backend/src/tools/refresh-question.ts index 98a3c2865..3bbb781ae 100644 --- a/packages/backend/src/tools/refresh-question.ts +++ b/packages/backend/src/tools/refresh-question.ts @@ -1,6 +1,9 @@ -import { updateQuestion } from '@/remote/activitypub/models/question'; +import { initDb } from '@/db/postgre'; async function main(uri: string): Promise { + await initDb(); + const { updateQuestion } = await import('@/remote/activitypub/models/question'); + return await updateQuestion(uri); } diff --git a/packages/backend/src/tools/show-signin-history.ts b/packages/backend/src/tools/show-signin-history.ts index ad9231631..1291a1b22 100644 --- a/packages/backend/src/tools/show-signin-history.ts +++ b/packages/backend/src/tools/show-signin-history.ts @@ -1,4 +1,4 @@ -import { Users, Signins } from '@/models/index'; +import { initDb } from '@/db/postgre'; // node built/tools/show-signin-history username // => {Success} {Date} {IPAddrsss} @@ -10,6 +10,9 @@ import { Users, Signins } from '@/models/index'; // with full request headers async function main(username: string, headers?: string[]) { + await initDb(); + const { Users, Signins } = await import('@/models/index'); + const user = await Users.findOne({ host: null, usernameLower: username.toLowerCase(), From 8e0108a0b83c6f1fb9021ed8aeb051d46d34c382 Mon Sep 17 00:00:00 2001 From: tamaina Date: Fri, 26 Nov 2021 13:43:11 +0900 Subject: [PATCH 12/44] =?UTF-8?q?fix:=20notification.vue=E3=81=AEIntersect?= =?UTF-8?q?ionObserver=E3=81=BE=E3=82=8F=E3=82=8A=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20(#8010)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix notification.vue * remove a blank line * disconnect intersection observer * disconnect2 * Update packages/client/src/components/notification.vue Co-authored-by: Acid Chicken (硫酸鶏) * disconnect * oops Co-authored-by: Acid Chicken (硫酸鶏) --- .../client/src/components/notification.vue | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/client/src/components/notification.vue b/packages/client/src/components/notification.vue index 89025b72e..5cf44f4c5 100644 --- a/packages/client/src/components/notification.vue +++ b/packages/client/src/components/notification.vue @@ -107,28 +107,25 @@ export default defineComponent({ const reactionRef = ref(null); onMounted(() => { - let readObserver: IntersectionObserver | null = null; - let connection = null; - if (!props.notification.isRead) { - readObserver = new IntersectionObserver((entries, observer) => { + const readObserver = new IntersectionObserver((entries, observer) => { if (!entries.some(entry => entry.isIntersecting)) return; os.stream.send('readNotification', { id: props.notification.id }); - entries.map(({ target }) => observer.unobserve(target)); + observer.disconnect(); }); readObserver.observe(elRef.value); - connection = os.stream.useChannel('main'); - connection.on('readAllNotifications', () => readObserver.unobserve(elRef.value)); - } + const connection = os.stream.useChannel('main'); + connection.on('readAllNotifications', () => readObserver.disconnect()); - onUnmounted(() => { - if (readObserver) readObserver.unobserve(elRef.value); - if (connection) connection.dispose(); - }); + onUnmounted(() => { + readObserver.disconnect(); + connection.dispose(); + }); + } }); const followRequestDone = ref(false); From 698e0d08a121a9a00e5c5f71ee44a276d4995f08 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 27 Nov 2021 18:29:23 +0900 Subject: [PATCH 13/44] =?UTF-8?q?fix(client):=20=E3=83=A2=E3=83=90?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=81=A7=E3=82=BF=E3=83=83=E3=83=97=E3=81=97?= =?UTF-8?q?=E3=81=9F=E3=81=A8=E3=81=8D=E3=81=AB=E3=83=84=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E3=83=81=E3=83=83=E3=83=97=E3=81=8C=E8=A1=A8=E7=A4=BA=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/client/src/os.ts | 10 ++++++++++ packages/client/src/scripts/use-tooltip.ts | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/packages/client/src/os.ts b/packages/client/src/os.ts index 9eac06a5e..48a558a36 100644 --- a/packages/client/src/os.ts +++ b/packages/client/src/os.ts @@ -12,6 +12,16 @@ import { resolve } from '@/router'; import { $i } from '@/account'; import { defaultStore } from '@/store'; +export let isScreenTouching = false; + +window.addEventListener('touchstart', () => { + isScreenTouching = true; +}, { passive: true }); + +window.addEventListener('touchend', () => { + isScreenTouching = false; +}, { passive: true }); + export const stream = markRaw(new Misskey.Stream(url, $i)); export const pendingApiRequestsCount = ref(0); diff --git a/packages/client/src/scripts/use-tooltip.ts b/packages/client/src/scripts/use-tooltip.ts index 2c0c36400..89e6b1be9 100644 --- a/packages/client/src/scripts/use-tooltip.ts +++ b/packages/client/src/scripts/use-tooltip.ts @@ -1,3 +1,4 @@ +import { isScreenTouching } from '@/os'; import { Ref, ref } from 'vue'; export function useTooltip(onShow: (showing: Ref) => void) { @@ -10,6 +11,10 @@ export function useTooltip(onShow: (showing: Ref) => void) { close(); if (!isHovering) return; + // iOS(Androidも?)では、要素をタップした直後に(おせっかいで)mouseoverイベントを発火させたりするため、その対策 + // これが無いと、画面に触れてないのにツールチップが出たりしてしまう + if (!isScreenTouching) return; + const showing = ref(true); onShow(showing); changeShowingState = () => { From 0d21083c9a119d642bfb7a7f8704fbd29fdbcf3c Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sat, 27 Nov 2021 22:43:08 -0500 Subject: [PATCH 14/44] Fix install docs link in readme (#8017) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 18b3adfba..799be299d 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ [✨ Find an instance](https://misskey-hub.net/instances.html) • -[📦 Create your own instance](https://misskey-hub.net/docs/install/install.html) +[📦 Create your own instance](https://misskey-hub.net/docs/install.html) • [🛠️ Contribute](./CONTRIBUTING.md) • From 335e4bd213d23849ecff193e1143a322bf201708 Mon Sep 17 00:00:00 2001 From: xianon Date: Sun, 28 Nov 2021 13:45:17 +0900 Subject: [PATCH 15/44] =?UTF-8?q?/antennas/notes=20API=20=E3=81=A7?= =?UTF-8?q?=E6=97=A5=E4=BB=98=E3=81=AB=E3=82=88=E3=82=8B=E7=B5=9E=E3=82=8A?= =?UTF-8?q?=E8=BE=BC=E3=81=BF=E3=81=8C=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E3=81=99=E3=82=8B=20(#8015)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/server/api/endpoints/antennas/notes.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/server/api/endpoints/antennas/notes.ts b/packages/backend/src/server/api/endpoints/antennas/notes.ts index 1759e95b4..02fec2778 100644 --- a/packages/backend/src/server/api/endpoints/antennas/notes.ts +++ b/packages/backend/src/server/api/endpoints/antennas/notes.ts @@ -33,6 +33,14 @@ export const meta = { untilId: { validator: $.optional.type(ID), }, + + sinceDate: { + validator: $.optional.num, + }, + + untilDate: { + validator: $.optional.num, + }, }, errors: { @@ -68,7 +76,8 @@ export default define(meta, async (ps, user) => { .select('joining.noteId') .where('joining.antennaId = :antennaId', { antennaId: antenna.id }); - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + const query = makePaginationQuery(Notes.createQueryBuilder('note'), + ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) .andWhere(`note.id IN (${ antennaQuery.getQuery() })`) .innerJoinAndSelect('note.user', 'user') .leftJoinAndSelect('note.reply', 'reply') From e8005c8d3a6edf2c8cdce3fe098fb9acff8a57c6 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 28 Nov 2021 20:07:37 +0900 Subject: [PATCH 16/44] client: refine ui --- packages/client/src/components/dialog.vue | 8 +- .../src/components/emoji-picker-dialog.vue | 2 +- packages/client/src/components/form/group.vue | 35 +++ packages/client/src/components/form/input.vue | 22 +- packages/client/src/components/form/link.vue | 112 ++++++++ .../client/src/components/form/pagination.vue | 44 +++ packages/client/src/components/form/radio.vue | 22 +- .../client/src/components/form/radios.vue | 49 +++- packages/client/src/components/form/range.vue | 272 ++++++++++++------ .../client/src/components/form/section.vue | 26 +- .../client/src/components/form/select.vue | 11 +- packages/client/src/components/form/slot.vue | 15 +- .../client/src/components/form/suspense.vue | 98 +++++++ .../client/src/components/form/switch.vue | 12 +- .../client/src/components/form/textarea.vue | 16 +- .../client/src/components/global/spacer.vue | 28 +- packages/client/src/components/key-value.vue | 48 ++++ packages/client/src/components/note.vue | 1 + packages/client/src/components/ui/button.vue | 4 +- packages/client/src/components/ui/menu.vue | 8 +- .../client/src/components/ui/popup-menu.vue | 4 +- packages/client/src/components/ui/popup.vue | 198 +++++++------ .../client/src/components/ui/super-menu.vue | 2 - packages/client/src/components/ui/tooltip.vue | 63 ++-- packages/client/src/directives/index.ts | 2 + packages/client/src/directives/panel.ts | 24 ++ packages/client/src/os.ts | 4 + packages/client/src/pages/about-misskey.vue | 189 ++++++------ packages/client/src/pages/about.vue | 164 ++++++----- packages/client/src/pages/federation.vue | 181 ++++++------ packages/client/src/pages/settings/2fa.vue | 114 ++++---- packages/client/src/pages/settings/drive.vue | 87 +++--- .../src/pages/settings/email-address.vue | 68 ----- .../src/pages/settings/email-notification.vue | 91 ------ packages/client/src/pages/settings/email.vue | 145 +++++++--- .../client/src/pages/settings/general.vue | 104 ++++--- .../src/pages/settings/import-export.vue | 2 +- packages/client/src/pages/settings/index.vue | 34 ++- packages/client/src/pages/settings/menu.vue | 22 +- .../src/pages/settings/notifications.vue | 24 +- .../client/src/pages/settings/privacy.vue | 80 +++--- .../client/src/pages/settings/profile.vue | 97 +++---- .../client/src/pages/settings/reaction.vue | 45 +-- .../client/src/pages/settings/security.vue | 84 ++++-- packages/client/src/pages/settings/sounds.vue | 32 +-- packages/client/src/pages/settings/theme.vue | 122 ++++---- .../client/src/pages/settings/word-mute.vue | 58 ++-- packages/client/src/style.scss | 20 +- 48 files changed, 1744 insertions(+), 1149 deletions(-) create mode 100644 packages/client/src/components/form/group.vue create mode 100644 packages/client/src/components/form/link.vue create mode 100644 packages/client/src/components/form/pagination.vue create mode 100644 packages/client/src/components/form/suspense.vue create mode 100644 packages/client/src/components/key-value.vue create mode 100644 packages/client/src/directives/panel.ts delete mode 100644 packages/client/src/pages/settings/email-address.vue delete mode 100644 packages/client/src/pages/settings/email-notification.vue diff --git a/packages/client/src/components/dialog.vue b/packages/client/src/components/dialog.vue index 1b03e65a3..5d6678531 100644 --- a/packages/client/src/components/dialog.vue +++ b/packages/client/src/components/dialog.vue @@ -14,7 +14,9 @@
- + + + @@ -114,9 +115,9 @@ export default defineComponent({ const changed = ref(false); const invalid = ref(false); const filled = computed(() => v.value !== '' && v.value != null); - const inputEl = ref(null); - const prefixEl = ref(null); - const suffixEl = ref(null); + const inputEl = ref(); + const prefixEl = ref(); + const suffixEl = ref(); const focus = () => inputEl.value.focus(); const onInput = (ev) => { @@ -208,7 +209,7 @@ export default defineComponent({ .matxzzsk { > .label { font-size: 0.85em; - padding: 0 0 8px 12px; + padding: 0 0 8px 0; user-select: none; &:empty { @@ -217,8 +218,8 @@ export default defineComponent({ } > .caption { - font-size: 0.8em; - padding: 8px 0 0 12px; + font-size: 0.85em; + padding: 8px 0 0 0; color: var(--fgTransparentWeak); &:empty { @@ -242,8 +243,7 @@ export default defineComponent({ font-weight: normal; font-size: 1em; color: var(--fg); - background: var(--panel); - border: solid 0.5px var(--inputBorder); + border: solid 0.5px var(--panel); border-radius: 6px; outline: none; box-shadow: none; @@ -311,5 +311,9 @@ export default defineComponent({ } } } + + > .save { + margin: 8px 0 0 0; + } } diff --git a/packages/client/src/components/form/link.vue b/packages/client/src/components/form/link.vue new file mode 100644 index 000000000..3eb74425b --- /dev/null +++ b/packages/client/src/components/form/link.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/packages/client/src/components/form/pagination.vue b/packages/client/src/components/form/pagination.vue new file mode 100644 index 000000000..3d3b40a78 --- /dev/null +++ b/packages/client/src/components/form/pagination.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/packages/client/src/components/form/radio.vue b/packages/client/src/components/form/radio.vue index 0f31d8fa0..f0b8c7137 100644 --- a/packages/client/src/components/form/radio.vue +++ b/packages/client/src/components/form/radio.vue @@ -1,5 +1,6 @@ @@ -118,10 +118,14 @@ export default defineComponent({ transition: inherit; } - > p { - margin: 0; + > .caption { + margin: 8px 0 0 0; color: var(--fgTransparentWeak); - font-size: 90%; + font-size: 0.85em; + + &:empty { + display: none; + } } } diff --git a/packages/client/src/components/form/textarea.vue b/packages/client/src/components/form/textarea.vue index f3a2c394f..98fd0da94 100644 --- a/packages/client/src/components/form/textarea.vue +++ b/packages/client/src/components/form/textarea.vue @@ -4,6 +4,7 @@
Roujo