-
Notifications
You must be signed in to change notification settings - Fork 554
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Custom feeds #1001
Merged
Merged
Custom feeds #1001
Changes from all commits
Commits
Show all changes
91 commits
Select commit
Hold shift + click to select a range
7941e1e
actor type in profiles
dholms b37bd06
skeleton lex
dholms 9a05145
more schemas
dholms d97e79e
first pass at feed composition
dholms 82c9e74
cleanup services
dholms 04c5890
more tidying
dholms e007507
fix up tests
dholms a7b9e04
bookmarking schemas
dholms 7af005c
make feeds records instead of actors
dholms 3d472a2
some cleanup
dholms 4aadec1
fleshing out feeds as records
dholms 06914dc
wip
dholms de97b20
working into cfg & dev-env
dholms 0f0efcb
merge service auth & fix build
dholms 6edd506
fix appview test util
dholms a351aad
Merge branch 'service-auth-tidy' into custom-feeds
dholms 8be7529
bookmarking + views
dholms 7ec7096
tidy
dholms f23c20f
add displayName
dholms 7805578
db migration
dholms ba726c5
wip test
dholms 654727b
blob processing
dholms e73633b
first test working!
dholms 4954cbf
merge main
dholms dfa1043
Sync-up snapshots
devinivy 0fafa58
wip
dholms d18bb30
Fix pds ctx type
devinivy 325f348
Sync lexicons on pds and api
devinivy e8ce004
wip
dholms 028a6c3
fully refactor
dholms b4bf2d8
Prep for open union in reply data in bsky appview, sync-up snapshots
devinivy dd4eacd
msgs & ports
dholms f429135
Make pds did cache sqlite-friendly
devinivy 445e71f
Start scaffolding more feedgen tests
devinivy 7f8d747
revamp appview tests
dholms 445fc5a
revamp pds tests
dholms 64e88e6
merge in dev env utils
dholms c6abbbd
ensure plc close
dholms 34f5c21
fix merge issues
dholms 612f6b5
add feed gen to dev-env
dholms 44219c0
second feed gen
dholms 036fa17
named feeds in mock
dholms c7a1fe3
fix issue with dev-env pds appview
dholms c0e52c4
update bsky snaps
dholms 2e03ab9
Flesh-out some feed gen tests
devinivy ab4174c
Fix feed gen reply test
devinivy a2f6e3d
Test feed bookmarking
devinivy 8201fbe
update skeleton defs
dholms 97a324a
merge
dholms 4a8dd88
Sync-up pds with updated feed skeleton contract
devinivy 2fb41d6
Fix feed bookmark viewer state
devinivy f99cb85
add feed embeds
dholms 69cb590
Test inaccurate feed gen repost
devinivy dbcaaa2
Tighten some error behaviors around feed gens
devinivy 9d09b43
generator view in record embed
dholms 885d165
test
dholms 66e1dc2
bookmarked/subscribed -> saved
dholms e9ba4a7
updated snaps
dholms bcf66ea
name & descript on alices feed
dholms 2bdf2c2
merge in main
dholms f39ff15
add like counts
dholms 0d9c999
proposed lex
dholms dd7caf3
tweak
dholms 65a24f4
fetch feed generator details
dholms e7e5695
add describeFeedGen to dev-env
dholms 2729267
adds tests for getFeedGenerator
dholms c75c5c7
Update lexicons/app/bsky/feed/getFeedGenerator.json
dholms 49d57de
update describe
dholms ae17f10
add cid to feed gen view
dholms f95d13d
add alice feed gen avatar
dholms 695b4c7
generator displayName required
dholms af07541
update snaps
dholms 8134b5c
Merge branch 'main' into custom-feeds
dholms 900e91d
Fix dev env public url (#1058)
pfrazee 73d766b
add defs for feed gen prefs & decrease displayName length
dholms 87749b3
build branch
dholms df934b7
updated how saved feeds works
dholms ef52c70
cleanup lex
dholms 1bfd214
mount route
dholms 82047b3
Starter bsky algos (#1046)
dholms 45c629b
v0.3.6
dholms eea4bdf
Merge branch 'main' into custom-feeds
dholms 7fc4da6
v0.3.7
dholms 3cb9a5d
v0.1.10
dholms 4102fef
update name of skyline
dholms 47c7cd0
build branch
dholms c8481b9
aws build
dholms d1fce54
getFeedGenerators test
dholms 21867d2
For now only use new replyRef union for custom feeds, for compat
devinivy 12431b1
Don't use replyRef union on new feeds yet
devinivy d697ba6
Merge remote-tracking branch 'origin/main' into custom-feeds
devinivy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,7 @@ on: | |
push: | ||
branches: | ||
- main | ||
- custom-feeds | ||
env: | ||
REGISTRY: ghcr.io | ||
USERNAME: ${{ github.actor }} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
{ | ||
"lexicon": 1, | ||
"id": "app.bsky.feed.describeFeedGenerator", | ||
"defs": { | ||
"main": { | ||
"type": "query", | ||
"description": "Returns information about a given feed generator including TOS & offered feed URIs", | ||
"output": { | ||
"encoding": "application/json", | ||
"schema": { | ||
"type": "object", | ||
"required": ["did", "feeds"], | ||
"properties": { | ||
"did": {"type": "string", "format": "did"}, | ||
"feeds": { | ||
"type": "array", | ||
"items": {"type": "ref", "ref": "#feed"} | ||
}, | ||
"links": {"type": "ref", "ref": "#links"} | ||
} | ||
} | ||
} | ||
}, | ||
"feed": { | ||
"type": "object", | ||
"required": ["uri"], | ||
"properties": { | ||
"uri": {"type": "string", "format": "at-uri"} | ||
} | ||
}, | ||
"links": { | ||
"type": "object", | ||
"properties": { | ||
"privacyPolicy": {"type": "string"}, | ||
"termsOfService": {"type": "string"} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
{ | ||
"lexicon": 1, | ||
"id": "app.bsky.feed.generator", | ||
"defs": { | ||
"main": { | ||
"type": "record", | ||
"description": "A declaration of the existence of a feed generator", | ||
"key": "any", | ||
"record": { | ||
"type": "object", | ||
"required": ["did", "displayName", "createdAt"], | ||
"properties": { | ||
"did": {"type": "string", "format": "did"}, | ||
"displayName": {"type": "string", "maxGraphemes": 24, "maxLength": 240}, | ||
"description": {"type": "string", "maxGraphemes": 300, "maxLength": 3000}, | ||
"descriptionFacets": { | ||
"type": "array", | ||
"items": {"type": "ref", "ref": "app.bsky.richtext.facet"} | ||
}, | ||
"avatar": { | ||
"type": "blob", | ||
"accept": ["image/png", "image/jpeg"], | ||
"maxSize": 1000000 | ||
}, | ||
"createdAt": {"type": "string", "format": "datetime"} | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
{ | ||
"lexicon": 1, | ||
"id": "app.bsky.feed.getActorFeeds", | ||
"defs": { | ||
"main": { | ||
"type": "query", | ||
"description": "Retrieve a list of feeds created by a given actor", | ||
"parameters": { | ||
"type": "params", | ||
"required": ["actor"], | ||
"properties": { | ||
"actor": {"type": "string", "format": "at-identifier"}, | ||
"limit": {"type": "integer", "minimum": 1, "maximum": 100, "default": 50}, | ||
"cursor": {"type": "string"} | ||
} | ||
}, | ||
"output": { | ||
"encoding": "application/json", | ||
"schema": { | ||
"type": "object", | ||
"required": ["feeds"], | ||
"properties": { | ||
"cursor": {"type": "string"}, | ||
"feeds": { | ||
"type": "array", | ||
"items": {"type": "ref", "ref": "app.bsky.feed.defs#generatorView"} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
{ | ||
"lexicon": 1, | ||
"id": "app.bsky.feed.getFeed", | ||
"defs": { | ||
"main": { | ||
"type": "query", | ||
"description": "Compose and hydrate a feed from a user's selected feed generator", | ||
"parameters": { | ||
"type": "params", | ||
"required": ["feed"], | ||
"properties": { | ||
"feed": {"type": "string", "format": "at-uri"}, | ||
"limit": {"type": "integer", "minimum": 1, "maximum": 100, "default": 50}, | ||
"cursor": {"type": "string"} | ||
} | ||
}, | ||
"output": { | ||
"encoding": "application/json", | ||
"schema": { | ||
"type": "object", | ||
"required": ["feed"], | ||
"properties": { | ||
"cursor": {"type": "string"}, | ||
"feed": { | ||
"type": "array", | ||
"items": {"type": "ref", "ref": "app.bsky.feed.defs#feedViewPost"} | ||
} | ||
} | ||
} | ||
}, | ||
"errors": [ | ||
{"name": "UnknownFeed"} | ||
] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
{ | ||
"lexicon": 1, | ||
"id": "app.bsky.feed.getFeedGenerator", | ||
"defs": { | ||
"main": { | ||
"type": "query", | ||
"description": "Get information about a specific feed offered by a feed generator, such as its online status", | ||
"parameters": { | ||
"type": "params", | ||
"required": ["feed"], | ||
"properties": { | ||
"feed": {"type": "string", "format": "at-uri"} | ||
} | ||
}, | ||
"output": { | ||
"encoding": "application/json", | ||
"schema": { | ||
"type": "object", | ||
"required": ["view", "isOnline", "isValid"], | ||
"properties": { | ||
"view": {"type": "ref", "ref": "app.bsky.feed.defs#generatorView"}, | ||
"isOnline": {"type": "boolean"}, | ||
"isValid": {"type": "boolean"} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
{ | ||
"lexicon": 1, | ||
"id": "app.bsky.feed.getFeedGenerators", | ||
"defs": { | ||
"main": { | ||
"type": "query", | ||
"description": "Get information about a list of feed generators", | ||
"parameters": { | ||
"type": "params", | ||
"required": ["feeds"], | ||
"properties": { | ||
"feeds": { | ||
"type": "array", | ||
"items": {"type": "string", "format": "at-uri"} | ||
} | ||
} | ||
}, | ||
"output": { | ||
"encoding": "application/json", | ||
"schema": { | ||
"type": "object", | ||
"required": ["feeds"], | ||
"properties": { | ||
"feeds": { | ||
"type": "array", | ||
"items": {"type": "ref", "ref": "app.bsky.feed.defs#generatorView"} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
{ | ||
"lexicon": 1, | ||
"id": "app.bsky.feed.getFeedSkeleton", | ||
"defs": { | ||
"main": { | ||
"type": "query", | ||
"description": "A skeleton of a feed provided by a feed generator", | ||
"parameters": { | ||
"type": "params", | ||
"required": ["feed"], | ||
"properties": { | ||
"feed": {"type": "string", "format": "at-uri"}, | ||
"limit": {"type": "integer", "minimum": 1, "maximum": 100, "default": 50}, | ||
"cursor": {"type": "string"} | ||
} | ||
}, | ||
"output": { | ||
"encoding": "application/json", | ||
"schema": { | ||
"type": "object", | ||
"required": ["feed"], | ||
"properties": { | ||
"cursor": {"type": "string"}, | ||
"feed": { | ||
"type": "array", | ||
"items": {"type": "ref", "ref": "app.bsky.feed.defs#skeletonFeedPost"} | ||
} | ||
} | ||
} | ||
}, | ||
"errors": [ | ||
{"name": "UnknownFeed"} | ||
] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general we haven't been prefixing booleans with
is
(e.g.rebase
,tooBig
,muted
,blockedBy
,disabled
,resolved
). There is one place we do use it, though, which is on notificationsisRead
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, what does
isValid
check for versusisOnline
? Mostly wondering if both are satisfied by simply attempting to fetch the feed, or if one/both require a call todescribeFeedGenerator
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i'm down to strip out the
is
👌There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as for the second part of this, I basically do the check against
describeFeedGenerator
, but maybe I should just be doing a sample call 🤔I have the code up for this now too if you want a look but basically:
isOnline
is "does the service respond at all"isValid
is "is the did in the record correct & does this service declare that they support the given feed uri?"