From 5f09fb7f9fea0956496b4c9a150b8693e3faa979 Mon Sep 17 00:00:00 2001 From: firedotguy Date: Thu, 29 Jan 2026 20:31:45 +0300 Subject: [PATCH] feat: add hashtags --- itd/client.py | 22 +++++++++++++++------- itd/comments.py | 12 ++++++------ itd/hashtags.py | 7 +++++++ 3 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 itd/hashtags.py diff --git a/itd/client.py b/itd/client.py index 6b1ec8e..099de24 100644 --- a/itd/client.py +++ b/itd/client.py @@ -1,5 +1,6 @@ from itd.users import get_user from itd.comments import get_comments, add_comment, delete_comment, like_comment, unlike_comment, update_comment +from itd.hashtags import get_hastags, get_posts_by_hastag class Client: def __init__(self, token: str): @@ -12,20 +13,27 @@ class Client: return self.get_user('me') - def add_comment(self, post_id: int, content: str, reply_comment_id: int | None = None): + def add_comment(self, post_id: str, content: str, reply_comment_id: str | None = None): return add_comment(self.token, post_id, content, reply_comment_id) - def get_comments(self, post_id: int, limit: int = 20, cursor: int = 1, sort: str = 'popular'): + def get_comments(self, post_id: str, limit: int = 20, cursor: int = 0, sort: str = 'popular'): return get_comments(self.token, post_id, limit, cursor, sort) - def like_comment(self, id: int): + def like_comment(self, id: str): return like_comment(self.token, id) - def unlike_comment(self, id: int): + def unlike_comment(self, id: str): return unlike_comment(self.token, id) - def delete_comment(self, id: int): + def delete_comment(self, id: str): return delete_comment(self.token, id) - def update_comment(self, id: int, content: str): - return update_comment(self.token, id, content) \ No newline at end of file + def update_comment(self, id: str, content: str): + return update_comment(self.token, id, content) + + + def get_hastags(self, limit: int = 10): + return get_hastags(self.token, limit) + + def get_posts_by_hashtag(self, hashtag: str, limit: int = 20, cursor: int = 0): + return get_posts_by_hastag(self.token, hashtag, limit, cursor) \ No newline at end of file diff --git a/itd/comments.py b/itd/comments.py index 3d5c275..06e7f9e 100644 --- a/itd/comments.py +++ b/itd/comments.py @@ -1,22 +1,22 @@ from itd.request import fetch -def add_comment(token: str, post_id: int, content: str, reply_comment_id: int | None = None): +def add_comment(token: str, post_id: str, content: str, reply_comment_id: str | None = None): data = {'content': content} if reply_comment_id: data['replyTo'] = str(reply_comment_id) return fetch(token, 'post', f'posts/{post_id}/comments', data) -def get_comments(token: str, post_id: int, limit: int = 20, cursor: int = 0, sort: str = 'popular'): +def get_comments(token: str, post_id: str, limit: int = 20, cursor: int = 0, sort: str = 'popular'): return fetch(token, 'get', f'posts/{post_id}/comments', {'limit': limit, 'sort': sort, 'cursor': cursor}) -def like_comment(token: str, comment_id: int): +def like_comment(token: str, comment_id: str): return fetch(token, 'post', f'comments/{comment_id}/like') -def unlike_comment(token: str, comment_id: int): +def unlike_comment(token: str, comment_id: str): return fetch(token, 'delete', f'comments/{comment_id}/like') -def delete_comment(token: str, comment_id: int): +def delete_comment(token: str, comment_id: str): return fetch(token, 'delete', f'comments/{comment_id}') -def update_comment(token: str, comment_id: int, content: str): +def update_comment(token: str, comment_id: str, content: str): return fetch(token, 'put', f'comments/{comment_id}', {'content': content}) \ No newline at end of file diff --git a/itd/hashtags.py b/itd/hashtags.py new file mode 100644 index 0000000..e6e9a63 --- /dev/null +++ b/itd/hashtags.py @@ -0,0 +1,7 @@ +from itd.request import fetch + +def get_hastags(token: str, limit: int = 10): + return fetch(token, 'get', 'hashtags/trending', {'limit': limit}) + +def get_posts_by_hastag(token: str, hashtag: str, limit: int = 20, cursor: int = 0): + return fetch(token, 'get', f'hashtags/{hashtag}/posts', {'limit': limit, 'cursor': cursor})