feat: expose unstable mode in api routes

This commit is contained in:
2026-04-27 02:49:35 -04:00
parent 224e83ac4c
commit 3c38232cd5
4 changed files with 154 additions and 18 deletions

View File

@@ -37,17 +37,34 @@ export async function ebayRoute(req: Request): Promise<Response> {
const maxItemsParam = reqUrl.searchParams.get("maxItems");
const maxItems = maxItemsParam ? parseInt(maxItemsParam, 10) : undefined;
const items = await fetchEbayItems(SEARCH_QUERY, 1, {
minPrice,
maxPrice,
strictMode,
exclusions,
keywords,
buyItNowOnly,
canadaOnly,
});
const hideUnstableResults =
reqUrl.searchParams.get("unstableFilter") === "true";
const items = hideUnstableResults
? await fetchEbayItems(
SEARCH_QUERY,
1,
{
minPrice,
maxPrice,
strictMode,
exclusions,
keywords,
buyItNowOnly,
canadaOnly,
},
{ hideUnstableResults: true },
)
: await fetchEbayItems(SEARCH_QUERY, 1, {
minPrice,
maxPrice,
strictMode,
exclusions,
keywords,
buyItNowOnly,
canadaOnly,
});
const results = maxItems ? items.slice(0, maxItems) : items;
const results = hideUnstableResults || !maxItems ? items : items.slice(0, maxItems);
if (!results || results.length === 0)
return Response.json(

View File

@@ -20,9 +20,15 @@ export async function facebookRoute(req: Request): Promise<Response> {
const LOCATION = reqUrl.searchParams.get("location") || "toronto";
const maxItemsParam = reqUrl.searchParams.get("maxItems");
const maxItems = maxItemsParam ? parseInt(maxItemsParam, 10) : 25;
const hideUnstableResults =
reqUrl.searchParams.get("unstableFilter") === "true";
try {
const items = await fetchFacebookItems(SEARCH_QUERY, 1, LOCATION, maxItems);
const items = hideUnstableResults
? await fetchFacebookItems(SEARCH_QUERY, 1, LOCATION, maxItems, {
hideUnstableResults: true,
})
: await fetchFacebookItems(SEARCH_QUERY, 1, LOCATION, maxItems);
if (!items || items.length === 0)
return Response.json(
{ message: "Search didn't return any results!" },

View File

@@ -23,6 +23,8 @@ export async function kijijiRoute(req: Request): Promise<Response> {
const priceMin = priceMinParam ? parseInt(priceMinParam, 10) : undefined;
const priceMaxParam = reqUrl.searchParams.get("priceMax");
const priceMax = priceMaxParam ? parseInt(priceMaxParam, 10) : undefined;
const hideUnstableResults =
reqUrl.searchParams.get("unstableFilter") === "true";
const searchOptions = {
location: reqUrl.searchParams.get("location") || undefined,
@@ -45,13 +47,22 @@ export async function kijijiRoute(req: Request): Promise<Response> {
};
try {
const items = await fetchKijijiItems(
SEARCH_QUERY,
4, // 4 requests per second for faster scraping
"https://www.kijiji.ca",
searchOptions,
{},
);
const items = hideUnstableResults
? await fetchKijijiItems(
SEARCH_QUERY,
4, // 4 requests per second for faster scraping
"https://www.kijiji.ca",
searchOptions,
{},
{ hideUnstableResults: true },
)
: await fetchKijijiItems(
SEARCH_QUERY,
4, // 4 requests per second for faster scraping
"https://www.kijiji.ca",
searchOptions,
{},
);
if (!items)
return Response.json(
{ message: "Search didn't return any results!" },