@atproto/bsky 0.0.153 → 0.0.155
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/lexicon/lexicons.d.ts +102 -122
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +61 -66
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts +33 -0
- package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/defs.js +36 -0
- package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.d.ts +3 -13
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.js +0 -9
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts +2 -29
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js +0 -36
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +10 -5
- package/dist/views/index.js.map +1 -1
- package/dist/views/threads-v2.d.ts +5 -4
- package/dist/views/threads-v2.d.ts.map +1 -1
- package/dist/views/threads-v2.js.map +1 -1
- package/package.json +7 -7
- package/src/lexicon/lexicons.ts +66 -71
- package/src/lexicon/types/app/bsky/unspecced/defs.ts +73 -0
- package/src/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.ts +3 -22
- package/src/lexicon/types/app/bsky/unspecced/getPostThreadV2.ts +5 -72
- package/src/views/index.ts +13 -7
- package/src/views/threads-v2.ts +21 -23
- package/tests/views/__snapshots__/thread-v2.test.ts.snap +69 -23
- package/tests/views/thread-v2.test.ts +34 -42
- package/tsconfig.tests.tsbuildinfo +1 -1
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
type OmitKey,
|
|
12
12
|
} from '../../../../util'
|
|
13
13
|
import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server'
|
|
14
|
-
import type * as
|
|
14
|
+
import type * as AppBskyUnspeccedDefs from './defs.js'
|
|
15
15
|
|
|
16
16
|
const is$typed = _is$typed,
|
|
17
17
|
validate = _validate
|
|
@@ -27,7 +27,7 @@ export interface QueryParams {
|
|
|
27
27
|
export type InputSchema = undefined
|
|
28
28
|
|
|
29
29
|
export interface OutputSchema {
|
|
30
|
-
/** A flat list of thread
|
|
30
|
+
/** A flat list of hidden thread items. The depth of each item is indicated by the depth property inside the item. */
|
|
31
31
|
thread: ThreadHiddenItem[]
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -62,7 +62,7 @@ export interface ThreadHiddenItem {
|
|
|
62
62
|
uri: string
|
|
63
63
|
/** The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths. */
|
|
64
64
|
depth: number
|
|
65
|
-
value: $Typed<
|
|
65
|
+
value: $Typed<AppBskyUnspeccedDefs.ThreadItemPost> | { $type: string }
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
const hashThreadHiddenItem = 'threadHiddenItem'
|
|
@@ -74,22 +74,3 @@ export function isThreadHiddenItem<V>(v: V) {
|
|
|
74
74
|
export function validateThreadHiddenItem<V>(v: V) {
|
|
75
75
|
return validate<ThreadHiddenItem & V>(v, id, hashThreadHiddenItem)
|
|
76
76
|
}
|
|
77
|
-
|
|
78
|
-
export interface ThreadHiddenItemPost {
|
|
79
|
-
$type?: 'app.bsky.unspecced.getPostThreadHiddenV2#threadHiddenItemPost'
|
|
80
|
-
post: AppBskyFeedDefs.PostView
|
|
81
|
-
/** The threadgate created by the author indicates this post as a reply to be hidden for everyone consuming the thread. */
|
|
82
|
-
hiddenByThreadgate: boolean
|
|
83
|
-
/** This is by an account muted by the viewer requesting it. */
|
|
84
|
-
mutedByViewer: boolean
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const hashThreadHiddenItemPost = 'threadHiddenItemPost'
|
|
88
|
-
|
|
89
|
-
export function isThreadHiddenItemPost<V>(v: V) {
|
|
90
|
-
return is$typed(v, id, hashThreadHiddenItemPost)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export function validateThreadHiddenItemPost<V>(v: V) {
|
|
94
|
-
return validate<ThreadHiddenItemPost & V>(v, id, hashThreadHiddenItemPost)
|
|
95
|
-
}
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
} from '../../../../util'
|
|
13
13
|
import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server'
|
|
14
14
|
import type * as AppBskyFeedDefs from '../feed/defs.js'
|
|
15
|
+
import type * as AppBskyUnspeccedDefs from './defs.js'
|
|
15
16
|
|
|
16
17
|
const is$typed = _is$typed,
|
|
17
18
|
validate = _validate
|
|
@@ -74,10 +75,10 @@ export interface ThreadItem {
|
|
|
74
75
|
/** The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths. */
|
|
75
76
|
depth: number
|
|
76
77
|
value:
|
|
77
|
-
| $Typed<ThreadItemPost>
|
|
78
|
-
| $Typed<ThreadItemNoUnauthenticated>
|
|
79
|
-
| $Typed<ThreadItemNotFound>
|
|
80
|
-
| $Typed<ThreadItemBlocked>
|
|
78
|
+
| $Typed<AppBskyUnspeccedDefs.ThreadItemPost>
|
|
79
|
+
| $Typed<AppBskyUnspeccedDefs.ThreadItemNoUnauthenticated>
|
|
80
|
+
| $Typed<AppBskyUnspeccedDefs.ThreadItemNotFound>
|
|
81
|
+
| $Typed<AppBskyUnspeccedDefs.ThreadItemBlocked>
|
|
81
82
|
| { $type: string }
|
|
82
83
|
}
|
|
83
84
|
|
|
@@ -90,71 +91,3 @@ export function isThreadItem<V>(v: V) {
|
|
|
90
91
|
export function validateThreadItem<V>(v: V) {
|
|
91
92
|
return validate<ThreadItem & V>(v, id, hashThreadItem)
|
|
92
93
|
}
|
|
93
|
-
|
|
94
|
-
export interface ThreadItemPost {
|
|
95
|
-
$type?: 'app.bsky.unspecced.getPostThreadV2#threadItemPost'
|
|
96
|
-
post: AppBskyFeedDefs.PostView
|
|
97
|
-
/** This post has more parents that were not present in the response. This is just a boolean, without the number of parents. */
|
|
98
|
-
moreParents: boolean
|
|
99
|
-
/** This post has more replies that were not present in the response. This is a numeric value, which is best-effort and might not be accurate. */
|
|
100
|
-
moreReplies: number
|
|
101
|
-
/** This post is part of a contiguous thread by the OP from the thread root. Many different OP threads can happen in the same thread. */
|
|
102
|
-
opThread: boolean
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
const hashThreadItemPost = 'threadItemPost'
|
|
106
|
-
|
|
107
|
-
export function isThreadItemPost<V>(v: V) {
|
|
108
|
-
return is$typed(v, id, hashThreadItemPost)
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export function validateThreadItemPost<V>(v: V) {
|
|
112
|
-
return validate<ThreadItemPost & V>(v, id, hashThreadItemPost)
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export interface ThreadItemNoUnauthenticated {
|
|
116
|
-
$type?: 'app.bsky.unspecced.getPostThreadV2#threadItemNoUnauthenticated'
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
const hashThreadItemNoUnauthenticated = 'threadItemNoUnauthenticated'
|
|
120
|
-
|
|
121
|
-
export function isThreadItemNoUnauthenticated<V>(v: V) {
|
|
122
|
-
return is$typed(v, id, hashThreadItemNoUnauthenticated)
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export function validateThreadItemNoUnauthenticated<V>(v: V) {
|
|
126
|
-
return validate<ThreadItemNoUnauthenticated & V>(
|
|
127
|
-
v,
|
|
128
|
-
id,
|
|
129
|
-
hashThreadItemNoUnauthenticated,
|
|
130
|
-
)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
export interface ThreadItemNotFound {
|
|
134
|
-
$type?: 'app.bsky.unspecced.getPostThreadV2#threadItemNotFound'
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const hashThreadItemNotFound = 'threadItemNotFound'
|
|
138
|
-
|
|
139
|
-
export function isThreadItemNotFound<V>(v: V) {
|
|
140
|
-
return is$typed(v, id, hashThreadItemNotFound)
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export function validateThreadItemNotFound<V>(v: V) {
|
|
144
|
-
return validate<ThreadItemNotFound & V>(v, id, hashThreadItemNotFound)
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
export interface ThreadItemBlocked {
|
|
148
|
-
$type?: 'app.bsky.unspecced.getPostThreadV2#threadItemBlocked'
|
|
149
|
-
author: AppBskyFeedDefs.BlockedAuthor
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const hashThreadItemBlocked = 'threadItemBlocked'
|
|
153
|
-
|
|
154
|
-
export function isThreadItemBlocked<V>(v: V) {
|
|
155
|
-
return is$typed(v, id, hashThreadItemBlocked)
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export function validateThreadItemBlocked<V>(v: V) {
|
|
159
|
-
return validate<ThreadItemBlocked & V>(v, id, hashThreadItemBlocked)
|
|
160
|
-
}
|
package/src/views/index.ts
CHANGED
|
@@ -76,6 +76,7 @@ import {
|
|
|
76
76
|
} from '../util/uris'
|
|
77
77
|
import {
|
|
78
78
|
ThreadHiddenAnchorPostNode,
|
|
79
|
+
ThreadHiddenItemValuePost,
|
|
79
80
|
ThreadHiddenPostNode,
|
|
80
81
|
ThreadItemValueBlocked,
|
|
81
82
|
ThreadItemValueNoUnauthenticated,
|
|
@@ -1275,7 +1276,7 @@ export class Views {
|
|
|
1275
1276
|
}
|
|
1276
1277
|
}
|
|
1277
1278
|
|
|
1278
|
-
const thread = sortTrimFlattenThreadTree
|
|
1279
|
+
const thread = sortTrimFlattenThreadTree(anchorTree, {
|
|
1279
1280
|
opDid,
|
|
1280
1281
|
branchingFactor,
|
|
1281
1282
|
sort,
|
|
@@ -1531,11 +1532,13 @@ export class Views {
|
|
|
1531
1532
|
uri,
|
|
1532
1533
|
depth,
|
|
1533
1534
|
value: {
|
|
1534
|
-
$type: 'app.bsky.unspecced.
|
|
1535
|
+
$type: 'app.bsky.unspecced.defs#threadItemPost',
|
|
1535
1536
|
post: postView,
|
|
1536
1537
|
moreParents: moreParents ?? false,
|
|
1537
1538
|
moreReplies,
|
|
1538
1539
|
opThread: isOPThread,
|
|
1540
|
+
hiddenByThreadgate: false, // Hidden posts are handled by threadHiddenV2
|
|
1541
|
+
mutedByViewer: false, // Hidden posts are handled by threadHiddenV2
|
|
1539
1542
|
},
|
|
1540
1543
|
}
|
|
1541
1544
|
}
|
|
@@ -1551,7 +1554,7 @@ export class Views {
|
|
|
1551
1554
|
uri,
|
|
1552
1555
|
depth,
|
|
1553
1556
|
value: {
|
|
1554
|
-
$type: 'app.bsky.unspecced.
|
|
1557
|
+
$type: 'app.bsky.unspecced.defs#threadItemNoUnauthenticated',
|
|
1555
1558
|
},
|
|
1556
1559
|
}
|
|
1557
1560
|
}
|
|
@@ -1567,7 +1570,7 @@ export class Views {
|
|
|
1567
1570
|
uri,
|
|
1568
1571
|
depth,
|
|
1569
1572
|
value: {
|
|
1570
|
-
$type: 'app.bsky.unspecced.
|
|
1573
|
+
$type: 'app.bsky.unspecced.defs#threadItemNotFound',
|
|
1571
1574
|
},
|
|
1572
1575
|
}
|
|
1573
1576
|
}
|
|
@@ -1587,7 +1590,7 @@ export class Views {
|
|
|
1587
1590
|
uri,
|
|
1588
1591
|
depth,
|
|
1589
1592
|
value: {
|
|
1590
|
-
$type: 'app.bsky.unspecced.
|
|
1593
|
+
$type: 'app.bsky.unspecced.defs#threadItemBlocked',
|
|
1591
1594
|
author: {
|
|
1592
1595
|
did: authorDid,
|
|
1593
1596
|
viewer: this.blockedProfileViewer(authorDid, state),
|
|
@@ -1768,15 +1771,18 @@ export class Views {
|
|
|
1768
1771
|
mutedByViewer: boolean
|
|
1769
1772
|
postView: PostView
|
|
1770
1773
|
uri: string
|
|
1771
|
-
}):
|
|
1774
|
+
}): ThreadHiddenItemValuePost {
|
|
1772
1775
|
const base = this.threadHiddenV2ItemPostAnchor({ depth, uri })
|
|
1773
1776
|
return {
|
|
1774
1777
|
...base,
|
|
1775
1778
|
value: {
|
|
1776
|
-
$type: 'app.bsky.unspecced.
|
|
1779
|
+
$type: 'app.bsky.unspecced.defs#threadItemPost',
|
|
1777
1780
|
post: postView,
|
|
1778
1781
|
hiddenByThreadgate,
|
|
1779
1782
|
mutedByViewer,
|
|
1783
|
+
moreParents: false, // Hidden replies don't have parents.
|
|
1784
|
+
moreReplies: 0, // Hidden replies don't have replies hydrated.
|
|
1785
|
+
opThread: false, // Hidden replies don't contain OP threads.
|
|
1780
1786
|
},
|
|
1781
1787
|
}
|
|
1782
1788
|
}
|
package/src/views/threads-v2.ts
CHANGED
|
@@ -2,16 +2,15 @@ import { asPredicate } from '@atproto/api'
|
|
|
2
2
|
import { HydrateCtx } from '../hydration/hydrator'
|
|
3
3
|
import { validateRecord as validatePostRecord } from '../lexicon/types/app/bsky/feed/post'
|
|
4
4
|
import {
|
|
5
|
-
ThreadHiddenItem,
|
|
6
|
-
ThreadHiddenItemPost,
|
|
7
|
-
} from '../lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2'
|
|
8
|
-
import {
|
|
9
|
-
QueryParams as GetPostThreadV2QueryParams,
|
|
10
|
-
ThreadItem,
|
|
11
5
|
ThreadItemBlocked,
|
|
12
6
|
ThreadItemNoUnauthenticated,
|
|
13
7
|
ThreadItemNotFound,
|
|
14
8
|
ThreadItemPost,
|
|
9
|
+
} from '../lexicon/types/app/bsky/unspecced/defs'
|
|
10
|
+
import { ThreadHiddenItem } from '../lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2'
|
|
11
|
+
import {
|
|
12
|
+
QueryParams as GetPostThreadV2QueryParams,
|
|
13
|
+
ThreadItem,
|
|
15
14
|
} from '../lexicon/types/app/bsky/unspecced/getPostThreadV2'
|
|
16
15
|
import { $Typed } from '../lexicon/util'
|
|
17
16
|
|
|
@@ -72,7 +71,7 @@ type ThreadHiddenItemValue<T extends ThreadHiddenItem['value']> = Omit<
|
|
|
72
71
|
}
|
|
73
72
|
|
|
74
73
|
export type ThreadHiddenItemValuePost = ThreadHiddenItemValue<
|
|
75
|
-
$Typed<
|
|
74
|
+
$Typed<ThreadItemPost>
|
|
76
75
|
>
|
|
77
76
|
|
|
78
77
|
// This is an intermediary type that doesn't map to the views.
|
|
@@ -108,12 +107,13 @@ export type ThreadTreeHidden = ThreadHiddenAnchorPostNode | ThreadHiddenPostNode
|
|
|
108
107
|
export type ThreadTree = ThreadTreeVisible | ThreadTreeHidden
|
|
109
108
|
|
|
110
109
|
/** This function mutates the tree parameter. */
|
|
111
|
-
export function sortTrimFlattenThreadTree
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
export function sortTrimFlattenThreadTree(
|
|
111
|
+
anchorTree: ThreadTree,
|
|
112
|
+
options: SortTrimFlattenOptions,
|
|
113
|
+
) {
|
|
114
114
|
const sortedAnchorTree = sortTrimThreadTree(anchorTree, options)
|
|
115
115
|
|
|
116
|
-
return flattenTree
|
|
116
|
+
return flattenTree(sortedAnchorTree)
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
type SortTrimFlattenOptions = {
|
|
@@ -309,13 +309,11 @@ function topSortValue(likeCount: number, hasOPLike: boolean): number {
|
|
|
309
309
|
return Math.log(3 + likeCount) * (hasOPLike ? 1.45 : 1.0)
|
|
310
310
|
}
|
|
311
311
|
|
|
312
|
-
function flattenTree
|
|
313
|
-
tree: ThreadTree,
|
|
314
|
-
): TItem[] {
|
|
312
|
+
function flattenTree(tree: ThreadTree) {
|
|
315
313
|
return [
|
|
316
314
|
// All parents above.
|
|
317
315
|
...Array.from(
|
|
318
|
-
flattenInDirection
|
|
316
|
+
flattenInDirection({
|
|
319
317
|
tree,
|
|
320
318
|
direction: 'up',
|
|
321
319
|
}),
|
|
@@ -323,11 +321,11 @@ function flattenTree<TItem extends ThreadItem | ThreadHiddenItem>(
|
|
|
323
321
|
|
|
324
322
|
// The anchor.
|
|
325
323
|
// In the case of hidden replies, the anchor item itself is undefined.
|
|
326
|
-
...(tree.item.value ?
|
|
324
|
+
...(tree.item.value ? [tree.item] : []),
|
|
327
325
|
|
|
328
326
|
// All replies below.
|
|
329
327
|
...Array.from(
|
|
330
|
-
flattenInDirection
|
|
328
|
+
flattenInDirection({
|
|
331
329
|
tree,
|
|
332
330
|
direction: 'down',
|
|
333
331
|
}),
|
|
@@ -335,18 +333,18 @@ function flattenTree<TItem extends ThreadItem | ThreadHiddenItem>(
|
|
|
335
333
|
]
|
|
336
334
|
}
|
|
337
335
|
|
|
338
|
-
function* flattenInDirection
|
|
336
|
+
function* flattenInDirection({
|
|
339
337
|
tree,
|
|
340
338
|
direction,
|
|
341
339
|
}: {
|
|
342
340
|
tree: ThreadTree
|
|
343
341
|
direction: 'up' | 'down'
|
|
344
|
-
})
|
|
342
|
+
}) {
|
|
345
343
|
if (tree.type === 'noUnauthenticated') {
|
|
346
344
|
if (direction === 'up') {
|
|
347
345
|
if (tree.parent) {
|
|
348
346
|
// Unfold all parents above.
|
|
349
|
-
yield* flattenTree
|
|
347
|
+
yield* flattenTree(tree.parent)
|
|
350
348
|
}
|
|
351
349
|
}
|
|
352
350
|
}
|
|
@@ -355,13 +353,13 @@ function* flattenInDirection<TItem extends ThreadItem | ThreadHiddenItem>({
|
|
|
355
353
|
if (direction === 'up') {
|
|
356
354
|
if (tree.parent) {
|
|
357
355
|
// Unfold all parents above.
|
|
358
|
-
yield* flattenTree
|
|
356
|
+
yield* flattenTree(tree.parent)
|
|
359
357
|
}
|
|
360
358
|
} else {
|
|
361
359
|
// Unfold all replies below.
|
|
362
360
|
if (tree.replies?.length) {
|
|
363
361
|
for (const reply of tree.replies) {
|
|
364
|
-
yield* flattenTree
|
|
362
|
+
yield* flattenTree(reply)
|
|
365
363
|
}
|
|
366
364
|
}
|
|
367
365
|
}
|
|
@@ -373,7 +371,7 @@ function* flattenInDirection<TItem extends ThreadItem | ThreadHiddenItem>({
|
|
|
373
371
|
// Unfold all replies below.
|
|
374
372
|
if (tree.replies?.length) {
|
|
375
373
|
for (const reply of tree.replies) {
|
|
376
|
-
yield* flattenTree
|
|
374
|
+
yield* flattenTree(reply)
|
|
377
375
|
}
|
|
378
376
|
}
|
|
379
377
|
}
|
|
@@ -8,9 +8,11 @@ Object {
|
|
|
8
8
|
"depth": -1,
|
|
9
9
|
"uri": "record(0)",
|
|
10
10
|
"value": Object {
|
|
11
|
-
"$type": "app.bsky.unspecced.
|
|
11
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
12
|
+
"hiddenByThreadgate": false,
|
|
12
13
|
"moreParents": false,
|
|
13
14
|
"moreReplies": 0,
|
|
15
|
+
"mutedByViewer": false,
|
|
14
16
|
"opThread": true,
|
|
15
17
|
"post": Object {
|
|
16
18
|
"author": Object {
|
|
@@ -46,9 +48,11 @@ Object {
|
|
|
46
48
|
"depth": 0,
|
|
47
49
|
"uri": "record(1)",
|
|
48
50
|
"value": Object {
|
|
49
|
-
"$type": "app.bsky.unspecced.
|
|
51
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
52
|
+
"hiddenByThreadgate": false,
|
|
50
53
|
"moreParents": false,
|
|
51
54
|
"moreReplies": 0,
|
|
55
|
+
"mutedByViewer": false,
|
|
52
56
|
"opThread": false,
|
|
53
57
|
"post": Object {
|
|
54
58
|
"author": Object {
|
|
@@ -102,9 +106,11 @@ Object {
|
|
|
102
106
|
"depth": -1,
|
|
103
107
|
"uri": "record(0)",
|
|
104
108
|
"value": Object {
|
|
105
|
-
"$type": "app.bsky.unspecced.
|
|
109
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
110
|
+
"hiddenByThreadgate": false,
|
|
106
111
|
"moreParents": false,
|
|
107
112
|
"moreReplies": 0,
|
|
113
|
+
"mutedByViewer": false,
|
|
108
114
|
"opThread": true,
|
|
109
115
|
"post": Object {
|
|
110
116
|
"author": Object {
|
|
@@ -140,9 +146,11 @@ Object {
|
|
|
140
146
|
"depth": 0,
|
|
141
147
|
"uri": "record(1)",
|
|
142
148
|
"value": Object {
|
|
143
|
-
"$type": "app.bsky.unspecced.
|
|
149
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
150
|
+
"hiddenByThreadgate": false,
|
|
144
151
|
"moreParents": false,
|
|
145
152
|
"moreReplies": 0,
|
|
153
|
+
"mutedByViewer": false,
|
|
146
154
|
"opThread": false,
|
|
147
155
|
"post": Object {
|
|
148
156
|
"author": Object {
|
|
@@ -188,9 +196,11 @@ Object {
|
|
|
188
196
|
"depth": 1,
|
|
189
197
|
"uri": "record(2)",
|
|
190
198
|
"value": Object {
|
|
191
|
-
"$type": "app.bsky.unspecced.
|
|
199
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
200
|
+
"hiddenByThreadgate": false,
|
|
192
201
|
"moreParents": false,
|
|
193
202
|
"moreReplies": 0,
|
|
203
|
+
"mutedByViewer": false,
|
|
194
204
|
"opThread": false,
|
|
195
205
|
"post": Object {
|
|
196
206
|
"author": Object {
|
|
@@ -244,9 +254,11 @@ Object {
|
|
|
244
254
|
"depth": -2,
|
|
245
255
|
"uri": "record(0)",
|
|
246
256
|
"value": Object {
|
|
247
|
-
"$type": "app.bsky.unspecced.
|
|
257
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
258
|
+
"hiddenByThreadgate": false,
|
|
248
259
|
"moreParents": false,
|
|
249
260
|
"moreReplies": 0,
|
|
261
|
+
"mutedByViewer": false,
|
|
250
262
|
"opThread": true,
|
|
251
263
|
"post": Object {
|
|
252
264
|
"author": Object {
|
|
@@ -282,9 +294,11 @@ Object {
|
|
|
282
294
|
"depth": -1,
|
|
283
295
|
"uri": "record(1)",
|
|
284
296
|
"value": Object {
|
|
285
|
-
"$type": "app.bsky.unspecced.
|
|
297
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
298
|
+
"hiddenByThreadgate": false,
|
|
286
299
|
"moreParents": false,
|
|
287
300
|
"moreReplies": 0,
|
|
301
|
+
"mutedByViewer": false,
|
|
288
302
|
"opThread": false,
|
|
289
303
|
"post": Object {
|
|
290
304
|
"author": Object {
|
|
@@ -330,9 +344,11 @@ Object {
|
|
|
330
344
|
"depth": 0,
|
|
331
345
|
"uri": "record(2)",
|
|
332
346
|
"value": Object {
|
|
333
|
-
"$type": "app.bsky.unspecced.
|
|
347
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
348
|
+
"hiddenByThreadgate": false,
|
|
334
349
|
"moreParents": false,
|
|
335
350
|
"moreReplies": 0,
|
|
351
|
+
"mutedByViewer": false,
|
|
336
352
|
"opThread": false,
|
|
337
353
|
"post": Object {
|
|
338
354
|
"author": Object {
|
|
@@ -386,9 +402,11 @@ Object {
|
|
|
386
402
|
"depth": -1,
|
|
387
403
|
"uri": "record(0)",
|
|
388
404
|
"value": Object {
|
|
389
|
-
"$type": "app.bsky.unspecced.
|
|
405
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
406
|
+
"hiddenByThreadgate": false,
|
|
390
407
|
"moreParents": false,
|
|
391
408
|
"moreReplies": 0,
|
|
409
|
+
"mutedByViewer": false,
|
|
392
410
|
"opThread": true,
|
|
393
411
|
"post": Object {
|
|
394
412
|
"author": Object {
|
|
@@ -424,9 +442,11 @@ Object {
|
|
|
424
442
|
"depth": 0,
|
|
425
443
|
"uri": "record(1)",
|
|
426
444
|
"value": Object {
|
|
427
|
-
"$type": "app.bsky.unspecced.
|
|
445
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
446
|
+
"hiddenByThreadgate": false,
|
|
428
447
|
"moreParents": false,
|
|
429
448
|
"moreReplies": 0,
|
|
449
|
+
"mutedByViewer": false,
|
|
430
450
|
"opThread": false,
|
|
431
451
|
"post": Object {
|
|
432
452
|
"author": Object {
|
|
@@ -480,9 +500,11 @@ Object {
|
|
|
480
500
|
"depth": -1,
|
|
481
501
|
"uri": "record(0)",
|
|
482
502
|
"value": Object {
|
|
483
|
-
"$type": "app.bsky.unspecced.
|
|
503
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
504
|
+
"hiddenByThreadgate": false,
|
|
484
505
|
"moreParents": false,
|
|
485
506
|
"moreReplies": 0,
|
|
507
|
+
"mutedByViewer": false,
|
|
486
508
|
"opThread": true,
|
|
487
509
|
"post": Object {
|
|
488
510
|
"author": Object {
|
|
@@ -518,9 +540,11 @@ Object {
|
|
|
518
540
|
"depth": 0,
|
|
519
541
|
"uri": "record(1)",
|
|
520
542
|
"value": Object {
|
|
521
|
-
"$type": "app.bsky.unspecced.
|
|
543
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
544
|
+
"hiddenByThreadgate": false,
|
|
522
545
|
"moreParents": false,
|
|
523
546
|
"moreReplies": 0,
|
|
547
|
+
"mutedByViewer": false,
|
|
524
548
|
"opThread": true,
|
|
525
549
|
"post": Object {
|
|
526
550
|
"author": Object {
|
|
@@ -566,9 +590,11 @@ Object {
|
|
|
566
590
|
"depth": 1,
|
|
567
591
|
"uri": "record(2)",
|
|
568
592
|
"value": Object {
|
|
569
|
-
"$type": "app.bsky.unspecced.
|
|
593
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
594
|
+
"hiddenByThreadgate": false,
|
|
570
595
|
"moreParents": false,
|
|
571
596
|
"moreReplies": 0,
|
|
597
|
+
"mutedByViewer": false,
|
|
572
598
|
"opThread": true,
|
|
573
599
|
"post": Object {
|
|
574
600
|
"author": Object {
|
|
@@ -622,9 +648,11 @@ Object {
|
|
|
622
648
|
"depth": -2,
|
|
623
649
|
"uri": "record(0)",
|
|
624
650
|
"value": Object {
|
|
625
|
-
"$type": "app.bsky.unspecced.
|
|
651
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
652
|
+
"hiddenByThreadgate": false,
|
|
626
653
|
"moreParents": false,
|
|
627
654
|
"moreReplies": 0,
|
|
655
|
+
"mutedByViewer": false,
|
|
628
656
|
"opThread": true,
|
|
629
657
|
"post": Object {
|
|
630
658
|
"author": Object {
|
|
@@ -660,9 +688,11 @@ Object {
|
|
|
660
688
|
"depth": -1,
|
|
661
689
|
"uri": "record(1)",
|
|
662
690
|
"value": Object {
|
|
663
|
-
"$type": "app.bsky.unspecced.
|
|
691
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
692
|
+
"hiddenByThreadgate": false,
|
|
664
693
|
"moreParents": false,
|
|
665
694
|
"moreReplies": 0,
|
|
695
|
+
"mutedByViewer": false,
|
|
666
696
|
"opThread": true,
|
|
667
697
|
"post": Object {
|
|
668
698
|
"author": Object {
|
|
@@ -708,9 +738,11 @@ Object {
|
|
|
708
738
|
"depth": 0,
|
|
709
739
|
"uri": "record(2)",
|
|
710
740
|
"value": Object {
|
|
711
|
-
"$type": "app.bsky.unspecced.
|
|
741
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
742
|
+
"hiddenByThreadgate": false,
|
|
712
743
|
"moreParents": false,
|
|
713
744
|
"moreReplies": 0,
|
|
745
|
+
"mutedByViewer": false,
|
|
714
746
|
"opThread": true,
|
|
715
747
|
"post": Object {
|
|
716
748
|
"author": Object {
|
|
@@ -764,9 +796,11 @@ Object {
|
|
|
764
796
|
"depth": 0,
|
|
765
797
|
"uri": "record(0)",
|
|
766
798
|
"value": Object {
|
|
767
|
-
"$type": "app.bsky.unspecced.
|
|
799
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
800
|
+
"hiddenByThreadgate": false,
|
|
768
801
|
"moreParents": false,
|
|
769
802
|
"moreReplies": 0,
|
|
803
|
+
"mutedByViewer": false,
|
|
770
804
|
"opThread": true,
|
|
771
805
|
"post": Object {
|
|
772
806
|
"author": Object {
|
|
@@ -802,9 +836,11 @@ Object {
|
|
|
802
836
|
"depth": 1,
|
|
803
837
|
"uri": "record(1)",
|
|
804
838
|
"value": Object {
|
|
805
|
-
"$type": "app.bsky.unspecced.
|
|
839
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
840
|
+
"hiddenByThreadgate": false,
|
|
806
841
|
"moreParents": false,
|
|
807
842
|
"moreReplies": 0,
|
|
843
|
+
"mutedByViewer": false,
|
|
808
844
|
"opThread": true,
|
|
809
845
|
"post": Object {
|
|
810
846
|
"author": Object {
|
|
@@ -850,9 +886,11 @@ Object {
|
|
|
850
886
|
"depth": 2,
|
|
851
887
|
"uri": "record(2)",
|
|
852
888
|
"value": Object {
|
|
853
|
-
"$type": "app.bsky.unspecced.
|
|
889
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
890
|
+
"hiddenByThreadgate": false,
|
|
854
891
|
"moreParents": false,
|
|
855
892
|
"moreReplies": 0,
|
|
893
|
+
"mutedByViewer": false,
|
|
856
894
|
"opThread": true,
|
|
857
895
|
"post": Object {
|
|
858
896
|
"author": Object {
|
|
@@ -898,9 +936,11 @@ Object {
|
|
|
898
936
|
"depth": 1,
|
|
899
937
|
"uri": "record(3)",
|
|
900
938
|
"value": Object {
|
|
901
|
-
"$type": "app.bsky.unspecced.
|
|
939
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
940
|
+
"hiddenByThreadgate": false,
|
|
902
941
|
"moreParents": false,
|
|
903
942
|
"moreReplies": 0,
|
|
943
|
+
"mutedByViewer": false,
|
|
904
944
|
"opThread": false,
|
|
905
945
|
"post": Object {
|
|
906
946
|
"author": Object {
|
|
@@ -946,9 +986,11 @@ Object {
|
|
|
946
986
|
"depth": 1,
|
|
947
987
|
"uri": "record(4)",
|
|
948
988
|
"value": Object {
|
|
949
|
-
"$type": "app.bsky.unspecced.
|
|
989
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
990
|
+
"hiddenByThreadgate": false,
|
|
950
991
|
"moreParents": false,
|
|
951
992
|
"moreReplies": 0,
|
|
993
|
+
"mutedByViewer": false,
|
|
952
994
|
"opThread": false,
|
|
953
995
|
"post": Object {
|
|
954
996
|
"author": Object {
|
|
@@ -994,9 +1036,11 @@ Object {
|
|
|
994
1036
|
"depth": 2,
|
|
995
1037
|
"uri": "record(5)",
|
|
996
1038
|
"value": Object {
|
|
997
|
-
"$type": "app.bsky.unspecced.
|
|
1039
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
1040
|
+
"hiddenByThreadgate": false,
|
|
998
1041
|
"moreParents": false,
|
|
999
1042
|
"moreReplies": 0,
|
|
1043
|
+
"mutedByViewer": false,
|
|
1000
1044
|
"opThread": false,
|
|
1001
1045
|
"post": Object {
|
|
1002
1046
|
"author": Object {
|
|
@@ -1042,9 +1086,11 @@ Object {
|
|
|
1042
1086
|
"depth": 1,
|
|
1043
1087
|
"uri": "record(6)",
|
|
1044
1088
|
"value": Object {
|
|
1045
|
-
"$type": "app.bsky.unspecced.
|
|
1089
|
+
"$type": "app.bsky.unspecced.defs#threadItemPost",
|
|
1090
|
+
"hiddenByThreadgate": false,
|
|
1046
1091
|
"moreParents": false,
|
|
1047
1092
|
"moreReplies": 0,
|
|
1093
|
+
"mutedByViewer": false,
|
|
1048
1094
|
"opThread": false,
|
|
1049
1095
|
"post": Object {
|
|
1050
1096
|
"author": Object {
|