diff --git a/.gitignore b/.gitignore index 63ee4f35fc..3a667851c7 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,7 @@ yarn* # Nix Development shell items .devenv .direnv + +# Cargo cache for Docker +/.cargo-cache +/.cargo-target diff --git a/Dockerfile b/Dockerfile index 0aa13aefeb..d8671911e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,7 +36,7 @@ FROM node:19-alpine WORKDIR /calckey # Install runtime dependencies -RUN apk add --no-cache --no-progress tini ffmpeg vips-dev zip unzip +RUN apk add --no-cache --no-progress tini ffmpeg vips-dev zip unzip rust cargo COPY . ./ diff --git a/docker-compose.yml b/docker-compose.yml index bf4e4fb8da..bc986ada9f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,7 +8,7 @@ services: depends_on: - db - redis - - meilisearch +# - meilisearch ports: - "3000:3000" networks: @@ -17,6 +17,8 @@ services: environment: NODE_ENV: production volumes: + - ./.cargo-cache:/root/.cargo + - ./.cargo-target:/calckey/packages/backend/native-utils/target - ./files:/calckey/files - ./.config:/calckey/.config:ro diff --git a/packages/backend/package.json b/packages/backend/package.json index 47e9c415cb..c2e1e71131 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -8,10 +8,10 @@ "start:test": "NODE_ENV=test pnpm node ./built/index.js", "migrate": "pnpm run migrate:typeorm && pnpm run migrate:cargo", "migrate:typeorm": "typeorm migration:run -d ormconfig.js", - "migrate:cargo": "cargo run --manifest-path native-utils/migration/Cargo.toml -- up", + "migrate:cargo": "cargo run --manifest-path ./native-utils/migration/Cargo.toml -- up", "revertmigration": "pnpm run revertmigration:cargo && pnpm run revertmigration:typeorm", "revertmigration:typeorm": "typeorm migration:revert -d ormconfig.js", - "revertmigration:cargo": "cargo run --manifest-path native-utils/migration/Cargo.toml -- down", + "revertmigration:cargo": "cargo run --manifest-path ./native-utils/migration/Cargo.toml -- down", "check:connect": "node ./check_connect.js", "build": "pnpm swc src -d built -D", "watch": "pnpm swc src -d built -D -w", diff --git a/packages/backend/src/services/note/create.ts b/packages/backend/src/services/note/create.ts index bd54db7e24..abb8d94e88 100644 --- a/packages/backend/src/services/note/create.ts +++ b/packages/backend/src/services/note/create.ts @@ -596,20 +596,20 @@ export default async ( lastNotedAt: new Date(), }); - const count = await Notes.countBy({ + await Notes.countBy({ userId: user.id, channelId: data.channel.id, }).then((count) => { // この処理が行われるのはノート作成後なので、ノートが一つしかなかったら最初の投稿だと判断できる // TODO: とはいえノートを削除して何回も投稿すればその分だけインクリメントされる雑さもあるのでどうにかしたい - if (count === 1) { - Channels.increment({ id: data.channel!.id }, "usersCount", 1); + if (count === 1 && data.channel != null) { + Channels.increment({ id: data.channel.id }, "usersCount", 1); } }); } // Register to search database - await index(note); + await index(note, false); }); async function renderNoteOrRenoteActivity(data: Option, note: Note) { @@ -649,9 +649,12 @@ async function insertNote( emojis: string[], mentionedUsers: MinimumUser[], ) { + if (data.createdAt === null || data.createdAt === undefined) { + data.createdAt = new Date(); + } const insert = new Note({ - id: genId(data.createdAt!), - createdAt: data.createdAt!, + id: genId(data.createdAt), + createdAt: data.createdAt, fileIds: data.files ? data.files.map((file) => file.id) : [], replyId: data.reply ? data.reply.id : null, renoteId: data.renote ? data.renote.id : null, @@ -668,7 +671,7 @@ async function insertNote( tags: tags.map((tag) => normalizeForSearch(tag)), emojis, userId: user.id, - localOnly: data.localOnly!, + localOnly: data.localOnly || false, visibility: data.visibility as any, visibleUserIds: data.visibility === "specified" diff --git a/packages/client/src/ui/_common_/navbar.vue b/packages/client/src/ui/_common_/navbar.vue index e7937eb6fc..f7fbe58c16 100644 --- a/packages/client/src/ui/_common_/navbar.vue +++ b/packages/client/src/ui/_common_/navbar.vue @@ -92,7 +92,7 @@ >{{ i18n.ts.controlPanel }} -