From 5719a929ad5a048b59cf59b8683dcaaef01f2311 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 24 Jan 2024 16:37:06 +0900 Subject: [PATCH 1/7] =?UTF-8?q?enhance(reversi):=20=E5=A4=89=E5=89=87?= =?UTF-8?q?=E3=81=AA=E3=81=97=E3=83=9E=E3=83=83=E3=83=81=E3=83=B3=E3=82=B0?= =?UTF-8?q?=E3=82=92=E5=8F=AF=E8=83=BD=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locales/index.d.ts | 8 ++ locales/ja-JP.yml | 2 + .../migration/1706081514499-reversi-6.js | 16 +++ packages/backend/src/core/ReversiService.ts | 33 ++++-- .../core/entities/ReversiGameEntityService.ts | 2 + packages/backend/src/models/ReversiGame.ts | 5 + .../src/models/json-schema/reversi-game.ts | 8 ++ .../src/server/api/endpoints/reversi/match.ts | 5 +- .../src/pages/reversi/game.setting.vue | 111 +++++++++--------- packages/frontend/src/pages/reversi/index.vue | 22 +++- .../misskey-js/src/autogen/apiClientJSDoc.ts | 4 +- packages/misskey-js/src/autogen/endpoint.ts | 4 +- packages/misskey-js/src/autogen/entities.ts | 4 +- packages/misskey-js/src/autogen/models.ts | 4 +- packages/misskey-js/src/autogen/types.ts | 8 +- 15 files changed, 159 insertions(+), 77 deletions(-) create mode 100644 packages/backend/migration/1706081514499-reversi-6.js diff --git a/locales/index.d.ts b/locales/index.d.ts index 63d13f61db..966c2224fb 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -9595,6 +9595,14 @@ export interface Locale extends ILocale { * 相手が設定を変更しました */ "opponentHasSettingsChanged": string; + /** + * 変則許可 (完全フリー) + */ + "allowIrregularRules": string; + /** + * 変則なし + */ + "disallowIrregularRules": string; }; "_offlineScreen": { /** diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 9f17de4232..b9e7ea4922 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -2556,6 +2556,8 @@ _reversi: shareToTlTheGameWhenStart: "開始時に対局をタイムラインに投稿" iStartedAGame: "対局を開始しました! #MisskeyReversi" opponentHasSettingsChanged: "相手が設定を変更しました" + allowIrregularRules: "変則許可 (完全フリー)" + disallowIrregularRules: "変則なし" _offlineScreen: title: "オフライン - サーバーに接続できません" diff --git a/packages/backend/migration/1706081514499-reversi-6.js b/packages/backend/migration/1706081514499-reversi-6.js new file mode 100644 index 0000000000..de870be446 --- /dev/null +++ b/packages/backend/migration/1706081514499-reversi-6.js @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: syuilo and other misskey contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ + +export class Reversi61706081514499 { + name = 'Reversi61706081514499' + + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "reversi_game" ADD "noIrregularRules" boolean NOT NULL DEFAULT false`); + } + + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "reversi_game" DROP COLUMN "noIrregularRules"`); + } +} diff --git a/packages/backend/src/core/ReversiService.ts b/packages/backend/src/core/ReversiService.ts index f74416a58a..84721b2217 100644 --- a/packages/backend/src/core/ReversiService.ts +++ b/packages/backend/src/core/ReversiService.ts @@ -85,6 +85,7 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { map: game.map, bw: game.bw, crc32: game.crc32, + noIrregularRules: game.noIrregularRules, } satisfies Partial; } @@ -138,7 +139,7 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { } @bindThis - public async matchAnyUser(me: MiUser, multiple = false): Promise { + public async matchAnyUser(me: MiUser, options: { noIrregularRules: boolean }, multiple = false): Promise { if (!multiple) { // 既にマッチしている対局が無いか探す(3分以内) const games = await this.reversiGamesRepository.find({ @@ -177,19 +178,29 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { 2, // 自分自身のIDが入っている場合もあるので2つ取得 'REV'); - const userIds = matchings.filter(id => id !== me.id); + const items = matchings.filter(id => !id.startsWith(me.id)); - if (userIds.length > 0) { - const matchedUserId = userIds[0]; + if (items.length > 0) { + const [matchedUserId, option] = items[0].split(':'); - await this.redisClient.zrem('reversi:matchAny', me.id, matchedUserId); + await this.redisClient.zrem('reversi:matchAny', + me.id, + matchedUserId, + me.id + ':noIrregularRules', + matchedUserId + ':noIrregularRules'); - const game = await this.matched(matchedUserId, me.id); + const game = await this.matched(matchedUserId, me.id, { + noIrregularRules: options.noIrregularRules || option === 'noIrregularRules', + }); return game; } else { const redisPipeline = this.redisClient.pipeline(); - redisPipeline.zadd('reversi:matchAny', Date.now(), me.id); + if (options.noIrregularRules) { + redisPipeline.zadd('reversi:matchAny', Date.now(), me.id + ':noIrregularRules'); + } else { + redisPipeline.zadd('reversi:matchAny', Date.now(), me.id); + } redisPipeline.expire('reversi:matchAny', 15, 'NX'); await redisPipeline.exec(); return null; @@ -203,7 +214,10 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { @bindThis public async matchAnyUserCancel(user: MiUser) { - await this.redisClient.zrem('reversi:matchAny', user.id); + const redisPipeline = this.redisClient.pipeline(); + redisPipeline.zrem('reversi:matchAny', user.id); + redisPipeline.zrem('reversi:matchAny', user.id + ':noIrregularRules'); + await redisPipeline.exec(); } @bindThis @@ -265,7 +279,7 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { } @bindThis - private async matched(parentId: MiUser['id'], childId: MiUser['id']): Promise { + private async matched(parentId: MiUser['id'], childId: MiUser['id'], options: { noIrregularRules: boolean; }): Promise { const game = await this.reversiGamesRepository.insert({ id: this.idService.gen(), user1Id: parentId, @@ -278,6 +292,7 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { map: Reversi.maps.eighteight.data, bw: 'random', isLlotheo: false, + noIrregularRules: options.noIrregularRules, }).then(x => this.reversiGamesRepository.findOneOrFail({ where: { id: x.identifiers[0].id }, relations: ['user1', 'user2'], diff --git a/packages/backend/src/core/entities/ReversiGameEntityService.ts b/packages/backend/src/core/entities/ReversiGameEntityService.ts index 6c89a70599..1a689a7b53 100644 --- a/packages/backend/src/core/entities/ReversiGameEntityService.ts +++ b/packages/backend/src/core/entities/ReversiGameEntityService.ts @@ -61,6 +61,7 @@ export class ReversiGameEntityService { canPutEverywhere: game.canPutEverywhere, loopedBoard: game.loopedBoard, timeLimitForEachTurn: game.timeLimitForEachTurn, + noIrregularRules: game.noIrregularRules, logs: game.logs, map: game.map, }); @@ -105,6 +106,7 @@ export class ReversiGameEntityService { canPutEverywhere: game.canPutEverywhere, loopedBoard: game.loopedBoard, timeLimitForEachTurn: game.timeLimitForEachTurn, + noIrregularRules: game.noIrregularRules, }); } diff --git a/packages/backend/src/models/ReversiGame.ts b/packages/backend/src/models/ReversiGame.ts index 11d236e458..c03335dd63 100644 --- a/packages/backend/src/models/ReversiGame.ts +++ b/packages/backend/src/models/ReversiGame.ts @@ -106,6 +106,11 @@ export class MiReversiGame { }) public bw: string; + @Column('boolean', { + default: false, + }) + public noIrregularRules: boolean; + @Column('boolean', { default: false, }) diff --git a/packages/backend/src/models/json-schema/reversi-game.ts b/packages/backend/src/models/json-schema/reversi-game.ts index f8a5e7451c..ff4c78eeb0 100644 --- a/packages/backend/src/models/json-schema/reversi-game.ts +++ b/packages/backend/src/models/json-schema/reversi-game.ts @@ -82,6 +82,10 @@ export const packedReversiGameLiteSchema = { type: 'string', optional: false, nullable: false, }, + noIrregularRules: { + type: 'boolean', + optional: false, nullable: false, + }, isLlotheo: { type: 'boolean', optional: false, nullable: false, @@ -196,6 +200,10 @@ export const packedReversiGameDetailedSchema = { type: 'string', optional: false, nullable: false, }, + noIrregularRules: { + type: 'boolean', + optional: false, nullable: false, + }, isLlotheo: { type: 'boolean', optional: false, nullable: false, diff --git a/packages/backend/src/server/api/endpoints/reversi/match.ts b/packages/backend/src/server/api/endpoints/reversi/match.ts index 62682cfb50..f8dee21c4c 100644 --- a/packages/backend/src/server/api/endpoints/reversi/match.ts +++ b/packages/backend/src/server/api/endpoints/reversi/match.ts @@ -37,6 +37,7 @@ export const paramDef = { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', nullable: true }, + noIrregularRules: { type: 'boolean', default: false }, multiple: { type: 'boolean', default: false }, }, required: [], @@ -57,7 +58,9 @@ export default class extends Endpoint { // eslint- throw err; }) : null; - const game = target ? await this.reversiService.matchSpecificUser(me, target, ps.multiple) : await this.reversiService.matchAnyUser(me, ps.multiple); + const game = target + ? await this.reversiService.matchSpecificUser(me, target, ps.multiple) + : await this.reversiService.matchAnyUser(me, { noIrregularRules: ps.noIrregularRules }, ps.multiple); if (game == null) return; diff --git a/packages/frontend/src/pages/reversi/game.setting.vue b/packages/frontend/src/pages/reversi/game.setting.vue index b1e66e4fdd..0fbabfe4de 100644 --- a/packages/frontend/src/pages/reversi/game.setting.vue +++ b/packages/frontend/src/pages/reversi/game.setting.vue @@ -12,69 +12,74 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts._reversi.gameSettings }}
-
-
-
{{ mapName }}
- {{ i18n.ts._reversi.chooseBoard }} -
+ +
diff --git a/packages/frontend/src/pages/reversi/index.vue b/packages/frontend/src/pages/reversi/index.vue index 7c687e813c..8deaead698 100644 --- a/packages/frontend/src/pages/reversi/index.vue +++ b/packages/frontend/src/pages/reversi/index.vue @@ -157,6 +157,7 @@ if ($i) { const invitations = ref([]); const matchingUser = ref(null); const matchingAny = ref(false); +const noIrregularRules = ref(false); function startGame(game: Misskey.entities.ReversiGameDetailed) { matchingUser.value = null; @@ -182,6 +183,7 @@ async function matchHeatbeat() { } else if (matchingAny.value) { const res = await misskeyApi('reversi/match', { userId: null, + noIrregularRules: noIrregularRules.value, }); if (res != null) { @@ -199,10 +201,22 @@ async function matchUser() { matchHeatbeat(); } -async function matchAny() { - matchingAny.value = true; - - matchHeatbeat(); +function matchAny(ev: MouseEvent) { + os.popupMenu([{ + text: i18n.ts._reversi.allowIrregularRules, + action: () => { + noIrregularRules.value = false; + matchingAny.value = true; + matchHeatbeat(); + }, + }, { + text: i18n.ts._reversi.disallowIrregularRules, + action: () => { + noIrregularRules.value = true; + matchingAny.value = true; + matchHeatbeat(); + }, + }], ev.currentTarget ?? ev.target); } function cancelMatching() { diff --git a/packages/misskey-js/src/autogen/apiClientJSDoc.ts b/packages/misskey-js/src/autogen/apiClientJSDoc.ts index 4fa42bb919..c97b95e536 100644 --- a/packages/misskey-js/src/autogen/apiClientJSDoc.ts +++ b/packages/misskey-js/src/autogen/apiClientJSDoc.ts @@ -1,6 +1,6 @@ /* - * version: 2024.2.0-beta.4 - * generatedAt: 2024-01-24T01:14:40.901Z + * version: 2024.2.0-beta.6 + * generatedAt: 2024-01-24T07:32:10.455Z */ import type { SwitchCaseResponseType } from '../api.js'; diff --git a/packages/misskey-js/src/autogen/endpoint.ts b/packages/misskey-js/src/autogen/endpoint.ts index 6b330c7c11..e356de3453 100644 --- a/packages/misskey-js/src/autogen/endpoint.ts +++ b/packages/misskey-js/src/autogen/endpoint.ts @@ -1,6 +1,6 @@ /* - * version: 2024.2.0-beta.4 - * generatedAt: 2024-01-24T01:14:40.899Z + * version: 2024.2.0-beta.6 + * generatedAt: 2024-01-24T07:32:10.453Z */ import type { diff --git a/packages/misskey-js/src/autogen/entities.ts b/packages/misskey-js/src/autogen/entities.ts index 8eb284ae9e..bfe40dc947 100644 --- a/packages/misskey-js/src/autogen/entities.ts +++ b/packages/misskey-js/src/autogen/entities.ts @@ -1,6 +1,6 @@ /* - * version: 2024.2.0-beta.4 - * generatedAt: 2024-01-24T01:14:40.897Z + * version: 2024.2.0-beta.6 + * generatedAt: 2024-01-24T07:32:10.452Z */ import { operations } from './types.js'; diff --git a/packages/misskey-js/src/autogen/models.ts b/packages/misskey-js/src/autogen/models.ts index 0a6f534aff..b7dcbfd951 100644 --- a/packages/misskey-js/src/autogen/models.ts +++ b/packages/misskey-js/src/autogen/models.ts @@ -1,6 +1,6 @@ /* - * version: 2024.2.0-beta.4 - * generatedAt: 2024-01-24T01:14:40.896Z + * version: 2024.2.0-beta.6 + * generatedAt: 2024-01-24T07:32:10.450Z */ import { components } from './types.js'; diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts index 44421240d0..b5eca12a19 100644 --- a/packages/misskey-js/src/autogen/types.ts +++ b/packages/misskey-js/src/autogen/types.ts @@ -2,8 +2,8 @@ /* eslint @typescript-eslint/no-explicit-any: 0 */ /* - * version: 2024.2.0-beta.4 - * generatedAt: 2024-01-24T01:14:40.815Z + * version: 2024.2.0-beta.6 + * generatedAt: 2024-01-24T07:32:10.370Z */ /** @@ -4493,6 +4493,7 @@ export type components = { timeoutUserId: string | null; black: number | null; bw: string; + noIrregularRules: boolean; isLlotheo: boolean; canPutEverywhere: boolean; loopedBoard: boolean; @@ -4528,6 +4529,7 @@ export type components = { timeoutUserId: string | null; black: number | null; bw: string; + noIrregularRules: boolean; isLlotheo: boolean; canPutEverywhere: boolean; loopedBoard: boolean; @@ -25800,6 +25802,8 @@ export type operations = { /** Format: misskey:id */ userId?: string | null; /** @default false */ + noIrregularRules?: boolean; + /** @default false */ multiple?: boolean; }; }; From 60156a40b2984c320eaf9ddb0c7704d1f8e40f93 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 24 Jan 2024 16:44:12 +0900 Subject: [PATCH 2/7] fix(reversi/backend): refactor and fixes --- packages/backend/src/core/ReversiService.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/core/ReversiService.ts b/packages/backend/src/core/ReversiService.ts index 84721b2217..186ec6d7b1 100644 --- a/packages/backend/src/core/ReversiService.ts +++ b/packages/backend/src/core/ReversiService.ts @@ -120,7 +120,9 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { if (invitations.includes(targetUser.id)) { await this.redisClient.zrem(`reversi:matchSpecific:${me.id}`, targetUser.id); - const game = await this.matched(targetUser.id, me.id); + const game = await this.matched(targetUser.id, me.id, { + noIrregularRules: false, + }); return game; } @@ -166,7 +168,9 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { const invitorId = invitations[Math.floor(Math.random() * invitations.length)]; await this.redisClient.zrem(`reversi:matchSpecific:${me.id}`, invitorId); - const game = await this.matched(invitorId, me.id); + const game = await this.matched(invitorId, me.id, { + noIrregularRules: false, + }); return game; } @@ -214,10 +218,7 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit { @bindThis public async matchAnyUserCancel(user: MiUser) { - const redisPipeline = this.redisClient.pipeline(); - redisPipeline.zrem('reversi:matchAny', user.id); - redisPipeline.zrem('reversi:matchAny', user.id + ':noIrregularRules'); - await redisPipeline.exec(); + await this.redisClient.zrem('reversi:matchAny', user.id, user.id + ':noIrregularRules'); } @bindThis From 4de14fb5cf8c0aa2078ebbedc242a65e042ded54 Mon Sep 17 00:00:00 2001 From: Srgr0 <66754887+Srgr0@users.noreply.github.com> Date: Wed, 24 Jan 2024 17:11:52 +0900 Subject: [PATCH 3/7] Create deploy-test-environment.yml (#13079) --- .github/workflows/deploy-test-environment.yml | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/deploy-test-environment.yml diff --git a/.github/workflows/deploy-test-environment.yml b/.github/workflows/deploy-test-environment.yml new file mode 100644 index 0000000000..cd7a8f328e --- /dev/null +++ b/.github/workflows/deploy-test-environment.yml @@ -0,0 +1,66 @@ +name: Deploy test environment + +on: + push: + workflow_dispatch: + inputs: + repository: + description: 'Repository to deploy (optional)' + required: false + branch: + description: 'Branch to deploy (optional)' + required: false + +jobs: + deploy-test-environment: + runs-on: ubuntu-latest + steps: + - name: Set environment variable (for tput command & pnpm) + run: | + echo "TERM=xterm" >> $GITHUB_ENV + REPOSITORY=${{ github.event.inputs.repository || github.repository }} + echo "REPOSITORY=$REPOSITORY" >> $GITHUB_ENV + BRANCH=${{ github.event.inputs.branch || github.ref_name }} + echo "BRANCH=$BRANCH" >> $GITHUB_ENV + + - name: Checkout + uses: actions/checkout@v4 + with: + repository: ${{ env.REPOSITORY }} + ref: ${{ env.BRANCH }} + + - name: Get the latest commit SHA + run: | + SHA=$(git log -1 --format="%H") + echo "SHA=$SHA" >> $GITHUB_ENV + + - name: Start cloudflare tunnel (quick) + run: | + wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb + sudo dpkg -i cloudflared-linux-amd64.deb + sudo cloudflared tunnel --metrics localhost:55555 --url localhost:3000 > /dev/null 2>&1 & + sleep 15 + TUNNEL_RESPONSE=$(curl http://localhost:55555/quicktunnel) + TUNNEL_DOMAIN=$(echo $TUNNEL_RESPONSE | grep -o '"hostname":"[^"]*' | grep -o '[^"]*$') + echo "::add-mask::$TUNNEL_DOMAIN" + echo "TUNNEL_DOMAIN=$TUNNEL_DOMAIN" >> $GITHUB_ENV + + - name: Install misskey + run: | + wget https://raw.githubusercontent.com/joinmisskey/bash-install/v4/misskey-install.sh + wget https://raw.githubusercontent.com/joinmisskey/bash-install/v4/testenv_githubactions.txt + sed -i "s/host=127.0.0.1/host=$TUNNEL_DOMAIN/g" testenv_githubactions.txt + sed -i "s|git_repository=https://github.com/misskey-dev/misskey|git_repository=https://github.com/$REPOSITORY|g" testenv_githubactions.txt + sed -i "s|git_branch=master|git_branch=$BRANCH|g" testenv_githubactions.txt + sudo chmod 555 ./misskey-install.sh + sudo bash -x ./misskey-install.sh -c ./testenv_githubactions.txt + + - name: Post tunnel info to Discord + run: | + CURRENT_TIME=$(TZ=Asia/Tokyo date +'%Y-%m-%d %H:%M:%S JST') + COMMIT_URL="https://github.com/$REPOSITORY/commit/$SHA" + curl -X POST -H "Content-Type: application/json" -d "{\"content\": \"==============================\nURL: https://$TUNNEL_DOMAIN\nRepository: $REPOSITORY\nBranch: $BRANCH\nCommit: $COMMIT_URL\nTime: $CURRENT_TIME\n==============================\"}" ${{ secrets.DISCORD_WEBHOOK_URL }} + + - name: Wait + run: | + timeout 3600 tail -f /var/log/syslog || true From b33cfc2876a6c4d3e1cb28c585a738ef0da59d25 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 24 Jan 2024 17:13:58 +0900 Subject: [PATCH 4/7] test From 4553d6426bfa6a54754d5cf477d04782d5e05860 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 24 Jan 2024 17:31:34 +0900 Subject: [PATCH 5/7] Revert "Create deploy-test-environment.yml (#13079)" This reverts commit 4de14fb5cf8c0aa2078ebbedc242a65e042ded54. --- .github/workflows/deploy-test-environment.yml | 66 ------------------- 1 file changed, 66 deletions(-) delete mode 100644 .github/workflows/deploy-test-environment.yml diff --git a/.github/workflows/deploy-test-environment.yml b/.github/workflows/deploy-test-environment.yml deleted file mode 100644 index cd7a8f328e..0000000000 --- a/.github/workflows/deploy-test-environment.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: Deploy test environment - -on: - push: - workflow_dispatch: - inputs: - repository: - description: 'Repository to deploy (optional)' - required: false - branch: - description: 'Branch to deploy (optional)' - required: false - -jobs: - deploy-test-environment: - runs-on: ubuntu-latest - steps: - - name: Set environment variable (for tput command & pnpm) - run: | - echo "TERM=xterm" >> $GITHUB_ENV - REPOSITORY=${{ github.event.inputs.repository || github.repository }} - echo "REPOSITORY=$REPOSITORY" >> $GITHUB_ENV - BRANCH=${{ github.event.inputs.branch || github.ref_name }} - echo "BRANCH=$BRANCH" >> $GITHUB_ENV - - - name: Checkout - uses: actions/checkout@v4 - with: - repository: ${{ env.REPOSITORY }} - ref: ${{ env.BRANCH }} - - - name: Get the latest commit SHA - run: | - SHA=$(git log -1 --format="%H") - echo "SHA=$SHA" >> $GITHUB_ENV - - - name: Start cloudflare tunnel (quick) - run: | - wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb - sudo dpkg -i cloudflared-linux-amd64.deb - sudo cloudflared tunnel --metrics localhost:55555 --url localhost:3000 > /dev/null 2>&1 & - sleep 15 - TUNNEL_RESPONSE=$(curl http://localhost:55555/quicktunnel) - TUNNEL_DOMAIN=$(echo $TUNNEL_RESPONSE | grep -o '"hostname":"[^"]*' | grep -o '[^"]*$') - echo "::add-mask::$TUNNEL_DOMAIN" - echo "TUNNEL_DOMAIN=$TUNNEL_DOMAIN" >> $GITHUB_ENV - - - name: Install misskey - run: | - wget https://raw.githubusercontent.com/joinmisskey/bash-install/v4/misskey-install.sh - wget https://raw.githubusercontent.com/joinmisskey/bash-install/v4/testenv_githubactions.txt - sed -i "s/host=127.0.0.1/host=$TUNNEL_DOMAIN/g" testenv_githubactions.txt - sed -i "s|git_repository=https://github.com/misskey-dev/misskey|git_repository=https://github.com/$REPOSITORY|g" testenv_githubactions.txt - sed -i "s|git_branch=master|git_branch=$BRANCH|g" testenv_githubactions.txt - sudo chmod 555 ./misskey-install.sh - sudo bash -x ./misskey-install.sh -c ./testenv_githubactions.txt - - - name: Post tunnel info to Discord - run: | - CURRENT_TIME=$(TZ=Asia/Tokyo date +'%Y-%m-%d %H:%M:%S JST') - COMMIT_URL="https://github.com/$REPOSITORY/commit/$SHA" - curl -X POST -H "Content-Type: application/json" -d "{\"content\": \"==============================\nURL: https://$TUNNEL_DOMAIN\nRepository: $REPOSITORY\nBranch: $BRANCH\nCommit: $COMMIT_URL\nTime: $CURRENT_TIME\n==============================\"}" ${{ secrets.DISCORD_WEBHOOK_URL }} - - - name: Wait - run: | - timeout 3600 tail -f /var/log/syslog || true From ef8eaf8e8958f283bf1e82d38207f5ad53a31311 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 24 Jan 2024 20:29:05 +0900 Subject: [PATCH 6/7] New Crowdin updates (#13080) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (Chinese Traditional) --- locales/zh-TW.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index 6c183fe75c..59f2ed6d2d 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -2482,6 +2482,11 @@ _reversi: freeMatch: "自由對戰" lookingForPlayer: "正在搜尋對手" gameCanceled: "對弈已被取消" + shareToTlTheGameWhenStart: "在遊戲開始時將對弈資訊發布到時間軸" + iStartedAGame: "對弈開始了! #MisskeyReversi" + opponentHasSettingsChanged: "對手更改了設定" + allowIrregularRules: "允許異常規則(完全自由)" + disallowIrregularRules: "不允許異常規則" _offlineScreen: title: "離線-無法連接伺服器" header: "無法連接伺服器" From 5342692b1e9b2b96d5b87668151c3d06298db742 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 24 Jan 2024 20:31:05 +0900 Subject: [PATCH 7/7] 2024.2.0-beta.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 16f2fdda43..77c7b92270 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2024.2.0-beta.6", + "version": "2024.2.0-beta.7", "codename": "nasubi", "repository": { "type": "git",