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