Merge pull request 'Add vote for rants and comments' (#1) from dr/devranta:vote into main
All checks were successful
devranta build / Build (push) Successful in 1m10s
All checks were successful
devranta build / Build (push) Successful in 1m10s
Reviewed-on: #1
This commit is contained in:
commit
d1f8768b15
@ -32,6 +32,5 @@ See [tests](src/devranta/tests.py) for [examples](src/devranta/tests.py) on how
|
||||
|
||||
## Todo
|
||||
|
||||
- voting comment
|
||||
- edit message
|
||||
|
||||
|
@ -1,5 +1,11 @@
|
||||
from typing import Literal, Optional
|
||||
import aiohttp
|
||||
from enum import Enum
|
||||
|
||||
class VoteReason(Enum):
|
||||
NOT_FOR_ME = 0
|
||||
REPOST = 1
|
||||
OFFENSIVE_SPAM = 2
|
||||
|
||||
class Api:
|
||||
|
||||
@ -168,6 +174,28 @@ class Api:
|
||||
obj = await response.json()
|
||||
return obj.get("success", False)
|
||||
|
||||
async def vote_rant(self, rant_id: int, vote: Literal[-1, 0, 1], reason: Optional[VoteReason] = None):
|
||||
if not await self.ensure_login():
|
||||
return None
|
||||
async with self as session:
|
||||
response = await session.post(
|
||||
url=self.patch_url(f"devrant/rants/{rant_id}/vote"),
|
||||
data=self.patch_auth({"vote": vote, "reason": reason.value if reason else None}),
|
||||
)
|
||||
obj = await response.json()
|
||||
return obj.get("success", False)
|
||||
|
||||
async def vote_comment(self, comment_id: int, vote: Literal[-1, 0, 1], reason: Optional[VoteReason] = None):
|
||||
if not await self.ensure_login():
|
||||
return None
|
||||
async with self as session:
|
||||
response = await session.post(
|
||||
url=self.patch_url(f"comments/{comment_id}/vote"),
|
||||
data=self.patch_auth({"vote": vote, "reason": reason.value if reason else None}),
|
||||
)
|
||||
obj = await response.json()
|
||||
return obj.get("success", False)
|
||||
|
||||
@property
|
||||
async def notifs(self):
|
||||
response = None
|
||||
|
Loading…
Reference in New Issue
Block a user