diff --git a/packages/data/vitest.config.ts b/packages/data/vitest.config.ts index 7138261a06d9..2dc9a86e22c1 100644 --- a/packages/data/vitest.config.ts +++ b/packages/data/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { globals: true } + test: { globals: true, testTimeout: 30000 } }); diff --git a/packages/lens/vitest.config.ts b/packages/lens/vitest.config.ts index 7138261a06d9..2dc9a86e22c1 100644 --- a/packages/lens/vitest.config.ts +++ b/packages/lens/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { globals: true } + test: { globals: true, testTimeout: 30000 } }); diff --git a/packages/lib/vitest.config.ts b/packages/lib/vitest.config.ts index 7138261a06d9..2dc9a86e22c1 100644 --- a/packages/lib/vitest.config.ts +++ b/packages/lib/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { globals: true } + test: { globals: true, testTimeout: 30000 } }); diff --git a/packages/workers/ens/vitest.config.ts b/packages/workers/ens/vitest.config.ts index 7138261a06d9..2dc9a86e22c1 100644 --- a/packages/workers/ens/vitest.config.ts +++ b/packages/workers/ens/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { globals: true } + test: { globals: true, testTimeout: 30000 } }); diff --git a/packages/workers/feeds/src/handlers/getPublicationIds.spec.ts b/packages/workers/feeds/src/handlers/getPublicationIds.spec.ts index cc975217aae5..de82318d57a4 100644 --- a/packages/workers/feeds/src/handlers/getPublicationIds.spec.ts +++ b/packages/workers/feeds/src/handlers/getPublicationIds.spec.ts @@ -39,5 +39,13 @@ describe('getPublicationIds', () => { const response: Response = await getRequest.json(); expect(response.ids.length).toBe(50); }); + + test('should return ids for k3l provider, following strategy and profile', async () => { + const getRequest = await fetch( + `${TEST_URL}/ids?provider=k3l&strategy=following&profile=yoginth.lens` + ); + const response: Response = await getRequest.json(); + expect(response.ids.length).toBe(50); + }); }); }); diff --git a/packages/workers/feeds/src/handlers/getPublicationIds.ts b/packages/workers/feeds/src/handlers/getPublicationIds.ts index 239423c39d73..77f741b756d5 100644 --- a/packages/workers/feeds/src/handlers/getPublicationIds.ts +++ b/packages/workers/feeds/src/handlers/getPublicationIds.ts @@ -8,6 +8,7 @@ import type { Env } from '../types'; export default async (request: IRequest, env: Env) => { const provider = request.query.provider as string; const strategy = request.query.strategy as string; + const profile = request.query.profile as string; const limit = (parseInt(request.query?.limit as string) || 50) as number; const offset = (parseInt(request.query?.offset as string) || 0) as number; @@ -24,7 +25,7 @@ export default async (request: IRequest, env: Env) => { let ids: string[] = []; switch (provider) { case AlgorithmProvider.K3L: - ids = await k3lFeed(strategy, limit, offset); + ids = await k3lFeed(strategy, profile, limit, offset); break; case AlgorithmProvider.LENSTER: ids = await lensterFeed(strategy, limit, offset, env); diff --git a/packages/workers/feeds/src/providers/k3l/algorithms/k3lGlobalFeed.ts b/packages/workers/feeds/src/providers/k3l/algorithms/k3lGlobalFeed.ts new file mode 100644 index 000000000000..2825532f3276 --- /dev/null +++ b/packages/workers/feeds/src/providers/k3l/algorithms/k3lGlobalFeed.ts @@ -0,0 +1,25 @@ +import randomizeIds from '../../../helpers/randomizeIds'; + +const k3lGlobalFeed = async ( + strategy: string, + limit: number, + offset: number +) => { + try { + const response = await fetch( + `https://lens-api.k3l.io/feed/${strategy}?limit=${limit}&offset=${offset}`, + { headers: { 'User-Agent': 'Lenster' } } + ); + const json: { + postId: string; + }[] = await response.json(); + const ids = json.map((item: any) => item.postId); + + return randomizeIds(ids); + } catch (error) { + console.log(error); + return []; + } +}; + +export default k3lGlobalFeed; diff --git a/packages/workers/feeds/src/providers/k3l/algorithms/k3lPersonalFeed.ts b/packages/workers/feeds/src/providers/k3l/algorithms/k3lPersonalFeed.ts new file mode 100644 index 000000000000..51e6dddd5560 --- /dev/null +++ b/packages/workers/feeds/src/providers/k3l/algorithms/k3lPersonalFeed.ts @@ -0,0 +1,26 @@ +import randomizeIds from '../../../helpers/randomizeIds'; + +const k3lPersonalFeed = async ( + strategy: string, + profile: string, + limit: number, + offset: number +) => { + try { + const response = await fetch( + `https://lens-api.k3l.io/feed/personal/${profile}/${strategy}?limit=${limit}&offset=${offset}`, + { headers: { 'User-Agent': 'Lenster' } } + ); + const json: { + postId: string; + }[] = await response.json(); + const ids = json.map((item: any) => item.postId); + + return randomizeIds(ids); + } catch (error) { + console.log(error); + return []; + } +}; + +export default k3lPersonalFeed; diff --git a/packages/workers/feeds/src/providers/k3l/k3lFeed.ts b/packages/workers/feeds/src/providers/k3l/k3lFeed.ts index df50083c3710..707994de9331 100644 --- a/packages/workers/feeds/src/providers/k3l/k3lFeed.ts +++ b/packages/workers/feeds/src/providers/k3l/k3lFeed.ts @@ -1,21 +1,17 @@ -import randomizeIds from '../../helpers/randomizeIds'; +import k3lGlobalFeed from './algorithms/k3lGlobalFeed'; +import k3lPersonalFeed from './algorithms/k3lPersonalFeed'; -const k3lFeed = async (strategy: string, limit: number, offset: number) => { - try { - const response = await fetch( - `https://lens-api.k3l.io/feed/${strategy}?limit=${limit}&offset=${offset}`, - { headers: { 'User-Agent': 'Lenster' } } - ); - const json: { - postId: string; - }[] = await response.json(); - const ids = json.map((item: any) => item.postId); - - return randomizeIds(ids); - } catch (error) { - console.log(error); - return []; +const k3lFeed = async ( + strategy: string, + profile: string, + limit: number, + offset: number +) => { + if (profile) { + return await k3lPersonalFeed(strategy, profile, limit, offset); } + + return await k3lGlobalFeed(strategy, limit, offset); }; export default k3lFeed; diff --git a/packages/workers/feeds/vitest.config.ts b/packages/workers/feeds/vitest.config.ts index 7138261a06d9..2dc9a86e22c1 100644 --- a/packages/workers/feeds/vitest.config.ts +++ b/packages/workers/feeds/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { globals: true } + test: { globals: true, testTimeout: 30000 } }); diff --git a/packages/workers/ipfs/vitest.config.ts b/packages/workers/ipfs/vitest.config.ts index 7138261a06d9..2dc9a86e22c1 100644 --- a/packages/workers/ipfs/vitest.config.ts +++ b/packages/workers/ipfs/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { globals: true } + test: { globals: true, testTimeout: 30000 } }); diff --git a/packages/workers/metadata/vitest.config.ts b/packages/workers/metadata/vitest.config.ts index 7138261a06d9..2dc9a86e22c1 100644 --- a/packages/workers/metadata/vitest.config.ts +++ b/packages/workers/metadata/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { globals: true } + test: { globals: true, testTimeout: 30000 } }); diff --git a/packages/workers/oembed/vitest.config.ts b/packages/workers/oembed/vitest.config.ts index 7138261a06d9..2dc9a86e22c1 100644 --- a/packages/workers/oembed/vitest.config.ts +++ b/packages/workers/oembed/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { globals: true } + test: { globals: true, testTimeout: 30000 } });