diff --git a/.gitea/ISSUE_TEMPLATE/01_bug-report.yml b/.gitea/ISSUE_TEMPLATE/01_bug-report.yml index a2cdebe54..6282cc43f 100644 --- a/.gitea/ISSUE_TEMPLATE/01_bug-report.yml +++ b/.gitea/ISSUE_TEMPLATE/01_bug-report.yml @@ -1,5 +1,6 @@ name: 🐛 Bug Report description: Create a report to help us improve +title: 'bug: ' body: - type: markdown diff --git a/.gitea/ISSUE_TEMPLATE/02_feature-request.md b/.gitea/ISSUE_TEMPLATE/02_feature-request.md deleted file mode 100644 index db73f0dc7..000000000 --- a/.gitea/ISSUE_TEMPLATE/02_feature-request.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: "Feature Request" -about: "Suggest an idea for this project" -title: "feat: " ---- -## Summary - - -## Purpose - \ No newline at end of file diff --git a/.gitea/ISSUE_TEMPLATE/02_feature-request.yml b/.gitea/ISSUE_TEMPLATE/02_feature-request.yml new file mode 100644 index 000000000..d3bf64d86 --- /dev/null +++ b/.gitea/ISSUE_TEMPLATE/02_feature-request.yml @@ -0,0 +1,22 @@ +name: ✨ Feature Request +description: Suggest an idea for this project +title: 'feat: ' + +body: + - type: textarea + attributes: + label: Summary + description: Tell us what the suggestion is + validations: + required: true + - type: textarea + attributes: + label: Purpose + description: Describe the specific problem or need you think this feature will solve, and who it will help. + validations: + required: true + - type: checkboxes + attributes: + label: Do you want to implement this feature yourself? + options: + - label: Yes, I will implement this by myself and send a pull request \ No newline at end of file diff --git a/locales/en-US.yml b/locales/en-US.yml index c1e39778b..1ac2f4b28 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -46,7 +46,7 @@ pin: "Pin to profile" unpin: "Unpin from profile" copyContent: "Copy contents" copyLink: "Copy link" -copyLinkRenote: "Copy renote link" +copyLinkRenote: "Copy boost link" delete: "Delete" deleteAndEdit: "Delete and edit" deleteAndEditConfirm: "Are you sure you want to redraft this note? This means you will lose all reactions, boosts, and replies to it." @@ -115,7 +115,7 @@ rmboost: "Unboosted." cantRenote: "This post can't be boosted." cantReRenote: "A boost can't be boosted." quote: "Quote" -inChannelRenote: "Channel-only Renote" +inChannelRenote: "Channel-only Boost" inChannelQuote: "Channel-only Quote" pinnedNote: "Pinned note" pinned: "Pin to profile" @@ -135,8 +135,8 @@ unmarkAsSensitive: "Unmark as sensitive" enterFileName: "Enter filename" mute: "Mute" unmute: "Unmute" -renoteMute: "Mute Renotes" -renoteUnmute: "Unmute Renotes" +renoteMute: "Mute Boosts" +renoteUnmute: "Unmute Boosts" block: "Block" unblock: "Unblock" markAsNSFW: "Mark all media from user as NSFW" @@ -685,7 +685,7 @@ behavior: "Behavior" sample: "Sample" abuseReports: "Reports" reportAbuse: "Report" -reportAbuseRenote: "Report renote" +reportAbuseRenote: "Report boost" reportAbuseOf: "Report {name}" fillAbuseReportDescription: "Please fill in details regarding this report. If it is about a specific note, please include its URL." abuseReported: "Your report has been sent. Thank you very much." @@ -1275,8 +1275,8 @@ _initialTutorial: _visibility: description: "You can limit who can view your note." public: "Your note will be visible for all users." - home: "Public only on the Home timeline. People visiting your profile, via followers, and through renotes can see it." - followers: "Visible to followers only. Only followers can see it and no one else, and it cannot be renoted by others." + home: "Public only on the Home timeline. People visiting your profile, via followers, and through boosts can see it." + followers: "Visible to followers only. Only followers can see it and no one else, and it cannot be boosted by others." direct: "Visible only to specified users, and the recipient will be notified. It can be used as an alternative to direct messaging." doNotSendConfidencialOnDirect1: "Be careful when sending sensitive information!" doNotSendConfidencialOnDirect2: "Administrators of the server can see what you write. Be careful with sensitive information when sending direct notes to users on untrusted servers." @@ -1774,7 +1774,7 @@ _channel: notesCount: "{n} Notes" nameAndDescription: "Name and description" nameOnly: "Name only" - allowRenoteToExternal: "Allow renote and quote outside the channel" + allowRenoteToExternal: "Allow boosts and quote outside the channel" _menuDisplay: sideFull: "Side" sideIcon: "Side (Icons)" @@ -1837,7 +1837,7 @@ _theme: hashtag: "Hashtag" mention: "Mention" mentionMe: "Mentions (Me)" - renote: "Renote" + renote: "Boost" modalBg: "Modal background" divider: "Divider" scrollbarHandle: "Scrollbar handle" @@ -2221,7 +2221,7 @@ _notification: follow: "New followers" mention: "Mentions" reply: "Replies" - renote: "Renotes" + renote: "Boosts" quote: "Quotes" reaction: "Reactions" pollEnded: "Polls ending" @@ -2233,7 +2233,7 @@ _notification: _actions: followBack: "followed you back" reply: "Reply" - renote: "Renote" + renote: "Boost" _deck: alwaysShowMainColumn: "Always show main column" columnAlign: "Align columns" diff --git a/packages/backend/package.json b/packages/backend/package.json index c1ac4649d..2aa10b1c9 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -109,6 +109,7 @@ "file-type": "18.7.0", "fluent-ffmpeg": "2.1.2", "form-data": "4.0.0", + "glob": "10.3.10", "got": "14.0.0", "happy-dom": "10.0.3", "hpagent": "1.2.0", diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts index 4a4d7e831..24a0296aa 100644 --- a/packages/backend/src/config.ts +++ b/packages/backend/src/config.ts @@ -8,6 +8,7 @@ import { fileURLToPath } from 'node:url'; import { dirname, resolve } from 'node:path'; import * as yaml from 'js-yaml'; import type { RedisOptions } from 'ioredis'; +import { globSync } from 'glob'; type RedisOptionsSource = Partial & { host: string; @@ -193,11 +194,18 @@ const path = process.env.MISSKEY_CONFIG_YML export function loadConfig(): Config { const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../built/meta.json`, 'utf-8')); - const clientManifestExists = fs.existsSync(_dirname + '/../../../built/_vite_/manifest.json'); + const clientManifestExists = fs.existsSync(`${_dirname}/../../../built/_vite_/manifest.json`); const clientManifest = clientManifestExists ? JSON.parse(fs.readFileSync(`${_dirname}/../../../built/_vite_/manifest.json`, 'utf-8')) : { 'src/_boot_.ts': { file: 'src/_boot_.ts' } }; - const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source; + + const config = globSync(path) + .map(path => fs.readFileSync(path, 'utf-8')) + .map(contents => yaml.load(contents) as Source) + .reduce( + (acc: Source, cur: Source) => Object.assign(acc, cur), + {} as Source, + ) as Source; const url = tryCreateUrl(config.url); const version = meta.version; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fac96a0e6..badbc4329 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -208,6 +208,9 @@ importers: form-data: specifier: 4.0.0 version: 4.0.0 + glob: + specifier: 10.3.10 + version: 10.3.10 got: specifier: 14.0.0 version: 14.0.0 @@ -7976,6 +7979,7 @@ packages: /@types/node@20.10.5: resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + requiresBuild: true dependencies: undici-types: 5.26.5 @@ -12732,7 +12736,7 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.1.2 + minimatch: 5.1.6 once: 1.4.0 /global-dirs@3.0.1: @@ -15000,12 +15004,6 @@ packages: dependencies: brace-expansion: 1.1.11 - /minimatch@5.1.2: - resolution: {integrity: sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} @@ -17244,7 +17242,7 @@ packages: /readdir-glob@1.1.2: resolution: {integrity: sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==} dependencies: - minimatch: 5.1.2 + minimatch: 5.1.6 dev: false /readdirp@3.6.0: @@ -19197,6 +19195,7 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + requiresBuild: true /undici@5.22.1: resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==}