Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
syuilo committed Feb 11, 2022
2 parents 08da5e9 + c07e4c3 commit 1ce8da6
Show file tree
Hide file tree
Showing 52 changed files with 965 additions and 271 deletions.
19 changes: 15 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,18 @@

version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 0
- package-ecosystem: npm
directory: "/packages/backend"
schedule:
interval: daily
open-pull-requests-limit: 0
- package-ecosystem: npm
directory: "/packages/client"
schedule:
interval: daily
open-pull-requests-limit: 0
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v16.6.2
v16.13.2
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,18 @@
You should also include the user name that made the change.
-->

## 12.106.0 (2022/02/11)

### Improvements
- Improve federation chart @syuilo
- クライアント: リアクションピッカーのサイズを設定できるように @syuilo
- クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo
- Docker: Update to Node v16.13.2 @mei23
- Update dependencies

### Bugfixes
- validate regular expressions in word mutes @Johann150

## 12.105.0 (2022/02/09)

### Improvements
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:16.6.2-alpine3.13 AS base
FROM node:16.13.2-alpine3.15 AS base

ENV NODE_ENV=production

Expand Down
338 changes: 338 additions & 0 deletions locales/bn-BD.yml

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions locales/de-DE.yml
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,8 @@ smtpSecure: "Für SMTP-Verbindungen implizit SSL/TLS verwenden"
smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest"
testEmail: "Email-Versand testen"
wordMute: "Wort-Stummschaltung"
regexpError: "Regular Expression error"
regexpErrorDescription: "Error in the regular expression on line {line} in your {tab} word mutes:"
instanceMute: "Instanzstummschaltungen"
userSaysSomething: "{name} hat etwas gesagt"
makeActive: "Aktivieren"
Expand Down Expand Up @@ -828,6 +830,7 @@ overridedDeviceKind: "Gerätetyp"
smartphone: "Smartphone"
tablet: "Tablet"
auto: "Automatisch"
themeColor: "Instanzfarbe"
_emailUnavailable:
used: "Diese Email-Adresse wird bereits verwendet"
format: "Das Format dieser Email-Adresse ist ungültig"
Expand Down
1 change: 1 addition & 0 deletions locales/en-US.yml
Original file line number Diff line number Diff line change
Expand Up @@ -828,6 +828,7 @@ overridedDeviceKind: "Device type"
smartphone: "Smartphone"
tablet: "Tablet"
auto: "Auto"
themeColor: "Theme Color"
_emailUnavailable:
used: "This email address is already being used"
format: "The format of this email address is invalid"
Expand Down
45 changes: 30 additions & 15 deletions locales/eo-UY.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ username: "Uzantnomo"
password: "Pasvorto"
forgotPassword: "Ĉu vi forgesis pasvorton?"
fetchingAsApObject: "Informpetado de la Fediverso…"
ok: "OK"
ok: "Bone"
gotIt: "Kompreni"
cancel: "Nuligi"
enterUsername: "Entajpu uzantnomon"
Expand Down Expand Up @@ -75,7 +75,7 @@ following: "Sekvata"
followers: "Sekvantoj"
followsYou: "Sekvas vin"
createList: "Krei liston"
manageLists: "Bonteni liston"
manageLists: "Bonteni la listojn"
error: "Eraro"
somethingHappened: "Problemo okazis"
retry: "Provi denove"
Expand Down Expand Up @@ -137,6 +137,7 @@ settingGuide: "Agordaj rekomendoj"
cacheRemoteFiles: "Stapli forajn dosierojn"
flagAsBot: "Marki kiel esti uzanto de roboto"
flagAsCat: "Marki kiel esti kato"
flagAsCatDescription: "Flagu por montri ke la konton havas kato."
flagShowTimelineReplies: "Montri respondon de notoj en templinio."
autoAcceptFollowed: "Aŭtomate akcepti la peton de sekvado far uzantoj kiujn vi sekvas"
addAccount: "Aldoni konton"
Expand Down Expand Up @@ -184,7 +185,7 @@ noUsers: "Neniu uzanto"
editProfile: "Redakti profilon"
noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?"
pinLimitExceeded: "Vi ne povas alpingli pli"
intro: "Instalado de Misskey finiĝis! Kreu administran konton."
intro: "La instalado de Misskey finiĝis! Volu krei administran konton."
done: "Fini"
processing: "Prilaborado…"
preview: "Antaŭmontro"
Expand Down Expand Up @@ -223,6 +224,7 @@ resetAreYouSure: "Ĉu vi certas restarigi?"
saved: "Konservita"
messaging: "Retbabili"
upload: "Alŝuti"
keepOriginalUploading: "Konservi la originalan bildon"
fromDrive: "De la disko"
fromUrl: "De URL"
uploadFromUrl: "Alŝuti de URL"
Expand Down Expand Up @@ -491,7 +493,7 @@ deletedNote: "Forviŝita noto"
invisibleNote: "Malpublikigita noto"
enableInfiniteScroll: "Ebligi infinitan rulumon"
visibility: "Videbleco"
poll: "Balotujo"
poll: "Enketo"
useCw: "Kaŝi enhavo"
enablePlayer: "Vidigi la filmeton"
disablePlayer: "Malfermi la filmeton"
Expand Down Expand Up @@ -537,7 +539,7 @@ overview: "Resumo"
logs: "Protokoloj"
delayed: "Prokrasto "
database: "Datumbazo"
channel: "Kanalo"
channel: "Kanaloj"
create: "Krei"
notificationSetting: "Agordoj de sciigoj"
useGlobalSetting: "Oni uzas malloka agordo"
Expand All @@ -560,6 +562,7 @@ createNew: "Krei novan"
optional: "Opciaj"
public: "Publika"
i18nInfo: "Misskey estas tradukata en diversaj lingvoj de volontuloj. Oni povas kontribui ĉe {link}."
manageAccessTokens: "Bonteni la aŭtentikigajn pecojn"
accountInfo: "Kontaj Informoj"
notesCount: "La nombro de notoj"
repliesCount: "La nombro de respondoj senditaj"
Expand All @@ -571,6 +574,7 @@ followersCount: "La nombro de sekvantoj"
sentReactionsCount: "La nombro de la reagoj senditaj"
receivedReactionsCount: "La nombro de la reagoj ricevitaj"
pollVotesCount: "Nombro de voĉdonado"
pollVotedCount: "La nombro de la voĉoj ricevitaj en siaj enketoj"
yes: "Jes"
no: "Ne"
driveFilesCount: "La nombro de la dosieroj sur la disko"
Expand Down Expand Up @@ -615,7 +619,7 @@ inUse: "Uzata"
editCode: "Redakti kodon"
receiveAnnouncementFromInstance: "Ricevi informojn sciigintajn de la nodo"
emailNotification: "Sciigoj per retpoŝto"
inChannelSearch: "Serĉi en kanalo"
inChannelSearch: "Serĉi en la kanalo"
useReactionPickerForContextMenu: "Dekstre-klaki por malfermi la elektilon de reagoj"
typingUsers: "{users} nun skribas…"
clear: "Vakigi"
Expand All @@ -635,7 +639,7 @@ administration: "Bontenado"
accounts: "Kontoj"
configure: "Agordi"
recentPosts: "Novaj afiŝoj"
popularPosts: "Populara noto"
popularPosts: "Plej viditaj"
shareWithNote: "Kundividi en noto"
ads: "Reklamaĵo"
expiration: "Limtempo"
Expand All @@ -646,6 +650,7 @@ low: "Malalta"
emailNotConfiguredWarning: "Vi ne agordis retpoŝtadreso."
customCss: "Personecigita CSS"
global: "Malloka"
squareAvatars: "Montri bildsimbolon kiel kvadrata"
sent: "Sendi"
received: "Ricevita"
searchResult: "Serĉorezultoj"
Expand Down Expand Up @@ -674,10 +679,14 @@ ffVisibilityDescription: "Oni permesas agordi tiuln kiuj povas vidi la homojn ki
continueThread: "Pli vidi la mesaĝaron"
incorrectPassword: "Nevalida pasvorto"
voteConfirm: "Ĉu vi voĉdonas {choice}n?"
hide: "Kaŝi"
leaveGroup: "Eliĝi el la grupo"
leaveGroupConfirm: "Ĉu vi certas ke vi volas eliĝi el la grupo {name}?"
welcomeBackWithName: "Bonrevenon, {name}!"
clickToFinishEmailVerification: "Volu klaki [{ok}] por fini la konfirmon de vian retadreson"
smartphone: "Saĝtelefono"
tablet: "Platkomputilo"
auto: "Aŭtomate"
_emailUnavailable:
used: "La retpoŝto jam estas uzita."
format: "Nevalida formato."
Expand All @@ -688,6 +697,7 @@ _ffVisibility:
followers: "Nur al sekvantoj"
private: "Malpublikigita"
_signup:
almostThere: "Preskaŭ plenumita"
emailAddressInfo: "Entajpu vian retpoŝton"
_accountDelete:
accountDelete: "Forigi konton"
Expand All @@ -698,7 +708,7 @@ _ad:
_forgotPassword:
enterEmail: "Entajpu la retpoŝton kiun vi registrigis al via konto. Ligilo por restarigi pasvorton estos sendita al la retadreso."
_gallery:
my: "Mia afiŝo"
my: "Miaj afiŝoj"
liked: "Ŝatitaj notoj"
like: "Ŝati"
_email:
Expand Down Expand Up @@ -877,14 +887,18 @@ _cw:
chars: "{count} literoj"
files: "{count} dosiero(j)"
_poll:
choiceN: "Balotilo {n}"
noMore: "Oni ne povas aldoni pli."
choiceN: "Ebla voĉdono {n}"
noMore: "Oni ne povas aldoni pli"
canMultipleVote: "Permesi plurelekton"
expiration: "Limtempo"
infinite: "Neniam"
deadlineTime: "hor"
votesCount: "{n} balotiloj"
vote: "Baloti"
closed: "Oni jam balotis ĝin"
duration: "Daŭro"
votesCount: "{n} voĉoj"
totalVotes: "Sume {n} voĉoj"
vote: "Voĉdoni"
showResult: "Vidi la rezultojn"
voted: "Voĉdonita"
closed: "Finita"
_visibility:
public: "Publika"
publicDescription: "Publikigi al ĉiuj en la Fediverso"
Expand Down Expand Up @@ -1089,7 +1103,7 @@ _notification:
youGotReply: "{name} respondis"
youGotQuote: "{name} citis"
youRenoted: "{name} plusendis"
youGotPoll: "{name} balotis"
youGotPoll: "{name} voĉdonis"
youGotMessagingMessageFromUser: "{name} sendis al vi mesaĝon"
youGotMessagingMessageFromGroup: "Oni sendis al la grupo {name} mesaĝon"
youWereFollowed: "Eksekvis vin"
Expand All @@ -1104,6 +1118,7 @@ _notification:
renote: "Plusendoj"
quote: "Citi"
reaction: "Reagoj"
pollVote: "Voĉdonoj en balotoj"
receiveFollowRequest: "Ricevi peton de sekvado"
followRequestAccepted: "Akceptita peto de sekvado"
groupInvited: "Invitita al grupo"
Expand Down
4 changes: 4 additions & 0 deletions locales/ja-JP.yml
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,8 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
smtpSecureInfo: "STARTTLS使用時はオフにします。"
testEmail: "配信テスト"
wordMute: "ワードミュート"
regexpError: "正規表現エラー"
regexpErrorDescription: "{tab}ワードミュートの{line}行目の正規表現にエラーが発生しました:"
instanceMute: "インスタンスミュート"
userSaysSomething: "{name}が何かを言いました"
makeActive: "アクティブにする"
Expand Down Expand Up @@ -829,6 +831,8 @@ smartphone: "スマートフォン"
tablet: "タブレット"
auto: "自動"
themeColor: "テーマカラー"
size: "サイズ"
numberOfColumn: "列の数"

_emailUnavailable:
used: "既に使用されています"
Expand Down
3 changes: 3 additions & 0 deletions locales/sk-SK.yml
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,8 @@ smtpSecure: "Použiť implicitné SSL/TLS pre SMTP spojenia"
smtpSecureInfo: "Toto vypnite keď používate STARTTLS"
testEmail: "Doručenie testovacieho emailu"
wordMute: "Stíšenie slova"
regexpError: "Chyba v regulárnom výraze"
regexpErrorDescription: "Na riadku {line} sa vyskytla chyba v stíšenom slove {tab}."
instanceMute: "Stíšené servery"
userSaysSomething: "{name} niečo povedal/a"
makeActive: "Aktivovať"
Expand Down Expand Up @@ -827,6 +829,7 @@ overridedDeviceKind: "Typ zariadenia"
smartphone: "Smartfón"
tablet: "Tablet"
auto: "Automaticky"
themeColor: "Farba témy"
_emailUnavailable:
used: "Táto emailová adresa sa už používa"
format: "Formát emailovej adresy je nesprávny"
Expand Down
3 changes: 3 additions & 0 deletions locales/zh-CN.yml
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,8 @@ smtpSecure: "在 SMTP 连接中使用隐式 SSL / TLS"
smtpSecureInfo: "使用STARTTLS时关闭。"
testEmail: "邮件发送测试"
wordMute: "文字屏蔽"
regexpError: "正则表达式错误"
regexpErrorDescription: "{tab} 屏蔽文字的第 {line} 行的正则表达式有错误:"
instanceMute: "实例的屏蔽"
userSaysSomething: "{name}说了什么"
makeActive: "启用"
Expand Down Expand Up @@ -828,6 +830,7 @@ overridedDeviceKind: "设备类型"
smartphone: "智能手机"
tablet: "平板"
auto: "自动"
themeColor: "主题颜色"
_emailUnavailable:
used: "已经被使用过"
format: "无效的格式"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "misskey",
"version": "12.105.0",
"version": "12.106.0",
"codename": "indigo",
"repository": {
"type": "git",
Expand Down
64 changes: 64 additions & 0 deletions packages/backend/migration/1644010796173-convert-hard-mutes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
const RE2 = require('re2');
const { MigrationInterface, QueryRunner } = require("typeorm");

module.exports = class convertHardMutes1644010796173 {
name = 'convertHardMutes1644010796173'

async up(queryRunner) {
let entries = await queryRunner.query(`SELECT "userId", "mutedWords" FROM "user_profile"`);
for(let i = 0; i < entries.length; i++) {
let words = entries[i].mutedWords
.map(line => {
const regexp = line.join(" ").match(/^\/(.+)\/(.*)$/);
if (regexp) {
// convert regexp's
try {
new RE2(regexp[1], regexp[2]);
return `/${regexp[1]}/${regexp[2]}`;
} catch (err) {
// invalid regex, ignore it
return [];
}
} else {
// remove empty segments
return line.filter(x => x !== '');
}
})
// remove empty lines
.filter(x => !(Array.isArray(x) && x.length === 0));

await queryRunner.connection.createQueryBuilder()
.update('user_profile')
.set({
mutedWords: words
})
.where('userId = :id', { id: entries[i].userId })
.execute();
}
}

async down(queryRunner) {
let entries = await queryRunner.query(`SELECT "userId", "mutedWords" FROM "user_profile"`);
for(let i = 0; i < entries.length; i++) {
let words = entries[i].mutedWords
.map(line => {
if (Array.isArray(line)) {
return line;
} else {
// do not split regex at spaces again
return [line];
}
})
// remove empty lines
.filter(x => !(Array.isArray(x) && x.length === 0));

await queryRunner.connection.createQueryBuilder()
.update('user_profile')
.set({
mutedWords: words
})
.where('userId = :id', { id: entries[i].userId })
.execute();
}
}
}
Loading

0 comments on commit 1ce8da6

Please sign in to comment.