Ryan Barrett
b5a0386cd0
store home page URL in update profile Objects, render better in activities UI
...
fixes #407
2023-02-07 12:44:41 -08:00
Ryan Barrett
52c6aa6160
fix update profile Object id
...
use synthetic URL with #update-[timestamp] fragment, not just home page URL
2023-02-07 12:23:08 -08:00
Ryan Barrett
4b37674624
always sign requests with current user's key, stop defaulting to snarfed.org
...
for #403
2023-02-06 19:23:25 -08:00
Ryan Barrett
532ccb8ac1
Activity => Object: use StructuredProperty for Object.delivered etc, add protocol
...
#286
ndb implements StructuredProperty by hoisting each nested property into a
corresponding property on the parent entity, prefixed by the StructuredProperty's
name, eg delivered.uri, delivered.protocol, etc.
For repeated StructuredPropertys, the hoisted properties are all repeated on the
parent entity, and reconstructed into StructuredPropertys based on their order.
https://googleapis.dev/python/python-ndb/latest/model.html#google.cloud.ndb.model.StructuredProperty
2023-02-04 20:46:27 -08:00
Ryan Barrett
f9891b6ef7
Activity => Object: add activity label, unify Objects for AP => wm
...
#286
2023-02-04 20:46:27 -08:00
Ryan Barrett
4d2fcdd76f
Activity => Object: fully populate labels, source_protocol webmention
...
#286
2023-02-04 20:46:27 -08:00
Ryan Barrett
a76fe45891
Activity => Object: finish ap_delivered, ap_undelivered, ap_failed
...
#286
2023-02-04 20:46:27 -08:00
Ryan Barrett
97ffc10f72
Activity => Object: populate Object.object_ids property
...
#286
2023-02-04 20:46:27 -08:00
Ryan Barrett
eafba6d7cd
Activity => Object: populate Object.type
...
#286
2023-02-04 20:46:27 -08:00
Ryan Barrett
d72be97d78
Activity => Object: populate ap_* fields for inbox delivery results
...
#286
2023-02-04 20:46:27 -08:00
Ryan Barrett
94a74b9800
noop: test_webmention: switch more asserts to assert_object()
2023-02-04 20:46:27 -08:00
Ryan Barrett
9d4e73344b
Activity => Object: populate ap_delivered, ap_undelivered, ap_failed
...
#286
2023-02-04 20:46:27 -08:00
Ryan Barrett
58e836b380
Activity => Object: update webmention.py
...
#286
2023-02-04 20:46:27 -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
0d0a4ed642
update profile bug fix: always populate object.updated field
...
for #376
2023-01-23 20:53:34 -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
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
5182bb92f3
Mastodon interop: fill in the updated field for Updates if it's missing
...
Mastodon requires it:
https://docs.joinmastodon.org/spec/activitypub/#supported-activities-for-statuses
https://socialhub.activitypub.rocks/t/what-could-be-the-reason-that-my-update-activity-does-not-work/2893/4
https://github.com/mastodon/documentation/pull/1150
2023-01-17 11:16:14 -08:00
Ryan Barrett
e6d4441292
handle redirects of signed requests manually, generate a new HTTP sig each time
...
fixes #326
2023-01-16 13:10:33 -08:00
Ryan Barrett
aa0dcbb222
noop: drop content type constants in common, use granary's instead
2023-01-06 21:01:33 -08:00
Ryan Barrett
512737cc99
add task queue for delivering AP Creates and Updates to followers
...
fixes #335
2023-01-04 20:48:39 -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
22d1bcfe9d
incoming webmentions: error if source page fetch fails
2022-12-21 11:57:06 -08:00
Ryan Barrett
8fddf7fb2f
if an outgoing AP activity has no actor, default to the domain user
...
fixes #306
2022-11-26 20:20:40 -08:00
Ryan Barrett
b791af3ebb
outbound follows: normalize Follower.dest to AS2 actor id
...
for #307
2022-11-24 10:22:26 -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
97ecc6df46
webmention: handle missing source URL fragment
...
fixes https://console.cloud.google.com/errors/detail/CKKEobWk4d2VHQ;time=P30D?project=bridgy-federated
2022-11-18 15:28:34 -08:00
Jamie Tanna
39cb90e533
Allow providing a URL fragment for posts
...
A number of folks use a single page for multiple posts, using a URL
Fragment parameter to denote which of the posts on the given page should
be used, and are used to this experience with Bridgy.
To allow use of this on Bridgy Fed, too, we can add support for
discovering the ID of the `h-entry` to be Webmention'd in the same way
that we do with [Bridgy].
This largely copies the structure of the existing tests, copying
`test_activitypub_follow`, and adding in multiple posts on the page.
For debugging purposes, we can make sure to log out the `fragment`.
[Bridgy]: f760c0d10e
2022-11-18 06:49:58 -08:00
Ryan Barrett
8fd49dc882
drop non-public Create activities
...
fixes #289
2022-11-16 16:37:50 -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
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
fd5c88c713
add domain blocklist, right now primarily for Twitter
2022-11-14 22:31:45 -08:00
Ryan Barrett
881307fa0b
wm => AP, don't use Update for a Like/Announce even if we've seen it before
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
4cc43f4c56
noop, rename resp => activity
2022-11-13 09:35:47 -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
938a4ac85c
webmention: when checking for fed.brid.gy backlink, don't require / path
...
fixes #278
2022-11-12 07:07:09 -08:00
Ryan Barrett
8aa11f0662
webmention => AP: store outbound followees
...
for #264
2022-11-11 22:50:05 -08:00
Ryan Barrett
b24a22e817
add /responses/[DOMAIN] user pages and Response.domain property
2022-11-08 06:56:19 -08: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
154d02d908
AP delivery bug fix: don't short circuit if a post is already sent and unchanged
2022-10-29 19:52:35 -07:00
Ryan Barrett
f4c71897ec
update tests to handle snarfed/granary@93a64e91a5
2022-05-27 15:56:48 -07:00
Ryan Barrett
1d36d31064
set User-Agent header globally
2022-03-24 11:18:33 -07: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
d23792d8b3
webmention: skip sending AP Update if content hasn't changed
...
fixes #78
2021-10-10 13:47:33 -07:00
Ryan Barrett
f4aefff6f4
minor noop test refactoring
2021-08-18 08:04:14 -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
b23705e97e
don't store a Response for OStatus/Salmon unless we actually attempt delivery
2021-07-20 15:55:16 -07:00