Ryan Barrett
435389d0b9
move User.has_redirects, .redirects_error, and .has_hcard to Web
...
confirmed that no prod ActivityPub entities have values for any of these properties
2023-06-14 14:36:30 -07:00
Ryan Barrett
65e1479d88
don't allow Followers from and to the same protocol
...
also make from and to required
2023-06-13 20:58:28 -07:00
Ryan Barrett
48c40c10a8
add Protocol.for_id and .owns_id
...
fixes #548
2023-06-13 13:21:30 -07:00
Ryan Barrett
cb1f80832f
AP users: add Protocol.ABBREV, Protocol.OTHER_LABELS
...
for #512
2023-06-11 08:14:17 -07:00
Ryan Barrett
510cd036bf
AP users: add Protocol.for_domain and for_request
...
getting ready to serve per-protocol subdomains, eg nostr.brid.gy, ap.brid.gy, etc
for #512
2023-06-10 19:55:08 -07:00
Ryan Barrett
c98ab3f2d5
AP users: Object schema change, domains => users
...
also for AP => wm, only try to send webmentions to domains that we already have an existing Web user for. the vast majority of targets are fediverse URLs, and we were trying to send them all wms, ie at least running wm discovery and finding nothing. harmless, but a waste.
2023-06-09 12:56:45 -07:00
Ryan Barrett
3972b31cd1
AP users: drop deprecated Follow.src, dest, and last_follow properties
...
for #512
2023-06-08 16:04:37 -07:00
Ryan Barrett
7c82bf7ec5
AP users: finish migrating Follower from string domains/ids to User keys
...
for #512
2023-06-07 19:06:44 -07:00
Ryan Barrett
9cb8c1f9f2
AP users: start migrating Follower from string domains/ids to User keys
...
for #512
2023-06-07 12:43:48 -07:00
Ryan Barrett
9a75d10f54
move Model.username() to Web
2023-06-04 16:10:37 -07:00
Ryan Barrett
fe27742b80
AP users: promote ActivityPub.label_id computed prop to User.readable_id
...
and drop ActivityPub.get_by_id() override, move logic to user() page handler. fixes 'Only ancestor queries are allowed inside transactions.'
for #512
2023-06-03 21:48:15 -07:00
Ryan Barrett
daba73ce38
update a few user page links in the web UI, /user/ => /web/
...
for #512
2023-06-03 08:03:38 -07:00
Ryan Barrett
c41b55a199
Web.fetch: switch back to raising instead of returning empty Object
...
raise new custom NoMicroformats exception
2023-06-03 07:28:01 -07:00
Ryan Barrett
d9cd5d14b9
AP users: fetch user on demand on /[actor] if we don't already have it
...
also change Web.fetch() to allow missing mf2 instead of raising exception. we now create Web users with None for mf2 property if the site has no mf2.
for #512
2023-06-02 12:55:07 -07:00
Ryan Barrett
ca64793fff
AP users: add User.name() and label_id(), ActivityPub.address computed property
...
for #512
2023-06-01 21:37:58 -07:00
Ryan Barrett
958f81ddd1
AP users: rename [is_]homepage => [is_]web_url, move into Protocol subclasses
...
for #512
2023-05-31 18:47:40 -07:00
Ryan Barrett
28eabd07a3
create AP users on inbox delivery for an indirect or nonexistent Web user
...
for #512
2023-05-31 13:17:17 -07:00
Ryan Barrett
086c6d032c
minor noop User tweak, domain => id
2023-05-31 12:38:00 -07:00
Ryan Barrett
56f18f5d9a
AP users: make User.ap_actor/ap_address abstract, implement in subclasses
...
for #512
2023-05-31 10:47:09 -07:00
Ryan Barrett
35060c172a
switch actor_id() and address90 back to User methods, to be implemented by subclasses
...
partially reverts 9e906f18e4
2023-05-31 10:10:14 -07:00
Ryan Barrett
9e906f18e4
move address, actor_id from User to activitypub.py, /web-site to web.py
...
for #512
2023-05-30 17:24:49 -07:00
Ryan Barrett
29f1a1d4ac
AP users: start parameterizing URLs, including UI pages and AP endpoints
...
user pages now have /[protocol]/ prefix, AP endpoints have /ap/ prefix. for #512
2023-05-30 16:38:58 -07:00
Ryan Barrett
8d4228b811
AP users: change web UI user page paths from /user/... to /[protocol]/...
...
for #512
2023-05-30 14:08:47 -07:00
Ryan Barrett
47b04f5574
rename Web.LABEL from 'webmention' to 'web'
2023-05-30 12:15:36 -07:00
Ryan Barrett
93f621aaf5
AP users: start to replace external with indirect, starting with webfinger
...
#512
2023-05-29 20:16:15 -07:00
Ryan Barrett
624355d85a
AP users: add new User.direct property
...
direct users signed up or otherwise interacted with BF explicitly, indirect users didn't
2023-05-29 19:37:41 -07:00
Ryan Barrett
b7bebb4075
move base64_to_long, long_to_base64 to common
2023-05-27 14:58:22 -07:00
Ryan Barrett
c8b2103e13
rename Webmention class => Web, webmention.py => web.py
2023-05-26 17:40:29 -07:00
Ryan Barrett
51fd119c02
fix bug in models.reset_protocol_properties
...
added in eaa4e5333a
2023-05-26 16:36:45 -07:00
Ryan Barrett
eaa4e5333a
start to make User subclasses for each protocol
...
#512
2023-05-26 16:07:36 -07:00
Ryan Barrett
15e3daff5e
switch outbound webmention source URLs from /render?id=... to /convert/...
...
#512
2023-05-24 16:32:00 -07:00
Ryan Barrett
af95521759
user page bug fix, add missing import
...
fixes https://console.cloud.google.com/errors/detail/COHl8dmZ9-i4Lw;time=P30D?project=bridgy-federated
2023-05-24 06:57:34 -07:00
Ryan Barrett
cf86f4d808
AP users: extract out Protocol.serve() method
...
#512
2023-05-23 21:30:57 -07:00
Ryan Barrett
0ab3698db7
Bluesky: move most ATProto code to separate arroba library
...
https://github.com/snarfed/arroba
2023-05-06 14:41:06 -07:00
Ryan Barrett
64f4f62ae9
bluesky: add models.AtpNode for storing repo blocks
2023-04-28 12:02:26 -07:00
Ryan Barrett
e303f55fdf
models.User: generate and store an ECC P-256 keypair
...
for AT Proto
2023-04-25 14:04:29 -07:00
Ryan Barrett
d2ab48b23e
switch circular imports to runtime imports; split out flask_app.py from app.py
...
runtime imports are just as bad, but...meh. eventually I'll untangle them for real. #486
2023-04-18 17:18:17 -07:00
Ryan Barrett
b39d673f12
add Object.expire property for datastore TTL to garbage collect old Objects
...
right now, auto-delete some ephemeral activities after 90d. for #456 . https://cloud.google.com/datastore/docs/ttl
2023-04-18 09:16:16 -07:00
Ryan Barrett
212f2b11ec
wm => AP: add delete support
...
fixes #30
2023-04-17 15:36:29 -07:00
Ryan Barrett
01125d38d8
/render : escape #s in object id URLs to ^^
...
fixes #469
2023-04-05 16:23:49 -07:00
Ryan Barrett
22ca59749e
stop using common.actor() in User.verify()
2023-04-04 22:06:13 -07:00
Ryan Barrett
1f40aedf27
webmention.py: unify homepage update logic, move fetching into fetch()
2023-04-04 18:02:41 -07:00
Ryan Barrett
629c1a2bd4
unify Object.new/changed generation into Protocol.load
...
also:
* switch back to preserving fragments in URL ids
* webmention.fetch: if URL id redirects, preserve original id in Object
2023-04-03 07:53:15 -07:00
Ryan Barrett
3a97ba587d
noop: Protocol.load: switch from @cached decorator to manual cache
...
...so that I can add a refresh kwarg that bypasses the cache
2023-04-02 20:36:23 -07:00
Ryan Barrett
f836762b0f
big webmention.py refactoring
...
* use Objects properly
* use Object's mf2/AS2/AS1 conversion
* drop resuming partially completed deliveries
* use load, fetch, send
* get closer to unifying all activity handling into Protocol.receive
2023-04-01 19:13:51 -07:00
Ryan Barrett
e41ce9216c
noop, rename Protocol.get_object => Protocol.load
2023-03-29 13:13:32 -07:00
Ryan Barrett
5493e2f297
add 'activity' to Object.labels automatically in new _pre_put_hook
2023-03-28 11:14:08 -07:00
Ryan Barrett
20f86c7de3
handle wm => AP with targets that we've already federated wm => AP
...
fixes https://console.cloud.google.com/errors/detail/CMHpr9L3ooGKeQ;time=P30D?project=bridgy-federated
2023-03-22 12:30:55 -07:00
Ryan Barrett
3538940e4f
add new Object.our_as1 property for activities we create or modify ourselves
2023-03-21 09:10:14 -07:00
Ryan Barrett
fb5f7b3fb0
move current user into Flask g request-global
2023-03-20 14:28:14 -07:00