Ryan Barrett
fd6e371635
make Protocol._targets use per-protocol blocklist check
2023-09-09 15:11:52 -07:00
Ryan Barrett
0d2e4fb66a
noop: protocol: label classmethod cls identifiers with from/to
2023-09-09 14:19:27 -07:00
Ryan Barrett
8b242e65ba
move common.is_blacklisted to Protocol so that subclasses can override it
2023-09-06 17:35:15 -07:00
Ryan Barrett
e18dabf510
implement ATProto.target_for, .fetch for at:// URIs
2023-08-31 10:48:28 -07:00
Ryan Barrett
3d23618b1b
Protocol.receive: handle unknown protocol for followeee
...
fixes https://console.cloud.google.com/errors/detail/CKjCqOC34bL3SQ;time=P30D?project=bridgy-federated
2023-07-25 09:53:23 -07:00
Ryan Barrett
414fa5f197
Protocol.receive: resume existing create if it's not complete
2023-07-24 14:07:44 -07:00
Ryan Barrett
17fe6db6eb
change Protocol.key_for to return None instead of raise on invalid user ids
...
hopefully fixes https://console.cloud.google.com/errors/detail/CKWmwa7SybLcQw;time=P30D?project=bridgy-federated
2023-07-22 20:32:55 -10:00
Ryan Barrett
c3f9c56c31
Protocol.receive: drop fed.brid.gy domain check
...
this happens after protocols pre-process objects and eg fill in BF AP actor ids. moved this check to *.send and user entity pre post hooks instead. for #597
2023-07-22 20:11:12 -10:00
Ryan Barrett
ad893b1a97
update test_activitypub, test_web for new Object.notify/feed props
...
added in 95d0a695aa30c06880c218a96a98f591850a0a3c
2023-07-17 05:34:56 -10:00
Ryan Barrett
57350ab81a
switch from Object.users + labels to users + notify + feed lists
...
needed to distinguish an activity's owners from who it should notify from who should see it in their feeds.
also, unrelated, start sending stop-following activities.
in progress, test_web and test_activitypub still need updating.
2023-07-17 05:34:56 -10:00
Ryan Barrett
764494be16
Protocol.receive follow: send accept for every followee, not just the last one
2023-07-17 05:34:56 -10:00
Ryan Barrett
e0a75b07bc
extract out the non-BF-specific parts of Protocol._targets into as1.targets
...
in snarfed/granary@91fde3201e
2023-07-15 14:23:09 -07:00
Ryan Barrett
e194ccb3ad
Protocol.load/fetch returns True/False (or None) to mean "not this protocol"
...
ie, nothing failed, but the given id eitehr doesn't below to the given protocol, or fetched successfully but its data belongs to a different protocol.
vs raising exceptions for fetches that fail or error, eg network connection problems, Web got HTML with microformats2 but no h-entry, ActivityPub got non-AS2, etc.
used in Protocol.for_id: when a given Protocol's fetch doesn't work, we move on and try the next protocol _if_ it returned False (ie wasn't fetchable with that protocol, but we fail fast if it raises an exception (ie fetch failed).
2023-07-14 12:58:47 -07:00
Ryan Barrett
0e47918a38
merging receive: skip same-protocol deliveries and Followers
...
for #529
2023-07-13 14:21:13 -07:00
Ryan Barrett
815ae95560
merging receive: bug fix for same domain check: normalize target URLs earlier
...
for #529 , a3f99a81ce
2023-07-11 13:25:32 -07:00
Ryan Barrett
174c55ae6e
merging receive: implement mentions, deliver to mentioned users
...
for #529
2023-07-11 13:25:31 -07:00
Ryan Barrett
605742a82c
merging receive: skip same-domain targets
...
for #529
2023-07-11 13:25:31 -07:00
Ryan Barrett
0d7df6d4e6
merging receive: handle follow with multiple objects (followees)
...
for #529
2023-07-11 13:25:31 -07:00
Ryan Barrett
ceb72e516c
Web.send: ignore accept activities
...
webmention/mf2 have no corrolary yet
2023-07-11 13:25:31 -07:00
Ryan Barrett
911dc56367
merging receive: check for already seen activity ids more carefully
...
for #529
2023-07-11 13:25:30 -07:00
Ryan Barrett
2c861dbbf4
merging receive: if incoming object has no id (eg web/mf2), default to URL
...
for #529
2023-07-11 13:25:30 -07:00
Ryan Barrett
56ebdba049
merging receive: propagate new/changed from receive into new Object
...
for #529
2023-07-11 13:25:30 -07:00
Ryan Barrett
79dd28eeb3
merging receive: Object.users bug fix, fix most test_activitypub tests
...
for #529
2023-07-11 13:25:30 -07:00
Ryan Barrett
9c62786f06
merging receive: delivery bug fix, stop suppressing webmention send errors
...
for #529
2023-07-11 13:25:30 -07:00
Ryan Barrett
5f4d6757e7
merging Protocol/Web receive: minor fix for extracting activity id
...
for #529
2023-07-11 13:25:30 -07:00
Ryan Barrett
568681a19e
merging Protocol/Web receive: start to work through test_web
...
for #529
2023-07-11 13:25:30 -07:00
Ryan Barrett
ab24b8680f
start using Protocol.owner_key
2023-07-11 13:25:30 -07:00
Ryan Barrett
3333509f5b
add Protocol.owner_key
2023-07-11 13:25:30 -07:00
Ryan Barrett
79c1f71a58
merging Protocol/Web receive: use actor for deletes, not g.user
...
for #529
2023-07-11 13:25:30 -07:00
Ryan Barrett
903f26bb0a
merging Protocol/Web receive: reposts, deletes
...
for #529
2023-07-11 13:25:29 -07:00
Ryan Barrett
b3a3de73f2
extend Web/ActivityPub.owns_id() to return False if blocklisted
2023-07-11 13:25:29 -07:00
Ryan Barrett
2ea78a894b
merging Protocol/Web receive: tests for repost, update reply
...
for #529
2023-07-11 13:25:29 -07:00
Ryan Barrett
ee3a596dbb
Summary merging Protocol/Web receive: change receive to take Object
...
for #529
2023-07-11 13:25:29 -07:00
Ryan Barrett
3ceeae418f
add Object.activity_changed
2023-07-11 13:25:29 -07:00
Ryan Barrett
6157f3f3b5
merging Protocol/Web receive: improve logic for bare objects
...
for #529
2023-07-11 13:25:29 -07:00
Ryan Barrett
4f8bcf9606
merging Protocol/Web receive: move _deliver, _targets from Web to Protocol
...
for #529
2023-07-11 13:25:29 -07:00
Ryan Barrett
d0d6a13044
merging Protocol/Web receive: tweaks to Object.users, Object.labels
...
for #529
2023-07-11 13:25:28 -07:00
Ryan Barrett
ecbc76dd94
minor, use common.add a few more places
2023-07-11 13:25:28 -07:00
Ryan Barrett
54881ea707
lots more on merging Protocol/Web receive and deliver
...
for #529
2023-07-11 13:25:28 -07:00
Ryan Barrett
f254dea004
merge Protocol.receive: follow tweaks, like test
...
for #529
2023-07-11 13:25:28 -07:00
Ryan Barrett
be7aa50eac
start merging web.webmention_task into Protocol.receive
...
for #529
2023-07-11 13:25:28 -07:00
Ryan Barrett
0caca9243e
add common.add to add to repeated properties only if not already there
...
tried a bunch of other more sophisticated ways to do this in snarfed/webutil@280a93e092 (plus snarfed/webutil@6cb9c1f719 ), tried a custom repeated property class that acted like a set instead of a list, but couldn't get it to work reliably or compatibly enough.
2023-06-29 22:15:07 -07:00
Ryan Barrett
342f67dfa2
Protocol.load bug fix, leave new/changed None if we don't know for sure
...
eg if local is False
2023-06-28 15:27:11 -07:00
Ryan Barrett
45d1468825
Protocol.deliver bug fix for normalizing target URLs
...
fixes https://console.cloud.google.com/errors/detail/CKnQ7sWFhfODRQ;time=P30D?project=bridgy-federated
2023-06-27 22:31:15 -07:00
Ryan Barrett
40ae3dec8e
start to port test_activitypub tests to test_protocol, using Fake protocol
...
also minor tweaks to Protocol.deliver
2023-06-27 09:48:47 -07:00
Ryan Barrett
9140318f4a
generalize Protocol.accept_follow, other bug fixes in Protocol.receive
...
for #529 , fixes https://console.cloud.google.com/errors/detail/CMbJ6a6j56LErwE;time=P30D?project=bridgy-federated
2023-06-26 20:22:55 -07:00
Ryan Barrett
c5d3dfb967
generalize protocol.accept_follow away from AP/AS2
...
didn't realize those bits were still there!
2023-06-25 12:54:44 -07:00
Ryan Barrett
65b4f1495f
Protocol.receive: fail "intra-BF" activities from ourselves
...
for #558
2023-06-23 11:20:29 -07:00
Ryan Barrett
c97ee862a5
Protocol.load: return copies of cached objects, not the originals
...
...so that modifications aren't durable in memory until we put() them. for #558
2023-06-22 12:30:25 -07:00
Ryan Barrett
2a7425a8c6
formalize Protocol.target_for() to take any object, not just actors
...
important because webmention endpoints are per page (object), not per site (actor).
2023-06-20 17:06:32 -07:00