Improve the trash

This commit is contained in:
Thomas Sileo 2019-07-07 14:54:04 +02:00
parent 756765733e
commit ba9f945b7b

26
app.py
View file

@ -1831,10 +1831,28 @@ def inbox():
except Exception: except Exception:
logger.exception(f"failed to fetch remote for payload {data!r}") logger.exception(f"failed to fetch remote for payload {data!r}")
# Friendica does not returns a 410, but a 302 that redirect to an HTML page if "type" in data:
if ap._has_type(data["type"], ActivityType.DELETE): # Friendica does not returns a 410, but a 302 that redirect to an HTML page
logger.info(f"received a Delete for an unknown actor {data!r}, drop it") if ap._has_type(data["type"], ActivityType.DELETE):
return Response(status=201) logger.info(
f"received a Delete for an unknown actor {data!r}, drop it"
)
return Response(status=201)
if "id" in data:
if DB.trash.find_one({"activity.id": data["id"]}):
# It's already stored in trash, returns early
return Response(
status=422,
headers={"Content-Type": "application/json"},
response=json.dumps(
{
"error": "failed to verify request (using HTTP signatures or fetching the IRI)"
}
),
)
# Now we can store this activity in the trash for later analysis
# Track/store the payload for analysis # Track/store the payload for analysis
ip, geoip = _get_ip() ip, geoip = _get_ip()