Federation (#327)

* initial commit federation

* more federation

* more federation

* more federation

* completes follow, accept, undo

* add trail create activity

* process trail create activity

* more trail create activity

* adds missing endpoints

* adds update and delete activity

* adds comment activities

* adds activities back

* adds summit logs activities

* deletes follow counts table

* fixes migrations

* fixes migrations

* fixes migrations

* fixes migrations

* adds remote profiles

* ctd

* ctd

* we are getting closer...

* adds public summit logs

* fixes federated trails in lists

* adds remote lists

* adds list activites

* fixes lists

* adds notifications

* adds iri redirect

* fixes comments and summitlogs

* fixes follows and profiles

* adds asynchronous send

* fixes list search

* adds encryption key

* bug fixes

* fixes activity signing

* removes custon activity object types

* adds html editor

* fixes html editor

* fixes display issues on mastodon

* adds federated sharing

* finishes announcements

* fixes small summit log issues

* adds trail likes

* finalizes likes

* fixes images for komoot

* add disable federation option

* adds private profiles

* updates docs

* adds federated comments

* adds trail and comments actvitiypub routes

* adds mentions to editor

* adds mentions to trails, comments, summit logs

* updates theme

* updates theme

* update docs

* update docs

* updates docs

* fixes various frontend problems

* fixes activitypub follows api

* updates docs

* updates docs

---------

Co-authored-by: Christian Beutel <>
This commit is contained in:
Flomp
2025-06-21 10:09:22 +02:00
committed by GitHub
parent 742a6d9d30
commit 9276690d60
356 changed files with 57150 additions and 35470 deletions

View File

@@ -25,7 +25,7 @@
{ text: `${$_("import")}/${$_("export")}`, value: "/settings/export" },
{
text: $_("help"),
value: "https://wanderer.to/getting-started/installation",
value: "https://wanderer.to/run/installation",
},
];

View File

@@ -107,7 +107,7 @@
}
if (exportSettings.summitLog) {
let summitLogString = "";
for (const summitLog of trail.expand?.summit_logs ?? []) {
for (const summitLog of trail.expand?.summit_logs_via_trail ?? []) {
summitLogString += `${summitLog.date},${summitLog.text}\n`;
}
trailFolder?.file(

View File

@@ -6,30 +6,44 @@
import { settings_update } from "$lib/stores/settings_store";
import { _ } from "svelte-i18n";
const notifications = $state((page.data.settings as Settings)?.notifications ?? {
list_create: {
web: true,
email: true,
},
const s = (page.data.settings as Settings)?.notifications
const notifications = $state({
list_share: {
web: true,
email: true,
},
trail_create: {
web: true,
email: true,
web: s?.list_share?.web ?? true,
email: s?.list_share?.email ?? true,
},
trail_share: {
web: true,
email: true,
web: s?.trail_share?.web ?? true,
email: s?.trail_share?.email ?? true,
},
trail_like: {
web: s?.trail_like?.web ?? true,
email: s?.trail_like?.email ?? true,
},
new_follower: {
web: true,
email: true,
web: s?.new_follower?.web ?? true,
email: s?.new_follower?.email ?? true,
},
trail_comment: {
web: true,
email: true,
web: s?.trail_comment?.web ?? true,
email: s?.trail_comment?.email ?? true,
},
summit_log_create: {
web: s?.summit_log_create?.web ?? true,
email: s?.summit_log_create?.email ?? true,
},
trail_mention: {
web: s?.trail_mention?.web ?? true,
email: s?.trail_mention?.email ?? true,
},
comment_mention: {
web: s?.comment_mention?.web ?? true,
email: s?.comment_mention?.email ?? true,
},
summit_log_mention: {
web: s?.summit_log_mention?.web ?? true,
email: s?.summit_log_mention?.email ?? true,
},
});
@@ -42,22 +56,34 @@
text: $_("settings-notification-new-follower"),
key: NotificationType.newFollower,
},
{
text: $_("settings-notification-trail-create"),
key: NotificationType.trailCreate,
},
{
text: $_("settings-notification-trail-share"),
key: NotificationType.trailShare,
},
{
text: $_("settings-notification-list-create"),
key: NotificationType.listCreate,
text: $_("settings-notification-trail-like"),
key: NotificationType.trailLike,
},
{
text: $_("settings-notification-list-share"),
key: NotificationType.listShare,
},
{
text: $_("settings-notification-summit-log-create"),
key: NotificationType.summitLogCreate,
},
{
text: $_("settings-notification-trail-mention"),
key: NotificationType.trailMention,
},
{
text: $_("settings-notification-comment-mention"),
key: NotificationType.commentMention,
},
{
text: $_("settings-notification-summit-log-mention"),
key: NotificationType.summitLogMention,
},
];
async function updateNotificationSettings() {

View File

@@ -1,6 +1,7 @@
<script lang="ts">
import { page } from "$app/state";
import Button from "$lib/components/base/button.svelte";
import Editor from "$lib/components/base/editor.svelte";
import type { SelectItem } from "$lib/components/base/select.svelte";
import Select from "$lib/components/base/select.svelte";
import Textarea from "$lib/components/base/textarea.svelte";
@@ -84,7 +85,7 @@
<img
class="object-cover h-full"
src={getFileURL($currentUser, $currentUser.avatar) ||
`https://api.dicebear.com/7.x/initials/svg?seed=${$currentUser.username}&backgroundType=gradientLinear`}
`https://api.dicebear.com/7.x/initials/svg?seed=${$currentUser.username?.toLowerCase()}&backgroundType=gradientLinear`}
alt="avatar"
/>
<button
@@ -110,7 +111,7 @@
</div>
<div>
<h4 class="text-xl font-medium">Bio</h4>
<Textarea bind:value={bio} rows={5}></Textarea>
<Editor bind:value={bio}></Editor>
<div class="mt-3">
<Button
onclick={() => handleBioSave()}