UNPKG

xdl-node

Version:

A library for retrieving audio streams and other data from X Spaces, built on Node.js and TypeScript.

147 lines (146 loc) 5.55 kB
import { AxiosResponse } from 'axios'; /** * Интерфейс для cookies. * Требуется наличие хотя бы ключа ct0. */ export interface ICookies { ct0: string; [key: string]: string; } /** * HTTPClient – класс для выполнения GET-запросов с помощью axios с поддержкой retry-логики. */ export declare class HTTPClient { private axiosInstance; constructor(); /** * Выполняет HTTP GET-запрос по указанному URL. * @param url URL запроса. * @param params Параметры запроса. * @param headers Заголовки запроса. * @param cookies Cookies для запроса. * @returns Промис с AxiosResponse. */ get(url: string, params?: Record<string, any>, headers?: Record<string, any>, cookies?: Record<string, any>): Promise<AxiosResponse>; } /** * APIClient – базовый класс для всех API. */ export declare class APIClient { protected client: HTTPClient; protected baseUrl: string; protected cookies: ICookies; protected headers: Record<string, any>; /** * @param client Экземпляр HTTPClient. * @param path Путь, добавляемый к базовому URL. * @param cookies Cookies для запросов. */ constructor(client: HTTPClient, path: string, cookies: ICookies); /** * Объединяет несколько частей URL. * @param paths Части URL. * @returns Собранный URL. */ joinUrl(...paths: string[]): string; /** * Выполняет GET-запрос к API по указанному пути. * @param path Путь запроса. * @param params Параметры запроса. * @returns Распарсенный JSON-ответ. */ get(path: string, params?: Record<string, any>): Promise<any>; } /** * GraphQLAPI – клиент для Twitter GraphQL API. */ export declare class GraphQLAPI extends APIClient { constructor(client: HTTPClient, path: string, cookies: ICookies); private _dumpJson; /** * Отправляет GraphQL-запрос. * @param query_id Идентификатор запроса. * @param operation_name Имя операции. * @param variables Переменные запроса. * @param features Дополнительные флаги (опционально). * @returns Ответ API. */ query(query_id: string, operation_name: string, variables: any, features?: any): Promise<any>; /** * Запрашивает детали Twitter Space по его ID. * @param space_id ID Space. * @returns Ответ API. */ audioSpaceById(space_id: string): Promise<any>; /** * Запрашивает детали пользователя по его screen name. * @param screen_name Имя пользователя. * @returns Ответ API. */ userByScreenName(screen_name: string): Promise<any>; /** * Backup endpoint для запроса деталей пользователя по screen name. * @param screen_name Имя пользователя. * @returns Ответ API. */ profileSpotlightsQuery(screen_name: string): Promise<any>; /** * Получает numeric user ID (rest_id) по screen name. * @param screen_name Имя пользователя. * @returns Numeric user ID. */ userId(screen_name: string): Promise<string>; /** * Получает numeric user ID из URL профиля Twitter. * @param user_url URL профиля. * @returns Numeric user ID. */ userIdFromUrl(user_url: string): Promise<string>; } /** * FleetsAPI – клиент для Twitter Fleets API. */ export declare class FleetsAPI extends APIClient { constructor(client: HTTPClient, path: string, cookies: ICookies); /** * Выполняет GET-запрос к указанному endpoint Fleets API. * @param version Версия API. * @param endpoint Endpoint API. * @param params Параметры запроса. * @returns Ответ API. */ fetch(version: string, endpoint: string, params: Record<string, any>): Promise<any>; /** * Запрашивает информацию о аватаре для указанных user_ids. * @param user_ids Список user_ids. * @returns Ответ API. */ avatarContent(...user_ids: string[]): Promise<any>; } /** * LiveVideoStreamAPI – клиент для Twitter Live Video Stream API. */ export declare class LiveVideoStreamAPI extends APIClient { constructor(client: HTTPClient, path: string, cookies: ICookies); /** * Запрашивает детали плейлиста медиа по media_key. * @param media_key Ключ медиа. * @returns Ответ API. */ status(media_key: string): Promise<any>; } /** * TwitterAPI – коллекция всех Twitter API. */ export declare class TwitterAPI { client: HTTPClient; graphql_api: GraphQLAPI | null; fleets_api: FleetsAPI | null; live_video_stream_api: LiveVideoStreamAPI | null; constructor(); /** * Инициализирует все API с использованием cookies. * @param cookies Объект cookies. */ initApis(cookies: ICookies): void; }