add copyright text to all our files
This commit is contained in:
parent
d27965d8b3
commit
b525c5887f
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: dakkar and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class largerImageComment1680969937000 {
|
export class largerImageComment1680969937000 {
|
||||||
name = 'largerImageComment1680969937000';
|
name = 'largerImageComment1680969937000';
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class NoteEdit1682753227899 {
|
export class NoteEdit1682753227899 {
|
||||||
name = "NoteEdit1682753227899";
|
name = "NoteEdit1682753227899";
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: amelia and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class AddLbToUser1691264431000 {
|
export class AddLbToUser1691264431000 {
|
||||||
name = "AddLbToUser1691264431000";
|
name = "AddLbToUser1691264431000";
|
||||||
|
|
||||||
@ -17,4 +22,4 @@ export class AddLbToUser1691264431000 {
|
|||||||
ALTER TABLE "user_profile" DROP COLUMN "listenbrainz"
|
ALTER TABLE "user_profile" DROP COLUMN "listenbrainz"
|
||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class EnableAchievements1695937489995 {
|
export class EnableAchievements1695937489995 {
|
||||||
name = 'EnableAchievements1695937489995'
|
name = 'EnableAchievements1695937489995'
|
||||||
|
|
||||||
@ -8,4 +13,4 @@ export class EnableAchievements1695937489995 {
|
|||||||
async down(queryRunner) {
|
async down(queryRunner) {
|
||||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableAchievements"`);
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableAchievements"`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class SpeakAsCat1696386694000 {
|
export class SpeakAsCat1696386694000 {
|
||||||
name = "SpeakAsCat1696386694000";
|
name = "SpeakAsCat1696386694000";
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class Background1696548899000 {
|
export class Background1696548899000 {
|
||||||
name = 'Background1696548899000'
|
name = 'Background1696548899000'
|
||||||
|
|
||||||
@ -16,4 +21,4 @@ export class Background1696548899000 {
|
|||||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "backgroundUrl"`);
|
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "backgroundUrl"`);
|
||||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "backgroundBlurhash"`);
|
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "backgroundBlurhash"`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: syuilo and other misskey contributors
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: syuilo and other misskey contributors
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: syuilo and other misskey contributors
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class AlterNoteEdit1697970083000 {
|
export class AlterNoteEdit1697970083000 {
|
||||||
name = "AlterNoteEdit1697970083000";
|
name = "AlterNoteEdit1697970083000";
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class OldDateNoteEdit1697970083001 {
|
export class OldDateNoteEdit1697970083001 {
|
||||||
name = "OldDateNoteEdit1697970083001";
|
name = "OldDateNoteEdit1697970083001";
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class IsIndexable1699376974000 {
|
export class IsIndexable1699376974000 {
|
||||||
name = 'IsIndexable1699376974000'
|
name = 'IsIndexable1699376974000'
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class instanceDefaultLike1699819257000 {
|
export class instanceDefaultLike1699819257000 {
|
||||||
name = 'instanceDefaultLike1699819257000'
|
name = 'instanceDefaultLike1699819257000'
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class UpdateIndexable1700228972000 {
|
export class UpdateIndexable1700228972000 {
|
||||||
name = 'UpdateIndexable1700228972000'
|
name = 'UpdateIndexable1700228972000'
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class BubbleInstances1701647674000 {
|
export class BubbleInstances1701647674000 {
|
||||||
name = 'BubbleInstances1701647674000'
|
name = 'BubbleInstances1701647674000'
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class NSFWInstance1701809447000 {
|
export class NSFWInstance1701809447000 {
|
||||||
name = 'NSFWInstance1701809447000'
|
name = 'NSFWInstance1701809447000'
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: nila and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export class AddDonationUrl1704744370000 {
|
export class AddDonationUrl1704744370000 {
|
||||||
name = 'AddDonationUrl1704744370000'
|
name = 'AddDonationUrl1704744370000'
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: syuilo and other misskey contributors
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Entity, JoinColumn, Column, ManyToOne, PrimaryColumn, Index } from "typeorm";
|
import { Entity, JoinColumn, Column, ManyToOne, PrimaryColumn, Index } from "typeorm";
|
||||||
import { id } from './util/id.js';
|
import { id } from './util/id.js';
|
||||||
import { MiNote } from './Note.js';
|
import { MiNote } from './Note.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
export const packedNoteEdit = {
|
export const packedNoteEdit = {
|
||||||
type: "object",
|
type: "object",
|
||||||
properties: {
|
properties: {
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { In, IsNull, MoreThan, Not } from 'typeorm';
|
import { In, IsNull, MoreThan, Not } from 'typeorm';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
import * as fsp from 'node:fs/promises';
|
import * as fsp from 'node:fs/promises';
|
||||||
import * as crypto from 'node:crypto';
|
import * as crypto from 'node:crypto';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { Endpoint } from '@/server/api/endpoint-base.js';
|
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||||
import type { UsersRepository, UserProfilesRepository } from '@/models/_.js';
|
import type { UsersRepository, UserProfilesRepository } from '@/models/_.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { Endpoint } from '@/server/api/endpoint-base.js';
|
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||||
import type { UsersRepository } from '@/models/_.js';
|
import type { UsersRepository } from '@/models/_.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { Endpoint } from '@/server/api/endpoint-base.js';
|
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||||
import type { UsersRepository, UserProfilesRepository } from '@/models/_.js';
|
import type { UsersRepository, UserProfilesRepository } from '@/models/_.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { Endpoint } from '@/server/api/endpoint-base.js';
|
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||||
import type { UsersRepository } from '@/models/_.js';
|
import type { UsersRepository } from '@/models/_.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import ms from 'ms';
|
import ms from 'ms';
|
||||||
import { Endpoint } from '@/server/api/endpoint-base.js';
|
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||||
@ -59,7 +64,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
|||||||
const file = await this.driveFilesRepository.findOneBy({ id: ps.fileId });
|
const file = await this.driveFilesRepository.findOneBy({ id: ps.fileId });
|
||||||
|
|
||||||
if (file == null) throw new ApiError(meta.errors.noSuchFile);
|
if (file == null) throw new ApiError(meta.errors.noSuchFile);
|
||||||
|
|
||||||
if (file.size === 0) throw new ApiError(meta.errors.emptyFile);
|
if (file.size === 0) throw new ApiError(meta.errors.emptyFile);
|
||||||
|
|
||||||
if ((await this.roleService.getUserPolicies(me.id)).canImportNotes === false) {
|
if ((await this.roleService.getUserPolicies(me.id)).canImportNotes === false) {
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { Endpoint } from '@/server/api/endpoint-base.js';
|
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||||
import type { RegistryItemsRepository } from '@/models/_.js';
|
import type { RegistryItemsRepository } from '@/models/_.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import * as Redis from 'ioredis';
|
import * as Redis from 'ioredis';
|
||||||
import { Endpoint } from '@/server/api/endpoint-base.js';
|
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import megalodon, { Entity, MegalodonInterface } from 'megalodon';
|
import megalodon, { Entity, MegalodonInterface } from 'megalodon';
|
||||||
import querystring from 'querystring';
|
import querystring from 'querystring';
|
||||||
@ -89,7 +94,7 @@ export class MastodonApiServerService {
|
|||||||
reply.code(401).send(e.response.data);
|
reply.code(401).send(e.response.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get('/v1/instance', async (_request, reply) => {
|
fastify.get('/v1/instance', async (_request, reply) => {
|
||||||
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
||||||
const accessTokens = _request.headers.authorization;
|
const accessTokens = _request.headers.authorization;
|
||||||
@ -113,7 +118,7 @@ export class MastodonApiServerService {
|
|||||||
reply.code(401).send(e.response.data);
|
reply.code(401).send(e.response.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get('/v1/announcements', async (_request, reply) => {
|
fastify.get('/v1/announcements', async (_request, reply) => {
|
||||||
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
||||||
const accessTokens = _request.headers.authorization;
|
const accessTokens = _request.headers.authorization;
|
||||||
@ -126,7 +131,7 @@ export class MastodonApiServerService {
|
|||||||
reply.code(401).send(e.response.data);
|
reply.code(401).send(e.response.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.post<{ Body: { id: string } }>('/v1/announcements/:id/dismiss', async (_request, reply) => {
|
fastify.post<{ Body: { id: string } }>('/v1/announcements/:id/dismiss', async (_request, reply) => {
|
||||||
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
||||||
const accessTokens = _request.headers.authorization;
|
const accessTokens = _request.headers.authorization;
|
||||||
@ -177,8 +182,8 @@ export class MastodonApiServerService {
|
|||||||
/* console.error(e); */
|
/* console.error(e); */
|
||||||
reply.code(401).send(e.response.data);
|
reply.code(401).send(e.response.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get('/v1/filters', async (_request, reply) => {
|
fastify.get('/v1/filters', async (_request, reply) => {
|
||||||
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
||||||
const accessTokens = _request.headers.authorization;
|
const accessTokens = _request.headers.authorization;
|
||||||
@ -192,7 +197,7 @@ export class MastodonApiServerService {
|
|||||||
reply.code(401).send(e.response.data);
|
reply.code(401).send(e.response.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get('/v1/trends', async (_request, reply) => {
|
fastify.get('/v1/trends', async (_request, reply) => {
|
||||||
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
||||||
const accessTokens = _request.headers.authorization;
|
const accessTokens = _request.headers.authorization;
|
||||||
@ -238,7 +243,7 @@ export class MastodonApiServerService {
|
|||||||
reply.code(401).send(e.response.data);
|
reply.code(401).send(e.response.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get('/v1/preferences', async (_request, reply) => {
|
fastify.get('/v1/preferences', async (_request, reply) => {
|
||||||
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
const BASE_URL = `${_request.protocol}://${_request.hostname}`;
|
||||||
const accessTokens = _request.headers.authorization;
|
const accessTokens = _request.headers.authorization;
|
||||||
@ -291,18 +296,18 @@ export class MastodonApiServerService {
|
|||||||
user: { id: tokeninfo.userId, host: null },
|
user: { id: tokeninfo.userId, host: null },
|
||||||
path: avatar.path,
|
path: avatar.path,
|
||||||
name: avatar.originalname !== null && avatar.originalname !== 'file' ? avatar.originalname : undefined,
|
name: avatar.originalname !== null && avatar.originalname !== 'file' ? avatar.originalname : undefined,
|
||||||
sensitive: false,
|
sensitive: false,
|
||||||
});
|
});
|
||||||
if (upload.type.startsWith('image/')) {
|
if (upload.type.startsWith('image/')) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
(_request.body as any).avatar = upload.id;
|
(_request.body as any).avatar = upload.id;
|
||||||
}
|
}
|
||||||
} else if (tokeninfo && header) {
|
} else if (tokeninfo && header) {
|
||||||
const upload = await this.driveService.addFile({
|
const upload = await this.driveService.addFile({
|
||||||
user: { id: tokeninfo.userId, host: null },
|
user: { id: tokeninfo.userId, host: null },
|
||||||
path: header.path,
|
path: header.path,
|
||||||
name: header.originalname !== null && header.originalname !== 'file' ? header.originalname : undefined,
|
name: header.originalname !== null && header.originalname !== 'file' ? header.originalname : undefined,
|
||||||
sensitive: false,
|
sensitive: false,
|
||||||
});
|
});
|
||||||
if (upload.type.startsWith('image/')) {
|
if (upload.type.startsWith('image/')) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
@ -324,7 +329,7 @@ export class MastodonApiServerService {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
(_request.body as any).fields_attributes = fields.filter((field: any) => field.name.trim().length > 0 && field.value.length > 0);
|
(_request.body as any).fields_attributes = fields.filter((field: any) => field.name.trim().length > 0 && field.value.length > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
const data = await client.updateCredentials(_request.body!);
|
const data = await client.updateCredentials(_request.body!);
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { Entity } from 'megalodon';
|
import { Entity } from 'megalodon';
|
||||||
import mfm from '@transfem-org/sfm-js';
|
import mfm from '@transfem-org/sfm-js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { ApiAuthMastodon } from './endpoints/auth.js';
|
import { ApiAuthMastodon } from './endpoints/auth.js';
|
||||||
import { ApiAccountMastodon } from './endpoints/account.js';
|
import { ApiAccountMastodon } from './endpoints/account.js';
|
||||||
import { ApiSearchMastodon } from './endpoints/search.js';
|
import { ApiSearchMastodon } from './endpoints/search.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { MastoConverters, convertRelationship } from '../converters.js';
|
import { MastoConverters, convertRelationship } from '../converters.js';
|
||||||
import { argsToBools, limitToInt } from './timeline.js';
|
import { argsToBools, limitToInt } from './timeline.js';
|
||||||
import type { MegalodonInterface } from 'megalodon';
|
import type { MegalodonInterface } from 'megalodon';
|
||||||
@ -104,7 +109,7 @@ export class ApiAccountMastodon {
|
|||||||
public async getFollowers() {
|
public async getFollowers() {
|
||||||
try {
|
try {
|
||||||
const data = await this.client.getAccountFollowers(
|
const data = await this.client.getAccountFollowers(
|
||||||
(this.request.params as any).id,
|
(this.request.params as any).id,
|
||||||
limitToInt(this.request.query as any),
|
limitToInt(this.request.query as any),
|
||||||
);
|
);
|
||||||
return await Promise.all(data.data.map(async (account) => await this.mastoconverter.convertAccount(account)));
|
return await Promise.all(data.data.map(async (account) => await this.mastoconverter.convertAccount(account)));
|
||||||
@ -118,7 +123,7 @@ export class ApiAccountMastodon {
|
|||||||
public async getFollowing() {
|
public async getFollowing() {
|
||||||
try {
|
try {
|
||||||
const data = await this.client.getAccountFollowing(
|
const data = await this.client.getAccountFollowing(
|
||||||
(this.request.params as any).id,
|
(this.request.params as any).id,
|
||||||
limitToInt(this.request.query as any),
|
limitToInt(this.request.query as any),
|
||||||
);
|
);
|
||||||
return await Promise.all(data.data.map(async (account) => await this.mastoconverter.convertAccount(account)));
|
return await Promise.all(data.data.map(async (account) => await this.mastoconverter.convertAccount(account)));
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import type { MegalodonInterface } from 'megalodon';
|
import type { MegalodonInterface } from 'megalodon';
|
||||||
import type { FastifyRequest } from 'fastify';
|
import type { FastifyRequest } from 'fastify';
|
||||||
|
|
||||||
@ -65,7 +70,7 @@ export async function ApiAuthMastodon(request: FastifyRequest, client: Megalodon
|
|||||||
client_id: Buffer.from(appData.url || '').toString('base64'),
|
client_id: Buffer.from(appData.url || '').toString('base64'),
|
||||||
client_secret: appData.clientSecret,
|
client_secret: appData.clientSecret,
|
||||||
};
|
};
|
||||||
|
|
||||||
return returns;
|
return returns;
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { convertFilter } from '../converters.js';
|
import { convertFilter } from '../converters.js';
|
||||||
import type { MegalodonInterface } from 'megalodon';
|
import type { MegalodonInterface } from 'megalodon';
|
||||||
import type { FastifyRequest } from 'fastify';
|
import type { FastifyRequest } from 'fastify';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Entity } from 'megalodon';
|
import { Entity } from 'megalodon';
|
||||||
import { FILE_TYPE_BROWSERSAFE } from '@/const.js';
|
import { FILE_TYPE_BROWSERSAFE } from '@/const.js';
|
||||||
import type { Config } from '@/config.js';
|
import type { Config } from '@/config.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { convertNotification } from '../converters.js';
|
import { convertNotification } from '../converters.js';
|
||||||
import type { MegalodonInterface, Entity } from 'megalodon';
|
import type { MegalodonInterface, Entity } from 'megalodon';
|
||||||
import type { FastifyRequest } from 'fastify';
|
import type { FastifyRequest } from 'fastify';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { MastoConverters } from '../converters.js';
|
import { MastoConverters } from '../converters.js';
|
||||||
import { limitToInt } from './timeline.js';
|
import { limitToInt } from './timeline.js';
|
||||||
import type { MegalodonInterface } from 'megalodon';
|
import type { MegalodonInterface } from 'megalodon';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import querystring from 'querystring';
|
import querystring from 'querystring';
|
||||||
import { emojiRegexAtStartToEnd } from '@/misc/emoji-regex.js';
|
import { emojiRegexAtStartToEnd } from '@/misc/emoji-regex.js';
|
||||||
import { convertAttachment, convertPoll, convertStatusSource, MastoConverters } from '../converters.js';
|
import { convertAttachment, convertPoll, convertStatusSource, MastoConverters } from '../converters.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { ParsedUrlQuery } from 'querystring';
|
import { ParsedUrlQuery } from 'querystring';
|
||||||
import { convertConversation, convertList, MastoConverters } from '../converters.js';
|
import { convertConversation, convertList, MastoConverters } from '../converters.js';
|
||||||
import { getClient } from '../MastodonApiServerService.js';
|
import { getClient } from '../MastodonApiServerService.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: leah and other Cutiekey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<span ref="container" :class="$style.root">
|
<span ref="container" :class="$style.root">
|
||||||
<span ref="el" :class="$style.inner" style="position: absolute">
|
<span ref="el" :class="$style.inner" style="position: absolute">
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<MkWindow
|
<MkWindow
|
||||||
ref="window"
|
ref="window"
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div v-if="hide" class="mod-player-disabled" @click="toggleVisible()">
|
<div v-if="hide" class="mod-player-disabled" @click="toggleVisible()">
|
||||||
<div>
|
<div>
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<MkFolder :expanded="false">
|
<MkFolder :expanded="false">
|
||||||
<template #icon><i class="ph-user ph-bold ph-lg"></i></template>
|
<template #icon><i class="ph-user ph-bold ph-lg"></i></template>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: syuilo and other misskey contributors
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
SPDX-License-Identifier: AGPL-3.0-only
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: syuilo and other misskey contributors
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
SPDX-License-Identifier: AGPL-3.0-only
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<MkWindow ref="window" :initialWidth="500" :initialHeight="300" :canResize="true" @closed="emit('closed')">
|
<MkWindow ref="window" :initialWidth="500" :initialHeight="300" :canResize="true" @closed="emit('closed')">
|
||||||
<template #header>
|
<template #header>
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: kopper and other Sharkey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div ref="nekoEl" :class="$style.oneko" aria-hidden="true"></div>
|
<div ref="nekoEl" :class="$style.oneko" aria-hidden="true"></div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<MkWindow ref="window" :initialWidth="600" :initialHeight="450" :canResize="true" @closed="emit('closed')">
|
<MkWindow ref="window" :initialWidth="600" :initialHeight="450" :canResize="true" @closed="emit('closed')">
|
||||||
<template #header>
|
<template #header>
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: amelia and other Sharkey contributors
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<MkContainer :foldable="true">
|
<MkContainer :foldable="true">
|
||||||
<template #header
|
<template #header
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import * as mfm from '@transfem-org/sfm-js';
|
import * as mfm from '@transfem-org/sfm-js';
|
||||||
|
|
||||||
export function checkAnimationFromMfm(nodes: mfm.MfmNode[]): boolean {
|
export function checkAnimationFromMfm(nodes: mfm.MfmNode[]): boolean {
|
||||||
@ -8,9 +13,9 @@ export function checkAnimationFromMfm(nodes: mfm.MfmNode[]): boolean {
|
|||||||
node.props.name === 'twitch' ||
|
node.props.name === 'twitch' ||
|
||||||
node.props.name === 'shake' ||
|
node.props.name === 'shake' ||
|
||||||
node.props.name === 'spin' ||
|
node.props.name === 'spin' ||
|
||||||
node.props.name === 'jump' ||
|
node.props.name === 'jump' ||
|
||||||
node.props.name === 'bounce' ||
|
node.props.name === 'bounce' ||
|
||||||
node.props.name === 'rainbow' ||
|
node.props.name === 'rainbow' ||
|
||||||
node.props.name === 'sparkle') {
|
node.props.name === 'sparkle') {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@ -20,7 +25,7 @@ export function checkAnimationFromMfm(nodes: mfm.MfmNode[]): boolean {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (animatedNodes.length > 0) {
|
if (animatedNodes.length > 0) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
|
|
||||||
const ChiptuneAudioContext = window.AudioContext || window.webkitAudioContext;
|
const ChiptuneAudioContext = window.AudioContext || window.webkitAudioContext;
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: leah and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import tinycolor from 'tinycolor2';
|
import tinycolor from 'tinycolor2';
|
||||||
|
|
||||||
class FavIconDot {
|
class FavIconDot {
|
||||||
@ -17,13 +22,13 @@ class FavIconDot {
|
|||||||
*/
|
*/
|
||||||
public async setup() {
|
public async setup() {
|
||||||
const element: HTMLLinkElement = await this.getOrMakeFaviconElement();
|
const element: HTMLLinkElement = await this.getOrMakeFaviconElement();
|
||||||
|
|
||||||
this.faviconEL = element;
|
this.faviconEL = element;
|
||||||
this.src = this.faviconEL.getAttribute('href');
|
this.src = this.faviconEL.getAttribute('href');
|
||||||
this.ctx = this.canvas.getContext('2d');
|
this.ctx = this.canvas.getContext('2d');
|
||||||
|
|
||||||
this.faviconImage = document.createElement('img');
|
this.faviconImage = document.createElement('img');
|
||||||
|
|
||||||
this.hasLoaded = new Promise((resolve, reject) => {
|
this.hasLoaded = new Promise((resolve, reject) => {
|
||||||
(this.faviconImage as HTMLImageElement).addEventListener('load', () => {
|
(this.faviconImage as HTMLImageElement).addEventListener('load', () => {
|
||||||
this.canvas.width = (this.faviconImage as HTMLImageElement).width;
|
this.canvas.width = (this.faviconImage as HTMLImageElement).width;
|
||||||
@ -100,7 +105,7 @@ export function setFavIconDot(visible: boolean) {
|
|||||||
icon = new FavIconDot();
|
icon = new FavIconDot();
|
||||||
await icon.setup();
|
await icon.setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
(icon as FavIconDot).setVisible(visible);
|
(icon as FavIconDot).setVisible(visible);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { Ref, defineAsyncComponent } from 'vue';
|
import { Ref, defineAsyncComponent } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import { i18n } from '@/i18n.js';
|
import { i18n } from '@/i18n.js';
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: leah and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
//store the URL and if its none of these its a custom one
|
//store the URL and if its none of these its a custom one
|
||||||
export const searchEngineMap = {
|
export const searchEngineMap = {
|
||||||
//The first one is the default search engine
|
//The first one is the default search engine
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: syuilo and other misskey contributors
|
SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
SPDX-License-Identifier: AGPL-3.0-only
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: dakkar and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
import { describe, test, assert, afterEach } from 'vitest';
|
import { describe, test, assert, afterEach } from 'vitest';
|
||||||
import { nyaize } from '@/scripts/nyaize.js';
|
import { nyaize } from '@/scripts/nyaize.js';
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: marie and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
// trims dependencies for production
|
// trims dependencies for production
|
||||||
// only run after a full build
|
// only run after a full build
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user