fixes private profile issues
This commit is contained in:
@@ -205,7 +205,7 @@
|
||||
onmouseenter={() => handleTrailMouseEnter(trail, i)}
|
||||
onmouseleave={() => handleTrailMouseLeave(trail, i)}
|
||||
>
|
||||
<TrailListItem {trail} showDescription={false}></TrailListItem>
|
||||
<TrailListItem selected={false} hovered={false} {trail} showDescription={false}></TrailListItem>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
@@ -20,7 +20,7 @@ export async function GET(event: RequestEvent) {
|
||||
|
||||
const [username, domain] = splitUsername(fullUsername, env.ORIGIN)
|
||||
|
||||
const actor: Actor = await event.locals.pb.collection("activitypub_actors").getFirstListItem(`username:lower='${username?.toLowerCase()}'&&isLocal=true`)
|
||||
const actor: Actor = await event.locals.pb.collection("activitypub_actors").getFirstListItem(`preferred_username:lower='${username?.toLowerCase()}'&&isLocal=true`)
|
||||
const user: UserAnonymous = await event.locals.pb.collection("users_anonymous").getOne(actor.user!)
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ export async function GET(event: RequestEvent) {
|
||||
|
||||
const [username, domain] = splitUsername(fullUsername, env.ORIGIN)
|
||||
|
||||
const actor: Actor = await event.locals.pb.collection("activitypub_actors").getFirstListItem(`username:lower='${username?.toLowerCase()}'&&isLocal=true`)
|
||||
const actor: Actor = await event.locals.pb.collection("activitypub_actors").getFirstListItem(`preferred_username:lower='${username?.toLowerCase()}'&&isLocal=true`)
|
||||
|
||||
const followers: ListResult<Follow> = await event.locals.pb.collection("follows").getList(intPage, 10, { sort: "-created", filter: `followee='${actor.id}'&&status='accepted'`, expand: "follower" })
|
||||
|
||||
@@ -43,7 +43,7 @@ export async function GET(event: RequestEvent) {
|
||||
...(hasNextPage ? { next: `${id}/outbox?page=${intPage + 1}` } : {}),
|
||||
partOf: id + "/followers",
|
||||
totalItems: followers.totalItems,
|
||||
orderedItems: followers.items.map<string>(f => f.expand!.follower.iri)
|
||||
orderedItems: followers.items.filter(f => f.expand?.follower !== undefined).map<string>(f => f.expand!.follower.iri)
|
||||
}
|
||||
|
||||
const headers = new Headers()
|
||||
|
||||
@@ -26,7 +26,7 @@ export async function GET(event: RequestEvent) {
|
||||
|
||||
const [username, domain] = splitUsername(fullUsername, env.ORIGIN)
|
||||
|
||||
const actor: Actor = await event.locals.pb.collection("activitypub_actors").getFirstListItem(`username:lower='${username?.toLowerCase()}'&&isLocal=true`)
|
||||
const actor: Actor = await event.locals.pb.collection("activitypub_actors").getFirstListItem(`preferred_username:lower='${username?.toLowerCase()}'&&isLocal=true`)
|
||||
|
||||
const followers: ListResult<Follow> = await event.locals.pb.collection("follows").getList(intPage, 10, { sort: "-created", filter: `follower='${actor.id}'&&status='accepted'`, expand: "followee" })
|
||||
|
||||
@@ -44,7 +44,7 @@ export async function GET(event: RequestEvent) {
|
||||
...(hasNextPage ? { next: `${id}/following?page=${intPage + 1}` } : {}),
|
||||
partOf: id + "/following",
|
||||
totalItems: followers.totalItems,
|
||||
orderedItems: followers.items.map<string>(f => f.expand!.followee.iri)
|
||||
orderedItems: followers.items.filter(f => f.expand?.followee !== undefined).map<string>(f => f.expand!.followee.iri)
|
||||
}
|
||||
|
||||
const headers = new Headers()
|
||||
|
||||
@@ -28,7 +28,7 @@ export async function GET(event: RequestEvent) {
|
||||
const [username, domain] = splitUsername(fullUsername, env.ORIGIN)
|
||||
|
||||
|
||||
const actor: Actor = await event.locals.pb.collection("activitypub_actors").getFirstListItem(`username:lower='${username?.toLowerCase()}'&&isLocal=true`)
|
||||
const actor: Actor = await event.locals.pb.collection("activitypub_actors").getFirstListItem(`preferred_username:lower='${username?.toLowerCase()}'&&isLocal=true`)
|
||||
|
||||
const filter = `actor='${actor.iri}'&&type='Create'${safeSearchParams.filter ? '&&' + safeSearchParams.filter : ''}`
|
||||
const activities: ListResult<Activity> = await event.locals.pb.collection("activitypub_activities").getList(page, perPage, { sort: safeSearchParams.sort ?? "-created", filter })
|
||||
|
||||
@@ -22,8 +22,21 @@ export async function GET(event: RequestEvent) {
|
||||
const { actor }: { actor: Actor } = await event.locals.pb.send(`/activitypub/actor?resource=acct:${handle}`, { method: "GET", fetch: event.fetch, });
|
||||
|
||||
const page = event.url.searchParams.get("page") ?? "1"
|
||||
|
||||
const followers: APOrderedCollectionPage = await event.locals.pb.send(`/activitypub/actor/${actor.id}/${type}?page=${page}`, { method: "GET", fetch: event.fetch, });
|
||||
|
||||
let followers: APOrderedCollectionPage;
|
||||
|
||||
// fetch followers locally to not run into auth issues with private profiles
|
||||
if (actor.id === event.locals.user.actor) {
|
||||
const r = await event.fetch(actor[type as "followers" | "following"]! + '?' + new URLSearchParams({ page }))
|
||||
|
||||
if (!r.ok) {
|
||||
const errorResponse = await r.json()
|
||||
throw new ClientResponseError({ status: r.status, response: errorResponse });
|
||||
}
|
||||
followers = await r.json()
|
||||
} else {
|
||||
followers = await event.locals.pb.send(`/activitypub/actor/${actor.id}/${type}?page=${page}`, { method: "GET", fetch: event.fetch, });
|
||||
}
|
||||
|
||||
const followerActors: Actor[] = []
|
||||
for (const f of followers.orderedItems ?? []) {
|
||||
@@ -37,6 +50,7 @@ export async function GET(event: RequestEvent) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
const result: ListResult<Actor> = {
|
||||
items: followerActors,
|
||||
page: parseInt(page),
|
||||
|
||||
@@ -32,6 +32,9 @@ export async function POST(event: RequestEvent) {
|
||||
r.hits.forEach(h => {
|
||||
h.thumbnail = `${origin}/api/v1/files/trails/${h.id}/${h.thumbnail}`;
|
||||
h.domain = actor.domain
|
||||
if(h.iri == '') {
|
||||
h.iri = `${origin}/api/v1/trails/${h.id}`
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -373,7 +373,7 @@
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<div id="trail-map" class:hidden={!showMap}>
|
||||
<div id="trail-map">
|
||||
<MapWithElevationMaplibre
|
||||
trails={selectedTrail
|
||||
? [selectedTrail]
|
||||
@@ -391,9 +391,6 @@
|
||||
showTerrain={true}
|
||||
></MapWithElevationMaplibre>
|
||||
</div>
|
||||
<div class="min-w-0" class:hidden={showMap}>
|
||||
<TrailList trails={selectedList?.expand?.trails ?? []}></TrailList>
|
||||
</div>
|
||||
|
||||
<ConfirmModal
|
||||
text={$_("delete-list-confirm")}
|
||||
|
||||
Reference in New Issue
Block a user