def hashtag_info_gql( self, name: str, amount: int = 12, end_cursor: str = None ) -> Hashtag: """ Get information about a hashtag by Public Graphql API Parameters ---------- name: str Name of the hashtag amount: int, optional Maximum number of media to return, default is 12 end_cursor: str, optional End Cursor, default value is None Returns ------- Hashtag An object of Hashtag """ variables = {"tag_name": name, "show_ranked": False, "first": int(amount)} if end_cursor: variables["after"] = end_cursor data = self.public_graphql_request( variables, query_hash="f92f56d47dc7a55b606908374b43a314" ) if not data.get("hashtag"): raise HashtagNotFound(name=name, **data) return extract_hashtag_gql(data["hashtag"])
def hashtag_related_hashtags(self, name: str) -> List[Hashtag]: """ Get related hashtags from a hashtag Parameters ---------- name: str Name of the hashtag Returns ------- List[Hashtag] List of objects of Hashtag """ data = self.public_a1_request(f"/explore/tags/{name}/") return [ extract_hashtag_gql(item["node"]) for item in data['hashtag'] ['edge_hashtag_to_related_tags']["edges"] ]
def hashtag_info_a1(self, name: str, max_id: str = None) -> Hashtag: """ Get information about a hashtag Parameters ---------- name: str Name of the hashtag max_id: str Max ID, default value is None Returns ------- Hashtag An object of Hashtag """ params = {"max_id": max_id} if max_id else None data = self.public_a1_request(f"/explore/tags/{name}/", params=params) return extract_hashtag_gql(data["hashtag"])
def hashtag_related_hashtags(self, name: str) -> List[Hashtag]: """ Get related hashtags from a hashtag Parameters ---------- name: str Name of the hashtag Returns ------- List[Hashtag] List of objects of Hashtag """ data = self.public_a1_request(f"/explore/tags/{name}/") if not data.get("hashtag"): raise HashtagNotFound(name=name, **data) return [ extract_hashtag_gql(item["node"]) for item in data["hashtag"]["edge_hashtag_to_related_tags"]["edges"] ]