1
0
mirror of https://github.com/hotomoe/hotomoe synced 2024-12-05 10:18:09 +09:00

Merge branch 'develop'

This commit is contained in:
syuilo 2019-05-07 18:56:33 +09:00
commit 2d04a3d6d2
No known key found for this signature in database
GPG Key ID: BDC4C49D06AB9D69
25 changed files with 979 additions and 195 deletions

View File

@ -149,3 +149,6 @@ autoAdmin: true
# Clustering
#clusterLimit: 1
# IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4

View File

@ -73,6 +73,17 @@ mongodb:
8. master ブランチに戻す
9. enjoy
11.11.2 (2019/05/07)
--------------------
### Fixes
* IPv4 onlyホストからDualstackホストにAP deliverできない問題を修正
* ストリーミングに接続するまでラグがある問題を修正
* 2段階認証のコードが0から始まる時正しく入力できない問題を修正
* ユーザーの更新日時が新しい順で更新日時がnullのユーザーが先頭に来る問題を修正
* 値選択時の問題を修正
* リバーシでマップの変更が反映されない問題を修正
* リバーシで対局終了直後に盤面を巻き戻してもすぐ最終ターンまでリセットされる問題を修正
11.11.1 (2019/05/05)
--------------------
### Fixes

View File

@ -61,6 +61,7 @@ common:
month-and-day: "{day}. {month}."
trash: "Koš"
drive: "Disk"
pages: "Stránky"
messaging: "Konverzace"
home: "Domů"
deck: "Deck"
@ -71,12 +72,20 @@ common:
favorites: "Oblíbené"
permissions:
"read:account": "Zobrazit informace o účtu"
"write:account": "Narábět s účtem"
"read:blocks": "Prohlížet blokování"
"write:blocks": "Narábět s blokováním"
"read:drive": "Prohlížet Disk"
"write:drive": "Pracovat s Diskem"
"read:favorites": "Prohlížet oblíbené"
"write:favorites": "Narábět s oblíbeními"
"read:following": "Prohlížet následování"
"write:following": "Pracovat s následováním"
"read:messaging": "Prohlížet konverzaci"
"write:messaging": "Pracovat s konverzaci"
"read:mutes": "Prohlížet ztlumené"
"write:mutes": "Narábět s utíšeními"
"write:notes": "Narábět s poznámkami"
"read:notifications": "Prohlížet oznámení"
"write:notifications": "Pracovat s oznámeními"
"read:reactions": "Prohlížet reakce"
@ -377,6 +386,7 @@ common/views/components/theme.vue:
installed: "\"{}\" byl nainstalován"
create-a-theme: "Vytvořit motiv"
save-created-theme: "Uložit motiv"
text-color: "Barva textu"
base-theme: "Základní vzhled"
base-theme-light: "Světlý"
base-theme-dark: "Tmavý"
@ -454,6 +464,7 @@ common/views/components/user-menu.vue:
suspend: "Zmrazit"
common/views/components/poll.vue:
vote-count: "{} hlasů"
total-votes: "{} hlasů celkem"
vote: "Hlasovat"
show-result: "Podívat se na výsledky"
voted: "Už jste hlasovaly"
@ -464,10 +475,21 @@ common/views/components/poll.vue:
remaining-seconds: "zbývá {s} sekund"
common/views/components/poll-editor.vue:
no-only-one-choice: "Musíte vybrat alespoň dvě možnosti"
choice-n: "Volba {}"
remove: "Odstranit tuto možnost"
add: "+ Přidat možnost"
destroy: "Zahodit dotazník"
expiration: "Termín"
infinite: "Nekonečne"
at: "Výběr data a času"
deadline-date: "Termín ukončení"
interval: "Trvání"
second: "Sekunda"
minute: "Minuta"
hour: "Hodina"
day: "Ne"
common/views/components/reaction-picker.vue:
choose-reaction: "Vyberte svoji reakci"
common/views/components/emoji-picker.vue:
custom-emoji: "Emoji"
people: "Lidé"
@ -1198,3 +1220,42 @@ deck/deck.user-column.vue:
activity: "Aktivita"
dev/views/new-app.vue:
app-name-desc: "Jméno vaší aplikace"
pages:
title: "Titulek"
blocks:
post: "Formulář pro psaní"
_post:
text: "Obsah"
_textInput:
text: "Titulek"
_textareaInput:
text: "Titulek"
_numberInput:
text: "Titulek"
_switch:
text: "Titulek"
_counter:
text: "Titulek"
_button:
text: "Titulek"
_action:
_dialog:
content: "Obsah"
script:
categories:
random: "Náhodně"
list: "Seznamy"
blocks:
_join:
arg1: "Seznamy"
random: "Náhodně"
_randomPick:
arg1: "Seznamy"
_dailyRandomPick:
arg1: "Seznamy"
_seedRandomPick:
arg2: "Seznamy"
_pick:
arg1: "Seznamy"
types:
array: "Seznamy"

View File

@ -53,6 +53,7 @@ common:
month-and-day: "{day}/{month}"
trash: "Papierkorb"
drive: "Drive"
pages: "Seite"
messaging: "Unterhaltungen"
home: "Home"
deck: "Stapel"
@ -64,6 +65,7 @@ common:
permissions:
"read:account": "Accountinformationen anzeigen."
"write:account": "Accountinformationen bearbeiten."
"read:blocks": "Blöcke anzeigen"
"read:drive": "Dateien anzeigen"
"write:drive": "Dateien bearbeiten"
"read:favorites": "Favoriten anzeigen"
@ -718,25 +720,6 @@ deck/deck.user-column.vue:
docs:
edit-this-page-on-github: "Hast Du einen Fehler gefunden oder Lust, diese Dokumentation zu verbessern?"
edit-this-page-on-github-link: "Seite auf GitHub bearbeiten!"
api:
entities:
properties: "Eigenschaften"
endpoints:
params: "Parameter"
no-params: "Keine Parameter."
res: "Antwort"
require-credential: "Dieser Endpunkt erfordert eine Authentifizierung."
require-permission: "Dieser Endpunkt erfordert die {permission} Berechtigung."
has-limit: "Es gibt eine Ratenbegrenzung."
duration-limit: "Es sind maximal {max} Anfragen pro {duration} Millisekunden möglich."
min-interval-limit: "Es ist nur eine Anfrage alle {interval} Millisekunden möglich."
show-src: "Quellcode anzeigen."
show-src-link: "Quellcode auf GitHub anzeigen"
generated: "Dieses Dokument wird automatisch anhand der API-Definition generiert."
props:
name: "Name"
type: "Typ"
description: "Beschreibung"
dev/views/index.vue:
manage-apps: "Anwendungen verwalten"
dev/views/apps.vue:
@ -753,3 +736,24 @@ dev/views/new-app.vue:
authority: "Berechtigungen"
authority-desc: "Nur die hier eingetragenen Berechtigungen, werden per API zur Verfügung stehen."
authority-warning: "Dies kann auch nach dem erstellen der Anwendung geändert werden, allerdings werden dann alle bisher generierten Token ungültig."
pages:
blocks:
post: "\"Neuer Beitrag\"-Formular"
script:
categories:
random: "Zufällige Auswahl"
list: "Listen"
blocks:
_join:
arg1: "Listen"
random: "Zufällige Auswahl"
_randomPick:
arg1: "Listen"
_dailyRandomPick:
arg1: "Listen"
_seedRandomPick:
arg2: "Listen"
_pick:
arg1: "Listen"
types:
array: "Listen"

View File

@ -34,6 +34,7 @@ common:
signup: "Sign up"
signout: "Logout"
reload-to-apply-the-setting: "You'll need to reload the page to reflect this setting. Do you want to reload it now?"
fetching-as-ap-object: "Inquiring to union"
got-it: "Got it!"
customization-tips:
title: "Customization tips"
@ -61,6 +62,7 @@ common:
month-and-day: "{month}/{day}"
trash: "Trash"
drive: "Drive"
pages: "Pages"
messaging: "Talk"
home: "Home"
deck: "Deck"
@ -1621,25 +1623,6 @@ deck/deck.user-column.vue:
docs:
edit-this-page-on-github: "Found an error, or do you want to contribute to the documentation?"
edit-this-page-on-github-link: "Edit this page at GitHub!"
api:
entities:
properties: "Properties"
endpoints:
params: "Parameters"
no-params: "No parameter."
res: "Response"
require-credential: "This endpoint requires the authentication information."
require-permission: "This endpoint requires {permission} permission."
has-limit: "There is a rate limit."
duration-limit: "If you have sent your requests more than {max} times in {duration} milliseconds, you will be unable to send more requests."
min-interval-limit: "If {interval} milliseconds haven't passed since the last request, you can't send a request."
show-src: "You can view the source code for this endpoint."
show-src-link: "See the code on GitHub"
generated: "This document is generated by the API definition."
props:
name: "Name"
type: "Type"
description: "Description"
dev/views/index.vue:
manage-apps: "Manage apps"
dev/views/apps.vue:
@ -1648,13 +1631,252 @@ dev/views/apps.vue:
app-missing: "No apps"
dev/views/new-app.vue:
new-app: "New Application"
new-app-info: "You can also create an application with the API. (app/create)"
create-app: "Creating application"
app-name: "Application name"
app-name-placeholder: "ex) Misskey for iOS"
app-name-desc: "The name of your app"
app-overview: "Application summary"
app-overview-placeholder: " ex) Misskey iOS Client."
app-overview-desc: "A brief description, or an introduction of your app."
callback-url: "The callback URL (optional)"
callback-url-placeholder: "ex) https://your.app.example.com/callback.php"
callback-url-desc: "The URL to redirect to after the user is authenticated via the authentication form."
authority: "Permissions"
authority-desc: "Only the functions requested here can be accessed via the API."
authority-warning: "You can change it even after creating the application, but if you give different permissions, all user keys associated at that time will be invalidated."
pages:
new-page: "Create a page"
edit-page: "Edit a page"
read-page: "Viewing the source"
page-created: "Created the page!"
page-updated: "Updated the page"
are-you-sure-delete: "Do you want to delete this page?"
page-deleted: "The page has been deleted"
edit-this-page: "Edit this page"
view-source: "View Source"
view-page: "View page"
inspector: "Inspector"
content: "Page block"
variables: "Variables"
more-details: "Description"
title: "Title"
url: "Page URL"
summary: "Summary of page"
align-center: "Center align"
font: "Font"
fontSerif: "Serif"
fontSansSerif: "Sans Serif"
set-eye-catching-image: "Set an eye-catching image"
remove-eye-catching-image: "Delete an eye-catching image"
choose-block: "Add a block"
select-type: "Select a type"
enter-variable-name: "Please choose a variable name"
the-variable-name-is-already-used: "This variable name is already used"
content-blocks: "Content"
input-blocks: "Input"
special-blocks: "Special"
post-from-post-form: "Post this content"
posted-from-post-form: "Posted!"
blocks:
text: "Text"
textarea: "Text area"
section: "Section"
image: "Images"
button: "Button"
if: "If"
_if:
variable: "Variables"
post: "Post form"
_post:
text: "Content"
textInput: "Text input"
_textInput:
name: "Variable name"
text: "Title"
default: "Default value"
textareaInput: "Multiple type text input"
_textareaInput:
name: "Variable name"
text: "Title"
default: "Default value"
numberInput: "Numeric input"
_numberInput:
name: "Variable name"
text: "Title"
default: "Default value"
switch: "Switch"
_switch:
name: "Variable name"
text: "Title"
default: "Default value"
counter: "Counter"
_counter:
name: "Variable name"
text: "Title"
inc: "Increase number"
_button:
text: "Title"
action: "Operation when the button pressed"
_action:
dialog: "Show a dialog"
_dialog:
content: "Content"
resetRandom: "Reset a random number"
script:
categories:
flow: "Control"
logical: "Logical operation"
operation: "Compute"
comparison: "Compare"
random: "Random"
value: "Value"
fn: "Function"
text: "Text operation"
convert: "Variable"
list: "Lists"
blocks:
text: "Text"
multiLineText: "Text (Multiple lines)"
textList: "List of text"
_textList:
info: "Separate each one with a newline"
strLen: "Length of text"
_strLen:
arg1: "Text"
strPick: "Extract character"
_strPick:
arg1: "Text"
arg2: "Position of character"
strReplace: "Replace string(s)"
_strReplace:
arg1: "Text"
arg2: "Before replacement"
arg3: "After replacement"
strReverse: "Flip text"
_strReverse:
arg1: "Text"
_join:
arg1: "Lists"
arg2: "Separator"
add: "+ Plus"
_add:
arg1: "A"
arg2: "B"
subtract: "- Minus"
_subtract:
arg1: "A"
arg2: "B"
multiply: "× Multiply"
_multiply:
arg1: "A"
arg2: "B"
divide: "÷ Divide"
_divide:
arg1: "A"
arg2: "B"
_remind:
arg1: "A"
arg2: "B"
eq: "A and B are equal"
_eq:
arg1: "A"
arg2: "B"
notEq: "A and B are different"
_notEq:
arg1: "A"
arg2: "B"
and: "A and B"
_and:
arg1: "A"
arg2: "B"
or: "A or B"
_or:
arg1: "A"
arg2: "B"
lt: "A is smaller than B"
_lt:
arg1: "A"
arg2: "B"
gt: "A is bigger than B"
_gt:
arg1: "A"
arg2: "B"
ltEq: "A is smaller or same than B"
_ltEq:
arg1: "A"
arg2: "B"
gtEq: "A is bigger or same than B"
_gtEq:
arg1: "A"
arg2: "B"
if: "Branch"
_if:
arg1: "If"
arg2: "then"
arg3: "else"
not: "denial"
_not:
arg1: "denial"
random: "Random"
_random:
arg1: "Probability"
rannum: "Random number"
_rannum:
arg1: "Minimum"
arg2: "Maximum"
randomPick: "Choose at random from the list"
_randomPick:
arg1: "Lists"
dailyRandom: "Random (Daily for each user)"
_dailyRandom:
arg1: "Probability"
dailyRannum: "Random number (Daily for each user)"
_dailyRannum:
arg1: "Minimum"
arg2: "Maximum"
dailyRandomPick: "Choose at random from the list (Daily for each user)"
_dailyRandomPick:
arg1: "Lists"
_seedRandom:
arg1: "Seed"
arg2: "Probability"
_seedRannum:
arg1: "Seed"
arg2: "Minimum"
arg3: "Maximum"
_seedRandomPick:
arg1: "Seed"
arg2: "Lists"
_DRPWPM:
arg1: "List of text"
_pick:
arg1: "Lists"
arg2: "Position"
number: "Number"
stringToNumber: "Text to number"
_stringToNumber:
arg1: "Text"
numberToString: "Number to text"
_numberToString:
arg1: "Number"
splitStrByLine: "Split the text by lines"
_splitStrByLine:
arg1: "Text"
ref: "Variables"
fn: "Function"
_fn:
slots: "Slots"
arg1: "Output"
for: "Repeat"
thereIsEmptySlot: "Slot {slot} is empty!"
types:
string: "Text"
number: "Number"
boolean: "Flag"
array: "Lists"
stringArray: "List of text"
emptySlot: "Empty slot"
enviromentVariables: "Environment variable"
pageVariables: "Page element"
argVariables: "Input slot"

View File

@ -969,3 +969,24 @@ deck:
rename: "Renombrar"
deck/deck.user-column.vue:
activity: "Actividad"
pages:
blocks:
post: "Formulario"
script:
categories:
random: "Aleatorio"
list: "Listas"
blocks:
_join:
arg1: "Listas"
random: "Aleatorio"
_randomPick:
arg1: "Listas"
_dailyRandomPick:
arg1: "Listas"
_seedRandomPick:
arg2: "Listas"
_pick:
arg1: "Listas"
types:
array: "Listas"

View File

@ -60,6 +60,7 @@ common:
month-and-day: "{day}-{month}"
trash: "Corbeille"
drive: "Drive"
pages: "Pages"
messaging: "Conversations"
home: "Principal"
deck: "Deck"
@ -1469,6 +1470,7 @@ mobile/views/pages/drive.vue:
contextmenu:
upload: "Téléverser un fichier"
create-folder: "Créer un dossier"
rename-folder: "Renommer le dossier"
mobile/views/pages/user-lists.vue:
title: "Listes"
mobile/views/pages/signup.vue:
@ -1570,25 +1572,6 @@ deck/deck.user-column.vue:
docs:
edit-this-page-on-github: "Vous avez trouvé une erreur ou vous voulez contribuer à la documentation ?"
edit-this-page-on-github-link: "Éditez cette page sur GitHub !"
api:
entities:
properties: "Propriétés"
endpoints:
params: "Paramètres"
no-params: "Aucun paramètre"
res: "Réponse"
require-credential: "Ce point de communication nécessite une authentification."
require-permission: "Ce point de communication nécessite la permission {permission}."
has-limit: "Il ya un taux limite."
duration-limit: "Si vous avez envoyé plus de {max} requêtes en {duration} millisecondes, vous ne serez pas en mesure d'envoyer d'autres requêtes."
min-interval-limit: "Vous ne pourrez pas effectuer une nouvelle requête si {interval} millisecondes ne se sont pas écoulées depuis la dernière demande."
show-src: "Vous pouvez voir le code source ce point de communication."
show-src-link: "Consulter le code sur GitHub"
generated: "Ce document est généré à partir de la définition de lAPI."
props:
name: "Nom"
type: "Type"
description: "Description"
dev/views/index.vue:
manage-apps: "Gestion des applications"
dev/views/apps.vue:
@ -1605,3 +1588,142 @@ dev/views/new-app.vue:
authority: "Autorisations "
authority-desc: "Sont accessibles via lAPI, uniquement les fonctionnalités demandées ici."
authority-warning: "Vous pouvez le changer même après avoir créé l'application, mais si vous attribuez une nouvelle permission, toutes les clés utilisateur associées seront dès lors invalides."
pages:
title: "Titre"
blocks:
text: "Texte"
textarea: "Zone de texte"
section: "Section"
image: "Images"
button: "Bouton"
if: "Si"
_if:
variable: "Variables"
post: "Champs de publication"
_post:
text: "Contenu"
_textInput:
name: "Nom de la variable"
text: "Titre"
default: "Valeur par défaut"
_textareaInput:
name: "Nom de la variable"
text: "Titre"
default: "Valeur par défaut"
_numberInput:
name: "Nom de la variable"
text: "Titre"
default: "Valeur par défaut"
switch: "Basculer"
_switch:
name: "Nom de la variable"
text: "Titre"
default: "Valeur par défaut"
counter: "Compteur"
_counter:
name: "Nom de la variable"
text: "Titre"
_button:
text: "Titre"
_action:
_dialog:
content: "Contenu"
script:
categories:
flow: "Contrôle"
logical: "Opération logique"
operation: "Calculer"
comparison: "Comparer"
random: "Aléatoire"
value: "Valeur"
fn: "Fonction"
list: "Listes"
blocks:
text: "Texte"
strLen: "Longueur du texte"
_strLen:
arg1: "Texte"
strPick: "Extraire un caractère"
_strPick:
arg1: "Texte"
_strReplace:
arg1: "Texte"
arg2: "Avant le remplacement"
arg3: "Après le remplacement"
strReverse: "Inverser le texte"
_strReverse:
arg1: "Texte"
_join:
arg1: "Listes"
arg2: "Séparateur"
add: "+ Plus"
_add:
arg1: "A"
arg2: "B"
subtract: "- Moins"
_subtract:
arg1: "A"
arg2: "B"
multiply: "× Multiplier par"
_multiply:
arg1: "A"
arg2: "B"
divide: "÷ Diviser par"
_divide:
arg1: "A"
arg2: "B"
_remind:
arg1: "A"
arg2: "B"
eq: "A et B sont équivalents"
_eq:
arg1: "A"
arg2: "B"
notEq: "A et B sont différents"
_notEq:
arg1: "A"
arg2: "B"
_and:
arg1: "A"
arg2: "B"
_or:
arg1: "A"
arg2: "B"
_lt:
arg1: "A"
arg2: "B"
_gt:
arg1: "A"
arg2: "B"
_ltEq:
arg1: "A"
arg2: "B"
_gtEq:
arg1: "A"
arg2: "B"
random: "Aléatoire"
_randomPick:
arg1: "Listes"
_dailyRandomPick:
arg1: "Listes"
_seedRandomPick:
arg2: "Listes"
_pick:
arg1: "Listes"
number: "Numérique"
_stringToNumber:
arg1: "Texte"
_numberToString:
arg1: "Numérique"
_splitStrByLine:
arg1: "Texte"
fn: "Fonction"
_fn:
arg1: "Sortie"
for: "Répéter"
types:
string: "Texte"
number: "Numérique"
array: "Listes"
stringArray: "Liste de texte"
enviromentVariables: "Variables d'environnement"

View File

@ -1246,25 +1246,6 @@ deck/deck.user-column.vue:
docs:
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
edit-this-page-on-github-link: "このページをGitHubで編集"
api:
entities:
properties: "プロパティ"
endpoints:
params: "パラメータ"
no-params: "パラメータはありません"
res: "レスポンス"
require-credential: "このエンドポイントは認証情報が必須です。"
require-permission: "このエンドポイントは{permission}の権限を必要とします。"
has-limit: "レートリミットがあります。"
duration-limit: "直近{duration}ミリ秒の間のこのエンドポイントへのリクエスト数の合計が{max}を超える場合はリクエストできません。"
min-interval-limit: "前回のリクエストから{interval}ミリ秒経っていない場合はリクエストできません。"
show-src: "このエンドポイントのソースコードも閲覧できます。"
show-src-link: "コードをGitHubで見る"
generated: "このドキュメントはAPI定義に基づき自動生成されています。"
props:
name: "名前"
type: "型"
description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"
dev/views/apps.vue:
@ -1281,3 +1262,25 @@ dev/views/new-app.vue:
authority: "権限"
authority-desc: "ここにチェックした機能しかAPIからアクセスできひんから気ぃつけてな"
authority-warning: "アプリ作った後でも変えれるけど、新しいやつ追加したらそん時関連付いてるユーザーキーは全部ほかされるで。"
pages:
blocks:
image: "画像"
post: "投稿フォーム"
script:
categories:
random: "いんじゃんほい"
list: "リスト"
blocks:
_join:
arg1: "リスト"
random: "いんじゃんほい"
_randomPick:
arg1: "リスト"
_dailyRandomPick:
arg1: "リスト"
_seedRandomPick:
arg2: "リスト"
_pick:
arg1: "リスト"
types:
array: "リスト"

View File

@ -34,6 +34,7 @@ common:
signup: "신규 등록"
signout: "로그아웃"
reload-to-apply-the-setting: "이 설정을 적용하려면 페이지를 새로고침해야 합니다. 바로 새로고침하시겠습니까?"
fetching-as-ap-object: "연합에서 조회 중"
got-it: "알겠습니다"
customization-tips:
title: "커스터마이징 도움말"
@ -61,6 +62,7 @@ common:
month-and-day: "{month}월 {day}일"
trash: "휴지통"
drive: "드라이브"
pages: "페이지"
messaging: "대화"
home: "홈"
deck: "덱"
@ -72,8 +74,23 @@ common:
permissions:
"read:account": "계정 정보 보기"
"write:account": "계정 정보 변경"
"read:blocks": "차단 보기"
"write:blocks": "차단 수정"
"read:drive": "드라이브 보기"
"write:drive": "드라이브 수정"
"read:favorites": "즐겨찾기 보기"
"write:favorites": "즐겨찾기 수정"
"read:following": "팔로우 정보 보기"
"write:following": "팔로잉, 팔로우 수정"
"read:messaging": "대화 보기"
"write:messaging": "대화 수정"
"read:mutes": "뮤트 보기"
"write:mutes": "뮤트 수정"
"write:notes": "글 작성, 삭제"
"read:notifications": "글 보기"
"write:notifications": "알림 수정"
"read:reactions": "리액션 보기"
"write:reactions": "리액션 수정"
"write:votes": "투표하기"
empty-timeline-info:
follow-users-to-make-your-timeline: "사용자를 팔로우하면 글이 타임라인에 표시됩니다."
@ -293,12 +310,12 @@ auth/views/form.vue:
accept: "접근 권한 허용"
auth/views/index.vue:
loading: "로드 중"
denied: "플리케이션의 연계를 취소하였습니다."
denied: "플리케이션의 연계를 취소하였습니다."
denied-paragraph: "이 앱이 당신의 계정에 액세스할 수 없습니다."
already-authorized: "이 앱은 이미 연결되어 있습니다."
allowed: "플리케이션의 연동을 허용하였습니다."
callback-url: "플리케이션으로 돌아갑니다."
please-go-back: "플리케이션으로 돌아가여 시도하여 주십시오."
allowed: "플리케이션의 연동을 허용하였습니다."
callback-url: "플리케이션으로 돌아갑니다."
please-go-back: "플리케이션으로 돌아가여 시도하여 주십시오."
error: "세션이 존재하지 않습니다."
sign-in: "로그인 해주시기 바랍니다"
common/views/pages/explore.vue:
@ -474,8 +491,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: "스팸 신고"
@ -483,8 +504,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: "\"{}\"에 투표하기"
vote-count: "{}표"
@ -668,6 +693,7 @@ common/views/components/user-list-editor.vue:
delete-are-you-sure: "리스트 \"$1\"을 삭제하시겠습니까?"
deleted: "삭제하였습니다"
common/views/components/user-lists.vue:
create-list: "리스트 만들기"
list-name: "리스트 이름"
common/views/widgets/broadcast.vue:
fetching: "확인중"
@ -946,7 +972,7 @@ common/views/components/api-settings.vue:
sending: "응답을 기다리는 중"
response: "결과"
desktop/views/components/settings.apps.vue:
no-apps: "연결된 플리케이션이 없습니다"
no-apps: "연결된 플리케이션이 없습니다"
common/views/components/drive-settings.vue:
max: "최대 용량"
in-use: "사용중"
@ -1194,7 +1220,9 @@ admin/views/users.vue:
unsuspend-confirm: "정지를 해제하시겠습니까?"
unsuspended: "정지를 해제하였습니다"
make-silence: "침묵"
silence-confirm: "침묵으로 설정합니까?"
unmake-silence: "침묵 해제"
unsilence-confirm: "침묵 해제하시겠습니까?"
verify: "공식 계정으로 설정"
verify-confirm: "공식 계정으로 설정하시겠습니까?"
verified: "공식 계정으로 설정하였습니다"
@ -1388,6 +1416,7 @@ desktop/views/widgets/polls.vue:
desktop/views/widgets/post-form.vue:
title: "글쓰기"
note: "글쓰기"
something-happened: "알 수 없는 문제로 글을 게시할 수 없습니다."
desktop/views/widgets/profile.vue:
update-banner: "클릭하여 배너 변경"
update-avatar: "클릭하여 아바타 변경"
@ -1410,6 +1439,7 @@ mobile/views/components/drive.vue:
here-is-root: "현재 경로는 루트 경로로 폴더가 아닙니다."
url-prompt: "업로드 하려는 파일의 URL"
uploading: "업로드를 요청하였습니다. 업로드가 완료될 때까지 시간이 소요될 수 있습니다."
folder-name-cannot-empty: "폴더 이름은 비워둘 수 없습니다."
mobile/views/components/drive-file-chooser.vue:
select-file: "파일 선택"
mobile/views/components/drive-folder-chooser.vue:
@ -1486,7 +1516,11 @@ mobile/views/components/ui.nav.vue:
mobile/views/pages/drive.vue:
contextmenu:
upload: "파일 업로드"
url-upload: "파일을 URL로부터 업로드"
create-folder: "폴더 만들기"
rename-folder: "폴더 이름 바꾸기"
move-folder: "이 폴더를 이동"
delete-folder: "이 폴더를 삭제"
mobile/views/pages/user-lists.vue:
title: "리스트"
mobile/views/pages/signup.vue:
@ -1589,25 +1623,6 @@ deck/deck.user-column.vue:
docs:
edit-this-page-on-github: "틀린 점이나 개선할 점을 찾으셨나요?"
edit-this-page-on-github-link: "이 페이지를 GitHub에서 편집"
api:
entities:
properties: "프로퍼티"
endpoints:
params: "매개변수"
no-params: "매개변수가 없습니다"
res: "응답"
require-credential: "이 엔드포인트는 인증 정보가 필수적입니다."
require-permission: "이 엔드포인트는 {permission} 권한을 필요로 합니다."
has-limit: "Rate limit(요청 비율 제한)이 있습니다."
duration-limit: "최근 {duration} 밀리초 사이에 엔드포인트로의 요청 수의 합계가 {max}를 넘는 경우 요청이 불가능합니다."
min-interval-limit: "이전 요청으로부터 {interval} 밀리초가 지나지 않은 경우 요청할 수 없습니다."
show-src: "이 엔드포인트에 대한 소스코드를 확인할 수 있습니다."
show-src-link: "코드를 Github에서 보기"
generated: "이 문서는 API 정의를 기반으로 자동으로 생성됩니다."
props:
name: "이름"
type: "자료형"
description: "설명"
dev/views/index.vue:
manage-apps: "앱 관리"
dev/views/apps.vue:
@ -1615,12 +1630,64 @@ dev/views/apps.vue:
create-app: "앱 생성"
app-missing: "앱 없음"
dev/views/new-app.vue:
create-app: "어플리케이션 생성"
app-name: "어플리케이션 이름"
new-app: "새 애플리케이션"
new-app-info: "애플리케이션은 API에서도 생성할 수 있습니다. (app/create)"
create-app: "애플리케이션 생성"
app-name: "애플리케이션 이름"
app-name-placeholder: "ex) Misskey for iOS"
app-name-desc: "앱의 이름."
app-overview: "앱 개요"
app-overview-placeholder: "ex) Misskey iOS 클라이언트."
app-overview-desc: "애플리케이션에 대한 간단한 설명이나 소개"
callback-url: "콜백 URL (옵션)"
callback-url-placeholder: "ex) https://your.app.example.com/callback.php"
callback-url-desc: "사용자가 인증 폼에서 인증한 뒤 리다이렉트할 URL을 설정합니다."
authority: "권한"
authority-desc: "이곳에서 요청한 권한에 한정하여 API로 액세스할 수 있습니다."
authority-warning: "앱을 생성한 뒤에도 변경할 수 있지만, 새로운 권한을 설정하는 경우 그 시점부터 예전에 발급받았던 유저 키는 모두 무효화됩니다."
pages:
new-page: "페이지 만들기"
edit-page: "페이지 수정"
read-page: "소스 표시중"
page-created: "페이지를 만들었습니다"
page-updated: "페이지를 수정했습니다"
are-you-sure-delete: "이 페이지를 삭제하시겠습니까?"
title: "제목"
blocks:
image: "이미지"
post: "게시 양식"
_post:
text: "내용"
_textInput:
text: "제목"
_textareaInput:
text: "제목"
_numberInput:
text: "제목"
_switch:
text: "제목"
_counter:
text: "제목"
_button:
text: "제목"
_action:
_dialog:
content: "내용"
script:
categories:
random: "랜덤"
list: "리스트"
blocks:
_join:
arg1: "리스트"
random: "랜덤"
_randomPick:
arg1: "리스트"
_dailyRandomPick:
arg1: "리스트"
_seedRandomPick:
arg2: "리스트"
_pick:
arg1: "리스트"
types:
array: "리스트"

View File

@ -619,13 +619,22 @@ deck/deck.user-column.vue:
docs:
edit-this-page-on-github: "Heb je een fout ontdekt of wil je bijdragen aan de documentatie? "
edit-this-page-on-github-link: "Bewerk deze pagina op GitHub!"
api:
entities:
properties: "Eigenschappen"
endpoints:
params: "Parameters"
res: "Antwoord"
props:
name: "Naam"
type: "Type"
description: "Omschrijving"
pages:
blocks:
image: "Afbeeldingen"
script:
categories:
list: "Lijsten"
blocks:
_join:
arg1: "Lijsten"
_randomPick:
arg1: "Lijsten"
_dailyRandomPick:
arg1: "Lijsten"
_seedRandomPick:
arg2: "Lijsten"
_pick:
arg1: "Lijsten"
types:
array: "Lijsten"

View File

@ -489,14 +489,24 @@ deck/deck.user-column.vue:
following: "Følger"
followers: "Følgere"
images: "Bilder"
docs:
api:
entities:
properties: "Egenskaper"
endpoints:
params: "Parametere"
res: "Respons"
props:
name: "Navn"
type: "Type"
description: "Beskrivelse"
pages:
blocks:
image: "Bilder"
script:
categories:
random: "Tilfeldig"
list: "Lister"
blocks:
_join:
arg1: "Lister"
random: "Tilfeldig"
_randomPick:
arg1: "Lister"
_dailyRandomPick:
arg1: "Lister"
_seedRandomPick:
arg2: "Lister"
_pick:
arg1: "Lister"
types:
array: "Lister"

View File

@ -54,6 +54,7 @@ common:
month-and-day: "{month}-{day}"
trash: "Kosz"
drive: "Dysk"
pages: "Strony"
messaging: "Rozmowy"
home: "Strona główna"
deck: "Tablice"
@ -127,6 +128,7 @@ common:
behavior: "Zachowanie"
fetch-on-scroll: "Automatycznie ładuj po przeciągnięciu w dół"
note-visibility: "Widoczność wpisów"
remember-note-visibility: "Zapamiętaj widoczność wpisów"
web-search-engine: "Wyszukiwarka internetowa"
line-width: "Szerokości linii"
line-width-thin: "Cienka"
@ -1190,23 +1192,6 @@ deck/deck.user-column.vue:
docs:
edit-this-page-on-github: "Znalazłeś błąd lub chcesz pomóc w tworzeniu dokumentacji?"
edit-this-page-on-github-link: "Edytuj stronę na GitHubie!"
api:
entities:
properties: "Właściwości"
endpoints:
params: "Parametry"
no-params: "Brak parametrów."
res: "Odpowiedź"
require-credential: "Punkt końcowy wymaga informacji o uwierzytelnieniu."
require-permission: "Ten punkt końcowy wymaga uprawnienia {permission}."
has-limit: "Istnieje limit częstotliwości."
min-interval-limit: "Nie możesz wykonać żądania przed upłynięciem {interval} od ostatniego żądania."
show-src: "Możesz zobaczyć kod źródłowy tego punktu końcowego."
show-src-link: "Zobacz kod na GitHubie"
props:
name: "Nazwa"
type: "Rodzaj"
description: "Opis"
dev/views/index.vue:
manage-apps: "Zarządzaj aplikacjami"
dev/views/apps.vue:
@ -1215,3 +1200,38 @@ dev/views/apps.vue:
dev/views/new-app.vue:
app-name: "Nazwa Aplikacji"
authority: "Uprawnienia"
pages:
title: "Tytuł"
blocks:
image: "Zdjęcia"
post: "Formularz tworzenia"
_textInput:
text: "Tytuł"
_textareaInput:
text: "Tytuł"
_numberInput:
text: "Tytuł"
_switch:
text: "Tytuł"
_counter:
text: "Tytuł"
_button:
text: "Tytuł"
script:
categories:
random: "Losowy"
list: "Listy"
blocks:
_join:
arg1: "Listy"
random: "Losowy"
_randomPick:
arg1: "Listy"
_dailyRandomPick:
arg1: "Listy"
_seedRandomPick:
arg2: "Listy"
_pick:
arg1: "Listy"
types:
array: "Listy"

View File

@ -274,18 +274,9 @@ deck/deck.user-column.vue:
timeline: "Linha do tempo"
docs:
edit-this-page-on-github-link: "Edite esta página no GitHub!"
api:
entities:
properties: "Propriedades"
endpoints:
params: "Parâmetros"
no-params: "Sem parâmetros"
res: "Resposta"
show-src-link: "Veja o código no GitHub"
generated: "Este documento foi gerado pelas definições da API."
props:
name: "Nome"
type: "Tipo"
description: "Descrição"
dev/views/index.vue:
manage-apps: "Gerenciar aplicativos"
pages:
blocks:
image: "Imagens"
post: "Formulário de publicação"

View File

@ -146,3 +146,9 @@ mobile/views/components/sub-note-content.vue:
poll: "Голосования"
mobile/views/pages/widgets.vue:
customization-tips: "Советы по настройке"
pages:
script:
categories:
random: "Случайно"
blocks:
random: "Случайно"

View File

@ -62,6 +62,7 @@ common:
month-and-day: "{month}月 {day}日"
trash: "垃圾箱"
drive: "网盘"
pages: "页面"
messaging: "聊天"
home: "首页"
deck: "Deck"
@ -1622,25 +1623,6 @@ deck/deck.user-column.vue:
docs:
edit-this-page-on-github: "发现错误或想要为文档做出贡献?"
edit-this-page-on-github-link: "在GitHub上编辑这个页面。"
api:
entities:
properties: "属性"
endpoints:
params: "参数"
no-params: "没有参数"
res: "回应"
require-credential: "此端点需要身份验证信息。"
require-permission: "此端点需要{permission}权限。"
has-limit: "有一个速率限制。"
duration-limit: "如果您发送请求在{duration}毫秒内多于{max}次,则无法发送更多请求。"
min-interval-limit: "如果自上次请求后未传递{interval}毫秒,则无法发送请求。"
show-src: "您可以查看此端点的源代码。"
show-src-link: "查阅GitHub上的代码"
generated: "该文档由API定义生成。"
props:
name: "名称"
type: "型号"
description: "描述"
dev/views/index.vue:
manage-apps: "管理应用"
dev/views/apps.vue:
@ -1663,3 +1645,247 @@ dev/views/new-app.vue:
authority: "权限"
authority-desc: "只能通过API访问此处请求的功能。"
authority-warning: "您可以在创建应用程序后对其进行更改,但如果您授予不同的权限,则当时关联的所有用户密钥都将失效。"
pages:
new-page: "创建页面"
edit-page: "编辑页面"
read-page: "查看源"
page-created: "页面已创建"
page-updated: "页面已更新"
are-you-sure-delete: "是否删除此页面?"
page-deleted: "该页面已被删除。"
edit-this-page: "编辑此页面"
view-source: "查看源代码"
view-page: "查看页面"
inspector: "检查器"
content: "页面内容"
variables: "变量"
variables-info: "您可以使用变量创建动态页面。在文本中通过<b>{变量名}</b>的写法来嵌入变量值。例如在文本<b>Hello { thing } world!</b>中,如果变量(thing)的值为<b>ai</b>,那么该文本会成为<b>Hello ai world!</b>。"
variables-info2: "因为变量的计算(计算变量值)是从上到下执行的,所以不能在变量中引用下面的变量。例如从上到下依次定义了<b>ABC</b>3个变量那么<b>C</b>中可以引用<b>A</b>或<b>B</b>,但是<b>A</b>无法引用<b>B</b>或<b>C</b>。"
variables-info3: "为了接收来自用户的输入,页面上设有“用户输入”块,在“变量名称”中设置要在其中保存输入值的变量名(变量会自动创建)。您可以使用该变量执行操作以响应用户输入。"
variables-info4: "通过使用函数,您可以将数值计算过程组合成可重用的形式。要创建函数,需要创建一个“函数”类型的变量。你可以将函数设定为槽函数(参数)的格式槽函数的值可作为函数中的变量使用。另外AiScript标准中还有一些函数会将函数作为参数(称为高阶函数)。\n除了已经预先定义的函数外您也可以将它们设置为这些高阶函数的槽函数。"
more-details: "详细说明"
title: "标题"
url: "页面URL"
summary: "页面摘要"
align-center: "居中"
font: "字体"
fontSerif: "衬线字体"
fontSansSerif: "无衬线字体"
choose-block: "添加块"
select-type: "类型选择"
enter-variable-name: "请确定变量名"
the-variable-name-is-already-used: "变量名已使用"
content-blocks: "内容"
input-blocks: "输入"
special-blocks: "特殊"
post-from-post-form: "发布此内容"
posted-from-post-form: "已发布"
blocks:
text: "文本"
textarea: "文本区域"
section: "章节"
image: "图片"
button: "按钮"
if: "如果"
_if:
variable: "变量"
post: "投稿形式"
_post:
text: "内容"
textInput: "文本输入"
_textInput:
name: "变量名"
text: "标题"
default: "默认值"
textareaInput: "多行文本输入"
_textareaInput:
name: "变量名"
text: "标题"
default: "默认值"
numberInput: "数值输入"
_numberInput:
name: "变量名"
text: "标题"
default: "默认值"
switch: "开关"
_switch:
name: "变量名"
text: "标题"
default: "默认值"
counter: "计数器"
_counter:
name: "变量名"
text: "标题"
inc: "增加值"
_button:
text: "标题"
action: "按下按钮时的行为"
_action:
dialog: "显示对话框"
_dialog:
content: "内容"
resetRandom: "随机值重置"
script:
categories:
flow: "控制"
logical: "逻辑运算"
operation: "计算"
comparison: "比较"
random: "随机"
value: "值"
fn: "函数"
text: "文本操作"
list: "列表"
blocks:
text: "文本"
multiLineText: "文本 (多行)"
textList: "文本列表"
_textList:
info: "情使用换行符分隔每行"
strLen: "文本长度"
_strLen:
arg1: "文本"
strPick: "字符提取"
_strPick:
arg1: "文本"
arg2: "字符位置"
strReplace: "文本替换"
_strReplace:
arg1: "文本"
arg2: "替换之前"
arg3: "替换之后"
strReverse: "文本反向"
_strReverse:
arg1: "文本"
join: "合并文本"
_join:
arg1: "列表"
arg2: "分隔符"
add: "+ 加"
_add:
arg1: "A"
arg2: "B"
subtract: "- 减"
_subtract:
arg1: "A"
arg2: "B"
multiply: "× 乘"
_multiply:
arg1: "A"
arg2: "B"
divide: "÷ 除"
_divide:
arg1: "A"
arg2: "B"
remind: "÷ 取模"
_remind:
arg1: "A"
arg2: "B"
eq: "A和B相等"
_eq:
arg1: "A"
arg2: "B"
notEq: "A和B不等"
_notEq:
arg1: "A"
arg2: "B"
and: "A和B"
_and:
arg1: "A"
arg2: "B"
or: "A或B"
_or:
arg1: "A"
arg2: "B"
lt: "< A小于B"
_lt:
arg1: "A"
arg2: "B"
gt: "> A大于B"
_gt:
arg1: "A"
arg2: "B"
ltEq: "<= A小于等于B"
_ltEq:
arg1: "A"
arg2: "B"
gtEq: ">= A大于等于B"
_gtEq:
arg1: "A"
arg2: "B"
if: "分支"
_if:
arg1: "如果"
arg2: "的话"
arg3: "否则"
random: "随机"
_random:
arg1: "概率"
rannum: "随机"
_rannum:
arg1: "最小"
arg2: "最大"
randomPick: "从列表中随机选择"
_randomPick:
arg1: "列表"
dailyRandom: "随机(每个用户每日)"
_dailyRandom:
arg1: "概率"
dailyRannum: "随机数(每个用户每日)"
_dailyRannum:
arg1: "最小"
arg2: "最大"
dailyRandomPick: "从列表中随机选择(每个用户每日)"
_dailyRandomPick:
arg1: "列表"
seedRandom: "随机 (种子)"
_seedRandom:
arg1: "种子"
arg2: "概率"
seedRannum: "随机数(种子)"
_seedRannum:
arg1: "种子"
arg2: "最小"
arg3: "最大"
seedRandomPick: "从列表中随机选择 (种子)"
_seedRandomPick:
arg1: "种子"
arg2: "列表"
_DRPWPM:
arg1: "文本列表"
pick: "从列表中选择"
_pick:
arg1: "列表"
arg2: "位置"
number: "数值"
stringToNumber: "文本到数字"
_stringToNumber:
arg1: "文本"
numberToString: "数字到文本"
_numberToString:
arg1: "数值"
splitStrByLine: "将文本按行拆分"
_splitStrByLine:
arg1: "文本"
ref: "变量"
fn: "函数"
_fn:
slots: "槽函数"
slots-info: "请使用换行符分隔每个槽函数"
arg1: "输出"
for: "重复"
_for:
arg1: "次数"
arg2: "处理"
typeError: "槽函数{slot}需要传入“{expect}”,但是实际传入为“{actual}”!"
thereIsEmptySlot: "槽函数{slot}为空!"
types:
string: "文本"
number: "数值"
boolean: "布尔值"
array: "列表"
stringArray: "文本列表"
emptySlot: "空白槽函数"
enviromentVariables: "环境变量"
pageVariables: "页面元素"
argVariables: "输入槽函数"

View File

@ -1,7 +1,7 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "11.11.1",
"version": "11.11.2",
"codename": "daybreak",
"repository": {
"type": "git",

View File

@ -21,7 +21,7 @@ export default class Stream extends EventEmitter {
const user = os.store.state.i;
this.stream = new ReconnectingWebsocket(wsUrl + (user ? `?i=${user.token}` : ''));
this.stream = new ReconnectingWebsocket(wsUrl + (user ? `?i=${user.token}` : ''), '', { minReconnectionDelay: 1 }); // https://github.com/pladaria/reconnecting-websocket/issues/91
this.stream.addEventListener('open', this.onOpen);
this.stream.addEventListener('close', this.onClose);
this.stream.addEventListener('message', this.onMessage);

View File

@ -200,6 +200,7 @@ export default Vue.extend({
//
if (this.game.isStarted && !this.game.isEnded) {
this.pollingClock = setInterval(() => {
if (this.game.isEnded) return;
const crc32 = CRC32.str(this.logs.map(x => x.pos.toString()).join(''));
this.connection.send('check', {
crc32: crc32

View File

@ -230,7 +230,7 @@ export default Vue.extend({
this.game.map = Object.values(maps).find(x => x.name == this.mapName).data;
}
this.$forceUpdate();
this.updateSettings();
this.updateSettings('map');
},
onPixelClick(pos, pixel) {

View File

@ -10,7 +10,7 @@
<span>{{ $t('password') }}</span>
<template #prefix><fa icon="lock"/></template>
</ui-input>
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required>
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="text" pattern="^[0-9]{6}$" autocomplete="off" spellcheck="false" required>
<span>{{ $t('@.2fa') }}</span>
<template #prefix><fa icon="gavel"/></template>
</ui-input>

View File

@ -5,10 +5,9 @@
<span class="label" ref="label"><slot name="label"></slot></span>
<div class="prefix" ref="prefix"><slot name="prefix"></slot></div>
<select ref="input"
:value="v"
v-model="v"
:required="required"
:disabled="disabled"
@input="$emit('input', $event.target.value)"
@focus="focused = true"
@blur="focused = false"
>
@ -56,20 +55,22 @@ export default Vue.extend({
},
data() {
return {
v: this.value,
focused: false
};
},
computed: {
v: {
get() {
return this.value;
},
set(v) {
this.$emit('input', v);
}
},
filled(): boolean {
return this.v != '' && this.v != null;
}
},
watch: {
value(v) {
this.v = v;
}
},
mounted() {
if (this.$refs.prefix) {
this.$refs.label.style.left = (this.$refs.prefix.offsetLeft + this.$refs.prefix.offsetWidth) + 'px';

View File

@ -44,6 +44,8 @@ export type Source = {
clusterLimit?: number;
id: string;
outgoingAddressFamily?: 'ipv4' | 'ipv6' | 'dual';
};
/**

View File

@ -101,11 +101,18 @@ export default async (user: ILocalUser, url: string, object: any) => {
* Resolve host (with cached, asynchrony)
*/
async function resolveAddr(domain: string) {
const af = config.outgoingAddressFamily || 'ipv4';
const useV4 = af == 'ipv4' || af == 'dual';
const useV6 = af == 'ipv6' || af == 'dual';
const promises = [];
if (!useV4 && !useV6) throw 'No usable address family available';
if (useV4) promises.push(resolveAddrInner(domain, { family: 4 }));
if (useV6) promises.push(resolveAddrInner(domain, { family: 6 }));
// v4/v6で先に取得できた方を採用する
return await promiseAny([
resolveAddrInner(domain, { family: 4 }),
resolveAddrInner(domain, { family: 6 })
]);
return await promiseAny(promises);
}
function resolveAddrInner(domain: string, options: IRunOptions = {}): Promise<string> {

View File

@ -85,8 +85,8 @@ export default define(meta, async (ps, me) => {
case '-follower': query.orderBy('user.followersCount', 'ASC'); break;
case '+createdAt': query.orderBy('user.createdAt', 'DESC'); break;
case '-createdAt': query.orderBy('user.createdAt', 'ASC'); break;
case '+updatedAt': query.orderBy('user.updatedAt', 'DESC'); break;
case '-updatedAt': query.orderBy('user.updatedAt', 'ASC'); break;
case '+updatedAt': query.andWhere('user.updatedAt IS NOT NULL').orderBy('user.updatedAt', 'DESC'); break;
case '-updatedAt': query.andWhere('user.updatedAt IS NOT NULL').orderBy('user.updatedAt', 'ASC'); break;
default: query.orderBy('user.id', 'ASC'); break;
}

View File

@ -302,16 +302,13 @@ export default class extends Channel {
}
@autobind
private async check(crc32: string) {
private async check(crc32: string | number) {
const game = await ReversiGames.findOne(this.gameId!);
if (game == null) throw new Error('game not found');
if (!game.isStarted) return;
// 互換性のため
if (game.crc32 == null) return;
if (crc32 !== game.crc32) {
if (crc32.toString() !== game.crc32) {
this.send('rescue', await ReversiGames.pack(game, this.user));
}
}