import axios from 'axios'; import { getSettings } from 'soapbox/actions/settings'; import { normalizeCard } from 'soapbox/normalizers'; import type { AdProvider } from '.'; import type { Card } from 'soapbox/types/entities'; /** TruthSocial ad API entity. */ interface TruthAd { impression: string, card: Card, expires_at: string, reason: string, } /** Provides ads from the TruthSocial API. */ const TruthAdProvider: AdProvider = { getAds: async(getState) => { const state = getState(); const settings = getSettings(state); try { const { data } = await axios.get('/api/v2/truth/ads?device=desktop', { headers: { 'Accept-Language': settings.get('locale', '*') as string, }, }); return data.map(item => ({ ...item, card: normalizeCard(item.card), })); } catch (e) { // do nothing } return []; }, }; export default TruthAdProvider;