Wykres commitów

157 Commity (b5a0386cd007e37b59e9fa2dad131cbbea46dd1f)

Autor SHA1 Wiadomość Data
Ryan Barrett 50956c02b0
noop, rename Domain => User 2022-11-15 22:00:28 -08:00
Ryan Barrett 46f039af63
AP: always generate an actor for every outbound activity
for #279
2022-11-15 21:43:24 -08:00
Ryan Barrett e3f1431018
noop identifier renames, key => domain or entity 2022-11-15 19:12:20 -08:00
Ryan Barrett fd5c88c713
add domain blocklist, right now primarily for Twitter 2022-11-14 22:31:45 -08:00
Ryan Barrett 7966650178
AP: put Public in to instead of cc to make Mastodon posts public, not unlisted
fixes #277
2022-11-13 21:46:26 -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 b24a22e817
add /responses/[DOMAIN] user pages and Response.domain property 2022-11-08 06:56:19 -08:00
Ryan Barrett 8e60346dc4
don't strip www, m, and mobile subdomains from user domains
fixes #267
2022-11-07 16:28:46 -08:00
Ryan Barrett 001cd1fe11
tried switching HTTP Sig keyId to actor URL for aaronpk, but Mastodon wouldn't verify
https://chat.indieweb.org/dev/2022-11-05#t1667687865621700
2022-11-05 15:39:05 -07:00
Ryan Barrett 2e0f6ee0be
update to handle singly valued AS2 icon and image fields
snarfed/granary@cfc5a1f743
2022-11-05 14:57:50 -07:00
Ryan Barrett 1d36d31064
set User-Agent header globally 2022-03-24 11:18:33 -07: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 fdd42ad1d4
override preferredUsername to always be the user's domain
...since Mastodon looks up [preferredUsername]@fed.brid.gy. see #77
2021-10-22 21:17:45 -07:00
Ryan Barrett e4d285523f
activitypub: handle connection failures better in webmention discovery
fixes https://console.cloud.google.com/errors/CPj1-sSij7DcXQ
2021-09-01 08:19:38 -07:00
Ryan Barrett cdb9a519e6
common.get_as2 bug fix: don't clobber werkzeug's HTTPException.response
store requests.Response in separate requests_response attr
2021-08-18 08:53:00 -07:00
Ryan Barrett cf12817212
Flask port: error handling bug fixes, other misc tweaks 2021-08-16 11:47:31 -07:00
Ryan Barrett 32d9e2bf6c
move common.error() to webutil.flask_util
corresponds to snarfed/webutil@10c088cebd
2021-08-06 11:01:58 -07:00
Ryan Barrett 2e3360a54b
move Flask utils to oauth_dropins.webutil.flask_util
corresponds to snarfed/webutil@5574bb23fa
2021-07-17 21:22:13 -07:00
Ryan Barrett 56cc66d530
flask: add common.RegexConverter
based on https://github.com/rhyselsmore/flask-reggie
2021-07-12 13:49:48 -07:00
Ryan Barrett 80a0969575
flask: add modern headers
from webutil.handlers.ModernHandler
2021-07-11 17:55:59 -07:00
Ryan Barrett 4a55739b91
flask: port /.well-known/host-meta*, other misc tweaks
all tests pass!
2021-07-11 16:50:44 -07:00
Ryan Barrett 371a92a5db
flask: port XrdOrJrdHandler, finish porting webfinger 2021-07-11 16:30:14 -07:00
Ryan Barrett 4fffc073d2
flask: port webmention, add exception handler 2021-07-11 08:48:28 -07:00
Ryan Barrett c17cb3394b
flask: fix test_common, drop unused common.canonicalize_domain decorator 2021-07-10 08:53:37 -07:00
Ryan Barrett b8be570d66
flask: port activitypub 2021-07-10 08:07:40 -07:00
Ryan Barrett f26aed5cbb
flask: port salmon 2021-07-08 22:50:33 -07:00
Ryan Barrett 5b8699bec1
flask: port /r/, start to port common 2021-07-07 21:02:13 -07:00
Ryan Barrett 0b7388fed3
flask: move app to app.py, get templates working, port /responses 2021-07-07 08:07:20 -07:00
Ryan Barrett fa2a970b2c
flask: render: add caching, get_required_param, update tests 2021-07-06 13:45:56 -07:00
Ryan Barrett d4a94ff75a
migrate from webmention-tools to webutil.webmention 2021-04-25 11:40:19 -07:00
Ryan Barrett db732650a4
add https://w3id.org/security/v1 to actors' @context for HTTP sigs
fixes #76
2021-03-22 23:55:14 -07:00
Ryan Barrett f74a6d33fa
add synthetic id to outgoing AS2 activities
for #12
2021-03-10 20:37:28 -08:00
Ryan Barrett c12b675a7a
webfinger: handle acct:[domain]@fed.brid.gy requests
fixes #73
2020-12-30 10:26:48 -08:00
Ryan Barrett bddab29420
demote logging.error since it creates an error in StackDriver Error Reporting 2020-05-19 08:08:12 -07:00
Ryan Barrett 46067640b6
remove errant debug logging 2020-03-05 10:15:54 -08:00
Ryan Barrett d39562b849
add .7z, .zip, and .rar to TLD blocklist 2020-03-03 14:57:54 -08:00
Ryan Barrett 9eae3087fd
404 requests for root paths that aren't user domains
lots of these are fediverse tools sniffing for specific implentations, eg mastodon etc.  /siteinfo.json, /status.php, etc.
2020-03-02 10:50:43 -08: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 ab55c9d62c
ujson.dumps/loads() => util.json_dumps/loads() 2019-12-24 23:26:58 -08:00
Ryan Barrett 99a5c35ae3
switch from webutil.util.memcache_response to cache_response 2019-11-12 21:28:44 -08:00
Ryan Barrett faf676e8bb
switch from json to ultrajson for performance
https://github.com/esnme/ultrajson/
2019-10-29 07:06:15 -07:00
Ryan Barrett 7c9a03c827
unify HTTP fetching, HTML and mf2 parsing, and error handling into webutil
see:
* snarfed/granary#171
* snarfed/webutil@f994884b2b
* snarfed/oauth-dropins@f5b6e73530
* snarfed/granary@284eb11508
2019-10-03 21:08:26 -07:00
Ryan Barrett c623a295c6
misc noop cleanups based on LGTM alerts
https://lgtm.com/projects/g/snarfed/bridgy/?mode=list
2019-09-19 11:57:16 -07:00
Ryan Barrett 879f6d1752
return 400 on more bad inputs, eg webmention source URLs 2019-08-13 13:29:31 -07:00
Ryan Barrett dd0a0d964b
don't assert on posts without u-id or u-url
fixes https://console.cloud.google.com/errors/CNLV_6K-gtPJDw
2019-07-24 13:03:15 -07:00
Ryan Barrett 7c8a2a4603
fix postprocess_as2() crash on multiply-valued inReplyTo
fixes https://console.cloud.google.com/errors/COTu_PXPjJ2ZWw
2019-06-06 06:35:57 -07:00
Ryan Barrett 088e9cfaf7
skip outbound webmentions to same domain as source 2019-04-16 11:42:17 -07:00
Ryan Barrett aa45f0c526
convert AP mentions to home page webmentions
for #46
2019-04-16 10:46:40 -07:00
Ryan Barrett 5bc639216e
more error handling for AS2 objects without id or URL
follows b7e44c9295. fixes https://console.cloud.google.com/errors/CLnu14G46vHLOg
2019-04-15 08:14:37 -07:00
Ryan Barrett b7e44c9295
don't choke on AS2 objects without id or URL
fixes https://console.cloud.google.com/errors/CO6w076w6oX32wE
2019-04-12 20:47:28 -07:00
Ryan Barrett 6e7c2008e9
handle SSL failures when fetching arbitrary URLs
fixes https://console.cloud.google.com/errors/CJOuzd2b1sehPA
2019-04-10 08:08:02 -07:00
Ryan Barrett b237e52d6a
add outbox, summary, and publicKey.id properties to actors
for #39, for pixelfed
2019-01-04 08:05:07 -08:00
Ryan Barrett b7f89dce99
webmention => AP: handle actor/attributedTo id as well as url
for #40
2018-12-11 10:59:41 -08:00
Ryan Barrett a9324adceb
webmention => AP: put images into AS2 'attachment' field for Mastodon
for https://github.com/snarfed/bridgy-fed/issues/33#issuecomment-440965618
2018-11-23 22:17:37 -08:00
Ryan Barrett ec3da6a485
webmention => AP: fix Salmon after big Create refactoring
for #33
2018-11-20 08:24:26 -08:00
Ryan Barrett 2bb418dc72
webmention => AP support for u-follow-of => Follow 2018-10-24 21:28:52 -07:00
Ryan Barrett 0f11cd1ff1
normalize user domains to URLs (with scheme) by following redirects
#21, for getting translated webmentions to have u-follow-of with full URL values, not just domains.
2018-10-23 12:39:16 -07:00
Ryan Barrett 98a19a994d
convert AP Follow to indieweb webmention with u-follow-of
#21, https://indieweb.org/follow
2018-10-23 11:11:50 -07:00
Ryan Barrett e090c2ba0a
AP Follow bug fix: actors are fed.brid.gy/DOMAIN, not /r/ redirect URLs 2018-10-21 18:54:27 -07:00
Ryan Barrett a4b309afef
activitypub: refactor Accept response to Follow activity
...and get tests working. #21
2018-10-21 15:28:42 -07:00
Ryan Barrett 9fc47c8ba9
AP => wm: switch to proxying reply wm source, unwrap URLs
for #35

example: https://webmention.io/realize.be/webmention/hG654HOgobymY54pMaNS
2018-10-17 17:49:56 -07:00
Ryan Barrett 27e56396b8
AP => wm: remove our redirect from target URLs
fixes the second half of #35
2018-10-17 12:00:38 -07:00
Ryan Barrett 9fb7f2fe26
AP => wm: prefer object URL for webmention source if available
fixes half of #35
2018-10-17 11:52:34 -07:00
Ryan Barrett 25d2724700 add Mention tag for Mastodon replies
fixes #34. thanks @swentel!
2018-10-16 11:38:12 -07:00
Ryan Barrett 2ffd10306f
AP => webmention: handle full AS2 activities
mastodon used to send bare objects for lots of things, e.g. replies, but now sends ful AS2 Create activities with embedded objects much more often. handle those too.

thanks for the nudge @swentel!
2018-10-15 11:52:11 -07:00
Ryan Barrett b25960ca93
wrap activity ids and urls and actor ids in our /r/ endpoint
for #16, #32. cc @swentel.
2018-10-14 07:58:17 -07:00
Ryan Barrett 5047337738
upgrade BS4 to 4.6.3, pin lxml to app engine prod's version 2018-10-11 17:03:26 -07:00
Ryan Barrett be2ea6ad28 webmention: if u-url is missing, default to source url
AS2 id, which is required for ActivityPub, comes from u-url, so we always need one.

fixes #20
2017-12-12 18:07:12 -08:00
Ryan Barrett da4873fc64 activitypub: cc all original recipients (in to and cc) 2017-11-05 15:50:23 -08:00
Ryan Barrett 29fb93ca92 change username from 'me' to web site domain
for #3, tootsuite/mastodon#5523
2017-10-26 17:07:57 -07:00
Ryan Barrett cf1f4122ec log more json response bodies 2017-10-24 18:31:13 -07:00
Ryan Barrett a1a66c2f24 fix logging for failed outbound HTTP requests
also disable logging full parsed mf2 in activitypub actor handler.
2017-10-24 18:27:07 -07:00
Ryan Barrett 786173d270 activitypub: point actor ids to bridgy fed, not source web site
...since we want to serve them as AS2.

for tootsuite/mastodon#5500
2017-10-23 21:57:08 -07:00
Ryan Barrett e538f97456 activitypub: prefer id over url for inReplyTo and Like/Announce object
as per tootsuite/mastodon#5500
2017-10-23 21:23:33 -07:00
Ryan Barrett 7dcbd9f107 minor fixes to a couple log msges 2017-10-23 21:02:07 -07:00
Ryan Barrett f2a422fa0b when we can't fetch AS2, demote log level to INFO 2017-10-22 15:59:51 -07:00
Ryan Barrett 530969da1b use non-unicode strings for Content-Type values
...because App Engine's wsgi.py requires header values to be str, not unicode.

also improve logic for whether to log HTTP response bodies.
2017-10-20 18:05:51 -07:00
Ryan Barrett b7007a4521 fetching AS2: handle Content-Type with charset suffix 2017-10-20 17:35:11 -07:00
Ryan Barrett c81a6b8ed2 activitypub: follow HTML link rels that point to AS2 objects
...by reusing common.get_as2(). also lots of misc refactoring.
2017-10-20 12:49:48 -07:00
Ryan Barrett e985516dc3 return parsed JSON from common.get_as2(); use it in activitypub 2017-10-20 07:13:04 -07:00
Ryan Barrett 527ca5585b add common.get_as2() 2017-10-20 07:01:38 -07:00
Ryan Barrett 7ca72a1b36 fix error handling in common.requests_*()
it can't use common.error() because it doesn't have a handler object.
2017-10-18 22:47:03 -07:00
Ryan Barrett bb9294ea51 tell common.error() explicitly when to include exc_info 2017-10-17 11:47:01 -07:00
Ryan Barrett a520fe8462 pass 4xx and 5xx responses from fedsocnets through to client
cc @mblaney
2017-10-16 22:27:54 -07:00
Ryan Barrett db75bd7589 webmention => activitypub: fix likes and reposts
thanks to @mblaney for finding!
2017-10-16 21:48:41 -07:00
Ryan Barrett 73ac7ba1e7 unify webmention sending from salmon and activitypub into common 2017-10-16 09:13:55 -07:00
Ryan Barrett 6190f3bc0c refactor abort() calls to use common.error() 2017-10-15 16:57:33 -07:00
Ryan Barrett a21c94b0f7 mastodon AP interop: add preferredUsername
details in https://github.com/tootsuite/mastodon/issues/4906#issuecomment-333680170
2017-10-02 16:53:18 -07:00
Ryan Barrett 1782370f5e as2: id and type, not @id or @type
goes with snarfed/granary@bb6d831c0e
2017-10-01 21:45:00 -07:00
Ryan Barrett 9400b0ee80 mastodon interop: ensure preferredUsername and id 2017-10-01 21:43:18 -07:00
Ryan Barrett 4284ef830d only add AP AS2 publicKey field to Person type; add test 2017-10-01 07:10:12 -07:00
Ryan Barrett 71f0a4c8d4 AP: add publicKey to actor object
needed for mastodon interop
2017-10-01 07:01:35 -07:00
Ryan Barrett c998901108 update webfinger, AS2, etc for receiving AP 2017-09-28 07:25:21 -07:00
Ryan Barrett db8e4249d8 webfinger: discover and return PuSH hub header links 2017-09-13 07:48:32 -07:00
Ryan Barrett 86c6934a98 webfinger: settle on 'me' username, just domain in paths 2017-09-12 09:07:37 -07:00
Ryan Barrett 4dd8f7e1a7 mastodon interop: salmon + activitypub + webfinger cleanup, tests 2017-09-03 13:03:31 -07:00