Ryan Barrett
71cb803840
user page bug fix for direct vs enabledd
...
need to drop direct!
2024-04-27 09:54:13 -07:00
Ryan Barrett
d6a10b4be0
update profile button: make receive task instead of running it inline
2024-04-24 17:06:25 -07:00
Ryan Barrett
115d85909a
abstract "update profile" button across protocols
...
adds new /[protocol]/[id]/update-profile endpoint
2024-04-22 20:21:56 -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
117e121cd2
atproto: populate author in feeds (Atom, RSS, etc)
2024-04-12 12:04:52 -07:00
Ryan Barrett
f67cecd8f9
add copy protocol (eg ATProto) handles to user pages
2024-04-12 07:16:05 -07:00
Ryan Barrett
817ef1d5d6
user pages: only hide indirect AP users, not ATProto
2024-04-11 14:24:18 -07:00
Ryan Barrett
f1531b44e7
bug fix for bad profile link on followers page
...
fixes #934
2024-04-01 23:06:57 -07:00
Ryan Barrett
245ef444f5
disable /bridge-user until Bluesky launch
2024-03-13 13:19:34 -07:00
Ryan Barrett
907e6e7aeb
show Web user page even when direct is False
...
not other protocols though
2024-01-22 13:12:20 -08:00
Ryan Barrett
74d1c69bbf
docs, nodeinfo: update a few email addresses to @brid.gy
2024-01-17 14:37:27 -08:00
Ryan Barrett
1ce19c2928
nodeinfo: stop counting posts and comments dynamically
...
queries have gotten too heavy, sadly
2023-12-31 09:21:04 -08:00
Ryan Barrett
49eb9b8541
add Mastodon instance info at /api/v1/instance
...
https://docs.joinmastodon.org/methods/instance/#v1
right now just for FediSeer: https://fediseer.com/faq/eng#how-can-i-claim-my-instance
2023-12-31 08:42:26 -08:00
Ryan Barrett
79ffc88925
hide undo activities from feeds
...
for #768
2023-12-26 20:42:22 -08:00
Ryan Barrett
1ec1fc2482
genericize user handles on UI follower/following pages
2023-11-27 21:40:01 -08:00
Ryan Barrett
004726d397
fix followers/ing UI page for AP users
...
fixes #718
2023-11-27 21:01:02 -08:00
Ryan Barrett
8f0d2d8650
AP: handle opted out users in following/ers, outbox collections
2023-11-27 11:32:30 -08:00
Ryan Barrett
6091cd4063
drop the rest of g.user!
...
for #690
2023-11-25 20:38:28 -08:00
Ryan Barrett
f8b7d0c283
move pages.fetch_objects to models
2023-11-22 20:39:21 -08:00
Ryan Barrett
dbfc240985
UI bug fix for 8b3881df
...
for #690 , fixes https://console.cloud.google.com/errors/CMSlxaaflMHNSQ?project=bridgy-federated&time=P30D&
2023-11-20 16:21:20 -08:00
Ryan Barrett
8b3881dfe3
stop using g.user in pages, activitypub followers/ing collections
...
for #690
2023-11-19 21:53:38 -08:00
Ryan Barrett
a1a7ceef51
stop using g.user in Follower.fetch_page
...
for #690
2023-11-19 21:53:38 -08:00
Ryan Barrett
d576d2b2e4
move pages.count_followers to User, use it in activitypub.actor
2023-11-08 11:56:01 -08:00
Ryan Barrett
ca8b7484c0
drop User.as2, Object.as_as2, switch callers to Protocol.convert
2023-10-25 13:28:01 -07:00
Ryan Barrett
422a240183
Resolve protocol-subdomain-wrapped ids/URLs by stripping the subdomain wrapping
...
Renames Object.replace_copies_with_originals => resolve_ids. As a side effect, also fixes https://console.cloud.google.com/errors/detail/CK3U3PONxv5Q;time=P30D?project=bridgy-federated
2023-10-24 10:47:44 -07:00
Ryan Barrett
9a87d7261f
fix crash on RSS/Atom feeds for users without obj or obj.as1
...
fixes https://console.cloud.google.com/errors/detail/CKSZq8OU-tCRXA;time=P30D?project=bridgy-federated
2023-10-23 13:11:40 -07:00
Ryan Barrett
a0a92d4f3e
add URL to notification feed entries
2023-10-18 11:03:21 -07:00
Ryan Barrett
4a3607325f
canonicalize domain: redirect UI requests on other domains to fed.brid.gy
2023-10-16 14:02:17 -07:00
Ryan Barrett
d0da119b07
add opt out via #nobridge or #nobot text in user profile bio
...
fixes #666
(unfortunate issue number 😆 )
2023-10-13 12:36:31 -07:00
Ryan Barrett
3046d2b28c
drop 1k followers limit in UI
...
fixes #670 , at least for now. counting 1200 followers in prod was taking ~200ms; not great, but not horrible. should cache this eventually though!
2023-10-13 09:46:36 -07:00
Ryan Barrett
6c1565b087
notifs feeds: add id
2023-10-13 09:18:23 -07:00
Ryan Barrett
14a3d70870
notifications feed: exclude updates from quiet
2023-10-12 18:13:32 -07:00
Ryan Barrett
3e34def7b4
notifications feed: add quiet query param to suppress follows, likes, reposts
2023-10-12 10:48:29 -07:00
Ryan Barrett
215578f33f
render notifications feeds as snippets, not whole activities
2023-10-12 10:40:55 -07:00
Ryan Barrett
023b05e216
RSS feed bug fix
...
fixes https://console.cloud.google.com/errors/detail/CJe5pdyJufvpHQ;time=P30D?project=bridgy-federated
2023-10-12 06:56:19 -07:00
Ryan Barrett
dfab9f55d1
user page redesign: Object.actor_link: load actor from datastore
...
for #442
2023-10-11 12:25:39 -07:00
Ryan Barrett
b1b2478b66
user page redesign: add notifications feeds, other minor tweaks
...
for #442
2023-10-11 12:25:39 -07:00
Ryan Barrett
f37baeba58
user page redesign: misc tweaks
...
* separate source protocol from user in user labels
* make bridged protocol labels generic
* other visual tweaks
for #442
2023-10-11 12:25:39 -07:00
Ryan Barrett
cc62d4cdb1
user page redesign: feeds bug fix, fix tests
2023-10-11 12:25:38 -07:00
Ryan Barrett
11037d80df
user page redesign: implement followers, following pages
...
includes subtabs on profile pages
for #442
2023-10-11 12:25:38 -07:00
Ryan Barrett
c1e0a08f72
user page redesign: add home, notifications pages
...
for #442
2023-10-11 12:25:38 -07:00
Ryan Barrett
afa16d3864
start redesigning user pages
...
for #442
2023-10-11 12:25:38 -07:00
Ryan Barrett
db29ad7757
docs: fix docstring formatting, other tweaks
2023-10-05 23:32:31 -07:00
Ryan Barrett
6442acb244
/bridge-user flashed message, link user handle
2023-10-05 22:28:36 -07:00
Ryan Barrett
42a4cb32e6
/bridge-user minor UI bug fix
2023-09-29 14:26:24 -07:00
Ryan Barrett
616f347d76
/bridge-user: only allow AP and Web source users
2023-09-29 13:38:50 -07:00
Ryan Barrett
56c5909b84
add /bridge-user page to propagate a new user into ATProto
...
for #647
2023-09-29 11:32:28 -07:00
Ryan Barrett
ad0a942034
switch webfinger and AP actors to mostly protocol subdomains
...
except Web, it still mostly serves on fed.brid.gy for backcompat, don't want to change existing Web users' AP actor ids.
2023-09-26 16:43:48 -07:00
Ryan Barrett
a9fcc167f6
replace User.readable_id computed property with handle
2023-09-25 15:08:14 -07:00
Ryan Barrett
e9e8827ef9
standardize more on 'handle' and 'id' terms
...
* User.readable_id => handle
* User.readable_or_key_id => handle_or_id
2023-09-25 12:33:24 -07:00
Ryan Barrett
57b91a9e49
user page snippet rendering: strip HTML from content
...
fixes #637
2023-09-08 14:26:19 -07:00
Ryan Barrett
eb54ec62af
activity feed rendering: convert Mastodon etc URLs to more readable @ names
2023-08-26 09:47:41 -07:00
Ryan Barrett
de5191a10e
bug fix for web user updat profile button
...
for synthesized update/create/delete activities, switch actor id from protocol-specific AP to protocol-agnostic web URL.
thanks @capjamesg for reporting!
2023-08-02 19:12:09 -07:00
Ryan Barrett
b2b5383271
fix authors in RSS and Atom feeds
2023-07-28 15:53:56 -07:00
Ryan Barrett
ca1d0dcc01
feeds: also load repost objects from separate Objects
...
for #419 , follows 47b90c8
2023-07-20 07:26:16 -10:00
Ryan Barrett
47b90c890e
/feed: load author/actor if it's in a separate Object
...
fixes #419 . thanks again @gRegorLove!
2023-07-19 19:39:29 -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
ab1c28ee4d
noop, lint fixes from flake8
...
remaining:
$ flake8 --extend-ignore=E501 *.py tests/*.py
"pyflakes" failed during execution due to "'FlakesChecker' object has no attribute 'NAMEDEXPR'"
Run flake8 with greater verbosity to see more details
activitypub.py:15:1: F401 'oauth_dropins.webutil.util.json_loads' imported but unused
activitypub.py:36:1: F401 'web' imported but unused
activitypub.py:48:1: E302 expected 2 blank lines, found 1
activitypub.py:51:9: F811 redefinition of unused 'web' from line 36
app.py:6:1: F401 'flask_app.app' imported but unused
app.py:9:1: F401 'activitypub' imported but unused
app.py:9:1: F401 'convert' imported but unused
app.py:9:1: F401 'follow' imported but unused
app.py:9:1: F401 'pages' imported but unused
app.py:9:1: F401 'redirect' imported but unused
app.py:9:1: F401 'superfeedr' imported but unused
app.py:9:1: F401 'ui' imported but unused
app.py:9:1: F401 'webfinger' imported but unused
app.py:9:1: F401 'web' imported but unused
app.py:9:1: F401 'xrpc_actor' imported but unused
app.py:9:1: F401 'xrpc_feed' imported but unused
app.py:9:1: F401 'xrpc_graph' imported but unused
app.py:9:19: E401 multiple imports on one line
models.py:19:1: F401 'oauth_dropins.webutil.util.json_loads' imported but unused
models.py:364:31: E114 indentation is not a multiple of four (comment)
models.py:364:31: E116 unexpected indentation (comment)
protocol.py:17:1: F401 'oauth_dropins.webutil.util.json_loads' imported but unused
redirect.py:26:1: F401 'oauth_dropins.webutil.util.json_loads' imported but unused
web.py:18:1: F401 'oauth_dropins.webutil.util.json_loads' imported but unused
webfinger.py:13:1: F401 'oauth_dropins.webutil.util.json_loads' imported but unused
webfinger.py:110:13: E122 continuation line missing indentation or outdented
webfinger.py:111:13: E122 continuation line missing indentation or outdented
webfinger.py:131:13: E122 continuation line missing indentation or outdented
webfinger.py:132:13: E122 continuation line missing indentation or outdented
webfinger.py:133:13: E122 continuation line missing indentation or outdented
webfinger.py:134:13: E122 continuation line missing indentation or outdented
tests/__init__.py:2:1: F401 'oauth_dropins.webutil.tests' imported but unused
tests/test_follow.py:11:1: F401 'oauth_dropins.webutil.util.json_dumps' imported but unused
tests/test_follow.py:14:1: F401 '.testutil.Fake' imported but unused
tests/test_models.py:156:15: E122 continuation line missing indentation or outdented
tests/test_models.py:157:15: E122 continuation line missing indentation or outdented
tests/test_models.py:158:11: E122 continuation line missing indentation or outdented
tests/test_web.py:12:1: F401 'oauth_dropins.webutil.util.json_dumps' imported but unused
tests/test_web.py:17:1: F401 '.testutil' imported but unused
tests/test_web.py:1513:13: E128 continuation line under-indented for visual indent
tests/test_web.py:1514:9: E124 closing bracket does not match visual indentation
tests/testutil.py:106:1: E402 module level import not at top of file
tests/testutil.py:107:1: E402 module level import not at top of file
tests/testutil.py:108:1: E402 module level import not at top of file
tests/testutil.py:109:1: E402 module level import not at top of file
tests/testutil.py:110:1: E402 module level import not at top of file
tests/testutil.py:301:24: E203 whitespace before ':'
tests/testutil.py:301:25: E701 multiple statements on one line (colon)
tests/testutil.py:301:25: E231 missing whitespace after ':'
2023-06-20 11:29:31 -07:00
Ryan Barrett
dc385cd079
user page activity snippets: fix "replied" phrase
2023-06-14 16:20:25 -07:00
Ryan Barrett
cb5e7bf8c7
noop, minor protocol generalization and cleanup
...
for #512
2023-06-10 15:07:26 -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
afbb453043
AP users: finish migrating follow.py to Follower schema with new from/to
...
for #512 , fixes https://console.cloud.google.com/errors/detail/CPn404XJ2rC6rAE;time=P30D?project=bridgy-federated
2023-06-07 23:51:41 -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
797a0bbbb3
bug fix, don't redirect web users to readable_id
...
fixes #534
2023-06-07 12:14:49 -07:00
Ryan Barrett
d30eccbe8b
AP users: make show protocol-specific UI like remote follow conditional
...
for #512
2023-06-04 10:13:02 -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
e05ddb0a45
AP users: serve ActivityPub user page with address (handle) in URL
...
eg /activitypub/@me@instance.com
for #512
2023-06-01 22:00:47 -07:00
Ryan Barrett
17ed24b6f5
AP users: switch ActivityPub.ap_address() to use as2.address()
...
for #512
2023-06-01 20:58:42 -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
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
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
64da82c4aa
noop, fix docstring
2023-04-25 21:01:45 -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
212f2b11ec
wm => AP: add delete support
...
fixes #30
2023-04-17 15:36:29 -07:00
Ryan Barrett
c1359d2c0a
add issue object type to snippet rendering
2023-04-12 07:57:40 -07:00
Ryan Barrett
23a8f7cfda
fix snippet rendering for post and profile updates
2023-04-06 12:40:36 -07:00
Ryan Barrett
6dc4705a56
user page bug fix, handle AS1 inner objects with composite url values
...
fixes https://console.cloud.google.com/errors/detail/CNGc5drA4f7uOA;time=P30D?project=bridgy-federated
2023-03-23 22:04:46 -07:00
Ryan Barrett
fb5f7b3fb0
move current user into Flask g request-global
2023-03-20 14:28:14 -07:00
Ryan Barrett
d8932d4e76
add mf2 to user page dashboard to make a notifications feed
...
for #442
2023-03-14 11:27:10 -07:00
Ryan Barrett
ffd8810b44
start to separate logic from protocols with new Protocol/ActivityPub classes
...
for #388
2023-03-10 07:36:50 -08:00
Ryan Barrett
41f26e2be3
update tests for snarfed/granary@15a6d88f76
2023-03-05 07:57:19 -08:00
Ryan Barrett
56dacb1258
more bug fixes for user page with Object with bare string id object
...
fixes https://console.cloud.google.com/errors/detail/CPORrJ7MxPCtZg;time=P30D?project=bridgy-federated
2023-03-03 10:30:41 -08:00
Ryan Barrett
126a766d40
bug fix for user page with Object with bare string id object
...
fixes https://console.cloud.google.com/errors/detail/COvA0I_cuN-o9gE;time=P30D?project=bridgy-federated
2023-03-03 10:07:54 -08:00
Ryan Barrett
fd27dabe61
switch JSON properties to custom JSONProperty that works in web console UI
...
https://github.com/googleapis/python-ndb/issues/874#issuecomment-1442753255
2023-02-24 07:25:29 -06:00
Ryan Barrett
91a60c7e67
switch Object.as1 to be a ComputedProperty
2023-02-23 21:17:26 -06:00
Ryan Barrett
cc77f48b30
precompute "user not found" 404 page
...
...since we get a ton of requests for non-existing users from weird open redirect referrers: #422
2023-02-14 12:52:14 -08:00
Ryan Barrett
f39c532ad3
add User.homepage, is_homepage()
2023-02-12 12:03:27 -08:00
Ryan Barrett
7e2fbd1ed0
make AP Deletes mark stored Objects deleted
...
for #409
2023-02-11 21:47:55 -08:00
Ryan Barrett
f16338fc57
fix crash on followers/following pages with before/after query params
...
fixes https://console.cloud.google.com/errors/detail/CPnW-eq837TnswE;time=P30D?project=bridgy-federated , introduced in a140a60a7f
2023-02-09 08:26:30 -08:00
Ryan Barrett
d5eac953d0
more error handling for signup UI flow when user's web site fetch fails
...
fixes #400
2023-02-08 20:28:30 -08:00
Ryan Barrett
a140a60a7f
fix propagating the ?address=... query param into following UI page
...
for #414
2023-02-08 12:21:45 -08:00