Compare commits

..

16 commits

Author SHA1 Message Date
zima
4e475f029c Merge pull request 'stable v1' (#6) from dev into stable
Reviewed-on: https://codeberg.org/yeentown/barkey/pulls/6
2024-11-14 23:55:54 +00:00
zima
0954b098a4 change default account and experience settings, and disable like button
Reviewed-on: https://codeberg.org/yeentown/barkey/pulls/5
2024-11-13 03:33:56 +00:00
6c92c9c3b3
migration must happen after fixorm 2024-11-10 02:55:02 -05:00
b016d28662
improve search mfm 2024-11-10 02:32:04 -05:00
7e064399f8
non-fucked migration script 2024-11-10 02:32:01 -05:00
2716753267
she migrate on my TypeORM till i (GUNSHOTS) 2024-11-10 02:31:58 -05:00
f69d75014d
Change default settings
Someone needs to generate the TypeORM migrations for me because I can't
get the sodding thing to work on my end and it's driving me absolutely
potty.
2024-11-10 02:31:55 -05:00
5bdffb913f
Remove like button 2024-11-10 02:31:51 -05:00
zima
2b7abfb8d7 Merge pull request 'fix fix orm' (#4) from fix-fix-orm into dev
Reviewed-on: https://codeberg.org/yeentown/barkey/pulls/4
Reviewed-by: zima <zima@noreply.codeberg.org>
2024-11-10 07:31:03 +00:00
b62621a44d
oops :) 2024-11-10 02:29:33 -05:00
zima
62ea386ca4 Merge pull request 'Fix ORM models to match intended database schema' (#3) from fix-orm into dev
Reviewed-on: https://codeberg.org/yeentown/barkey/pulls/3
Reviewed-by: zima <zima@noreply.codeberg.org>
2024-11-10 04:27:48 +00:00
ce037e0738
Fix ORM models to match intended database schema 2024-11-09 19:34:25 -05:00
zima
55a827642c Merge pull request 'Set NewRodin to swap display' (#2) from fix-font-display into dev
Reviewed-on: https://codeberg.org/yeentown/barkey/pulls/2
2024-11-09 00:15:53 +00:00
zima
a976f82c36 Set NewRodin to swap display 2024-11-08 16:54:29 -07:00
HellhoundSoftware
976dead978 Merge pull request 'Replaced NewRodin OTF with fixed TTF/WOFF2 version' (#1) from fix-new-rodin into dev
Reviewed-on: https://codeberg.org/yeentown/barkey/pulls/1
2024-11-08 21:49:26 +00:00
548f5ead3f
Replaced NewRodin OTF with fixed TTF/WOFF2 version 2024-11-08 16:46:00 -05:00
26 changed files with 161 additions and 45 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,107 @@
export class FixOrm1731198456911 {
name = 'FixOrm1731198456911'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_q5lm0tbgejtfskzg0rc4wd7t1n"`);
await queryRunner.query(`ALTER TABLE "latest_note" DROP CONSTRAINT "FK_47a38b1c13de6ce4e5090fb1acd"`);
await queryRunner.query(`ALTER TABLE "latest_note" DROP CONSTRAINT "FK_20e346fffe4a2174585005d6d80"`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_systemWebhookId"`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_userId2"`);
await queryRunner.query(`ALTER TABLE "user_list_membership" DROP CONSTRAINT "FK_605472305f26818cc93d1baaa74"`);
await queryRunner.query(`ALTER TABLE "user_list_membership" DROP CONSTRAINT "FK_d844bfc6f3f523a05189076efaa"`);
await queryRunner.query(`DROP INDEX "public"."IDX_abuse_report_notification_recipient_isActive"`);
await queryRunner.query(`DROP INDEX "public"."IDX_abuse_report_notification_recipient_method"`);
await queryRunner.query(`DROP INDEX "public"."IDX_abuse_report_notification_recipient_userId"`);
await queryRunner.query(`DROP INDEX "public"."IDX_abuse_report_notification_recipient_systemWebhookId"`);
await queryRunner.query(`COMMENT ON COLUMN "user"."backgroundId" IS 'The ID of background DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS 'Whether the User is silenced.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."noindex" IS 'Whether the User''s notes dont get indexed.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."speakAsCat" IS 'Whether the User speaks in nya.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."updatedAt" IS 'The update time of the Note.'`);
await queryRunner.query(`ALTER TABLE "system_webhook" ALTER COLUMN "updatedAt" SET DEFAULT now()`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."listenbrainz" IS 'The ListenBrainz username of the User.'`);
await queryRunner.query(`ALTER TYPE "public"."user_profile_followersVisibility_enum" RENAME TO "user_profile_followersVisibility_enum_old"`);
await queryRunner.query(`CREATE TYPE "public"."user_profile_followersvisibility_enum" AS ENUM('public', 'followers', 'private')`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followersVisibility" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followersVisibility" TYPE "public"."user_profile_followersvisibility_enum" USING "followersVisibility"::"text"::"public"."user_profile_followersvisibility_enum"`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followersVisibility" SET DEFAULT 'public'`);
await queryRunner.query(`DROP TYPE "public"."user_profile_followersVisibility_enum_old"`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_userId1"`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ALTER COLUMN "updatedAt" SET DEFAULT now()`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ALTER COLUMN "userId" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ALTER COLUMN "systemWebhookId" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "preservedUsernames" SET DEFAULT '{ "admin", "administrator", "root", "system", "maintainer", "host", "mod", "moderator", "owner", "superuser", "staff", "auth", "i", "me", "everyone", "all", "mention", "mentions", "example", "user", "users", "account", "accounts", "official", "help", "helps", "support", "supports", "info", "information", "informations", "announce", "announces", "announcement", "announcements", "notice", "notification", "notifications", "dev", "developer", "developers", "tech", "misskey" }'`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "urlPreviewUserAgent" DROP DEFAULT`);
await queryRunner.query(`COMMENT ON COLUMN "meta"."trustedLinkUrlPatterns" IS 'An array of URL strings or regex that can be used to omit warnings about redirects to external sites. Separate them with spaces to specify AND, and enclose them with slashes to specify regular expressions. Each item is regarded as an OR.'`);
await queryRunner.query(`ALTER TABLE "flash" ALTER COLUMN "visibility" SET NOT NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_edit"."oldDate" IS 'The old date from before the edit'`);
await queryRunner.query(`CREATE INDEX "IDX_58699f75b9cf904f5f007909cb" ON "user_profile" ("birthday") `);
await queryRunner.query(`CREATE INDEX "IDX_bd5de500bac2e158a7bf8426e8" ON "abuse_report_notification_recipient" ("isActive") `);
await queryRunner.query(`CREATE INDEX "IDX_7c8ef2211cf3cee665d75d5e90" ON "abuse_report_notification_recipient" ("method") `);
await queryRunner.query(`CREATE INDEX "IDX_ffb3900031cf2fa6af1e1cb3e3" ON "abuse_report_notification_recipient" ("userId") `);
await queryRunner.query(`CREATE INDEX "IDX_5e0740f3b5b4290103ecf33b72" ON "abuse_report_notification_recipient" ("systemWebhookId") `);
await queryRunner.query(`CREATE INDEX "IDX_021015e6683570ae9f6b0c62be" ON "user_list_membership" ("userId") `);
await queryRunner.query(`CREATE INDEX "IDX_cddcaf418dc4d392ecfcca842a" ON "user_list_membership" ("userListId") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e4f3094c43f2d665e6030b0337" ON "user_list_membership" ("userId", "userListId") `);
await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_eea94b046385ca7713de38630f7" FOREIGN KEY ("backgroundId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "latest_note" ADD CONSTRAINT "FK_f619b62bfaafabe68f52fb50c9a" FOREIGN KEY ("user_id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "latest_note" ADD CONSTRAINT "FK_65f6ddaacc46e04ea8668592e30" FOREIGN KEY ("note_id") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ADD CONSTRAINT "FK_abuse_report_notification_recipient_userId1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ADD CONSTRAINT "FK_abuse_report_notification_recipient_userId2" FOREIGN KEY ("userId") REFERENCES "user_profile"("userId") ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ADD CONSTRAINT "FK_5e0740f3b5b4290103ecf33b722" FOREIGN KEY ("systemWebhookId") REFERENCES "system_webhook"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "user_list_membership" ADD CONSTRAINT "FK_021015e6683570ae9f6b0c62bee" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "user_list_membership" ADD CONSTRAINT "FK_cddcaf418dc4d392ecfcca842a7" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_list_membership" DROP CONSTRAINT "FK_cddcaf418dc4d392ecfcca842a7"`);
await queryRunner.query(`ALTER TABLE "user_list_membership" DROP CONSTRAINT "FK_021015e6683570ae9f6b0c62bee"`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_5e0740f3b5b4290103ecf33b722"`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_userId2"`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_userId1"`);
await queryRunner.query(`ALTER TABLE "latest_note" DROP CONSTRAINT "FK_65f6ddaacc46e04ea8668592e30"`);
await queryRunner.query(`ALTER TABLE "latest_note" DROP CONSTRAINT "FK_f619b62bfaafabe68f52fb50c9a"`);
await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_eea94b046385ca7713de38630f7"`);
await queryRunner.query(`DROP INDEX "public"."IDX_e4f3094c43f2d665e6030b0337"`);
await queryRunner.query(`DROP INDEX "public"."IDX_cddcaf418dc4d392ecfcca842a"`);
await queryRunner.query(`DROP INDEX "public"."IDX_021015e6683570ae9f6b0c62be"`);
await queryRunner.query(`DROP INDEX "public"."IDX_5e0740f3b5b4290103ecf33b72"`);
await queryRunner.query(`DROP INDEX "public"."IDX_ffb3900031cf2fa6af1e1cb3e3"`);
await queryRunner.query(`DROP INDEX "public"."IDX_7c8ef2211cf3cee665d75d5e90"`);
await queryRunner.query(`DROP INDEX "public"."IDX_bd5de500bac2e158a7bf8426e8"`);
await queryRunner.query(`DROP INDEX "public"."IDX_58699f75b9cf904f5f007909cb"`);
await queryRunner.query(`COMMENT ON COLUMN "note_edit"."oldDate" IS NULL`);
await queryRunner.query(`ALTER TABLE "flash" ALTER COLUMN "visibility" DROP NOT NULL`);
await queryRunner.query(`COMMENT ON COLUMN "meta"."trustedLinkUrlPatterns" IS NULL`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "urlPreviewUserAgent" SET DEFAULT NULL`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "preservedUsernames" SET DEFAULT '{admin,administrator,root,system,maintainer,host,mod,moderator,owner,superuser,staff,auth,i,me,everyone,all,mention,mentions,example,user,users,account,accounts,official,help,helps,support,supports,info,information,informations,announce,announces,announcement,announcements,notice,notification,notifications,dev,developer,developers,tech,misskey}'`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ALTER COLUMN "systemWebhookId" SET DEFAULT NULL`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ALTER COLUMN "userId" SET DEFAULT NULL`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ALTER COLUMN "updatedAt" SET DEFAULT CURRENT_TIMESTAMP`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ADD CONSTRAINT "FK_abuse_report_notification_recipient_userId1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`CREATE TYPE "public"."user_profile_followersVisibility_enum_old" AS ENUM('public', 'followers', 'private')`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followersVisibility" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followersVisibility" TYPE "public"."user_profile_followersVisibility_enum_old" USING "followersVisibility"::"text"::"public"."user_profile_followersVisibility_enum_old"`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followersVisibility" SET DEFAULT 'public'`);
await queryRunner.query(`DROP TYPE "public"."user_profile_followersvisibility_enum"`);
await queryRunner.query(`ALTER TYPE "public"."user_profile_followersVisibility_enum_old" RENAME TO "user_profile_followersVisibility_enum"`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."listenbrainz" IS 'listenbrainz username to fetch currently playing.'`);
await queryRunner.query(`ALTER TABLE "system_webhook" ALTER COLUMN "updatedAt" SET DEFAULT CURRENT_TIMESTAMP`);
await queryRunner.query(`COMMENT ON COLUMN "note"."updatedAt" IS 'The updated date of the Note.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."speakAsCat" IS 'Whether to speak as a cat if chosen.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."noindex" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."backgroundId" IS NULL`);
await queryRunner.query(`CREATE INDEX "IDX_abuse_report_notification_recipient_systemWebhookId" ON "abuse_report_notification_recipient" ("systemWebhookId") `);
await queryRunner.query(`CREATE INDEX "IDX_abuse_report_notification_recipient_userId" ON "abuse_report_notification_recipient" ("userId") `);
await queryRunner.query(`CREATE INDEX "IDX_abuse_report_notification_recipient_method" ON "abuse_report_notification_recipient" ("method") `);
await queryRunner.query(`CREATE INDEX "IDX_abuse_report_notification_recipient_isActive" ON "abuse_report_notification_recipient" ("isActive") `);
await queryRunner.query(`ALTER TABLE "user_list_membership" ADD CONSTRAINT "FK_d844bfc6f3f523a05189076efaa" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "user_list_membership" ADD CONSTRAINT "FK_605472305f26818cc93d1baaa74" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ADD CONSTRAINT "FK_abuse_report_notification_recipient_userId2" FOREIGN KEY ("userId") REFERENCES "user_profile"("userId") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "abuse_report_notification_recipient" ADD CONSTRAINT "FK_abuse_report_notification_recipient_systemWebhookId" FOREIGN KEY ("systemWebhookId") REFERENCES "system_webhook"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "latest_note" ADD CONSTRAINT "FK_20e346fffe4a2174585005d6d80" FOREIGN KEY ("user_id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "latest_note" ADD CONSTRAINT "FK_47a38b1c13de6ce4e5090fb1acd" FOREIGN KEY ("note_id") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_q5lm0tbgejtfskzg0rc4wd7t1n" FOREIGN KEY ("backgroundId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
}
}

View file

@ -0,0 +1,15 @@
export class RelationshipsPrivateByDefault1731198456912 {
name = 'RelationshipsPrivateByDefault1731198456912'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "publicReactions" SET DEFAULT false`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followingVisibility" SET DEFAULT 'private'`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followersVisibility" SET DEFAULT 'private'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followersVisibility" SET DEFAULT 'public'`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "followingVisibility" SET DEFAULT 'public'`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "publicReactions" SET DEFAULT true`);
}
}

View file

@ -47,7 +47,7 @@ export class MiMeta {
public maintainerEmail: string | null; public maintainerEmail: string | null;
@Column('boolean', { @Column('boolean', {
default: false, default: true,
}) })
public disableRegistration: boolean; public disableRegistration: boolean;
@ -402,7 +402,7 @@ export class MiMeta {
@Column('varchar', { @Column('varchar', {
length: 1024, length: 1024,
default: 'https://activitypub.software/TransFem-org/Sharkey/', default: 'https://activitypub.software/TransFem-org/Sharkey/',
nullable: false, nullable: true, // this is indeed supposed to be nullable. accidentally set wrong in e248e41287
}) })
public repositoryUrl: string | null; public repositoryUrl: string | null;
@ -625,22 +625,22 @@ export class MiMeta {
public enableFanoutTimelineDbFallback: boolean; public enableFanoutTimelineDbFallback: boolean;
@Column('integer', { @Column('integer', {
default: 300, default: 800,
}) })
public perLocalUserUserTimelineCacheMax: number; public perLocalUserUserTimelineCacheMax: number;
@Column('integer', { @Column('integer', {
default: 100, default: 800,
}) })
public perRemoteUserUserTimelineCacheMax: number; public perRemoteUserUserTimelineCacheMax: number;
@Column('integer', { @Column('integer', {
default: 300, default: 800,
}) })
public perUserHomeTimelineCacheMax: number; public perUserHomeTimelineCacheMax: number;
@Column('integer', { @Column('integer', {
default: 300, default: 800,
}) })
public perUserListTimelineCacheMax: number; public perUserListTimelineCacheMax: number;
@ -654,9 +654,15 @@ export class MiMeta {
}) })
public notesPerOneAd: number; public notesPerOneAd: number;
// FIXME: it seems like this shouldn't actually be nullable,
// because a lot of code assumes it has a value and can't deal
// with it being null. however, i haven't changed it yet because
// it's possible some OTHER code depends on it being nullable...
// this is a mess lol
@Column('varchar', { @Column('varchar', {
length: 500, length: 500,
nullable: true, nullable: true,
default: '❤️'
}) })
public defaultLike: string | null; public defaultLike: string | null;
@ -681,7 +687,7 @@ export class MiMeta {
public urlPreviewMaximumContentLength: number; public urlPreviewMaximumContentLength: number;
@Column('boolean', { @Column('boolean', {
default: true, default: false,
}) })
public urlPreviewRequireContentLength: boolean; public urlPreviewRequireContentLength: boolean;

View file

@ -56,6 +56,7 @@ export class NoteEdit {
@Column("timestamp with time zone", { @Column("timestamp with time zone", {
comment: "The old date from before the edit", comment: "The old date from before the edit",
nullable: true,
}) })
public oldDate: Date; public oldDate: Date | null;
} }

View file

@ -34,6 +34,7 @@ export class MiUserPending {
@Column('varchar', { @Column('varchar', {
length: 1000, length: 1000,
nullable: true,
}) })
public reason: string; public reason: string | null;
} }

View file

@ -104,19 +104,19 @@ export class MiUserProfile {
public emailNotificationTypes: string[]; public emailNotificationTypes: string[];
@Column('boolean', { @Column('boolean', {
default: true, default: false,
}) })
public publicReactions: boolean; public publicReactions: boolean;
@Column('enum', { @Column('enum', {
enum: followingVisibilities, enum: followingVisibilities,
default: 'public', default: 'private',
}) })
public followingVisibility: typeof followingVisibilities[number]; public followingVisibility: typeof followingVisibilities[number];
@Column('enum', { @Column('enum', {
enum: followersVisibilities, enum: followersVisibilities,
default: 'public', default: 'private',
}) })
public followersVisibility: typeof followersVisibilities[number]; public followersVisibility: typeof followersVisibilities[number];

View file

@ -153,9 +153,6 @@ SPDX-License-Identifier: AGPL-3.0-only
> >
<i class="ph-quotes ph-bold ph-lg"></i> <i class="ph-quotes ph-bold ph-lg"></i>
</button> </button>
<button v-if="appearNote.myReaction == null && appearNote.reactionAcceptance !== 'likeOnly'" ref="likeButton" :class="$style.footerButton" class="_button" @click.stop @click="like()">
<i class="ph-heart ph-bold ph-lg"></i>
</button>
<button ref="reactButton" :class="$style.footerButton" class="_button" @click="toggleReact()" @click.stop> <button ref="reactButton" :class="$style.footerButton" class="_button" @click="toggleReact()" @click.stop>
<i v-if="appearNote.reactionAcceptance === 'likeOnly' && appearNote.myReaction != null" class="ti ti-heart-filled" style="color: var(--love);"></i> <i v-if="appearNote.reactionAcceptance === 'likeOnly' && appearNote.myReaction != null" class="ti ti-heart-filled" style="color: var(--love);"></i>
<i v-else-if="appearNote.myReaction != null" class="ti ti-minus" style="color: var(--accent);"></i> <i v-else-if="appearNote.myReaction != null" class="ti ti-minus" style="color: var(--accent);"></i>

View file

@ -161,9 +161,6 @@ SPDX-License-Identifier: AGPL-3.0-only
> >
<i class="ph-quotes ph-bold ph-lg"></i> <i class="ph-quotes ph-bold ph-lg"></i>
</button> </button>
<button v-if="appearNote.myReaction == null && appearNote.reactionAcceptance !== 'likeOnly'" ref="likeButton" :class="$style.noteFooterButton" class="_button" @mousedown="like()">
<i class="ph-heart ph-bold ph-lg"></i>
</button>
<button ref="reactButton" :class="$style.noteFooterButton" class="_button" @click="toggleReact()"> <button ref="reactButton" :class="$style.noteFooterButton" class="_button" @click="toggleReact()">
<i v-if="appearNote.reactionAcceptance === 'likeOnly' && appearNote.myReaction != null" class="ti ti-heart-filled" style="color: var(--love);"></i> <i v-if="appearNote.reactionAcceptance === 'likeOnly' && appearNote.myReaction != null" class="ti ti-heart-filled" style="color: var(--love);"></i>
<i v-else-if="appearNote.myReaction != null" class="ti ti-minus" style="color: var(--accent);"></i> <i v-else-if="appearNote.myReaction != null" class="ti ti-minus" style="color: var(--accent);"></i>

View file

@ -56,9 +56,6 @@ SPDX-License-Identifier: AGPL-3.0-only
<button v-else class="_button" :class="$style.noteFooterButton" disabled> <button v-else class="_button" :class="$style.noteFooterButton" disabled>
<i class="ph-prohibit ph-bold ph-lg"></i> <i class="ph-prohibit ph-bold ph-lg"></i>
</button> </button>
<button v-if="note.myReaction == null && note.reactionAcceptance !== 'likeOnly'" ref="likeButton" :class="$style.noteFooterButton" class="_button" @mousedown="like()">
<i class="ph-heart ph-bold ph-lg"></i>
</button>
<button v-if="note.myReaction == null" ref="reactButton" :class="$style.noteFooterButton" class="_button" @mousedown="react()"> <button v-if="note.myReaction == null" ref="reactButton" :class="$style.noteFooterButton" class="_button" @mousedown="react()">
<i v-if="note.reactionAcceptance === 'likeOnly'" class="ph-heart ph-bold ph-lg"></i> <i v-if="note.reactionAcceptance === 'likeOnly'" class="ph-heart ph-bold ph-lg"></i>
<i v-else class="ph-smiley ph-bold ph-lg"></i> <i v-else class="ph-smiley ph-bold ph-lg"></i>

View file

@ -6,12 +6,12 @@
//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
'https://www.google.com/search?q={query}': 'Google', 'https://e621.net/posts?tags={query}': 'e621',
'https://duckduckgo.com/?q={query}': 'Duckduckgo', 'https://www.furaffinity.net/search/?q={query}': 'FurAffinity',
'https://www.bing.com/search?q={query}': 'Bing', 'https://www.sofurry.com/browse/search?search={query}': 'SoFurry',
'https://search.yahoo.com/search?p={query}': 'Yahoo', 'https://www.weasyl.com/search?q={query}': 'Weasyl',
'https://www.ecosia.org/search?q={query}': 'Ecosia', 'https://duckduckgo.com/?q={query}': 'Ask Jeeves',
'https://www.qwant.com/?q={query}': 'Qwant', 'https://www.qwant.com/?q={query}': 'AltaVista',
'https://search.aol.com/aol/search?q={query}': 'AOL', 'https://wiby.me/?q={query}': 'JumpStation',
'https://yandex.com/search?text={query}': 'Yandex', 'https://yandex.com/search?text={query}': 'Yandex', // because nothing's funnier than Yandex
}; };

View file

@ -146,7 +146,7 @@ export const defaultStore = markRaw(new Storage('base', {
}, },
reactionAcceptance: { reactionAcceptance: {
where: 'account', where: 'account',
default: 'nonSensitiveOnly' as 'likeOnly' | 'likeOnlyForRemote' | 'nonSensitiveOnly' | 'nonSensitiveOnlyForLocalLikeOnlyForRemote' | null, default: null as 'likeOnly' | 'likeOnlyForRemote' | 'nonSensitiveOnly' | 'nonSensitiveOnlyForLocalLikeOnlyForRemote' | null,
}, },
like: { like: {
where: 'account', where: 'account',
@ -162,11 +162,11 @@ export const defaultStore = markRaw(new Storage('base', {
}, },
showVisibilitySelectorOnBoost: { showVisibilitySelectorOnBoost: {
where: 'account', where: 'account',
default: true, default: false,
}, },
visibilityOnBoost: { visibilityOnBoost: {
where: 'account', where: 'account',
default: 'public' as 'public' | 'home' | 'followers', default: 'followers' as 'public' | 'home' | 'followers',
}, },
trustedDomains: { trustedDomains: {
where: 'account', where: 'account',
@ -277,7 +277,7 @@ export const defaultStore = markRaw(new Storage('base', {
}, },
animatedMfm: { animatedMfm: {
where: 'device', where: 'device',
default: false, default: !window.matchMedia('(prefers-reduced-motion)').matches,
}, },
advancedMfm: { advancedMfm: {
where: 'device', where: 'device',

View file

@ -1,20 +1,12 @@
@charset "utf-8"; @charset "utf-8";
// default sharkey font
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Lexend';
font-style: normal;
font-weight: 400;
src: url('/static-assets/fonts/Lexend-VariableFont_wght.ttf') format('opentype');
}
// barkey/yeentown font // barkey/yeentown font
@font-face { @font-face {
font-family: 'FOT-NewRodin Pro'; font-family: 'FOT-NewRodin Pro';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url('/static-assets/fonts/FOT-NewRodin Pro/FOT-NewRodin Pro DB.otf') format('opentype'); font-display: swap;
src: url('/static-assets/fonts/NewRodinPro-DB.woff2') format('woff2');
} }
// barkey/yeentown font // barkey/yeentown font
@ -22,7 +14,8 @@
font-family: 'FOT-NewRodin Pro'; font-family: 'FOT-NewRodin Pro';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: url('/static-assets/fonts/FOT-NewRodin Pro/FOT-NewRodin Pro EB.otf') format('opentype'); font-display: swap;
src: url('/static-assets/fonts/NewRodinPro-EB.woff2') format('woff2');
} }
/* /*
@ -58,6 +51,8 @@
--avatar: 48px; --avatar: 48px;
--thread-width: 2px; --thread-width: 2px;
--custom-font: 'sharkey-theme-font-face';
} }
html.radius-misskey { html.radius-misskey {
@ -82,7 +77,7 @@ html {
accent-color: var(--accent); accent-color: var(--accent);
overflow: auto; overflow: auto;
overflow-wrap: break-word; overflow-wrap: break-word;
font-family: 'sharkey-theme-font-face', 'FOT-NewRodin Pro', 'Lexend', 'Hiragino Maru Gothic Pro', "BIZ UDGothic", Roboto, HelveticaNeue, Arial, sans-serif; font-family: var(--custom-font), 'FOT-NewRodin Pro', sans-serif;
font-size: 14px; font-size: 14px;
line-height: 1.35; line-height: 1.35;
text-size-adjust: 100%; text-size-adjust: 100%;