UNPKG

rsshub

Version:
44 lines (43 loc) 1.47 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as parseDate } from "./parse-date-CjhZE69i.mjs"; //#region lib/routes/evri/index.ts const route = { path: "/:tracking", categories: ["other"], example: "/evri/H04AQA0004726589", parameters: { tracking: "Tracking number" }, radar: [{ source: ["www.evri.com/track/parcel/:tracking/details"], target: "/:tracking" }], name: "Parcel Tracking", maintainers: ["HenryQW"], handler, url: "www.evri.com/track-a-parcel" }; async function handler(ctx) { const { tracking } = ctx.req.param(); const link = `https://www.evri.com/track/parcel/${tracking}/details`; const apiUrl = "https://tracking.platform-apis.evri.com/v1"; const apikey = "0DExZiK9in2ihGce7cDPrnpQ4s4nIpWG"; const { parcelIdentifiers } = await rofetch(`${apiUrl}/parcels/reference/${tracking}`, { headers: { apikey } }); if (!parcelIdentifiers?.length) throw new Error(`No parcel found for tracking number ${tracking}`); const { results } = await rofetch(`${apiUrl}/parcels`, { query: { uniqueIds: parcelIdentifiers[0].urn }, headers: { apikey } }); const items = results.flatMap((result) => result.trackingEvents.map((event) => ({ title: event.trackingPoint.description, description: event.trackingStage.description, pubDate: parseDate(event.dateTime), guid: `evri:${tracking}:${event.dateTime}`, link }))); return { title: `Evri Tracking ${tracking}`, link, item: items }; } //#endregion export { route };