mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 03:19:46 +00:00
Small adjustments
This commit is contained in:
parent
73e4708ba2
commit
004db322e7
9 changed files with 26 additions and 20 deletions
|
|
@ -13,7 +13,7 @@ export class DittoApp extends Hono<DittoEnv> {
|
||||||
this.use((c, next) => {
|
this.use((c, next) => {
|
||||||
c.set('db', vars.db);
|
c.set('db', vars.db);
|
||||||
c.set('conf', vars.conf);
|
c.set('conf', vars.conf);
|
||||||
c.set('store', vars.store);
|
c.set('relay', vars.relay);
|
||||||
c.set('signal', c.req.raw.signal);
|
c.set('signal', c.req.raw.signal);
|
||||||
return next();
|
return next();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
0
packages/api/routes/timelinesRoute.test.tst
Normal file
0
packages/api/routes/timelinesRoute.test.tst
Normal file
|
|
@ -18,7 +18,7 @@ const homeQuerySchema = z.object({
|
||||||
route.get('/home', userMiddleware({ privileged: false, required: true }), async (c) => {
|
route.get('/home', userMiddleware({ privileged: false, required: true }), async (c) => {
|
||||||
const { user, pagination } = c.var;
|
const { user, pagination } = c.var;
|
||||||
|
|
||||||
const pubkey = await user?.signer.getPublicKey()!;
|
const pubkey = await user.signer.getPublicKey();
|
||||||
const result = homeQuerySchema.safeParse(c.req.query());
|
const result = homeQuerySchema.safeParse(c.req.query());
|
||||||
|
|
||||||
if (!result.success) {
|
if (!result.success) {
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ import { logiMiddleware } from '@/middleware/logiMiddleware.ts';
|
||||||
const conf = new DittoConf(Deno.env);
|
const conf = new DittoConf(Deno.env);
|
||||||
const storages = new DittoStorages(conf);
|
const storages = new DittoStorages(conf);
|
||||||
|
|
||||||
const [kysely, store, pool, pubsub, db] = await Promise.all([
|
const [kysely, relay, pool, pubsub, db] = await Promise.all([
|
||||||
storages.kysely(),
|
storages.kysely(),
|
||||||
storages.db(),
|
storages.db(),
|
||||||
storages.pool(),
|
storages.pool(),
|
||||||
|
|
@ -223,7 +223,7 @@ type AppMiddleware = MiddlewareHandler<AppEnv>;
|
||||||
// deno-lint-ignore no-explicit-any
|
// deno-lint-ignore no-explicit-any
|
||||||
type AppController<P extends string = any> = Handler<AppEnv, P, HonoInput, Response | Promise<Response>>;
|
type AppController<P extends string = any> = Handler<AppEnv, P, HonoInput, Response | Promise<Response>>;
|
||||||
|
|
||||||
const app = new DittoApp({ conf, db, store }, { strict: false });
|
const app = new DittoApp({ conf, db, relay }, { strict: false });
|
||||||
|
|
||||||
/** User-provided files in the gitignored `public/` directory. */
|
/** User-provided files in the gitignored `public/` directory. */
|
||||||
const publicFiles = serveStatic({ root: conf.publicDir });
|
const publicFiles = serveStatic({ root: conf.publicDir });
|
||||||
|
|
|
||||||
|
|
@ -108,21 +108,6 @@ export class DittoPgStore extends NPostgres {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected matchesFilter(event: NostrEvent, filter: NostrFilter): boolean {
|
|
||||||
// TODO: support streaming by search.
|
|
||||||
return matchFilter(filter, event) && filter.search === undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
streamOut(event: NostrEvent): void {
|
|
||||||
for (const { filters, machina } of this.subs.values()) {
|
|
||||||
for (const filter of filters) {
|
|
||||||
if (this.matchesFilter(event, filter)) {
|
|
||||||
machina.push(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Insert an event (and its tags) into the database. */
|
/** Insert an event (and its tags) into the database. */
|
||||||
override async event(event: NostrEvent, opts: { signal?: AbortSignal; timeout?: number } = {}): Promise<void> {
|
override async event(event: NostrEvent, opts: { signal?: AbortSignal; timeout?: number } = {}): Promise<void> {
|
||||||
event = purifyEvent(event);
|
event = purifyEvent(event);
|
||||||
|
|
@ -152,6 +137,21 @@ export class DittoPgStore extends NPostgres {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected matchesFilter(event: NostrEvent, filter: NostrFilter): boolean {
|
||||||
|
// TODO: support streaming by search.
|
||||||
|
return matchFilter(filter, event) && filter.search === undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected streamOut(event: NostrEvent): void {
|
||||||
|
for (const { filters, machina } of this.subs.values()) {
|
||||||
|
for (const filter of filters) {
|
||||||
|
if (this.matchesFilter(event, filter)) {
|
||||||
|
machina.push(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Check if an event has been deleted by the admin. */
|
/** Check if an event has been deleted by the admin. */
|
||||||
private async isDeletedAdmin(event: NostrEvent): Promise<boolean> {
|
private async isDeletedAdmin(event: NostrEvent): Promise<boolean> {
|
||||||
const filters: NostrFilter[] = [
|
const filters: NostrFilter[] = [
|
||||||
|
|
@ -257,7 +257,7 @@ export class DittoPgStore extends NPostgres {
|
||||||
/** Get events for filters from the database. */
|
/** Get events for filters from the database. */
|
||||||
override async query(
|
override async query(
|
||||||
filters: NostrFilter[],
|
filters: NostrFilter[],
|
||||||
opts: { signal?: AbortSignal; timeout?: number; limit?: number } = {},
|
opts: { signal?: AbortSignal; pure?: boolean; timeout?: number; limit?: number } = {},
|
||||||
): Promise<DittoEvent[]> {
|
): Promise<DittoEvent[]> {
|
||||||
filters = await this.expandFilters(filters);
|
filters = await this.expandFilters(filters);
|
||||||
|
|
||||||
|
|
|
||||||
3
services/aio.ts
Normal file
3
services/aio.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
// All-In-One
|
||||||
|
|
||||||
|
//
|
||||||
1
services/core.ts
Normal file
1
services/core.ts
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
// Ditto Core
|
||||||
1
services/crawler.ts
Normal file
1
services/crawler.ts
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
// Ditto Crawler
|
||||||
1
services/server.ts
Normal file
1
services/server.ts
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
// Ditto Server
|
||||||
Loading…
Add table
Reference in a new issue