Ryan Barrett
9682b599cf
User.get_by_id: handle when use_instead points to opted out user
2025-01-10 09:33:35 -08:00
Ryan Barrett
e8b201dc33
extract memcache logic out into new memcache.py file
2025-01-09 17:10:05 -08:00
Ryan Barrett
1aca15ee1e
drop User.direct
...
subsumed by User.enabled_protocols. for #973
2025-01-06 20:06:23 -08:00
Ryan Barrett
9e2479ef79
web UI: followers/ing page bug fix, handle missing handle
...
fixes https://console.cloud.google.com/errors/detail/CIvZ14eI8r2zhgE;locations=global;time=P30D?project=bridgy-federated&inv=1&invt=AbmE_w
2025-01-05 20:08:36 -08:00
Ryan Barrett
fe6da84fc3
web UI: add unicode-bidi: isolate spans around external content
...
fixes RTL/LTR override chars extending into UI and other text. thanks @electricduck, @tantek! for #1666
2025-01-05 09:19:20 -08:00
Ryan Barrett
63c0e25deb
drop per-target delivery tracking
...
sad, it's useful, but it's too expensive. for #1501 , #1149
2024-12-14 20:53:47 -08:00
Ryan Barrett
6388aab7d6
cache User.count_followers in memcache
...
for #1149
2024-12-13 15:25:04 -08:00
Ryan Barrett
5d6d68b5e7
cache models.get_original_user/object_key queries in memcache
...
adds new generic common.memcache_memoize decorator for caching any function's output in memcache. for #1149
2024-12-11 20:17:36 -08:00
Ryan Barrett
3c3dadb524
minor log tweaks, TODO
2024-12-04 14:38:35 -08:00
Ryan Barrett
f94e697b55
/web-site: always reload profile
...
for #1458 , #1564
2024-11-28 07:56:02 -08:00
Ryan Barrett
538065792e
User.get_or_create: don't propagate if the user is blocked
...
ie for web sites that don't have RSS or Atom feed or webmentions
for #1458
2024-11-27 09:04:38 -08:00
Ryan Barrett
f57951d5d8
require web users to have an Atom or RSS feed or webmentions
...
for #1458
2024-11-24 21:03:51 -08:00
Ryan Barrett
5e49656099
ATProto.handle_to_id: reuse DatastoreClient.resolve_handle
2024-11-07 20:52:03 -08:00
Ryan Barrett
b4ac98c84e
move common.add, remove to webutil.util
...
in snarfed/webutil@46ef97e4fe
2024-10-31 09:41:28 -07:00
Ryan Barrett
c0f8945989
ATProto.set_username: fetch new DID doc; User.handle_as: use handle in DID doc
...
for #826
2024-10-28 18:23:21 -07:00
Ryan Barrett
572b42d664
Object.get_or_create: auth check: normalize profile ids
...
handles eg www vs naked domain in web home page URLs
2024-10-28 15:49:16 -07:00
Ryan Barrett
059c7ed46a
User.enable_protocol: always call Protocol.create_for
...
...even if there's already a copy, since it might need to be reactivated
for #1130
2024-10-22 14:30:49 -07:00
Ryan Barrett
8b36e6527d
datastore transactions: remove on ATProto.create_for, narrow in models.enable
...
we were doing heavy work like generating RSA keys and external network requests for creating DIDs inside datastore txes, which led to bad contention. details in https://github.com/snarfed/bridgy-fed/issues/1376
2024-10-11 21:09:47 -07:00
Ryan Barrett
93c034de3b
noop: tweak a few log messages
2024-10-11 15:24:25 -07:00
Ryan Barrett
feb4d4c554
tests: remove Fake special case in Follower._pre_put_hook
...
for #1180
2024-10-10 20:21:45 -07:00
Ryan Barrett
27afce3b4f
tests: remove Fake/OtherFake special case in User.is_enabled
...
for #1180
2024-10-10 20:16:07 -07:00
Ryan Barrett
5b75fa43d5
noop: tests: rename ExplicitEnableFake => ExplicitFake, eefake => efake
2024-10-08 15:03:43 -07:00
Ryan Barrett
d37f83b11b
use raise_=False in more Protocol.load calls
2024-10-04 12:59:57 -07:00
Ryan Barrett
2a13b83084
ATProto: reload DID doc along with profile when necessary
...
for #1334
2024-10-03 17:06:46 -07:00
Ryan Barrett
4255719939
activitypub.actor: put native user id in alsoKnownAs
...
for https://github.com/snarfed/bridgy-fed/issues/1331
2024-10-02 15:01:07 -07:00
Ryan Barrett
0f268a8fd6
User.get_or_create: if we fail creating a copy, disable that protocol
...
fixes https://console.cloud.google.com/errors/detail/CMHloZaRmPXQZQ;locations=global;time=P30D?project=bridgy-federated
2024-09-29 08:02:19 -07:00
Ryan Barrett
c843c98c3e
Protocol.handle_follow: allow following opted out/blocked users
...
we still won't bridge or otherwise handle those users' activities though
fixes https://console.cloud.google.com/errors/detail/CM7b86Se9r_qfQ;time=PT1H;locations=global?project=bridgy-federated
2024-09-24 06:59:49 -07:00
Ryan Barrett
0f805e0885
refactor Web.poll_feed_task, add better error handling
...
pull out an internal poll method, wrap it in a mostly-catch-all exception handler, make sure we more reliably create the next task even if fetching or parsing fails
fixes:
https://console.cloud.google.com/errors/detail/CICLhIKMm6nSHw;locations=global;time=P30D?project=bridgy-federated
https://console.cloud.google.com/errors/detail/CJCrlNfNn6n3FQ;locations=global;time=P30D?project=bridgy-federated
https://console.cloud.google.com/errors/detail/CPnSx-yemJ-hlAE;locations=global;time=P30D?project=bridgy-federated
etc
2024-09-20 12:12:28 -07:00
Ryan Barrett
5330dca6e2
refactor models.get_original* queries to cache more and query less
...
for #1149
2024-09-19 20:58:34 -07:00
Ryan Barrett
4df76d0db7
when we get a delete, or a web user opts out, delete their copies in other protocols
...
for #1304
2024-09-16 18:27:04 -07:00
Ryan Barrett
ffb4459545
revise AP Delete => Bluesky tombstone flow, add integration test
...
for #1304
2024-09-13 21:43:38 -07:00
Ryan Barrett
cfaacb8ff5
stop unwrapping ids etc in ActivityPub.inbox, do it in Object.as1 instead
...
for #12
2024-09-13 13:09:22 -07:00
Ryan Barrett
3dc3330603
code doc and docstring tweaks
2024-09-12 13:05:41 -07:00
Ryan Barrett
f997477366
User.get_or_create: move profile object load out of datastore transaction
...
hoping to cut down https://console.cloud.google.com/errors/detail/CKbL5KSX98uZHw;time=P1D;locations=global?project=bridgy-federated a bit
2024-09-12 13:05:41 -07:00
Ryan Barrett
36a9f94cb8
add fallback kwargs to User.user_link, Protocol.bridged_web_url_for
...
for #966
2024-09-10 16:44:18 -07:00
Ryan Barrett
16a9a5b29e
add rel=me to user page links
...
for #1309
2024-09-09 08:29:19 -07:00
Ryan Barrett
150598d761
User.user_link: refactor to get rid of extra spaces
2024-08-25 09:48:32 -07:00
Ryan Barrett
6675d9805c
User.user_link: add name, handle, pictures, proto kwargs, remove maybe_internal_link
2024-08-21 07:55:09 -07:00
Ryan Barrett
9467bccb5e
noop: User.count_followers optimization, do queries async
2024-08-21 07:55:09 -07:00
Ryan Barrett
2ed8ba2d0f
DM to request bridging: send acknowledgment DM to requester
...
for #966
2024-08-19 21:48:02 -07:00
Ryan Barrett
e96c61559e
tests bug fix: ExplicitEnableFake needs explicit enabling *both* directions
2024-08-19 20:08:03 -07:00
Ryan Barrett
004d3617f8
dms.receive: first pass at DM handle to request bridging
...
for #966
2024-08-19 13:26:45 -07:00
Ryan Barrett
ecab888a02
move incoming DM handling from Protocol.receive to dms.receive
2024-08-18 08:29:05 -07:00
Ryan Barrett
be2b36cf8a
start new dms module, move Protocol.maybe_bot_dm into it
2024-08-17 22:53:14 -07:00
Ryan Barrett
0ce8eaff1a
Protocol.bot_dm => maybe_bot_dm, populate and check User.sent_dms
...
for #1205 , #1148 , #966 , #1024
2024-08-15 17:24:25 -07:00
Ryan Barrett
17371a31cb
switch User.sent_dms from Target to new DM type
2024-08-15 14:35:49 -07:00
Ryan Barrett
eedc77fcb8
make User.sent_dms per-protocol by changing its type to Target
...
for #1205 , #1148 , #966 , #1024
2024-08-14 15:11:56 -07:00
Ryan Barrett
eb9b28faa8
add User.sent_dms to track the DMs we've sent to a user
...
for #1205 , #1148 , #966 , #1024
2024-08-14 14:10:21 -07:00
Ryan Barrett
07b8a3de1d
User.enable_protocol: fill in real welcome DM message
...
for #1024 , #966 , etc
2024-08-08 22:21:40 -07:00
Ryan Barrett
23aa24eb4f
User.enable_protocol: send welcome DM
...
via new Protocol.bot_dm method
for #1024 , #966 , etc
2024-08-08 20:17:06 -07:00