From e6089aec488b7e7a6784771bb9e7df23f7e72ef5 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 15 Apr 2019 02:45:16 +0900 Subject: [PATCH 01/14] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a6ef1deb5..1a550025da 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Organize and store your files! Want to post a picture you have already uploaded? --- -...and more! Experience Misskey with your own eyes at [misskey.xyz](https://misskey.xyz) or join one of the [other instances](https://joinmisskey.github.io/) that are available. +...and more! Experience Misskey with your own eyes at [misskey.io](https://misskey.io/) or join one of the [other instances](https://joinmisskey.github.io/) that are available. Screen shots ---------------------------------------------------------------- From 35c79c2f29fcbce14770fb4253b1cf5080e3de4d Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 15 Apr 2019 03:20:14 +0900 Subject: [PATCH 02/14] Fix bug --- src/models/repositories/auth-session.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/models/repositories/auth-session.ts b/src/models/repositories/auth-session.ts index 540c5466f5..32f7968233 100644 --- a/src/models/repositories/auth-session.ts +++ b/src/models/repositories/auth-session.ts @@ -14,7 +14,8 @@ export class AuthSessionRepository extends Repository { return await rap({ id: session.id, - app: Apps.pack(session.appId, me) + app: Apps.pack(session.appId, me), + token: session.token }); } } From 05654544195b873a7453ee96bc32eb26f6e9fa76 Mon Sep 17 00:00:00 2001 From: rinsuki <428rinsuki+git@gmail.com> Date: Mon, 15 Apr 2019 03:39:31 +0900 Subject: [PATCH 03/14] =?UTF-8?q?callbackUrl=E3=82=92app=E3=81=AE=E3=83=AC?= =?UTF-8?q?=E3=82=B9=E3=83=9D=E3=83=B3=E3=82=B9=E3=81=AB=E8=BF=BD=E5=8A=A0?= =?UTF-8?q?=20(#4686)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/repositories/app.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/models/repositories/app.ts b/src/models/repositories/app.ts index a0c0cf68cb..9266e43cdc 100644 --- a/src/models/repositories/app.ts +++ b/src/models/repositories/app.ts @@ -25,6 +25,7 @@ export class AppRepository extends Repository { return { id: app.id, name: app.name, + callbackUrl: app.callbackUrl, ...(opts.includeSecret ? { secret: app.secret } : {}), ...(me ? { isAuthorized: await AccessTokens.count({ From ea3e311528719f0e7c9173ca5c7fd0767f3ca3de Mon Sep 17 00:00:00 2001 From: rinsuki <428rinsuki+git@gmail.com> Date: Mon, 15 Apr 2019 03:48:54 +0900 Subject: [PATCH 04/14] =?UTF-8?q?=E7=B0=A1=E6=98=93=E7=9A=84=E3=81=AA?= =?UTF-8?q?=E3=83=91=E3=83=BC=E3=83=9F=E3=83=83=E3=82=B7=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E3=81=AE=E5=BE=8C=E6=96=B9=E4=BA=92=E6=8F=9B=20(#4687)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/api/endpoints/app/create.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts index 71f21fdf47..ba366cdeb8 100644 --- a/src/server/api/endpoints/app/create.ts +++ b/src/server/api/endpoints/app/create.ts @@ -3,6 +3,7 @@ import $ from 'cafy'; import define from '../../define'; import { Apps } from '../../../../models'; import { genId } from '../../../../misc/gen-id'; +import { unique } from '../../../../prelude/array'; export const meta = { tags: ['app'], @@ -34,6 +35,9 @@ export default define(meta, async (ps, user) => { // Generate secret const secret = rndstr('a-zA-Z0-9', 32); + // for backward compatibility + const permission = unique(ps.permission.map(v => v.replace(/^(.+)(\/|-)(read|write)$/, '$3:$1'))); + // Create account const app = await Apps.save({ id: genId(), @@ -41,7 +45,7 @@ export default define(meta, async (ps, user) => { userId: user ? user.id : null, name: ps.name, description: ps.description, - permission: ps.permission, + permission, callbackUrl: ps.callbackUrl, secret: secret }); From 97efd23ec8fe5529c39a64152fa7910b6ab62ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Mon, 15 Apr 2019 11:31:32 +0900 Subject: [PATCH 05/14] Update README.md [AUTOGEN] (#4691) --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 1a550025da..b163843a19 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,6 @@ Please see the [Contribution Guide](./CONTRIBUTING.md). - @@ -111,7 +110,6 @@ Please see the [Contribution Guide](./CONTRIBUTING.md). - @@ -165,7 +163,7 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
Hiroshi Seki weepnaga_rus ne_moni Melilot osapon
Hiroshi Seki weepnaga_rus ne_moni Melilot osapon
-**Last updated:** Sun, 14 Apr 2019 08:13:12 UTC +**Last updated:** Mon, 15 Apr 2019 01:59:07 UTC :four_leaf_clover: Copyright From 0452b75c3e1348b64d30b57fca3c825844c4f06a Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Mon, 15 Apr 2019 11:32:53 +0900 Subject: [PATCH 06/14] Fix #4688 (#4689) --- src/models/repositories/drive-file.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/models/repositories/drive-file.ts b/src/models/repositories/drive-file.ts index 7dd794d031..f117b38b24 100644 --- a/src/models/repositories/drive-file.ts +++ b/src/models/repositories/drive-file.ts @@ -19,7 +19,7 @@ export class DriveFileRepository extends Repository { } public getPublicUrl(file: DriveFile, thumbnail = false): string | null { - return thumbnail ? (file.thumbnailUrl || file.webpublicUrl || null) : (file.webpublicUrl || file.thumbnailUrl || file.url); + return thumbnail ? (file.thumbnailUrl || file.webpublicUrl || null) : (file.webpublicUrl || file.url); } public async clacDriveUsageOf(user: User['id'] | User): Promise { From f32ff95256d764c9a8617bd3013a7568b8c11f28 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 15 Apr 2019 11:33:08 +0900 Subject: [PATCH 07/14] New Crowdin translations (#4685) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Korean) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Czech) --- locales/cs-CZ.yml | 3 + locales/de-DE.yml | 159 ++++++++++++++++++++++++++++++++++++---------- locales/ko-KR.yml | 1 + 3 files changed, 130 insertions(+), 33 deletions(-) diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml index eaba7edc7d..653b08069a 100644 --- a/locales/cs-CZ.yml +++ b/locales/cs-CZ.yml @@ -69,6 +69,9 @@ common: following: "Sledovaní" followers: "Sledující" favorites: "Oblíbené" + permissions: + 'read:drive': "Prohlížet Disk" + 'write:drive': "Pracovat s Diskem" empty-timeline-info: follow-users-to-make-your-timeline: "Poznámky sledujících se zobrazí ve vaší časové ose" explore: "Najít uživatele" diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 7b670b4d6c..ed565c4f25 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -20,6 +20,13 @@ common: load-more: "Mehr laden" enter-password: "Bitte Passwort eingeben" 2fa: "Zwei-Faktor-Authentifizierung" + customize-home: "Layout Anpassen" + featured-notes: "Hervorgehobene Beiträge" + dark-mode: "Dunkler Modus" + signin: "Einloggen" + signup: "Registrieren" + signout: "Ausloggen" + reload-to-apply-the-setting: "Die Seite muss zum Übernehmen dieser Einstellung aktualisiert werden. Soll die Seite jetzt neu geladen werden?" got-it: "Verstanden!" customization-tips: title: "Anpassung-Tipps" @@ -27,6 +34,7 @@ common: notification: file-uploaded: "Datei hochgeladen!" message-from: "Nachricht von {}:" + reversi-invited: "Zu einem Spiel eingeladen" reversi-invited-by: "Eingeladen von {}:" notified-by: "Benachrichtigt von {}:" reply-from: "Antwort von {}:" @@ -47,7 +55,20 @@ common: drive: "Drive" messaging: "Unterhaltungen" home: "Home" - favorites: "Diese Notiz favorisieren" + deck: "Stapel" + timeline: "Zeitleiste" + explore: "Entdecken" + following: "Folgt" + followers: "Folgende" + favorites: "Diesen Beitrag favorisieren" + permissions: + 'read:account': "Accountinformationen anzeigen." + 'write:account': "Accountinformationen bearbeiten." + 'read:drive': "Dateien anzeigen" + 'write:drive': "Dateien bearbeiten" + empty-timeline-info: + follow-users-to-make-your-timeline: "Beiträge von Benutzern, denen du folgst, werden in der Zeitleiste angezeigt." + explore: "Benutzer finden" weekday-short: sunday: "So" monday: "Mo" @@ -78,11 +99,11 @@ common: note-visibility: public: "Öffentlich" home: "Startseite" - home-desc: "Nur auf die Startseite posten" + home-desc: "Auf die Startseite posten" followers: "Abonnenten" followers-desc: "Nur für diejenigen sichtbar, die dir folgen" specified: "Direkt" - specified-desc: "Nur für bestimmte Benutzer posten" + specified-desc: "Nur für bestimmte Benutzer sichtbar" local-public: "Öffentlich (nur lokal)" local-home: "Home (nur lokal)" local-followers: "Follower (nur lokal)" @@ -92,11 +113,34 @@ common: c: "Was geht dir durch den Kopf?" d: "Willst du etwas sagen?" e: "Schreib hier etwas!" - f: "Warte darauf, das du schreibst." + f: "Warte darauf, das du schreibst..." + settings: "Einstellungen" _settings: profile: "Dein Profil" notification: "Benachrichtigungen" + apps: "Anwendungen" + tags: "Hashtags" + mute-and-block: "Stummschalten/Blocken" + blocking: "Blocken" + security: "Sicherheit" + signin: "Login-Verlauf" password: "Passwort" + other: "Mehr" + appearance: "Designs" + behavior: "Verhalten" + fetch-on-scroll: "Unendliches laden beim scrollen" + fetch-on-scroll-desc: "Wenn beim scrollen das Ende erreicht wird, lädt die Anwendung automatisch neue Inhalte nach." + note-visibility: "Sichtbarkeit von Beiträgen" + default-note-visibility: "Die Standardsichtbarkeit" + remember-note-visibility: "Erinnerung an Sichtbarkeit von Beiträgen" + web-search-engine: "Web-Suchmaschine" + web-search-engine-desc: "Beispiel: https://www.google.de/search?q={{query}}" + keep-cw: "Inhaltswarnung beibehalten" + keep-cw-desc: "Wenn auf einen Beitrag geantwortet wird, wird die Inhaltswarnung des Originalbeitrags übernommen." + i-like-sushi: "Ich bevorzuge Sushi anstelle von Pudding" + show-reversi-board-labels: "Zeige Reihen- und Spaltenbeschreibungen in Reversi an" + use-avatar-reversi-stones: "Avatar als Stein in Reversi anzeigen" + disable-animated-mfm: "Animierten Text in Beiträgen deaktivieren" search: "Suche" delete: "Löschen" loading: "Laden" @@ -104,7 +148,7 @@ common: update-available: "Eine neue Version von Misskey ist verfügbar ({newer}, aktuell ist {current}). Lade die Seite neu um die aktuelle Version zu laden" my-token-regenerated: "Dein Token wurde generiert. Du wirst jetzt abgemeldet." verified-user: "Verifizierter Benutzer" - do-not-use-in-production: "Dies ist eine Entwicklungsversion. Nicht in einer Produktionsumgebung verwenden." + do-not-use-in-production: "Dies ist eine Entwicklungsversion. Nicht in einer Produktivumgebung verwenden." error: retry: "Erneut versuchen" reversi: @@ -118,7 +162,7 @@ common: analog-clock: "Analoge Uhr" profile: "Profil" calendar: "Kalender" - timemachine: "Kalender (Zeitmaschiene)" + timemachine: "Kalender (Zeitmaschine)" activity: "Aktivitäten" rss: "RSS Leser" memo: "Notizen" @@ -129,7 +173,7 @@ common: notifications: "Benachrichtigungen" users: "Empfohlene Benutzer" polls: "Umfrage" - post-form: "Beitragsform" + post-form: "\"Neuer Beitrag\"-Formular" server: "Server-Info" nav: "Navigation" tips: "Tipps" @@ -179,7 +223,7 @@ common/views/components/games/reversi/reversi.room.vue: ready: "Bereit" common/views/components/connect-failed.vue: title: "Verbindung zum Server ist fehlgeschlagen" - description: "Es gibt entweder ein Problem mit deiner Internetverbindung, der Server ist nicht erreichbar oder wird gerade gewartet. Bitte versuche es später noch einmal." + description: "Entweder gibt es ein Problem mit deiner Internetverbindung oder der Server ist zur Zeit nicht erreichbar oder wird gewartet. Bitte versuche es später noch einmal." thanks: "Vielen Dank für das nutzen von Misskey." troubleshoot: "Problembehandlung" common/views/components/connect-failed.troubleshooter.vue: @@ -196,8 +240,8 @@ common/views/components/connect-failed.troubleshooter.vue: no-internet: "Keine Internetverbindung" no-internet-desc: "Bitte vergewissere dich, dass du mit dem Internet verbunden bist." no-server: "Verbindung mit dem Server nicht möglich" - no-server-desc: "Die Internetverbindung scheint in Ordnung zu sein, aber eine Verbindung mit dem Misskey Server konnte nicht hergestellt werden. Möglicherweise ist dieser zur Zeit offline oder in der Wartung, bitte versuche es später noch einmal." - success: "Erfolgreich mit dem Misskey Server verbunden" + no-server-desc: "Die Internetverbindung scheint in Ordnung zu sein, aber eine Verbindung mit dem Misskey-Server konnte nicht hergestellt werden. Möglicherweise ist dieser zur Zeit offline oder wird gewartet. Bitte versuche es später noch einmal." + success: "Erfolgreich mit dem Misskey-Server verbunden" success-desc: "Die Verbindung scheint zu funktionieren. Bitte lade die Seite neu." flush: "Cache leeren" set-version: "Version angeben" @@ -224,6 +268,7 @@ common/views/components/theme.vue: invalid-theme: "Thema ist ungültig" already-installed: "Thema ist bereits installiert" author: "Autor" + desc: "Beschreibung" export: "Exportieren" import: "Importieren" common/views/components/cw-button.vue: @@ -251,15 +296,15 @@ common/views/components/nav.vue: status: "Status" wiki: "Wiki" donors: "Spender" - repository: "Projektarchiv" + repository: "Quellcode" develop: "Entwickler" feedback: "Feedback" common/views/components/note-menu.vue: - favorite: "Diese Notiz favorisieren" + favorite: "Diesen Beitrag favorisieren" unfavorite: "Aus Favoriten entfernen" pin: "An die Profilseite pinnen" delete: "Löschen" - delete-confirm: "Diesen Post löschen?" + delete-confirm: "Diesen Beitrag löschen?" remote: "Auf Quelle anzeigen" common/views/components/poll.vue: vote-to: "Stimme für '{}'" @@ -296,8 +341,8 @@ common/views/components/signup.vue: password: "Passwort" password-placeholder: "Wir empfehlen mindestens 8 Zeichen" weak-password: "Schwaches Passwort" - normal-password: "Faires Passwort" - strong-password: "Schwaches Passwort" + normal-password: "Normales Passwort" + strong-password: "Starkes Passwort" retype: "Wiederholen" retype-placeholder: "Bitte das Passwort erneut eingeben" password-matched: "OK" @@ -319,16 +364,17 @@ common/views/components/uploader.vue: common/views/components/visibility-chooser.vue: public: "Öffentlich" home: "Home" - home-desc: "Nur auf die Startseite posten" + home-desc: "Auf die Startseite posten" followers: "Folgende" followers-desc: "Nur für diejenigen sichtbar, die dir folgen" specified: "Direkt" - specified-desc: "Poste nur für bestimmte Benutzer" + specified-desc: "Nur für bestimmte Benutzer sichtbar" local-public: "Öffentlich (nur lokal)" local-home: "Home (nur lokal)" local-followers: "Follower (nur lokal)" common/views/components/profile-editor.vue: title: "Dein Profil" + name: "Name" avatar: "Avatar" banner: "Banner" save: "Speichern" @@ -400,8 +446,8 @@ desktop/views/components/drive.file.vue: copied: "Kopieren erfolgreich" copied-url-to-clipboard: "URL wurde in die Zwischenablage kopiert" desktop/views/components/drive.folder.vue: - unable-to-process: "Der Vorgang konnte nicht beendet werden" - circular-reference-detected: "Das Zielverzeichnis ist ein Unterverzeichnis des Verzeichnisses welches du verschieben möchtest" + unable-to-process: "Der Vorgang konnte nicht abgeschlossen werden" + circular-reference-detected: "Das Zielverzeichnis ist innerhalb des Verzeichnisses, dass du verschieben möchtest" unhandled-error: "Unbekannter Fehler" contextmenu: move-to-this-folder: "Verschiebe in diesen Ordner" @@ -416,7 +462,7 @@ desktop/views/components/drive.vue: empty-drive-description: "Du kannst rechts klicken und \"Datei hochladen\" auswählen oder eine Datei per Drag and Drop auf das Fenster ziehen." empty-folder: "Dieser Ordner ist leer" unable-to-process: "Der Vorgang konnte nicht beendet werden" - circular-reference-detected: "Das Zielverzeichnis ist ein Unterverzeichnis des Verzeichnisses welches du verschieben möchtest" + circular-reference-detected: "Das Zielverzeichnis ist innerhalb des Verzeichnisses, dass du verschieben möchtest" unhandled-error: "Unbekannter Fehler" url-upload: "Von einer URL hochladen" url-of-file: "URL der Datei, welche du hochladen möchtest" @@ -440,15 +486,15 @@ desktop/views/input-dialog.vue: cancel: "Abbrechen" ok: "OK" desktop/views/components/note-detail.vue: - private: "Dieser Post ist privat" + private: "Dieser Beitrag ist privat" deleted: "Dieser Beitrag wurde entfernt" location: "Ort" renote: "Anmerkung" add-reaction: "Reaktion hinzufügen" desktop/views/components/note.vue: reply: "Antworten" - renote: "Anmerkung" - private: "Dieser Post ist privat" + renote: "Anmerken" + private: "Dieser Beitrag ist privat" deleted: "Dieser Beitrag wurde entfernt" desktop/views/components/notes.vue: error: "Laden fehlgeschlagen." @@ -460,9 +506,9 @@ desktop/views/components/post-form.vue: hide-contents: "Inhalt verstecken" reply-placeholder: "Antworte auf diese Anmerkung..." quote-placeholder: "Zitiere diese Anmerkung..." - submit: "Beitragsform" + submit: "Abschicken" reply: "Antworten" - renote: "Anmerkung" + renote: "Anmerken" posted: "Gepostet!" replied: "Geantwortet!" reposted: "Weitergesagt!" @@ -478,7 +524,7 @@ desktop/views/components/post-form.vue: error: "Fehler" enter-username: "Bitte gib einen Benutzernamen ein..." desktop/views/components/post-form-window.vue: - note: "Neue Notiz" + note: "Neuer Beitrag" reply: "Antworten" attaches: "{} Medien hinzugefügt" uploading-media: "Lade {} Medien hoch" @@ -492,7 +538,7 @@ desktop/views/components/renote-form.vue: success: "Weitergesagt!" failure: "Weitersagen fehlgeschlagen" desktop/views/components/renote-form-window.vue: - title: "Bist du dir sicher, dass du das reposten willst?" + title: "Bist du dir sicher, dass du das weitersagen willst?" desktop/views/components/settings.2fa.vue: url: "https://www.google.de/intl/de/landing/2step/" register: "Ein Gerät registrieren" @@ -504,6 +550,7 @@ desktop/views/components/settings.2fa.vue: common/views/components/api-settings.vue: enter-password: "Bitte Passwort eingeben" console: + parameter: "Parameter" send: "Senden" common/views/components/drive-settings.vue: in-use: "benutzt" @@ -511,7 +558,7 @@ common/views/components/drive-settings.vue: common/views/components/mute-and-block.vue: save: "Speichern" desktop/views/components/sub-note-content.vue: - private: "Dieser Post ist privat" + private: "Dieser Beitrag ist privat" deleted: "Dieser Beitrag wurde entfernt" poll: "Umfrage" desktop/views/components/settings.tags.vue: @@ -601,22 +648,22 @@ mobile/views/components/drive.file-detail.vue: download: "Download" rename: "Umbenennen" mobile/views/components/note.vue: - private: "Dieser Post ist privat" + private: "Dieser Beitrag ist privat" deleted: "Dieser Beitrag wurde entfernt" location: "Ort" mobile/views/components/note-detail.vue: reply: "Antworten" - private: "Dieser Post ist privat" + private: "Dieser Beitrag ist privat" deleted: "Dieser Beitrag wurde entfernt" location: "Ort" mobile/views/components/notifications.vue: empty: "Keine Benachrichtigungen" mobile/views/components/post-form.vue: reply: "Antworten" - renote: "Anmerkung" + renote: "Anmerken" reply-placeholder: "Antworte auf diese Anmerkung..." mobile/views/components/sub-note-content.vue: - private: "Dieser Post ist privat" + private: "Dieser Beitrag ist privat" deleted: "Dieser Beitrag wurde entfernt" poll: "Umfrage" mobile/views/components/ui.nav.vue: @@ -633,7 +680,7 @@ mobile/views/pages/home.vue: global: "Global" mobile/views/pages/widgets.vue: add-widget: "Hinzufügen" - customization-tips: "Anpassung-Tipps" + customization-tips: "Anpassungs-Tipps" mobile/views/pages/widgets/activity.vue: activity: "Aktivität" mobile/views/pages/note.vue: @@ -654,4 +701,50 @@ deck: list: "Listen" rename: "Umbenennen" deck/deck.user-column.vue: + following: "Folgen" + followers: "Folgende" + images: "Bilder" activity: "Aktivität" + timeline: "Zeitleiste" + pinned-notes: "Angeheftete Beiträge" +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: + manage-apps: "Anwendungen verwalten" + create-app: "Anwendung erstellen" + app-missing: "Keine Anwendungen" +dev/views/new-app.vue: + create-app: "Erstelle Anwendung" + app-name: "Name der Anwendung" + app-name-desc: "Der Name der Anwendung" + app-name-ex: "z.B. Misskey für iOS" + app-overview: "Beschreibung der Anwendung" + app-desc: "Eine kurze Beschreibung oder Einführung der Anwendung." + app-desc-ex: "z.B. Ein iOS-Client für Misskey." + callback-url: "Callback-URL (optional)" + callback-url-desc: "Die URL, auf die nach erfolgreicher Authentifizierung umgeleitet werden soll." + 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." diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 83e971adf4..4e7a5d3538 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -966,6 +966,7 @@ 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: From c6eafdde304a370b12f81ed3758f78d22dd52057 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 15 Apr 2019 11:59:25 +0900 Subject: [PATCH 08/14] Fix bug --- src/client/app/mobile/views/pages/home.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/app/mobile/views/pages/home.vue b/src/client/app/mobile/views/pages/home.vue index cf15670f3f..af008ae26e 100644 --- a/src/client/app/mobile/views/pages/home.vue +++ b/src/client/app/mobile/views/pages/home.vue @@ -39,7 +39,7 @@ {{ $t('messages') }}
{{ tl.title }} From 663b8864c1f7f285aff50474063853738bbdf90d Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 15 Apr 2019 12:03:00 +0900 Subject: [PATCH 09/14] Fix bug --- src/server/api/endpoints/notes/featured.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/api/endpoints/notes/featured.ts b/src/server/api/endpoints/notes/featured.ts index 6a76fb8bc6..fa9ae39e3a 100644 --- a/src/server/api/endpoints/notes/featured.ts +++ b/src/server/api/endpoints/notes/featured.ts @@ -35,6 +35,7 @@ export default define(meta, async (ps, user) => { const day = 1000 * 60 * 60 * 24 * 3; // 3日前まで const query = Notes.createQueryBuilder('note') + .addSelect('note.score') .where('note.userHost IS NULL') .andWhere(`note.createdAt > :date`, { date: new Date(Date.now() - day) }) .andWhere(`note.visibility = 'public'`) From b357afa30a6f6420218ad80b9a731dc379e1fd36 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 15 Apr 2019 12:04:23 +0900 Subject: [PATCH 10/14] Clean up --- src/client/app/common/views/deck/deck.user-column.home.vue | 1 - src/client/app/desktop/views/home/user/user.photos.vue | 1 - src/client/app/mobile/views/pages/user/home.notes.vue | 1 - src/client/app/mobile/views/pages/user/home.photos.vue | 1 - 4 files changed, 4 deletions(-) diff --git a/src/client/app/common/views/deck/deck.user-column.home.vue b/src/client/app/common/views/deck/deck.user-column.home.vue index 56362b78c2..43a67db1ed 100644 --- a/src/client/app/common/views/deck/deck.user-column.home.vue +++ b/src/client/app/common/views/deck/deck.user-column.home.vue @@ -118,7 +118,6 @@ export default Vue.extend({ fileType: image, excludeNsfw: !this.$store.state.device.alwaysShowNsfw, limit: 9, - untilDate: new Date().getTime() + 1000 * 86400 * 365 }).then(notes => { for (const note of notes) { for (const file of note.files) { diff --git a/src/client/app/desktop/views/home/user/user.photos.vue b/src/client/app/desktop/views/home/user/user.photos.vue index aff1c96c9a..5948e805ac 100644 --- a/src/client/app/desktop/views/home/user/user.photos.vue +++ b/src/client/app/desktop/views/home/user/user.photos.vue @@ -46,7 +46,6 @@ export default Vue.extend({ fileType: image, excludeNsfw: !this.$store.state.device.alwaysShowNsfw, limit: 9, - untilDate: new Date().getTime() + 1000 * 86400 * 365 }).then(notes => { for (const note of notes) { for (const file of note.files) { diff --git a/src/client/app/mobile/views/pages/user/home.notes.vue b/src/client/app/mobile/views/pages/user/home.notes.vue index 929f19f685..9abe5b893c 100644 --- a/src/client/app/mobile/views/pages/user/home.notes.vue +++ b/src/client/app/mobile/views/pages/user/home.notes.vue @@ -23,7 +23,6 @@ export default Vue.extend({ mounted() { this.$root.api('users/notes', { userId: this.user.id, - untilDate: new Date().getTime() + 1000 * 86400 * 365 }).then(notes => { this.notes = notes; this.fetching = false; diff --git a/src/client/app/mobile/views/pages/user/home.photos.vue b/src/client/app/mobile/views/pages/user/home.photos.vue index c4f47514d8..d9817f1a53 100644 --- a/src/client/app/mobile/views/pages/user/home.photos.vue +++ b/src/client/app/mobile/views/pages/user/home.photos.vue @@ -37,7 +37,6 @@ export default Vue.extend({ fileType: image, excludeNsfw: !this.$store.state.device.alwaysShowNsfw, limit: 9, - untilDate: new Date().getTime() + 1000 * 86400 * 365 }).then(notes => { for (const note of notes) { for (const file of note.files) { From 94f8a145eca5e1ed6b979c2c237e399cc7a96083 Mon Sep 17 00:00:00 2001 From: tamaina Date: Mon, 15 Apr 2019 12:10:40 +0900 Subject: [PATCH 11/14] Better permisson Fix #2341 (#4611) * Better permisson Fix #2341 * add kinds.ts * test * fix * v11 * fix --- locales/ja-JP.yml | 33 ++++++++--- src/client/app/dev/views/apps.vue | 2 +- src/client/app/dev/views/new-app.vue | 44 ++++++-------- src/prelude/array.ts | 5 ++ src/server/api/endpoints/i/favorites.ts | 2 +- src/server/api/endpoints/messaging/history.ts | 2 +- .../api/endpoints/messaging/messages.ts | 2 +- .../endpoints/messaging/messages/create.ts | 2 +- .../endpoints/messaging/messages/delete.ts | 2 +- .../api/endpoints/messaging/messages/read.ts | 2 +- .../api/endpoints/notes/favorites/create.ts | 2 +- .../api/endpoints/notes/favorites/delete.ts | 2 +- src/server/api/endpoints/notes/polls/vote.ts | 2 +- src/server/api/endpoints/permissions.ts | 29 ++++++++++ src/server/api/kinds.ts | 58 +++++++++++++++++++ src/server/api/openapi/description.ts | 20 ++++++- src/server/api/openapi/gen-spec.ts | 9 ++- test/api.ts | 12 +++- test/mfm.ts | 2 +- 19 files changed, 183 insertions(+), 49 deletions(-) create mode 100644 src/server/api/endpoints/permissions.ts create mode 100644 src/server/api/kinds.ts diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index cc6fe2b086..82115a7224 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -74,10 +74,26 @@ common: favorites: "お気に入り" permissions: - 'read:account': "アカウントの情報を見る" - 'write:account': "アカウントの情報を変更する" - 'read:drive': "ドライブを見る" - 'write:drive': "ドライブを操作する" + "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: "ユーザーをフォローすると投稿がタイムラインに表示されます。" @@ -1804,14 +1820,17 @@ dev/views/apps.vue: app-missing: "アプリなし" dev/views/new-app.vue: + new-app: "新しいアプリケーション" + new-app-info: "アプリケーションはAPIからでも作成できます。 (app/create)" create-app: "アプリケーションの作成" app-name: "アプリケーション名" + app-name-placeholder: "ex) Misskey for iOS" app-name-desc: "あなたのアプリの名称。" - app-name-ex: "ex) Misskey for iOS" app-overview: "アプリの概要" - app-desc: "あなたのアプリの簡単な説明や紹介。" - app-desc-ex: "ex) Misskey iOSクライアント。" + 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からアクセスできます。" diff --git a/src/client/app/dev/views/apps.vue b/src/client/app/dev/views/apps.vue index 78a7cede98..b99ccdf576 100644 --- a/src/client/app/dev/views/apps.vue +++ b/src/client/app/dev/views/apps.vue @@ -1,6 +1,6 @@