kopia lustrzana https://github.com/snarfed/bridgy-fed
rodzic
cc453035c8
commit
d655ea0024
|
@ -5,8 +5,6 @@ from unittest.mock import patch
|
|||
|
||||
from granary import bluesky
|
||||
from granary.tests.test_bluesky import (
|
||||
ACTOR_AS,
|
||||
ACTOR_REF_BSKY,
|
||||
POST_BSKY,
|
||||
POST_HTML,
|
||||
REPLY_BSKY,
|
||||
|
@ -171,7 +169,7 @@ class XrpcFeedTest(testutil.TestCase):
|
|||
}, got.json)
|
||||
|
||||
def test_getTimeline(self, mock_get):
|
||||
PagesTest.add_activities()
|
||||
PagesTest.add_objects()
|
||||
|
||||
got = self.client.get('/xrpc/app.bsky.feed.getTimeline')
|
||||
self.assertEqual({
|
||||
|
|
17
xrpc_feed.py
17
xrpc_feed.py
|
@ -6,9 +6,10 @@ import re
|
|||
from granary import bluesky, microformats2
|
||||
import mf2util
|
||||
from oauth_dropins.webutil import util
|
||||
from oauth_dropins.webutil.util import json_loads
|
||||
|
||||
from app import xrpc_server
|
||||
from models import Activity
|
||||
from models import Object
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
@ -127,17 +128,13 @@ def getTimeline(input, algorithm=None, limit=50, before=None):
|
|||
user = 'foo.com'
|
||||
|
||||
# TODO: de-dupe with pages.feed()
|
||||
logger.info(f'Fetching {limit} activities for {user}')
|
||||
activities, _, _ = Activity.query(
|
||||
Activity.domain == user, Activity.direction == 'in'
|
||||
).order(-Activity.created
|
||||
logger.info(f'Fetching {limit} objects for {user}')
|
||||
objects, _, _ = Object.query(
|
||||
Object.domains == user, Object.labels == 'feed'
|
||||
).order(-Object.created
|
||||
).fetch_page(limit)
|
||||
as1_activities = [a.to_as1() for a in activities]
|
||||
|
||||
return {
|
||||
'feed': [bluesky.from_as1(a) for a in as1_activities
|
||||
if a and a.get('verb') not in ('like', 'update', 'follow')],
|
||||
}
|
||||
return {'feed': [bluesky.from_as1(json_loads(obj.as1)) for obj in objects]}
|
||||
|
||||
|
||||
# TODO: use likes as votes?
|
||||
|
|
Ładowanie…
Reference in New Issue