Source code for cryptocompsdk.news.api

from typing import Optional, Sequence, Union, Dict

from cryptocompsdk.request import APIBase
from cryptocompsdk.news.parse import CouldNotGetNewsException, news_from_dict, NewsData
from cryptocompsdk.urls import NEWS_URL


[docs]class NewsAPI(APIBase): _exception_class = CouldNotGetNewsException
[docs] def get(self, feeds: Optional[Sequence[str]] = None, categories: Optional[Sequence[str]] = None, exclude_categories: Optional[Sequence[str]] = None, lang: str = 'EN', sort_order: str = 'latest', end_time: Optional[int] = None, requests_limit: int = 1) -> NewsData: payload: Dict[str, Optional[Union[Sequence[str], str, int]]] = dict( feeds=feeds, categories=categories, excludeCategories=exclude_categories, lTs=end_time, lang=lang, sortOrder=sort_order, ) if requests_limit == 1: return self._get(NEWS_URL, payload) return self._get_with_pagination( NEWS_URL, payload, max_api_calls=requests_limit, limit_in_payload=False, date_name='lTs' )
def _class_factory(self, data: dict) -> NewsData: return news_from_dict(data)