Merge branch 'debug-improvements' into 'main'

Debug improvements

See merge request soapbox-pub/ditto!94
This commit is contained in:
Alex Gleason 2024-01-01 23:50:40 +00:00
commit 9b68a9fc30
14 changed files with 26 additions and 14 deletions

View File

@ -1,6 +1,6 @@
import { findUser } from '@/db/users.ts'; import { findUser } from '@/db/users.ts';
import { getAuthor } from '@/queries.ts'; import { getAuthor } from '@/queries.ts';
import { activityJson } from '@/utils/web.ts'; import { activityJson } from '@/utils/api.ts';
import { renderActor } from '@/views/activitypub/actor.ts'; import { renderActor } from '@/views/activitypub/actor.ts';
import type { AppContext, AppController } from '@/app.ts'; import type { AppContext, AppController } from '@/app.ts';

View File

@ -10,8 +10,7 @@ import { jsonMetaContentSchema } from '@/schemas/nostr.ts';
import { addTag, deleteTag, getTagSet } from '@/tags.ts'; import { addTag, deleteTag, getTagSet } from '@/tags.ts';
import { uploadFile } from '@/upload.ts'; import { uploadFile } from '@/upload.ts';
import { lookupAccount, nostrNow } from '@/utils.ts'; import { lookupAccount, nostrNow } from '@/utils.ts';
import { paginated, paginationSchema, parseBody, updateListEvent } from '@/utils/web.ts'; import { createEvent, paginated, paginationSchema, parseBody, updateListEvent } from '@/utils/api.ts';
import { createEvent } from '@/utils/web.ts';
import { renderAccounts, renderEventAccounts, renderStatuses } from '@/views.ts'; import { renderAccounts, renderEventAccounts, renderStatuses } from '@/views.ts';
import { accountFromPubkey, renderAccount } from '@/views/mastodon/accounts.ts'; import { accountFromPubkey, renderAccount } from '@/views/mastodon/accounts.ts';
import { renderRelationship } from '@/views/mastodon/relationships.ts'; import { renderRelationship } from '@/views/mastodon/relationships.ts';

View File

@ -1,7 +1,7 @@
import { AppController } from '@/app.ts'; import { AppController } from '@/app.ts';
import { z } from '@/deps.ts'; import { z } from '@/deps.ts';
import { fileSchema } from '@/schema.ts'; import { fileSchema } from '@/schema.ts';
import { parseBody } from '@/utils/web.ts'; import { parseBody } from '@/utils/api.ts';
import { renderAttachment } from '@/views/mastodon/attachments.ts'; import { renderAttachment } from '@/views/mastodon/attachments.ts';
import { uploadFile } from '@/upload.ts'; import { uploadFile } from '@/upload.ts';

View File

@ -1,6 +1,6 @@
import { type AppController } from '@/app.ts'; import { type AppController } from '@/app.ts';
import { eventsDB } from '@/db/events.ts'; import { eventsDB } from '@/db/events.ts';
import { paginated, paginationSchema } from '@/utils/web.ts'; import { paginated, paginationSchema } from '@/utils/api.ts';
import { renderNotification } from '@/views/mastodon/notifications.ts'; import { renderNotification } from '@/views/mastodon/notifications.ts';
const notificationsController: AppController = async (c) => { const notificationsController: AppController = async (c) => {

View File

@ -1,7 +1,7 @@
import { lodash, nip19, z } from '@/deps.ts'; import { lodash, nip19, z } from '@/deps.ts';
import { AppController } from '@/app.ts'; import { AppController } from '@/app.ts';
import { nostrNow } from '@/utils.ts'; import { nostrNow } from '@/utils.ts';
import { parseBody } from '@/utils/web.ts'; import { parseBody } from '@/utils/api.ts';
const passwordGrantSchema = z.object({ const passwordGrantSchema = z.object({
grant_type: z.literal('password'), grant_type: z.literal('password'),

View File

@ -2,7 +2,7 @@ import { type AppController } from '@/app.ts';
import { eventsDB } from '@/db/events.ts'; import { eventsDB } from '@/db/events.ts';
import { z } from '@/deps.ts'; import { z } from '@/deps.ts';
import { configSchema, elixirTupleSchema } from '@/schemas/pleroma-api.ts'; import { configSchema, elixirTupleSchema } from '@/schemas/pleroma-api.ts';
import { createAdminEvent } from '@/utils/web.ts'; import { createAdminEvent } from '@/utils/api.ts';
import { Conf } from '@/config.ts'; import { Conf } from '@/config.ts';
const frontendConfigController: AppController = async (c) => { const frontendConfigController: AppController = async (c) => {

View File

@ -3,7 +3,7 @@ import { getUnattachedMediaByIds } from '@/db/unattached-media.ts';
import { type Event, ISO6391, z } from '@/deps.ts'; import { type Event, ISO6391, z } from '@/deps.ts';
import { getAncestors, getAuthor, getDescendants, getEvent } from '@/queries.ts'; import { getAncestors, getAuthor, getDescendants, getEvent } from '@/queries.ts';
import { addTag, deleteTag } from '@/tags.ts'; import { addTag, deleteTag } from '@/tags.ts';
import { createEvent, paginationSchema, parseBody, updateListEvent } from '@/utils/web.ts'; import { createEvent, paginationSchema, parseBody, updateListEvent } from '@/utils/api.ts';
import { renderEventAccounts } from '@/views.ts'; import { renderEventAccounts } from '@/views.ts';
import { renderStatus } from '@/views/mastodon/statuses.ts'; import { renderStatus } from '@/views/mastodon/statuses.ts';

View File

@ -3,7 +3,7 @@ import { z } from '@/deps.ts';
import { type DittoFilter } from '@/filter.ts'; import { type DittoFilter } from '@/filter.ts';
import { getFeedPubkeys } from '@/queries.ts'; import { getFeedPubkeys } from '@/queries.ts';
import { booleanParamSchema } from '@/schema.ts'; import { booleanParamSchema } from '@/schema.ts';
import { paginated, paginationSchema } from '@/utils/web.ts'; import { paginated, paginationSchema } from '@/utils/api.ts';
import { renderStatus } from '@/views/mastodon/statuses.ts'; import { renderStatus } from '@/views/mastodon/statuses.ts';
import type { AppContext, AppController } from '@/app.ts'; import type { AppContext, AppController } from '@/app.ts';

View File

@ -6,7 +6,7 @@ import {
type ParseAuthRequestOpts, type ParseAuthRequestOpts,
validateAuthEvent, validateAuthEvent,
} from '@/utils/nip98.ts'; } from '@/utils/nip98.ts';
import { localRequest } from '@/utils/web.ts'; import { localRequest } from '@/utils/api.ts';
import { signEvent } from '@/sign.ts'; import { signEvent } from '@/sign.ts';
import { findUser, User } from '@/db/users.ts'; import { findUser, User } from '@/db/users.ts';

View File

@ -6,7 +6,7 @@ import { connectResponseSchema } from '@/schemas/nostr.ts';
import { jsonSchema } from '@/schema.ts'; import { jsonSchema } from '@/schema.ts';
import { Sub } from '@/subs.ts'; import { Sub } from '@/subs.ts';
import { eventMatchesTemplate, Time } from '@/utils.ts'; import { eventMatchesTemplate, Time } from '@/utils.ts';
import { createAdminEvent } from '@/utils/web.ts'; import { createAdminEvent } from '@/utils/api.ts';
const debug = Debug('ditto:sign'); const debug = Debug('ditto:sign');

View File

@ -48,7 +48,7 @@ class SubscriptionStore {
/** Remove an entire socket. */ /** Remove an entire socket. */
close(socket: unknown): void { close(socket: unknown): void {
debug('close', socket); debug('close', (socket as any)?.constructor?.name);
const subs = this.#store.get(socket); const subs = this.#store.get(socket);
if (subs) { if (subs) {

View File

@ -2,6 +2,7 @@ import { type AppContext } from '@/app.ts';
import { Conf } from '@/config.ts'; import { Conf } from '@/config.ts';
import { import {
type Context, type Context,
Debug,
type Event, type Event,
EventTemplate, EventTemplate,
Filter, Filter,
@ -15,6 +16,8 @@ import { signAdminEvent, signEvent } from '@/sign.ts';
import { nostrNow } from '@/utils.ts'; import { nostrNow } from '@/utils.ts';
import { eventsDB } from '@/db/events.ts'; import { eventsDB } from '@/db/events.ts';
const debug = Debug('ditto:api');
/** EventTemplate with defaults. */ /** EventTemplate with defaults. */
type EventStub<K extends number = number> = TypeFest.SetOptional<EventTemplate<K>, 'content' | 'created_at' | 'tags'>; type EventStub<K extends number = number> = TypeFest.SetOptional<EventTemplate<K>, 'content' | 'created_at' | 'tags'>;
@ -79,6 +82,7 @@ async function createAdminEvent<K extends number>(t: EventStub<K>, c: AppContext
/** Push the event through the pipeline, rethrowing any RelayError. */ /** Push the event through the pipeline, rethrowing any RelayError. */
async function publishEvent<K extends number>(event: Event<K>, c: AppContext): Promise<Event<K>> { async function publishEvent<K extends number>(event: Event<K>, c: AppContext): Promise<Event<K>> {
debug('EVENT', event);
try { try {
await pipeline.handleEvent(event); await pipeline.handleEvent(event);
} catch (e) { } catch (e) {

View File

@ -29,7 +29,8 @@ async function lookup(value: string, opts: LookupOpts = {}): Promise<string | nu
const { names } = nostrJsonSchema.parse(await res.json()); const { names } = nostrJsonSchema.parse(await res.json());
return names[name] || null; return names[name] || null;
} catch (_e) { } catch (e) {
debug(e);
return null; return null;
} }
} }
@ -52,6 +53,14 @@ function lookupNip05Cached(value: string): Promise<string | null> {
const result = lookup(value); const result = lookup(value);
nip05Cache.set(value, result); nip05Cache.set(value, result);
result.then((result) => {
if (result) {
debug(`Found: ${value} is ${result}`);
} else {
debug(`Not found: ${value} is ${result}`);
}
});
return result; return result;
} }

View File

@ -3,7 +3,7 @@ import { eventsDB } from '@/db/events.ts';
import { type Filter } from '@/deps.ts'; import { type Filter } from '@/deps.ts';
import { renderAccount } from '@/views/mastodon/accounts.ts'; import { renderAccount } from '@/views/mastodon/accounts.ts';
import { renderStatus } from '@/views/mastodon/statuses.ts'; import { renderStatus } from '@/views/mastodon/statuses.ts';
import { paginated, paginationSchema } from '@/utils/web.ts'; import { paginated, paginationSchema } from '@/utils/api.ts';
/** Render account objects for the author of each event. */ /** Render account objects for the author of each event. */
async function renderEventAccounts(c: AppContext, filters: Filter[], signal = AbortSignal.timeout(1000)) { async function renderEventAccounts(c: AppContext, filters: Filter[], signal = AbortSignal.timeout(1000)) {