Ryan Barrett
0ddb1255f4
UI: fix main user link on user pages to be external
2024-04-30 16:13:31 -07:00
Ryan Barrett
f668a53f74
User.is_enabled: if a user explicitly opts in, override profile opt outs
...
fixes #974
2024-04-30 12:38:43 -07:00
Ryan Barrett
b6be345921
UI: refactor actor link rendering into User.user_link / Object.actor_link
2024-04-29 12:27:00 -07:00
Ryan Barrett
bf70ddd348
user pages UI: don't show user in every activity on profile and feed pages
...
it's redundant
2024-04-29 11:26:28 -07:00
Ryan Barrett
9617d8ab71
move Protocol.is_enabled to User.is_enabled
2024-04-27 20:34:37 -07:00
Ryan Barrett
cbe4b59206
convert Protocol.is_enabled_to to an instance method
...
next commit will move it to User
2024-04-27 20:27:33 -07:00
Ryan Barrett
4012b13a5a
User: add delete as a type that expires
2024-04-26 09:59:08 -07:00
Ryan Barrett
3c62f7cfcc
give up on email for now, still can't get SMTP to work
...
Gmail SMTP is unhappy with auth, even though I got it to work on https://shell-py3.appspot.com/ , and Gandi SMTP seems to block Google Cloud IPs. sigh.
2024-04-24 15:30:20 -07:00
Ryan Barrett
55ae9fd2bb
User.enable/disable_protocol: move email out of datastore tx
2024-04-24 14:34:52 -07:00
Ryan Barrett
b543fdb1d5
switch to Gmail SMTP, other minor tweaks
2024-04-24 14:26:20 -07:00
Ryan Barrett
ece168fac1
email me when someone enables or disables a protocol
2024-04-24 11:15:28 -07:00
Ryan Barrett
506de7fd1d
User.get_or_create: if the id is a copy, return the original
...
...which will be in a different protocol! worried this will break something. hrm.
2024-04-23 17:56:59 -07:00
Ryan Barrett
0238b46e36
add Protocol.HAS_COPIES, use to generate ids.COPIES_PROTOCOLS
2024-04-23 16:52:53 -07:00
Ryan Barrett
c86c91b25b
User.enable_protocols bug fix: only call create_for for copy protocols
...
also add integration test for following protocol bot user from ATProto
2024-04-23 16:38:08 -07:00
Ryan Barrett
11eb082190
tighten common.unwrap so it doesn't remove protocol bot user URLs
...
...like https://bsky.brid.gy/ . this hopefully fixes following bot users in eg AP to enable protocols.
2024-04-23 12:00:39 -07:00
Ryan Barrett
10023d17fd
Protocol.enable_protocol: create copy user if necessary
2024-04-21 12:18:12 -07:00
Ryan Barrett
6b597c90c3
User.get_or_create: abstract propagate and create_for across protocols
2024-04-21 11:40:13 -07:00
Ryan Barrett
0c37d94191
ids.translate_* noop refactoring: from_proto => from_, to_proto => to
2024-04-20 21:03:06 -07:00
Ryan Barrett
7c34689c9f
index.yaml: remove obsolete datastore indices
2024-04-20 21:02:14 -07:00
Ryan Barrett
1981c8eba8
User.get_or_create: propagate obj into existing user
2024-04-19 12:53:44 -07:00
Ryan Barrett
3c55d7c145
protocol: extract out enable/disable_protocol methods
...
for #880
2024-04-19 12:53:44 -07:00
Ryan Barrett
917732ad4b
demote models import in ids.py to top-level to avoid circular import
2024-04-18 07:09:52 -07:00
Ryan Barrett
259b7d72dd
start on conditional opt in
...
* add Protocol.DEFAULT_ENABLED_PROTOCOLS
* add User.enabled_protocols
* move common.is_enabled to Protocol.is_enabled_to, include opt out/in
2024-04-17 16:43:10 -07:00
Ryan Barrett
f02ba80304
switch from gcloud datastore emulator to firestore emulator
...
...since the datastore emulator evidently doesn't support != query filters: https://github.com/googleapis/python-ndb/issues/962
2024-04-17 11:36:28 -07:00
Ryan Barrett
393605bde9
change ATProto.ABBREV to bsky
...
🤞 , for #961
2024-04-17 06:54:16 -07:00
Ryan Barrett
bf52d80e0f
add protocol logo to user page activities and followers
...
fixes #939
also drop page size from 30 to 20
2024-04-15 19:41:22 -07:00
Ryan Barrett
86ad33b896
user page tweak for follow accepts
...
for #825
2024-04-15 14:45:02 -07:00
Ryan Barrett
2ec22de09f
abstract redirect.py to be multi-protocol
...
...mostly. creating the underlying user opportunistically is still Web-only.
2024-04-14 18:26:34 -07:00
Ryan Barrett
2085b131a1
atproto user pages: render DIDs as handles with profile links
...
for #825
2024-04-12 12:34:49 -07:00
Ryan Barrett
ea1f3dce49
user page bug fix for 133d640f1d
2024-04-12 07:16:06 -07:00
Ryan Barrett
133d640f1d
improve rendering of ATProto interactions on user pages
...
for #825
2024-04-11 15:02:15 -07:00
Ryan Barrett
7009267bb0
use new handle_or_id kwarg in common.is_enabled calls
2024-04-10 11:49:53 -07:00
Ryan Barrett
5767ffabb5
add new Object.normalize_ids method, use in Protocol.receive
...
eg https://bsky.app/ ... URLs to DIDs for actors or at:// URIs for objects
this hopefully fixes web => ATProto follows of https://bsky.app/ ... profile URLs.
2024-04-09 13:07:57 -07:00
Ryan Barrett
5a1dda151c
ATProto.create_for: better support for local testing
2024-03-24 08:59:54 -04:00
Ryan Barrett
e86763f654
Object.as1 from bsky: bug fix for PDS in getBlob image URLs
2024-03-14 20:26:46 -07:00
Ryan Barrett
7bf29d411f
atproto: only enable indieweb.org and snarfed.org, for now
2024-03-13 13:07:30 -07:00
Ryan Barrett
7edb5a5da9
noop, prune more Object properties from write logging
2024-03-12 11:12:34 -07:00
Ryan Barrett
11a480f1c2
web UI sugar: parse bsky.app URLs into "x's post"
2024-03-06 14:04:44 -08:00
Ryan Barrett
311ba3ae0a
User.get_or_create: don't overwrite existing fediverse keypair
2024-02-28 16:22:29 -08:00
Ryan Barrett
d2865fdb86
add common.ENABLED_BRIDGES, check before conversion and /bridge-user
2024-02-28 12:07:06 -08:00
Ryan Barrett
56a3c0e34b
bluesky: opt out users who have disabled logged out view on bsky.app
...
ie "Discourage apps from showing my account to logged-out users" on https://bsky.app/moderation
fixes #828
https://docs.bsky.app/docs/advanced-guides/resolving-identities#for-backend-services
https://github.com/bluesky-social/atproto/blob/main/packages/api/docs/labels.md#label-behaviors
2024-02-23 10:33:34 -08:00
Ryan Barrett
d461397ce8
tone down Object write logging: omit delivered, failed, undelivered
2024-02-15 13:28:09 -08:00
Ryan Barrett
675e39809e
web UI: tweak user links in user page header
2024-02-11 14:39:09 -08:00
Ryan Barrett
4529f30dce
switch from opt_outs.txt to new User.manual_opt_out property
...
opt_outs.txt wasn't included in continuous deploy from Circle, so those deploys were ignoring ids in that file :/
2024-01-14 21:02:39 -08:00
Ryan Barrett
7941b632ca
Object._pre_put_hook: require that protocol owns id
2024-01-12 19:53:01 -08:00
Ryan Barrett
a2ed71b3ec
util.parse_mf2: use metaformats photo if h-card doesn't have one
2024-01-09 13:07:03 -08:00
Ryan Barrett
bab5270c3b
start clearing Object.our_as1 again on updates
...
fixes #778 . bug was that when we fetched a web object, we'd populate the new `mf2` value, but still keep the old `our_as1`, which then overrode it in `as1`. ugh.
partially reverts commit 62ca4022fb
for #721 .
2024-01-08 13:03:44 -08:00
Ryan Barrett
e82555ad91
Web: add poll feed task for new users, drop task if they've sent a webmention
2024-01-06 13:57:11 -10:00
Ryan Barrett
28fa7eba8c
User.get_or_create: set transient User.existing attribute
...
would have used new, but it's already a method
2024-01-06 13:19:43 -10:00
Ryan Barrett
7e702305bf
Web: add poll_feed_task for ingesting Atom/RSS feeds
...
also demotes Web.atom to informational only, we're switching to populate feed entries into our_as1 because we can't easily extract individual items from feedparser.
for #550
2024-01-01 20:12:33 -10:00