Remove DittoFilter, use search instead of local

This commit is contained in:
Alex Gleason
2024-03-20 11:34:04 -05:00
parent d17d4c846f
commit c8b378ad10
17 changed files with 58 additions and 87 deletions

View File

@@ -14,7 +14,7 @@ import { renderAccounts, renderEventAccounts, renderStatuses } from '@/views.ts'
import { accountFromPubkey, renderAccount } from '@/views/mastodon/accounts.ts';
import { renderRelationship } from '@/views/mastodon/relationships.ts';
import { renderStatus } from '@/views/mastodon/statuses.ts';
import { DittoFilter } from '@/interfaces/DittoFilter.ts';
import { NostrFilter } from '@/interfaces/DittoFilter.ts';
import { hydrateEvents } from '@/storages/hydrate.ts';
const usernameSchema = z
@@ -145,7 +145,7 @@ const accountStatusesController: AppController = async (c) => {
}
}
const filter: DittoFilter = {
const filter: NostrFilter = {
authors: [pubkey],
kinds: [1],
since,

View File

@@ -1,6 +1,6 @@
import { AppController } from '@/app.ts';
import { nip19, type NostrEvent, z } from '@/deps.ts';
import { type DittoFilter } from '@/interfaces/DittoFilter.ts';
import { type NostrFilter } from '@/interfaces/DittoFilter.ts';
import { booleanParamSchema } from '@/schema.ts';
import { nostrIdSchema } from '@/schemas/nostr.ts';
import { searchStore } from '@/storages.ts';
@@ -67,7 +67,7 @@ const searchController: AppController = async (c) => {
function searchEvents({ q, type, limit, account_id }: SearchQuery, signal: AbortSignal): Promise<NostrEvent[]> {
if (type === 'hashtags') return Promise.resolve([]);
const filter: DittoFilter = {
const filter: NostrFilter = {
kinds: typeToKinds(type),
search: q,
limit,
@@ -107,8 +107,8 @@ async function lookupEvent(query: SearchQuery, signal: AbortSignal): Promise<Nos
}
/** Get filters to lookup the input value. */
async function getLookupFilters({ q, type, resolve }: SearchQuery, signal: AbortSignal): Promise<DittoFilter[]> {
const filters: DittoFilter[] = [];
async function getLookupFilters({ q, type, resolve }: SearchQuery, signal: AbortSignal): Promise<NostrFilter[]> {
const filters: NostrFilter[] = [];
const accounts = !type || type === 'accounts';
const statuses = !type || type === 'statuses';

View File

@@ -1,6 +1,6 @@
import { type AppController } from '@/app.ts';
import { Debug, z } from '@/deps.ts';
import { DittoFilter } from '@/interfaces/DittoFilter.ts';
import { NostrFilter } from '@/interfaces/DittoFilter.ts';
import { getAuthor, getFeedPubkeys } from '@/queries.ts';
import { Sub } from '@/subs.ts';
import { bech32ToPubkey } from '@/utils.ts';
@@ -82,7 +82,7 @@ async function topicToFilter(
topic: Stream,
query: Record<string, string>,
pubkey: string | undefined,
): Promise<DittoFilter | undefined> {
): Promise<NostrFilter | undefined> {
switch (topic) {
case 'public':
return { kinds: [1] };

View File

@@ -1,6 +1,6 @@
import { type AppContext, type AppController } from '@/app.ts';
import { z } from '@/deps.ts';
import { type DittoFilter } from '@/interfaces/DittoFilter.ts';
import { type NostrFilter } from '@/interfaces/DittoFilter.ts';
import { getFeedPubkeys } from '@/queries.ts';
import { booleanParamSchema } from '@/schema.ts';
import { eventsDB } from '@/storages.ts';
@@ -32,7 +32,7 @@ const hashtagTimelineController: AppController = (c) => {
};
/** Render statuses for timelines. */
async function renderStatuses(c: AppContext, filters: DittoFilter[]) {
async function renderStatuses(c: AppContext, filters: NostrFilter[]) {
const { signal } = c.req.raw;
const events = await eventsDB