diff --git a/newswire.py b/newswire.py index 95a5b7a80..02b6c3c7c 100644 --- a/newswire.py +++ b/newswire.py @@ -179,7 +179,8 @@ def _downloadNewswireFeedFavicon(session, baseDir: str, # check svg for dubious scripts if favUrl.endswith('.svg'): - if dangerousSVG(str(imageData), False): + imageDataStr = str(imageData) + if dangerousSVG(imageDataStr, False): return False # save to the cache diff --git a/person.py b/person.py index 30214cc38..c3bcada06 100644 --- a/person.py +++ b/person.py @@ -1010,6 +1010,8 @@ def setDisplayNickname(baseDir: str, nickname: str, domain: str, def setBio(baseDir: str, nickname: str, domain: str, bio: str) -> bool: + """Only used within tests + """ if len(bio) > 32: return False handle = nickname + '@' + domain @@ -1683,13 +1685,19 @@ def validSendingActor(session, baseDir: str, return False # does the actor have a bio ? if not unitTest: - if not actorJson.get('summary'): + bioStr = '' + if actorJson.get('summary'): + bioStr = removeHtml(actorJson['summary']).strip() + if not bioStr: # allow no bio if it's an actor in this instance if domain not in sendingActor: # probably a spam actor with no bio print('REJECT: spam actor ' + sendingActor) return False - bioStr = removeHtml(actorJson['summary']) + if len(bioStr) < 10: + print('REJECT: actor bio is not long enough ' + + sendingActor + ' ' + bioStr) + return False bioStr += ' ' + removeHtml(actorJson['preferredUsername']) if actorJson.get('attachment'):