mirror of https://gitlab.com/bashrc2/epicyon
Check if post was already liked
parent
94b4529cf6
commit
6b3e9396d7
36
inbox.py
36
inbox.py
|
@ -1032,6 +1032,11 @@ def receiveLike(recentPostsCache: {},
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: liked post found in inbox')
|
print('DEBUG: liked post found in inbox')
|
||||||
|
|
||||||
|
if not alreadyLiked(baseDir,
|
||||||
|
handle.split('@')[0],
|
||||||
|
handle.split('@')[1],
|
||||||
|
messageJson['object'],
|
||||||
|
messageJson['actor']):
|
||||||
updateLikesCollection(recentPostsCache, baseDir, postFilename,
|
updateLikesCollection(recentPostsCache, baseDir, postFilename,
|
||||||
messageJson['object'],
|
messageJson['object'],
|
||||||
messageJson['actor'], domain, debug)
|
messageJson['actor'], domain, debug)
|
||||||
|
@ -1706,6 +1711,37 @@ def dmNotify(baseDir: str, handle: str, url: str) -> None:
|
||||||
fp.write(url)
|
fp.write(url)
|
||||||
|
|
||||||
|
|
||||||
|
def alreadyLiked(baseDir: str, nickname: str, domain: str,
|
||||||
|
postUrl: str, likerActor: str) -> bool:
|
||||||
|
"""Is the given post already liked by the given handle?
|
||||||
|
"""
|
||||||
|
postFilename = \
|
||||||
|
locatePost(baseDir, nickname, domain, postUrl)
|
||||||
|
if not postFilename:
|
||||||
|
return False
|
||||||
|
postJsonObject = loadJson(postFilename, 1)
|
||||||
|
if not postJsonObject:
|
||||||
|
return False
|
||||||
|
if not postJsonObject.get('object'):
|
||||||
|
return False
|
||||||
|
if not isinstance(postJsonObject['object'], dict):
|
||||||
|
return False
|
||||||
|
if not postJsonObject['object'].get('likes'):
|
||||||
|
return False
|
||||||
|
if not postJsonObject['object']['likes'].get('items'):
|
||||||
|
return False
|
||||||
|
for like in postJsonObject['object']['likes']['items']:
|
||||||
|
if not like.get('type'):
|
||||||
|
continue
|
||||||
|
if not like.get('actor'):
|
||||||
|
continue
|
||||||
|
if like['type'] != 'Like':
|
||||||
|
continue
|
||||||
|
if like['actor'] == likerActor:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def likeNotify(baseDir: str, domain: str, onionDomain: str,
|
def likeNotify(baseDir: str, domain: str, onionDomain: str,
|
||||||
handle: str, actor: str, url: str) -> None:
|
handle: str, actor: str, url: str) -> None:
|
||||||
"""Creates a notification that a like has arrived
|
"""Creates a notification that a like has arrived
|
||||||
|
|
Loading…
Reference in New Issue