Ryan Barrett
23aff3b176
Activity => Object: update follow.py
2023-02-04 20:46:27 -08:00
Ryan Barrett
cc453035c8
initial design of new Object model, implement it in render.py
2023-02-04 20:46:27 -08:00
Ryan Barrett
82547c9557
override User.get_by_id() to handle use_instead
...
fixes #403
2023-02-04 19:53:30 -08:00
Ryan Barrett
4a621eed65
bump RSA key length up from 1024 to 2048 bits
...
https://www.pycryptodome.org/src/public_key/rsa#Crypto.PublicKey.RSA.generate
fixes https://github.com/snarfed/bridgy-fed/security/code-scanning/10
2023-01-30 15:49:11 -08:00
Ryan Barrett
bb2d3e03de
noop: convert a few %s'es to f-strings
...
thanks flynt! https://github.com/ikamensh/flynt
2023-01-24 12:17:24 -08:00
Ryan Barrett
378bb5dbf4
activities UI: handle empty Activity, source_mf2 without `items`
...
for #376
2023-01-23 19:20:31 -08:00
Ryan Barrett
1627ff667a
translate webmention from home page into profile (actor) Update
...
for #376 , #331
2023-01-23 16:09:25 -08:00
Ryan Barrett
36349a5db9
add Follower.to_as2()
2023-01-19 06:49:39 -08:00
Ryan Barrett
c3edf3a68e
make Follower.to_as1() handle both inbound and outbound last_follow
...
...and use it in followers and following UI pages
2023-01-18 22:31:13 -08:00
Ryan Barrett
37e389447a
always store Follower.last_follow as AP/AS2 Follow activity
...
specifically, this switches storing outbound follows from inbound webmentions from AS1 to AS2.
2023-01-18 21:09:43 -08:00
Ryan Barrett
898b8545ac
bluesky: implement app.bsky.graph.getFollowers
2023-01-13 11:40:52 -08:00
Ryan Barrett
6520331627
incoming Follows: synthesize url into follow object stored in Activity
...
rendered mf2 HTML proxy pages (in render.py) fall back to redirecting to the follow's AS2 id field, but Mastodon's ids are URLs that don't load in browsers, eg https://jawns.club/ac33c547-ca6b-4351-80d5-d11a6879a7b0 . so, set a synthetic URL based on the follower's profile. fixes #336
2023-01-12 12:28:34 -08:00
Ryan Barrett
91c4200bb3
follow UI: synthesize Follow activity id, store an Activity, link address, form bug fix
2023-01-08 07:11:22 -08:00
Ryan Barrett
7ac1006021
background task bug fix: override task runner host
...
we were using request.host_url blindly, which was fed.brid.gy for user-facing requests, but bridgy-federated.uc.r.appspot.com for tasks. #335
2023-01-05 15:05:35 -08:00
Ryan Barrett
fe5c3947a8
drop OStatus! it's been unused for years
...
fixes #282
2023-01-04 19:22:11 -08:00
Ryan Barrett
72b8dea8a0
Model.verify: minor redirect error message tweak
2022-12-06 22:41:55 -08:00
Ryan Barrett
f72b3abfa0
Model.verify: add error message for non-2xx redirects
...
for #337
2022-12-06 22:37:56 -08:00
Ryan Barrett
a95c2c4b55
incoming follow bug fix, handle www and use_instead
...
fixes #314
2022-12-06 14:09:44 -08:00
Ryan Barrett
71d4c260b3
add User.created and updated properties
2022-12-02 14:46:09 -08:00
Ryan Barrett
01c89fae2d
special case opt www.jvt.me out of new www redirect handling
...
for #314
2022-12-02 11:07:58 -08:00
Ryan Barrett
5249bb5a4f
special-case www subdomains, use root domain if it redirects to www
...
for #314
2022-12-02 10:48:16 -08:00
Ryan Barrett
0363db65fa
handle new multi-valued url field in AS2 objects
...
snarfed/granary@79c512402b
2022-11-30 21:04:41 -08:00
Ryan Barrett
d4af114247
user verification: follow multiple redirects
2022-11-28 13:10:51 -08:00
Ryan Barrett
ee2c6c2f79
activities rendering bug fix when name is missing
...
fixes https://console.cloud.google.com/errors/detail/CPHdyJL08PvEKg;time=P30D?project=bridgy-federated
2022-11-28 08:02:28 -08:00
Ryan Barrett
c343164f5b
user page UI redirects warning: show diff of current vs expected
...
for #305
2022-11-27 17:45:23 -08:00
Ryan Barrett
85b1a400ff
user page UI: first pass at details for redirect check
...
for #305
2022-11-27 17:33:53 -08:00
Ryan Barrett
3a4e8c4872
user and activities UIs: default to username if we don't have name
...
for #281
2022-11-26 16:29:48 -08:00
Ryan Barrett
776f60b416
activities UI: default actor to user's domain if no name
...
for #281
2022-11-26 16:29:36 -08:00
Ryan Barrett
7d902ec616
bug fix for custom username in fediverse address on user page UI
...
should come from acct: actor URL, not preferredUsername field, which always has to be user's domain for AP interop.
in the process, refactored common.get_username() into User.username().
for #281
2022-11-26 16:05:02 -08:00
Ryan Barrett
d2d0932893
refactor user name and profile picture links, add to user page and activities
2022-11-25 22:21:50 -08:00
Ryan Barrett
2fdc6f29a9
sign HTTP GET requests for AS2 objects
...
to support Mastodon's AUTHORIZED_FETCH aka secure mode: https://docs.joinmastodon.org/admin/config/#authorized_fetch
fixes #291
2022-11-24 09:41:14 -08:00
Ryan Barrett
34593e2a1b
render human-friendly summaries of activities on /recent and user pages
...
for #261
2022-11-20 20:52:44 -08:00
Ryan Barrett
30d9f7c9a5
make verification accept fed.brid.gy redirects when running locally
2022-11-20 11:56:32 -08:00
Ryan Barrett
65f3ef3cc7
show fediverse address on user page UI, including custom username
...
for #281
2022-11-20 11:46:05 -08:00
Ryan Barrett
b854981497
UI edits: enter web site page, /docs, flashed messages, copy Bridgy's CSS
2022-11-18 22:30:07 -08:00
Ryan Barrett
f384bf5529
add User.verify(), checks redirects and home page representative h-card
...
for #276
2022-11-18 18:49:41 -08:00
Ryan Barrett
eaa6e1f9e5
always write Follower.dest and src
...
for #279
2022-11-16 16:38:08 -08:00
Ryan Barrett
2bb76a90e7
store Activity entities for AP activities delivered to followers
...
for #265
2022-11-16 15:54:02 -08:00
Ryan Barrett
320b117470
add AP sharedInbox
...
#285 , https://www.w3.org/TR/activitypub/#sharedInbox
2022-11-16 10:09:24 -08:00
Ryan Barrett
870ffbbbd2
when writing Follower, always set dest and src
...
for #279
2022-11-16 06:49:29 -08:00
Ryan Barrett
50956c02b0
noop, rename Domain => User
2022-11-15 22:00:28 -08:00
Ryan Barrett
e3f1431018
noop identifier renames, key => domain or entity
2022-11-15 19:12:20 -08:00
Ryan Barrett
4f3dc03a3e
rename MagicKey => Domain, Response => Activity
...
the Python classes, but not (yet) the kinds in the datastore. maybe eventually.
2022-11-12 15:27:59 -08:00
Ryan Barrett
e767cf5d1f
refactor /responses and user pages, add follower counts to user pages
...
for #274
more to come
2022-11-11 21:13:51 -08:00
Ryan Barrett
b24a22e817
add /responses/[DOMAIN] user pages and Response.domain property
2022-11-08 06:56:19 -08:00
Ryan Barrett
96dba41c9b
logging: use separate loggers for each module with their names
2022-02-11 22:38:56 -08:00
Ryan Barrett
4eaf70aa51
add 'ignored' status for AP requests where the target has no webmention endpoint
2022-01-11 22:40:44 -08:00
Ryan Barrett
2f28be09be
convert %-formatted strings with args in logging.* calls to f-strings
2021-12-27 22:45:57 -08:00
Ryan Barrett
40ad6a4afa
move handle_exception and default_modern_headers to webutil
...
corresponds to snarfed/webutil@cdcaa3e897
2021-07-27 21:58:05 -07:00
Ryan Barrett
f26aed5cbb
flask: port salmon
2021-07-08 22:50:33 -07:00
Ryan Barrett
df6b0b58ba
unify request handler classes and handle_exception; move away from HOST[_URL]
...
fixes:
* https://console.cloud.google.com/errors/CN68rO-5sOK9cQ
* https://console.cloud.google.com/errors/CJWCu8b5_ureAg
* https://console.cloud.google.com/errors/CN6W4Zy7irzgOA
* https://console.cloud.google.com/errors/CN278MyjhZbtOQ
2020-01-31 14:40:11 -08:00
Ryan Barrett
ee7b324525
bring back HOST_URL override to fed.brid.gy, for URLs emitted into AP
2019-12-26 18:18:44 -08:00
Ryan Barrett
02d36b3b1f
migrate to the app engine standard python 3 runtime!
...
https://cloud.google.com/appengine/docs/standard/python3/python-differences
https://cloud.google.com/appengine/docs/standard/python/migrate-to-python3/
2019-12-25 22:26:26 -08:00
Ryan Barrett
4b70a89046
handle AP Undo of Follow
...
needed for eg mastodon when you unfollow and then try to refollow someone. on unfollow, mastodon sends an Undo, and waits for a 200 before it shows success and will let you refollow.
2019-08-01 10:32:50 -07:00
Ryan Barrett
7c10585ad3
/response logs, once more with feeling
2019-04-18 11:18:14 -07:00
Ryan Barrett
7a94537721
/responses: link logs for all requests, not just webmention => fed
2019-04-16 14:19:16 -07:00
Ryan Barrett
2cb0dda2d1
webmention => AP: Create: handle Follower with actor URL instead of object
...
we don't create these any more, we always fetch and store full actor objects, but we have a few old ones lying around in the prod datastore.
for #33
2018-11-20 08:37:57 -08:00
Ryan Barrett
11c66cfd3e
webmention => AP: fix AP replies etc after big Create refactoring
...
for #33
2018-11-20 08:24:29 -08:00
Ryan Barrett
2bb418dc72
webmention => AP support for u-follow-of => Follow
2018-10-24 21:28:52 -07:00
Ryan Barrett
abc5ecd919
AP Follow: store users' followers in the datastore
...
#21
2018-10-21 17:37:33 -07:00
Ryan Barrett
dcc6b9d23b
minor tweak to fix /log
2017-10-26 17:31:40 -07:00
Ryan Barrett
92798bc434
webmention: refactor storing Responses so we can do it earlier
2017-10-26 12:31:04 -07:00
Ryan Barrett
f940718790
salmon: support incoming likes and shares (reposts)
2017-10-15 16:57:05 -07:00
Ryan Barrett
a11d6745a9
switch incoming salmon/activitypub to overwrite Response
2017-10-12 23:13:54 -07:00
Ryan Barrett
d74e6f02dd
convert # to __ in source, target URLs in Response key ids
...
...since some fedsocnet like ids (eg Mastodon) include fragments, which webmention receivers (eg wordpress) strip from source before fetching, even when they're URL-encoded in bridgy fed proxy URLs.
also add Response.get_or_create() that handles concatenating source and target.
2017-10-11 18:08:52 -07:00
Ryan Barrett
9a7975bf5d
activitypub: use proxy mf2 URLs for likes and reposts/boosts
...
for #4
2017-10-10 22:42:19 -07:00
Ryan Barrett
6a65e2e74a
store source post in Response
...
...so we can use it to render proxy ActivityPub mf2 pages for webmentions
2017-10-09 21:11:40 -05:00
Ryan Barrett
19a686edc3
store responses in new Response datastore model
2017-10-09 19:29:50 -05:00
Ryan Barrett
71f0a4c8d4
AP: add publicKey to actor object
...
needed for mastodon interop
2017-10-01 07:01:35 -07:00
Ryan Barrett
2699de6903
add MagicKey.private_pem() and public_pem()
2017-09-19 09:15:34 -07:00
Ryan Barrett
5bb62f4021
use future unicode string literals, drop u qualifier
2017-09-12 07:31:18 -07:00
Ryan Barrett
5499e06a6b
MagicKey: generate data: URI for href value
...
also fix indentation
2017-08-19 09:15:29 -07:00
Ryan Barrett
ba1d49ffa3
add MagicKey datastore model
2017-08-19 08:36:55 -07:00