Example #1
0
    def player_image_path(self, league: Union[str, LeagueData], player_id: str) -> str:
        league_id = self._get_league_id(league)
        r = self._do_get("/leagues/{}/players/{}".format(league_id, player_id), True)
        if r.status_code == 200:
            p = r.json()
            if 'profileBig' in p:
                return p['profileBig']
            
            if 'profile' in p:
                return p['profile']

            raise KickbaseException()
        else:
            raise KickbaseException()
Example #2
0
    def team_players(self, team_id: str) -> [Player]:
        r = self._do_get("/competition/teams/{}/players".format(team_id))

        if r.status_code == 200:
            return [Player(v) for v in r.json()["p"]]
        else:
            raise KickbaseException()
 def _get_league_id(self, league: any):
     if isinstance(league, str):
         return league
     if isinstance(league, LeagueData):
         return league.id
     raise KickbaseException(
         "league must be either type of str or LeagueData")
Example #4
0
    def search_player(self, search_query: str) -> [Player]:
        r = self._do_get("/competition/search?t={}".format(search_query))

        if r.status_code == 200:
            return [Player(v) for v in r.json()["p"]]
        else:
            raise KickbaseException()
Example #5
0
 def player_stats(self, player: Union[str, Player]) -> PlayerStats:
     player_id = self._get_player_id(player)
     r = self._do_get("/players/{}/points".format(player_id), True)
     if r.status_code == 200:
         return PlayerStats(r.json())
     else:
         raise KickbaseException()
Example #6
0
 def player_info(self, league: Union[str, LeagueData], player_id: str) -> Player:
     league_id = self._get_league_id(league)
     r = self._do_get("/leagues/{}/players/{}".format(league_id, player_id), True)
     if r.status_code == 200:
         return Player(r.json())
     else:
         raise KickbaseException()
Example #7
0
    def login(self, username: str, password: str) -> (User, [LeagueData]):
        data = {
            "email": username,
            "password": password,
            "ext": False
        }

        r = self._do_post("/user/login", data, False)

        if r.status_code == 200:
            j = r.json()
            self.token = j["token"]
            self.token_expire = parse_date(j["tokenExp"])

            self._username = username
            self._password = password

            self.user = User(j["user"])
            league_data = [LeagueData(d) for d in j["leagues"]]
            return self.user, league_data

        elif r.status_code == 401:
            raise KickbaseLoginException()
        else:
            raise KickbaseException()
Example #8
0
    def chat_messages(self, league: Union[str, LeagueData], page_size: int = 30, next_page_token: str = None) -> (
    [ChatItem], str):
        if self.google_identity_toolkit_api_key is None:
            return []

        league_id = self._get_league_id(league)

        if not self._is_token_valid():
            self.login(self._username, self._password)

        if not self._is_firebase_token_valid():
            self._update_firebase_token()

        headers = {
            "Content-Type": "application/json",
            "Accept": "application/json",
            "Authorization": "Bearer {}".format(self.firebase_token)
        }
        if next_page_token is None:
            r = requests.get(self._url_for_firestore("/chat/{}/messages?pageSize={}".format(league_id, page_size)),
                             headers=headers)
        else:
            r = requests.get(self._url_for_firestore(
                "/chat/{}/messages?pageSize={}&pageToken={}".format(league_id, page_size, next_page_token)),
                             headers=headers)

        if r.status_code == 200:
            j = r.json()
            docs = j["documents"]
            npt = None
            if "nextPageToken" in j:
                npt = j["nextPageToken"]
            return [ChatItem(d) for d in docs], npt
        else:
            raise KickbaseException()
 def _get_feed_item_id(self, feed_item: any):
     if isinstance(feed_item, str):
         return feed_item
     if isinstance(feed_item, FeedItem):
         return feed_item.id
     raise KickbaseException(
         "feed_item must be either type of str or FeedItem")
Example #10
0
    def top_25_players(self) -> [Player]:
        r = self._do_get("/competition/best?position=0")

        if r.status_code == 200:
            return [Player(v) for v in r.json()["p"]]
        else:
            raise KickbaseException()
Example #11
0
 def __init__(self, params: dict):
     try:
         if params["default"] == True:
             self.MIN_PROFIT = self.DEFAULT["min_profit"]
         else:
             self.MIN_PROFIT = params["min_profit"]
     except:
         raise KickbaseException()
Example #12
0
 def _get_player_id(self, player: any):
     if isinstance(player, str):
         return player
     if isinstance(player, Player):
         return player.id
     if isinstance(player, MarketPlayer):
         return player.id
     raise KickbaseException("player must be either type of str, Player or MarketPlayer")
Example #13
0
    def leagues(self) -> [LeagueData]:
        r = self._do_get("/leagues/", True)

        if r.status_code == 200:
            j = r.json()
            return [LeagueData(d) for d in j["leagues"]]
        else:
            raise KickbaseException()
Example #14
0
    def league_current_gift(self, league: Union[str, LeagueData]) -> Gift:
        league_id = self._get_league_id(league)

        r = self._do_get("/leagues/{}/currentgift".format(league_id), True)

        if r.status_code == 200:
            return Gift(r.json())
        else:
            raise KickbaseException()
Example #15
0
    def league_stats(self, league: Union[str, LeagueData]) -> LeagueStatsResponse:
        league_id = self._get_league_id(league)

        r = self._do_get("/leagues/{}/stats".format(league_id), True)

        if r.status_code == 200:
            return LeagueStatsResponse(r.json())
        else:
            raise KickbaseException()
Example #16
0
    def league_users(self, league: Union[str, LeagueData]) -> [LeagueUserData]:
        league_id = self._get_league_id(league)

        r = self._do_get("/leagues/{}/users".format(league_id), True)

        if r.status_code == 200:
            return [LeagueUserData(d) for d in r.json()["users"]]
        else:
            raise KickbaseException()
Example #17
0
    def league_feed(self, start_index: int, league: Union[str, LeagueData]) -> [FeedItem]:
        league_id = self._get_league_id(league)

        r = self._do_get("/leagues/{}/feed?start={}".format(league_id, start_index), True)

        if r.status_code == 200:
            return [FeedItem(v) for v in r.json()["items"]]
        else:
            raise KickbaseException()
Example #18
0
    def league_info(self, league: Union[str, LeagueData]) -> LeagueInfo:
        league_id = self._get_league_id(league)

        r = self._do_get("/leagues/{}/info".format(league_id), True)

        if r.status_code == 200:
            return LeagueInfo(r.json())
        else:
            raise KickbaseException()
Example #19
0
    def market(self, league: Union[str, LeagueData]) -> Market:
        league_id = self._get_league_id(league)

        r = self._do_get("/leagues/{}/market".format(league_id), True)

        if r.status_code == 200:
            return Market(r.json())
        else:
            raise KickbaseException()
Example #20
0
    def line_up(self, league: Union[str, LeagueData]) -> LineUp:
        league_id = self._get_league_id(league)

        r = self._do_get("/leagues/{}/lineup".format(league_id), True)

        if r.status_code == 200:
            return LineUp(r.json())
        else:
            raise KickbaseException()
Example #21
0
    def league_player_marketvalue_history(self, league: Union[str, LeagueData], player: Union[str, Player]) -> PlayerMarketValueHistory:
        league_id = self._get_league_id(league)
        player_id = self._get_player_id(player)

        r = self._do_get("/leagues/{}/players/{}/stats".format(league_id, player_id), True)

        if r.status_code == 200:
            return PlayerMarketValueHistory(r.json())
        else:
            raise KickbaseException()
Example #22
0
    def decline_offer(self, offer_id: str, player: Union[str, Player, MarketPlayer], league: Union[str, LeagueData]):
        player_id = self._get_player_id(player)
        league_id = self._get_league_id(league)

        r = self._do_post("/leagues/{}/market/{}/offers/{}/decline".format(league_id, player_id, offer_id), {}, True)

        if r.status_code == 200:
            return
        else:
            raise KickbaseException()
Example #23
0
    def remove_from_market(self, player: Union[str, Player, MarketPlayer], league: Union[str, LeagueData]):
        player_id = self._get_player_id(player)
        league_id = self._get_league_id(league)

        r = self._do_delete("/leagues/{}/market/{}".format(league_id, player_id), True)

        if r.status_code == 200:
            return
        else:
            raise KickbaseException()
Example #24
0
    def league_user_profile(self, league: Union[str, LeagueData], user: Union[str, User]) -> LeagueUserProfile:
        league_id = self._get_league_id(league)
        user_id = self._get_user_id(user)

        r = self._do_get("/leagues/{}/users/{}/profile".format(league_id, user_id), True)

        if r.status_code == 200:
            return LeagueUserProfile(r.json())
        else:
            raise KickbaseException()
Example #25
0
    def league_user_players(self, league: Union[str, LeagueData], user: Union[str, User], match_day: int = 0) -> [
        Player]:
        league_id = self._get_league_id(league)
        user_id = self._get_user_id(user)

        r = self._do_get("/leagues/{}/users/{}/players?matchDay={}".format(league_id, user_id, match_day), True)

        if r.status_code == 200:
            return [Player(v) for v in r.json()["players"]]
        else:
            raise KickbaseException()
Example #26
0
    def league_players_feed(self, league: Union[str, LeagueData], player: Union[str, Player]) -> PlayerFeed:
        league_id = self._get_league_id(league)
        player_id = self._get_player_id(player)

        r = self._do_get("/leagues/{}/players/{}/feed".format(league_id, player_id), True)

        if r.status_code == 200:
            #return PlayerFeed(r.json()) TBD
            return r.json()
        else:
            raise KickbaseException()
Example #27
0
    def chat_token(self) -> str:
        if not self._is_token_valid():
            self.login(self._username, self._password)

        r = self._do_post("/user/refreshchattoken", {}, True)

        if r.status_code == 200:
            j = r.json()
            return j["token"]
        else:
            raise KickbaseException()
Example #28
0
    def league_feed_comments(self, league: Union[str, LeagueData], feed_item: Union[str, FeedItem]) -> [
        FeedItemComment]:
        league_id = self._get_league_id(league)
        feed_item_id = self._get_feed_item_id(feed_item)

        r = self._do_get("/leagues/{}/feed/{}/comments".format(league_id, feed_item_id), True)

        if r.status_code == 200:
            return [FeedItemComment(v) for v in r.json()["comments"]]
        else:
            raise KickbaseException()
Example #29
0
    def league_collect_gift(self, league: Union[str, LeagueData]) -> True:
        league_id = self._get_league_id(league)

        r = self._do_post("/leagues/{}/collectgift".format(league_id), {}, True)

        if r.status_code == 200:
            return True
        elif r.status_code == 400:
            return False
        else:
            raise KickbaseException()
    def post_chat_message(self, message: str, league: Union[str, LeagueData]):
        if self.google_identity_toolkit_api_key is None:
            return

        league_id = self._get_league_id(league)

        if not self._is_token_valid():
            self.login(self._username, self._password)

        if not self._is_firebase_token_valid():
            self._update_firebase_token()

        headers = {
            "Content-Type": "application/json",
            "Accept": "application/json",
            "Authorization": "Bearer {}".format(self.firebase_token)
        }

        data = {
            "fields": {
                "userId": {
                    "stringValue": self.user.id
                },
                "message": {
                    "stringValue": message
                },
                "leagueId": {
                    "stringValue": league_id
                },
                "date": {
                    "stringValue": date_to_string(datetime.utcnow())
                },
                "username": {
                    "stringValue": self.user.name
                },
                "seenBy": {
                    "arrayValue": {
                        "values": [{
                            "stringValue": self.user.id
                        }]
                    }
                }
            }
        }

        r = requests.post(self._url_for_firestore(
            "/chat/{}/messages".format(league_id)),
                          data=json.dumps(data),
                          headers=headers)

        if r.status_code == 200:
            return
        else:
            raise KickbaseException()