Tweak reply processing

This commit is contained in:
Thomas Sileo 2019-08-17 18:38:15 +02:00
parent 9cbe608fc9
commit ade3bee214
4 changed files with 10 additions and 6 deletions

View file

@ -572,12 +572,13 @@ def task_process_reply() -> _Response:
) )
for new_reply in new_replies: for new_reply in new_replies:
if find_one_activity(by_object_id(new_reply.id)) or DB.replies.find_one( if find_one_activity(
{"remote_id": root_reply} {**by_object_id(new_reply.id), **by_type(ap.ActivityType.CREATE)}
): ) or DB.replies.find_one(by_remote_id(new_reply.id)):
continue continue
actor = new_reply.get_actor() actor = new_reply.get_actor()
# Save the reply with the cached actor and the thread flag/ID
save_reply( save_reply(
new_reply, new_reply,
{ {

View file

@ -35,11 +35,11 @@ from core.meta import Box
from core.meta import MetaKey from core.meta import MetaKey
from core.meta import by_object_id from core.meta import by_object_id
from core.meta import by_remote_id from core.meta import by_remote_id
from core.meta import by_type
from core.meta import flag from core.meta import flag
from core.meta import inc from core.meta import inc
from core.meta import upsert from core.meta import upsert
from core.tasks import Tasks from core.tasks import Tasks
from core.meta import by_type
from utils import now from utils import now
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View file

@ -35,7 +35,10 @@ def lookup(url: str) -> ap.BaseActivity:
except requests.RequestException as err: except requests.RequestException as err:
raise RemoteServerUnavailableError(f"failed to GET {url}: {err!r}") raise RemoteServerUnavailableError(f"failed to GET {url}: {err!r}")
try:
resp.raise_for_status() resp.raise_for_status()
except Exception:
return ap.fetch_remote_activity(url)
# If the page is HTML, maybe it contains an alternate link pointing to an AP object # If the page is HTML, maybe it contains an alternate link pointing to an AP object
for alternate in mf2py.parse(resp.text).get("alternates", []): for alternate in mf2py.parse(resp.text).get("alternates", []):

View file

@ -69,7 +69,7 @@ def get_software_name(server: str) -> str:
return SoftwareName.UNKNOWN.value return SoftwareName.UNKNOWN.value
except requests.RequestException: except requests.RequestException:
pass return SoftwareName.UNKNOWN.value
if _try_mastodon_api(server): if _try_mastodon_api(server):
return SoftwareName.MASTODON.value return SoftwareName.MASTODON.value