diff --git a/.config/example.yml b/.config/example.yml index 70c096baa..d347f798c 100644 --- a/.config/example.yml +++ b/.config/example.yml @@ -53,40 +53,54 @@ mongodb: drive: storage: 'db' - # OR +# OR - # storage: 'minio' - # bucket: - # prefix: - # config: - # endPoint: - # port: - # useSSL: - # accessKey: - # secretKey: +#drive: +# storage: 'minio' +# bucket: +# prefix: +# config: +# endPoint: +# port: +# useSSL: +# accessKey: +# secretKey: - # S3 example - # storage: 'minio' - # bucket: bucket-name - # prefix: files - # config: - # endPoint: s3-us-west-2.amazonaws.com - # region: us-west-2 - # useSSL: true - # accessKey: XXX - # secretKey: YYY +# S3/GCS example +# +# * Replace to +# S3: see https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region +# GCS: use 'storage.googleapis.com' +# +# * Replace to +# S3: see https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region +# GCS: not needed (just delete the region line) +# +#drive: +# storage: 'minio' +# bucket: bucket-name +# prefix: files +# baseUrl: https://bucket-name. +# config: +# endPoint: +# region: +# useSSL: true +# accessKey: XXX +# secretKey: YYY - # S3 example (with CDN, custom domain) - # storage: 'minio' - # bucket: drive.example.com - # prefix: files - # baseUrl: https://drive.example.com - # config: - # endPoint: s3-us-west-2.amazonaws.com - # region: us-west-2 - # useSSL: true - # accessKey: XXX - # secretKey: YYY +# S3/GCS example (with CDN, custom domain) +# +#drive: +# storage: 'minio' +# bucket: drive.example.com +# prefix: files +# baseUrl: https://drive.example.com +# config: +# endPoint: +# region: +# useSSL: true +# accessKey: XXX +# secretKey: YYY # If enabled: # The first account created is automatically marked as Admin. @@ -113,3 +127,6 @@ autoAdmin: true # Clustering #clusterLimit: 1 + +# IP address family used for outgoing request (ipv4, ipv6 or dual) +#outgoingAddressFamily: ipv4 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2a70b076b..5dd72cc46 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,7 +1,7 @@ # PATH OWNERS /.autogen/ @acid-chicken /.circleci/ @syuilo @acid-chicken -/.config/ @syuilo @AyaMorisawa @mei23 @acid-chicken +/.config/ @syuilo @AyaMorisawa @mei23 @acid-chicken @rinsuki # /.config/mongo_initdb_example.js @khws4v1 /.github/ @syuilo @AyaMorisawa @acid-chicken /.vscode/ @acid-chicken @@ -12,7 +12,7 @@ # /docs/*.fr.md @BoFFire # /docs/docker.*.md @khws4v1 /locales/ @syuilo -/src/ @syuilo @AyaMorisawa @mei23 @acid-chicken +/src/ @syuilo @AyaMorisawa @mei23 @acid-chicken @rinsuki # /src/crypto_key.cc @akihikodaki # /src/crypto_key.d.ts @akihikodaki /.dockerignore @syuilo # @khws4v1 diff --git a/.gitignore b/.gitignore index 98ee82cd7..6dd78fc97 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ api-docs.json *.code-workspace yarn.lock .DS_Store +/files diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cdbf42da..f5036878f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,27 @@ If you encounter any problems with updating, please try the following: 1. `npm run clean` or `npm run cleanall` 2. Retry update (Don't forget `npm i`) +10.102.1 +---------- +* 投稿が増殖する問題を修正 +* リモートユーザーの修復処理が自動的に実行されない問題を修正 + +10.101.0 +---------- +* WebFingerリクエストで Proxy, Keep-Alive などをサポート +* AP actor Service のサポートが不完全な問題を修正 +* Punycodeなインスタンスが重複登録される問題を修正 +* ObjectStrage利用時にドライブファイルアイコンが表示されない問題を修正 + +10.100.0 +---------- +* ユーザーリストでフォローボタンを表示するように +* ドライブのファイルのサムネイルを修正 +* 投稿ウィジットでローカルのみの公開範囲で投稿できない問題を修正 +* TLを遡った時に抜けがある時がある問題を修正 +* ユーザータイムラインが投稿日時順ではなくなっているのを修正 +* 10.99.0 でチャートのレンダリングがおかしい問題を修正 + 10.99.0 ---------- * manifest.json にインスタンス名を反映させるように diff --git a/README.md b/README.md index e2ea63cab..d243e4d4b 100644 --- a/README.md +++ b/README.md @@ -88,12 +88,14 @@ Please see the [Contribution Guide](./CONTRIBUTING.md). AyaMorisawa mei23 acid-chicken + rinsuki @syuilo @AyaMorisawa @mei23 @acid-chicken + @rinsuki @@ -101,62 +103,92 @@ Please see the [Contribution Guide](./CONTRIBUTING.md). ---------------------------------------------------------------- - - - - - + + + + + + + + - - - - - + + + + + + + +
Hiroshi Sekiweepnaga_rusMelilot見当かなみRoujoOliver Maximilian SeidelweepjpJon LeibowitzkiritanEduardo QuirosNesakkoDenshi
Hiroshi Sekiweepnaga_rusMelilot見当かなみRoujoOliver Maximilian SeidelweepjpJon LeibowitzkiritanEduardo QuirosNesakkoDenshi
- - - - - - - - - - + + + + + + + + + - + + + + + + + + - - - +
gutfuckllcmydarkstarPeter G.itiradinemusikyosyouninYUKIMOCHISampottakimuraDamilloraLiaizon Wakestmkatzekabo2468yAureoleArkosapon見当かなみYuzuRyo61mewl hayabusamydarkstar
gutfuckllcLiaizon Wakestmkatzekabo2468yAureoleArkosapon見当かなみYuzuRyo61mewl hayabusa mydarkstarPeter G.itiradinemu
+ + + + + + + + + + + + - + + + + - +
Takumi SugitasikyosyouninYUKIMOCHItotokorosheeta.smotchaSatsuki Yanagitakimuraaqz tamaina
Takumi Sugita sikyosyounin YUKIMOCHISampottotokorosheeta.smotchaSatsuki Yanagi takimuraDamilloraaqz tamaina
- - - - - - - - + + + + + + + + - + + - + +
Atsuko TominaganatalieHiratakeHekovicdansupGargronNokotaro TakedaTakashi ShibuyaAtsuko TominaganatalienoellaboCGHekovicdansupNokotaro Takedanenohi
Atsuko Tominaga natalieHiratakenoellaboCG Hekovic dansupGargron Nokotaro Takedanenohi
+ + +
Takashi Shibuya
Takashi Shibuya
-**Last updated:** Fri, 05 Apr 2019 09:39:06 UTC +**Last updated:** Wed, 29 Jan 2020 21:11:07 UTC :four_leaf_clover: Copyright diff --git a/docs/docker.en.md b/docs/docker.en.md index f0fcdb66d..3469ec559 100644 --- a/docs/docker.en.md +++ b/docs/docker.en.md @@ -9,9 +9,23 @@ This guide describes how to install and setup Misskey with Docker. *1.* Download Misskey ---------------------------------------------------------------- -1. `git clone -b master git://github.com/syuilo/misskey.git` Clone Misskey repository's master branch. -2. `cd misskey` Move to misskey directory. -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) tag. +1. Clone Misskey repository's master branch. + + `git clone -b master git://github.com/syuilo/misskey.git` + +2. Move to misskey directory. + + `cd misskey` + +3. Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) tag. + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` *2.* Configure Misskey ---------------------------------------------------------------- @@ -39,7 +53,15 @@ Just `docker-compose up -d`. GLHF! ### How to update your Misskey server to the latest version 1. `git fetch` 2. `git stash` -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +3. + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` 4. `git stash pop` 5. `docker-compose build` 6. Check [ChangeLog](../CHANGELOG.md) for migration information diff --git a/docs/docker.fr.md b/docs/docker.fr.md index 8f7e9f429..c35030d78 100644 --- a/docs/docker.fr.md +++ b/docs/docker.fr.md @@ -10,9 +10,23 @@ Ce guide explique comment installer et configurer Misskey avec Docker. *1.* Télécharger Misskey ---------------------------------------------------------------- -1. `git clone -b master git://github.com/syuilo/misskey.git` Clone le dépôt de Misskey sur la branche master. -2. `cd misskey` Naviguez dans le dossier du dépôt. -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout sur le tag de la [dernière version](https://github.com/syuilo/misskey/releases/latest). +1. Clone le dépôt de Misskey sur la branche master. + + `git clone -b master git://github.com/syuilo/misskey.git` + +2. Naviguez dans le dossier du dépôt. + + `cd misskey` + +3. Checkout sur le tag de la [dernière version](https://github.com/syuilo/misskey/releases/latest). + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` *2.* Configuration de Misskey ---------------------------------------------------------------- @@ -40,7 +54,15 @@ Utilisez la commande `docker-compose up -d`. GLHF! ### How to update your Misskey server to the latest version 1. `git fetch` 2. `git stash` -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +3. + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` 4. `git stash pop` 5. `docker-compose build` 6. Consultez le [ChangeLog](../CHANGELOG.md) pour avoir les éventuelles informations de migration @@ -52,14 +74,28 @@ Utilisez la commande `docker-compose up -d`. GLHF! ### Configuration d'ElasticSearch (pour la fonction de recherche) *1.* Préparation de l'environnement ---------------------------------------------------------------- -1. `mkdir elasticsearch && chown 1000:1000 elasticsearch` Permet de créer le dossier d'accueil de la base ElasticSearch aves les bons droits -2. `sysctl -w vm.max_map_count=262144` Augmente la valeur max du paramètre map_count du système (valeur minimum pour pouvoir lancer ES) +1. Permet de créer le dossier d'accueil de la base ElasticSearch aves les bons droits + + `mkdir elasticsearch && chown 1000:1000 elasticsearch` + +2. Augmente la valeur max du paramètre map_count du système (valeur minimum pour pouvoir lancer ES) + + `sysctl -w vm.max_map_count=262144` *2.* Après lancement du docker-compose, initialisation de la base ElasticSearch ---------------------------------------------------------------- -1. `docker-compose -it web /bin/sh` Connexion dans le conteneur web -2. `apk add curl` Ajout du paquet curl -3. `curl -X PUT "es:9200/misskey" -H 'Content-Type: application/json' -d'{ "settings" : { "index" : { } }}'` Création de la base ES +1. Connexion dans le conteneur web + + `docker-compose -it web /bin/sh` + +2. Ajout du paquet curl + + `apk add curl` + +3. Création de la base ES + + `curl -X PUT "es:9200/misskey" -H 'Content-Type: application/json' -d'{ "settings" : { "index" : { } }}'` + 4. `exit` ---------------------------------------------------------------- diff --git a/docs/docker.ja.md b/docs/docker.ja.md index 0baf28572..29a0fdfb1 100644 --- a/docs/docker.ja.md +++ b/docs/docker.ja.md @@ -9,9 +9,23 @@ Dockerを使ったMisskey構築方法 *1.* Misskeyのダウンロード ---------------------------------------------------------------- -1. `git clone -b master git://github.com/syuilo/misskey.git` masterブランチからMisskeyレポジトリをクローン -2. `cd misskey` misskeyディレクトリに移動 -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 +1. masterブランチからMisskeyレポジトリをクローン + + `git clone -b master git://github.com/syuilo/misskey.git` + +2. misskeyディレクトリに移動 + + `cd misskey` + +3. [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` *2.* 設定ファイルを作成する ---------------------------------------------------------------- @@ -39,7 +53,15 @@ Dockerを使ったMisskey構築方法 ### Misskeyを最新バージョンにアップデートする方法: 1. `git fetch` 2. `git stash` -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +3. + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` 4. `git stash pop` 5. `docker-compose build` 6. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する diff --git a/docs/setup.en.md b/docs/setup.en.md index 112508144..ea6a34c83 100644 --- a/docs/setup.en.md +++ b/docs/setup.en.md @@ -41,15 +41,38 @@ As root: *4.* Install Misskey ---------------------------------------------------------------- -1. `su - misskey` Connect to misskey user. -2. `git clone -b master git://github.com/syuilo/misskey.git` Clone the misskey repo from master branch. -3. `cd misskey` Navigate to misskey directory -4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) -5. `npm install` Install misskey dependencies. +1. Connect to misskey user. + + `su - misskey` + +2. Clone the misskey repo from master branch. + + `git clone -b master git://github.com/syuilo/misskey.git` + +3. Navigate to misskey directory + + `cd misskey` + +4. Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` + +5. Install misskey dependencies. + + `npm install` *5.* Configure Misskey ---------------------------------------------------------------- -1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`. +1. Copy the `.config/example.yml` and rename it to `default.yml`. + + `cp .config/example.yml .config/default.yml` + 2. Edit `default.yml` *6.* Build Misskey @@ -77,37 +100,53 @@ Just `NODE_ENV=production npm start`. GLHF! ### Launch with systemd -1. Create a systemd service here: `/etc/systemd/system/misskey.service` +1. Create a systemd service here + + `/etc/systemd/system/misskey.service` + 2. Edit it, and paste this and save: -``` -[Unit] -Description=Misskey daemon + ``` + [Unit] + Description=Misskey daemon -[Service] -Type=simple -User=misskey -ExecStart=/usr/bin/npm start -WorkingDirectory=/home/misskey/misskey -Environment="NODE_ENV=production" -TimeoutSec=60 -StandardOutput=syslog -StandardError=syslog -SyslogIdentifier=misskey -Restart=always + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always -[Install] -WantedBy=multi-user.target -``` + [Install] + WantedBy=multi-user.target + ``` -3. `systemctl daemon-reload ; systemctl enable misskey` Reload systemd and enable the misskey service. -4. `systemctl start misskey` Start the misskey service. +3. Reload systemd and enable the misskey service. + + `systemctl daemon-reload ; systemctl enable misskey` + +4. Start the misskey service. + + `systemctl start misskey` You can check if the service is running with `systemctl status misskey`. ### How to update your Misskey server to the latest version 1. `git fetch` -2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +2.   + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` 3. `npm install` 4. `NODE_ENV=production npm run build` 5. Check [ChangeLog](../CHANGELOG.md) for migration information diff --git a/docs/setup.fr.md b/docs/setup.fr.md index 959ec3392..b9d0e910b 100644 --- a/docs/setup.fr.md +++ b/docs/setup.fr.md @@ -41,15 +41,38 @@ En root : *4.* Installation de Misskey ---------------------------------------------------------------- -1. `su - misskey` Basculez vers l'utilisateur misskey. -2. `git clone -b master git://github.com/syuilo/misskey.git` Clonez la branche master du dépôt misskey. -3. `cd misskey` Accédez au dossier misskey. -4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout sur le tag de la [version la plus récente](https://github.com/syuilo/misskey/releases/latest) -5. `npm install` Installez les dépendances de misskey. +1. Basculez vers l'utilisateur misskey. + + `su - misskey` + +2. Clonez la branche master du dépôt misskey. + + `git clone -b master git://github.com/syuilo/misskey.git` + +3. Accédez au dossier misskey. + + `cd misskey` + +4. Checkout sur le tag de la [version la plus récente](https://github.com/syuilo/misskey/releases/latest) + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` + +5. Installez les dépendances de misskey. + + `npm install` *5.* Création du fichier de configuration ---------------------------------------------------------------- -1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le`default.yml`. +1. Copiez le fichier `.config/example.yml` et renommez-le`default.yml`. + + `cp .config/example.yml .config/default.yml` + 2. Editez le fichier `default.yml` *6.* Construction de Misskey @@ -77,37 +100,53 @@ Lancez tout simplement `NODE_ENV=production npm start`. Bonne chance et amusez-v ### Démarrage avec systemd -1. Créez un service systemd sur : `/etc/systemd/system/misskey.service` +1. Créez un service systemd sur + + `/etc/systemd/system/misskey.service` + 2. Editez-le puis copiez et coller ceci dans le fichier : -``` -[Unit] -Description=Misskey daemon + ``` + [Unit] + Description=Misskey daemon -[Service] -Type=simple -User=misskey -ExecStart=/usr/bin/npm start -WorkingDirectory=/home/misskey/misskey -Environment="NODE_ENV=production" -TimeoutSec=60 -StandardOutput=syslog -StandardError=syslog -SyslogIdentifier=misskey -Restart=always + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always -[Install] -WantedBy=multi-user.target -``` + [Install] + WantedBy=multi-user.target + ``` -3. `systemctl daemon-reload ; systemctl enable misskey` Redémarre systemd et active le service misskey. -4. `systemctl start misskey` Démarre le service misskey. +3. Redémarre systemd et active le service misskey. + + `systemctl daemon-reload ; systemctl enable misskey` + +4. Démarre le service misskey. + + `systemctl start misskey` Vous pouvez vérifier si le service a démarré en utilisant la commande `systemctl status misskey`. ### Méthode de mise à jour vers la plus récente version de Misskey 1. `git fetch` -2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +2.   + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` 3. `npm install` 4. `NODE_ENV=production npm run build` 5. Consultez [ChangeLog](../CHANGELOG.md) pour les information de migration. diff --git a/docs/setup.ja.md b/docs/setup.ja.md index 8a21e104d..252016131 100644 --- a/docs/setup.ja.md +++ b/docs/setup.ja.md @@ -48,15 +48,38 @@ adduser --disabled-password --disabled-login misskey *4.* Misskeyのインストール ---------------------------------------------------------------- -1. `su - misskey` misskeyユーザーを使用 -2. `git clone -b master git://github.com/syuilo/misskey.git` masterブランチからMisskeyレポジトリをクローン -3. `cd misskey` misskeyディレクトリに移動 -4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 -5. `npm install` Misskeyの依存パッケージをインストール +1. misskeyユーザーを使用 + + `su - misskey` + +2. masterブランチからMisskeyレポジトリをクローン + + `git clone -b master git://github.com/syuilo/misskey.git` + +3. misskeyディレクトリに移動 + + `cd misskey` + +4. [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` + +5. Misskeyの依存パッケージをインストール + + `npm install` *5.* 設定ファイルを作成する ---------------------------------------------------------------- -1. `cp .config/example.yml .config/default.yml` `.config/example.yml`をコピーし名前を`default.yml`にする。 +1. `.config/example.yml`をコピーし名前を`default.yml`にする。 + + `cp .config/example.yml .config/default.yml` + 2. `default.yml` を編集する。 *6.* Misskeyのビルド @@ -82,38 +105,56 @@ Debianをお使いであれば、`build-essential`パッケージをインスト `NODE_ENV=production npm start`するだけです。GLHF! ### systemdを用いた起動 -1. systemdサービスのファイルを作成: `/etc/systemd/system/misskey.service` +1. systemdサービスのファイルを作成 + + `/etc/systemd/system/misskey.service` + 2. エディタで開き、以下のコードを貼り付けて保存: -``` -[Unit] -Description=Misskey daemon + ``` + [Unit] + Description=Misskey daemon -[Service] -Type=simple -User=misskey -ExecStart=/usr/bin/npm start -WorkingDirectory=/home/misskey/misskey -Environment="NODE_ENV=production" -TimeoutSec=60 -StandardOutput=syslog -StandardError=syslog -SyslogIdentifier=misskey -Restart=always + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always -[Install] -WantedBy=multi-user.target -``` -CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 + [Install] + WantedBy=multi-user.target + ``` -3. `systemctl daemon-reload ; systemctl enable misskey` systemdを再読み込みしmisskeyサービスを有効化 -4. `systemctl start misskey` misskeyサービスの起動 + CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 + +3. systemdを再読み込みしmisskeyサービスを有効化 + + `systemctl daemon-reload ; systemctl enable misskey` + +4. misskeyサービスの起動 + + `systemctl start misskey` `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ### Misskeyを最新バージョンにアップデートする方法: 1. `git fetch` -2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +2.   + + ```bash + git tag | grep '^10\.' | sort -V --reverse | \ + while read tag_name; do \ + if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ + | grep -qE '"(draft|prerelease)": true'; \ + then git checkout $tag_name; break; fi ; done + ``` + 3. `npm install` 4. `NODE_ENV=production npm run build` 5. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する diff --git a/locales/en-US.yml b/locales/en-US.yml index 2b11de112..5927000e0 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -877,7 +877,6 @@ desktop/views/components/post-form.vue: posting: "Posting" attach-media-from-local: "Attach media from your device" attach-media-from-drive: "Attach media from your Drive" - attach-cancel: "Cancel attachment" insert-a-kao: "v('ω')v" create-poll: "Create a poll" text-remain: "{} characters remaining" @@ -970,6 +969,10 @@ common/views/components/password-settings.vue: not-match: "The new passwords do not match" changed: "Password changed" failed: "Failed to change password" +common/views/components/post-form-attaches.vue: + attach-cancel: "Remove Attachment" + mark-as-sensitive: "Mark as 'sensitive'" + unmark-as-sensitive: "Unmark as 'sensitive'" desktop/views/components/sub-note-content.vue: private: "This post is private" deleted: "This post has been deleted" diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index d4457b659..fb653ed76 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -513,8 +513,12 @@ common/views/components/user-menu.vue: mention: "メンション" mute: "ミュート" unmute: "ミュート解除" + mute-confirm: "このユーザーをミュートしますか?" + unmute-confirm: "このユーザーをミュート解除しますか?" block: "ブロック" unblock: "ブロック解除" + block-confirm: "このユーザーをブロックしますか?" + unblock-confirm: "このユーザーをブロック解除しますか?" push-to-list: "リストに追加" select-list: "リストを選択してください" report-abuse: "スパムを報告" @@ -522,8 +526,12 @@ common/views/components/user-menu.vue: report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。" silence: "サイレンス" unsilence: "サイレンス解除" + silence-confirm: "このユーザーをサイレンスしますか?" + unsilence-confirm: "このユーザーをサイレンス解除しますか?" suspend: "凍結" unsuspend: "凍結解除" + suspend-confirm: "このユーザーを凍結しますか?" + unsuspend-confirm: "このユーザーを凍結解除しますか?" common/views/components/poll.vue: vote-to: "「{}」に投票する" @@ -967,7 +975,6 @@ desktop/views/components/post-form.vue: posting: "投稿中" attach-media-from-local: "PCからメディアを添付" attach-media-from-drive: "ドライブからメディアを添付" - attach-cancel: "添付取り消し" insert-a-kao: "v('ω')v" create-poll: "アンケートを作成" text-remain: "残り{}文字" @@ -1073,6 +1080,11 @@ common/views/components/password-settings.vue: changed: "パスワードを変更しました" failed: "パスワード変更に失敗しました" +common/views/components/post-form-attaches.vue: + attach-cancel: "添付取り消し" + mark-as-sensitive: "閲覧注意に設定" + unmark-as-sensitive: "閲覧注意を解除" + desktop/views/components/sub-note-content.vue: private: "この投稿は非公開です" deleted: "この投稿は削除されました" @@ -1326,7 +1338,9 @@ admin/views/users.vue: unsuspend-confirm: "凍結を解除しますか?" unsuspended: "凍結を解除しました" make-silence: "サイレンス" + silence-confirm: "サイレンスしますか?" unmake-silence: "サイレンスの解除" + unsilence-confirm: "サイレンスを解除しますか?" verify: "公式アカウントにする" verify-confirm: "公式アカウントにしますか?" verified: "公式アカウントにしました" diff --git a/package.json b/package.json index 39e6aa7de..8d9bec084 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo ", - "version": "10.99.0", + "version": "10.102.4", "codename": "nighthike", "repository": { "type": "git", @@ -22,24 +22,27 @@ "test": "gulp test", "format": "gulp format" }, + "resolutions": { + "gulp-cssnano/cssnano/postcss-svgo/svgo/js-yaml": "^3.13.1", + "video-thumbnail-generator/lodash": "^4.17.11" + }, "dependencies": { - "@fortawesome/fontawesome-svg-core": "1.2.15", - "@fortawesome/free-brands-svg-icons": "5.7.2", - "@fortawesome/free-regular-svg-icons": "5.7.2", - "@fortawesome/free-solid-svg-icons": "5.7.2", - "@fortawesome/vue-fontawesome": "0.1.5", + "@fortawesome/fontawesome-svg-core": "1.2.19", + "@fortawesome/free-brands-svg-icons": "5.9.0", + "@fortawesome/free-regular-svg-icons": "5.9.0", + "@fortawesome/free-solid-svg-icons": "5.9.0", + "@fortawesome/vue-fontawesome": "0.1.6", "@koa/cors": "2.2.3", "@prezzemolo/rap": "0.1.2", "@prezzemolo/zip": "0.0.3", "@types/bcryptjs": "2.4.2", - "@types/bull": "3.5.8", + "@types/bull": "3.5.14", "@types/chai-http": "3.0.5", "@types/dateformat": "3.0.0", "@types/deep-equal": "1.0.1", "@types/double-ended-queue": "2.1.0", - "@types/elasticsearch": "5.0.30", - "@types/file-type": "10.6.0", - "@types/gulp": "4.0.5", + "@types/elasticsearch": "5.0.34", + "@types/gulp": "4.0.6", "@types/gulp-mocha": "0.0.32", "@types/gulp-rename": "0.0.33", "@types/gulp-replace": "0.0.31", @@ -47,65 +50,65 @@ "@types/gulp-util": "3.0.34", "@types/is-root": "1.0.0", "@types/is-url": "1.2.28", - "@types/js-yaml": "3.12.0", + "@types/js-yaml": "3.12.1", "@types/jsdom": "12.2.3", "@types/katex": "0.10.1", "@types/koa": "2.0.48", "@types/koa-bodyparser": "5.0.2", - "@types/koa-compress": "2.0.8", + "@types/koa-compress": "2.0.9", "@types/koa-cors": "0.0.0", "@types/koa-favicon": "2.0.19", "@types/koa-logger": "3.1.1", "@types/koa-mount": "3.0.1", "@types/koa-multer": "1.0.0", "@types/koa-router": "7.0.40", - "@types/koa-send": "4.1.1", + "@types/koa-send": "4.1.2", "@types/koa-views": "2.0.3", "@types/koa__cors": "2.2.3", - "@types/minio": "7.0.1", + "@types/minio": "7.0.2", "@types/mkdirp": "0.5.2", - "@types/mocha": "5.2.5", - "@types/mongodb": "3.1.20", + "@types/mocha": "5.2.7", + "@types/mongodb": "3.1.28", "@types/node": "11.10.4", - "@types/nodemailer": "4.6.6", - "@types/nprogress": "0.0.29", + "@types/nodemailer": "6.2.0", + "@types/nprogress": "0.2.0", "@types/oauth": "0.9.1", "@types/parse5": "5.0.0", "@types/parsimmon": "1.10.0", "@types/portscanner": "2.1.0", "@types/pug": "2.0.4", - "@types/qrcode": "1.3.0", + "@types/qrcode": "1.3.3", "@types/ratelimiter": "2.1.28", - "@types/redis": "2.8.10", + "@types/redis": "2.8.13", "@types/rename": "1.0.1", "@types/request": "2.48.1", - "@types/request-promise-native": "1.0.15", + "@types/request-promise-native": "1.0.16", "@types/request-stats": "3.0.0", "@types/rimraf": "2.0.2", - "@types/seedrandom": "2.4.27", - "@types/sharp": "0.21.2", + "@types/seedrandom": "2.4.28", + "@types/sharp": "0.22.2", "@types/showdown": "1.9.2", "@types/speakeasy": "2.0.4", "@types/systeminformation": "3.23.1", - "@types/tinycolor2": "1.4.1", - "@types/tmp": "0.0.33", + "@types/tinycolor2": "1.4.2", + "@types/tmp": "0.1.0", "@types/uuid": "3.4.4", "@types/web-push": "3.3.0", - "@types/webpack": "4.4.24", + "@types/webpack": "4.4.32", "@types/webpack-stream": "3.2.10", "@types/websocket": "0.0.40", "@types/ws": "6.0.1", "animejs": "3.0.1", - "apexcharts": "3.6.5", + "apexcharts": "3.8.0", "autobind-decorator": "2.4.0", "autosize": "4.0.2", "autwh": "0.1.0", "bcryptjs": "2.4.3", - "bootstrap-vue": "2.0.0-rc.13", - "bull": "3.7.0", - "cafy": "15.1.0", + "bootstrap-vue": "2.0.0-rc.22", + "bull": "3.10.0", + "cafy": "15.1.1", "chai": "4.2.0", - "chai-http": "4.2.1", + "chai-http": "4.3.0", "chalk": "2.4.2", "commander": "2.20.0", "content-disposition": "0.5.3", @@ -115,18 +118,18 @@ "dateformat": "3.0.3", "deep-equal": "1.0.1", "deepcopy": "0.6.3", - "diskusage": "1.0.0", + "diskusage": "1.1.1", "double-ended-queue": "2.1.0-0", "elasticsearch": "15.4.1", "emojilib": "2.4.0", "escape-regexp": "0.0.1", - "eslint": "5.15.1", + "eslint": "5.16.0", "eslint-plugin-vue": "5.2.2", - "eventemitter3": "3.1.0", + "eventemitter3": "3.1.2", "feed": "2.0.4", "file-type": "10.10.0", "fuckadblock": "3.2.1", - "gulp": "4.0.0", + "gulp": "4.0.2", "gulp-cssnano": "2.1.3", "gulp-imagemin": "5.0.3", "gulp-mocha": "6.0.0", @@ -135,20 +138,20 @@ "gulp-sourcemaps": "2.6.5", "gulp-stylus": "2.7.0", "gulp-tslint": "8.1.4", - "gulp-typescript": "5.0.0", + "gulp-typescript": "5.0.1", "gulp-uglify": "3.0.2", "gulp-util": "3.0.8", "hard-source-webpack-plugin": "0.13.1", - "html-minifier": "3.5.21", + "html-minifier": "4.0.0", "http-signature": "1.2.0", - "insert-text-at-cursor": "0.1.2", - "is-root": "2.0.0", - "is-svg": "4.0.0", - "js-yaml": "3.13.0", - "jsdom": "14.0.0", + "insert-text-at-cursor": "0.2.0", + "is-root": "2.1.0", + "is-svg": "4.2.0", + "js-yaml": "3.13.1", + "jsdom": "15.1.1", "json5": "2.1.0", - "json5-loader": "1.0.1", - "katex": "0.10.1", + "json5-loader": "2.0.0", + "katex": "0.10.2", "koa": "2.7.0", "koa-bodyparser": "4.2.1", "koa-compress": "3.0.0", @@ -164,15 +167,15 @@ "langmap": "0.0.16", "loader-utils": "1.2.3", "lookup-dns-cache": "2.1.0", - "minio": "7.0.5", + "minio": "7.0.8", "mkdirp": "0.5.1", "mocha": "5.2.0", "moji": "0.5.1", "moment": "2.24.0", - "mongodb": "3.2.2", + "mongodb": "3.2.7", "monk": "6.0.6", - "ms": "2.1.1", - "nan": "2.12.1", + "ms": "2.1.2", + "nan": "2.14.0", "nested-property": "0.0.7", "nodemailer": "5.1.1", "nprogress": "0.2.0", @@ -203,7 +206,7 @@ "rndstr": "1.0.0", "s-age": "1.1.2", "seedrandom": "2.4.4", - "sharp": "0.22.0", + "sharp": "0.22.1", "showdown": "1.9.0", "showdown-highlightjs-extension": "0.1.2", "speakeasy": "2.0.0", @@ -212,17 +215,17 @@ "stylus": "0.54.5", "stylus-loader": "3.0.2", "summaly": "2.2.0", - "systeminformation": "4.0.16", + "systeminformation": "4.9.0", "syuilo-password-strength": "0.0.1", - "terser-webpack-plugin": "1.2.3", + "terser-webpack-plugin": "1.3.0", "textarea-caret": "3.1.0", "tinycolor2": "1.4.1", - "tmp": "0.0.33", + "tmp": "0.1.0", "ts-loader": "5.3.3", "ts-node": "8.0.3", - "tslint": "5.13.1", + "tslint": "5.17.0", "tslint-sonarts": "1.9.0", - "typescript": "3.3.3333", + "typescript": "3.5.1", "typescript-eslint-parser": "22.0.0", "uglify-es": "3.3.9", "url-loader": "1.1.2", @@ -232,27 +235,26 @@ "video-thumbnail-generator": "1.1.3", "vue": "2.6.10", "vue-color": "2.7.0", - "vue-content-loading": "1.5.3", + "vue-content-loading": "1.6.0", "vue-cropperjs": "3.0.0", - "vue-i18n": "8.10.0", - "vue-js-modal": "1.3.28", + "vue-i18n": "8.11.2", + "vue-js-modal": "1.3.31", "vue-json-pretty": "1.6.0", "vue-loader": "15.7.0", "vue-marquee-text-component": "1.1.1", "vue-prism-component": "1.1.1", - "vue-router": "3.0.2", + "vue-router": "3.0.6", "vue-sequential-entrance": "1.1.3", "vue-style-loader": "4.1.2", "vue-svg-inline-loader": "1.2.15", "vue-template-compiler": "2.6.10", - "vuedraggable": "2.20.0", + "vuedraggable": "2.21.0", "vuewordcloud": "18.7.11", - "vuex": "3.1.0", + "vuex": "3.1.1", "vuex-persistedstate": "2.5.4", - "web-push": "3.3.3", - "webfinger.js": "2.7.0", - "webpack": "4.28.4", - "webpack-cli": "3.2.3", + "web-push": "3.3.5", + "webpack": "4.33.0", + "webpack-cli": "3.3.3", "websocket": "1.0.28", "ws": "6.2.1", "xev": "2.0.1" diff --git a/src/@types/webfinger.js.d.ts b/src/@types/webfinger.js.d.ts deleted file mode 100644 index 3556c4577..000000000 --- a/src/@types/webfinger.js.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -declare module 'webfinger.js' { - interface IWebFingerConstructorConfig { - tls_only?: boolean; - webfist_fallback?: boolean; - uri_fallback?: boolean; - request_timeout?: number; - } - - type JRDProperties = { [type: string]: string }; - - interface IJRDLink { - rel: string; - type?: string; - href?: string; - template?: string; - titles?: { [lang: string]: string }; - properties?: JRDProperties; - } - - interface IJRD { - subject?: string; - expires?: Date; - aliases?: string[]; - properties?: JRDProperties; - links?: IJRDLink[]; - } - - interface IIDXLinks { - 'avatar': IJRDLink[]; - 'remotestorage': IJRDLink[]; - 'blog': IJRDLink[]; - 'vcard': IJRDLink[]; - 'updates': IJRDLink[]; - 'share': IJRDLink[]; - 'profile': IJRDLink[]; - 'webfist': IJRDLink[]; - 'camlistore': IJRDLink[]; - [type: string]: IJRDLink[]; - } - - interface IIDXProperties { - 'name': string; - [type: string]: string; - } - - interface IIDX { - links: IIDXLinks; - properties: IIDXProperties; - } - - interface ILookupCallbackResult { - object: IJRD; - json: string; - idx: IIDX; - } - - type LookupCallback = (err: Error | string, result?: ILookupCallbackResult) => void; - - export class WebFinger { - constructor(config?: IWebFingerConstructorConfig); - - public lookup(address: string, cb: LookupCallback): NodeJS.Timeout; - public lookupLink(address: string, rel: string, cb: IJRDLink): void; - } -} diff --git a/src/client/app/admin/views/drive.vue b/src/client/app/admin/views/drive.vue index 7812aadaa..fa2df9f37 100644 --- a/src/client/app/admin/views/drive.vue +++ b/src/client/app/admin/views/drive.vue @@ -38,7 +38,7 @@
-
+
@@ -75,10 +75,15 @@ import Vue from 'vue'; import i18n from '../../i18n'; import { faCloud, faTerminal, faSearch } from '@fortawesome/free-solid-svg-icons'; import { faTrashAlt, faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons'; +import XFileThumbnail from '../../common/views/components/drive-file-thumbnail.vue'; export default Vue.extend({ i18n: i18n('admin/views/drive.vue'), + components: { + XFileThumbnail + }, + data() { return { file: null, @@ -151,13 +156,6 @@ export default Vue.extend({ }); }, - thumbnail(file: any): any { - return { - 'background-color': file.properties.avgColor && file.properties.avgColor.length == 3 ? `rgb(${file.properties.avgColor.join(',')})` : 'transparent', - 'background-image': `url(${file.thumbnailUrl})` - }; - }, - async del(file: any) { const process = async () => { await this.$root.api('drive/files/delete', { fileId: file.id }); @@ -179,9 +177,9 @@ export default Vue.extend({ this.$root.api('drive/files/update', { fileId: file.id, isSensitive: !file.isSensitive + }).then(() => { + file.isSensitive = !file.isSensitive; }); - - file.isSensitive = !file.isSensitive; }, async show() { @@ -244,7 +242,7 @@ export default Vue.extend({ > div:nth-child(1) > .thumbnail - display block + display flex width 64px height 64px background-size cover diff --git a/src/client/app/admin/views/federation.vue b/src/client/app/admin/views/federation.vue index 6b09a3c28..25400393b 100644 --- a/src/client/app/admin/views/federation.vue +++ b/src/client/app/admin/views/federation.vue @@ -130,7 +130,7 @@ {{ $t('status') }}
- {{ instance.host }} + {{ instance.host }} {{ instance.notesCount | number }} {{ instance.usersCount | number }} {{ instance.followingCount | number }} diff --git a/src/client/app/admin/views/users.vue b/src/client/app/admin/views/users.vue index ff485cec8..cef6f796c 100644 --- a/src/client/app/admin/views/users.vue +++ b/src/client/app/admin/views/users.vue @@ -232,6 +232,8 @@ export default Vue.extend({ }, async silenceUser() { + if (!await this.getConfirmed(this.$t('silence-confirm'))) return; + const process = async () => { await this.$root.api('admin/silence-user', { userId: this.user._id }); this.$root.dialog({ @@ -251,6 +253,8 @@ export default Vue.extend({ }, async unsilenceUser() { + if (!await this.getConfirmed(this.$t('unsilence-confirm'))) return; + const process = async () => { await this.$root.api('admin/unsilence-user', { userId: this.user._id }); this.$root.dialog({ diff --git a/src/client/app/common/views/components/autocomplete.vue b/src/client/app/common/views/components/autocomplete.vue index 1aea2f1cb..ca6599df2 100644 --- a/src/client/app/common/views/components/autocomplete.vue +++ b/src/client/app/common/views/components/autocomplete.vue @@ -16,10 +16,10 @@
  1. - + {{ emoji.emoji }} - {{ beforeQ }}{{ q }}{{ afterQ }} + ({{ emoji.aliasOf }})
@@ -31,6 +31,7 @@ import Vue from 'vue'; import * as emojilib from 'emojilib'; import contains from '../../../common/scripts/contains'; import { twemojiBase } from '../../../../../misc/twemoji-base'; +import { getStaticImageUrl } from '../../../common/scripts/get-static-image-url'; type EmojiDef = { emoji: string; @@ -78,6 +79,7 @@ export default Vue.extend({ data() { return { + getStaticImageUrl, fetching: true, users: [], hashtags: [], @@ -89,14 +91,6 @@ export default Vue.extend({ }, computed: { - beforeQ(): string { - return this.emoji.name.split(this.q)[0]; - }, - - afterQ(): string { - return this.emoji.name.split(this.q)[1] || ''; - }, - items(): HTMLCollection { return (this.$refs.suggests as Element).children; }, diff --git a/src/client/app/common/views/components/dialog.vue b/src/client/app/common/views/components/dialog.vue index 6a074769d..771b1237e 100644 --- a/src/client/app/common/views/components/dialog.vue +++ b/src/client/app/common/views/components/dialog.vue @@ -183,9 +183,6 @@ export default Vue.extend({ height 100% &.splash - &, * - pointer-events none !important - > .main min-width 0 width initial diff --git a/src/client/app/common/views/components/forkit.vue b/src/client/app/common/views/components/forkit.vue index 5629c5ac2..d652b846a 100644 --- a/src/client/app/common/views/components/forkit.vue +++ b/src/client/app/common/views/components/forkit.vue @@ -1,5 +1,5 @@ diff --git a/src/client/app/common/views/components/messaging-room.message.vue b/src/client/app/common/views/components/messaging-room.message.vue index ce76c402f..9154a5a79 100644 --- a/src/client/app/common/views/components/messaging-room.message.vue +++ b/src/client/app/common/views/components/messaging-room.message.vue @@ -9,7 +9,7 @@
- +

{{ message.file.name }}

diff --git a/src/client/app/common/views/components/messaging-room.vue b/src/client/app/common/views/components/messaging-room.vue index 6f13d50c1..0221f912c 100644 --- a/src/client/app/common/views/components/messaging-room.vue +++ b/src/client/app/common/views/components/messaging-room.vue @@ -270,17 +270,13 @@ export default Vue.extend({ diff --git a/src/client/app/common/views/components/settings/2fa.vue b/src/client/app/common/views/components/settings/2fa.vue index 07a149315..6e8d19d83 100644 --- a/src/client/app/common/views/components/settings/2fa.vue +++ b/src/client/app/common/views/components/settings/2fa.vue @@ -9,7 +9,7 @@
    -
  1. {{ $t('authenticator') }}{{ $t('howtoinstall') }}
  2. +
  3. {{ $t('authenticator') }}{{ $t('howtoinstall') }}
  4. {{ $t('scan') }}
  5. {{ $t('done') }}
    {{ $t('token') }} diff --git a/src/client/app/common/views/components/settings/integration.vue b/src/client/app/common/views/components/settings/integration.vue index b91880679..65b1c09c9 100644 --- a/src/client/app/common/views/components/settings/integration.vue +++ b/src/client/app/common/views/components/settings/integration.vue @@ -4,21 +4,21 @@
    Twitter
    -

    {{ $t('connected-to') }}: @{{ $store.state.i.twitter.screenName }}

    +

    {{ $t('connected-to') }}: @{{ $store.state.i.twitter.screenName }}

    {{ $t('disconnect') }} {{ $t('connect') }}
    Discord
    -

    {{ $t('connected-to') }}: @{{ $store.state.i.discord.username }}#{{ $store.state.i.discord.discriminator }}

    +

    {{ $t('connected-to') }}: @{{ $store.state.i.discord.username }}#{{ $store.state.i.discord.discriminator }}

    {{ $t('disconnect') }} {{ $t('connect') }}
    GitHub
    -

    {{ $t('connected-to') }}: @{{ $store.state.i.github.login }}

    +

    {{ $t('connected-to') }}: @{{ $store.state.i.github.login }}

    {{ $t('disconnect') }} {{ $t('connect') }}
    diff --git a/src/client/app/common/views/components/settings/profile.vue b/src/client/app/common/views/components/settings/profile.vue index b9837a696..f70c785e1 100644 --- a/src/client/app/common/views/components/settings/profile.vue +++ b/src/client/app/common/views/components/settings/profile.vue @@ -290,12 +290,17 @@ export default Vue.extend({ this.exportTarget == 'mute' ? 'i/export-mute' : this.exportTarget == 'blocking' ? 'i/export-blocking' : this.exportTarget == 'user-lists' ? 'i/export-user-lists' : - null, {}); - - this.$root.dialog({ - type: 'info', - text: this.$t('export-requested') - }); + null, {}).then(() => { + this.$root.dialog({ + type: 'info', + text: this.$t('export-requested') + }); + }).catch((e: any) => { + this.$root.dialog({ + type: 'error', + text: e.message + }); + }); }, doImport() { diff --git a/src/client/app/common/views/components/settings/theme.vue b/src/client/app/common/views/components/settings/theme.vue index 1dff61e45..de2ed483c 100644 --- a/src/client/app/common/views/components/settings/theme.vue +++ b/src/client/app/common/views/components/settings/theme.vue @@ -45,7 +45,7 @@ - {{ $t('find-more-theme') }} + {{ $t('find-more-theme') }}
    {{ $t('create-a-theme') }} diff --git a/src/client/app/common/views/components/url-preview.vue b/src/client/app/common/views/components/url-preview.vue index af5f3e4eb..9ca4497ad 100644 --- a/src/client/app/common/views/components/url-preview.vue +++ b/src/client/app/common/views/components/url-preview.vue @@ -9,7 +9,7 @@