Welcome to mirror list, hosted at ThFree Co, Russian Federation.

api.py « api « nextcloud_news_updater - github.com/nextcloud/news-updater.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 837583c903ce70dddd6b2f8618da9d52064cab43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import json
from typing import List, Any


class Feed:
    """
    Payload object for update infos
    """

    def __init__(self, feed_id: int, user_id: str) -> None:
        self.feed_id = feed_id
        self.user_id = user_id


class Api:
    def parse_feed(self, json_string: str) -> List[Feed]:
        """
        Wrapper around json.loads for better error messages
        """
        try:
            feed_json = json.loads(json_string)
            return self._parse_json(feed_json)
        except ValueError:
            msg = "Could not parse given JSON: %s" % json_string
            raise ValueError(msg)

    def _parse_json(self, feed_json: Any) -> List[Feed]:
        feed_json = feed_json['feeds']
        return [Feed(info['id'], info['userId']) for info in feed_json]