Commit graph

954 commits

Author SHA1 Message Date
394c7a487b
fix(web): centered CW text 2024-04-29 22:01:49 +02:00
7f996aa2c1
feat: kinda botched way to ignore relays
basically relays send us a lot of announce activities to share posts
but we don't care about those activities: it's db bloat and it increases
the shares count. keep a table keeping track of followed relays and
lazily skip activities by them, just fetch. IMPORTANT relays are only
loaded at startup, so if you subscribe to a new relay restart your
server once it accepts!!!
2024-04-29 21:58:08 +02:00
a6e12468b7
fix: db fix tasks would get stuck on sqlite
i think because the db would end up locked, added brackets to be sure to
drop the streaming reference. also it could crash when updating records
not found, just spit a warn
2024-04-29 21:23:12 +02:00
e4b92584db
chore: imports, renamed future routes 2024-04-29 21:23:02 +02:00
3e0e4ff8d3
fix: also update comments count when fetching 2024-04-29 21:22:48 +02:00
35804730de
fix: temporarily don't set replies
we don't serve those routes yet
2024-04-29 21:02:41 +02:00
ee6120190d
feat(web): show replies/likes/shares counters
soon to be buttons!
2024-04-29 21:02:13 +02:00
3129970fb5
feat: added fix task to recalculate stats
note that won't reset everything to 0, just force set every post which
has a count != 0
also this is kind of a bad way to do it. at least we stream objects, but
we could have it happen all inside our db with SELECT, DISTINCT and SUM,
i just don't know how to represent it in sea_orm. an intermediate
optimization may be selecting only certain columns but it's relevant
almost only for replies
2024-04-29 20:53:19 +02:00
4fe53f7011
fix: increment share and like counters for outbox 2024-04-29 20:40:20 +02:00
5ae9a140b4
feat: show likes and shares and replies in objects
it's done with anonymous inline collections, which hold a "totalItems"
field. for replies it's perfect, for likes it's stretched ("audience",
used as a Collection) and for shares it's really stretched ("generator",
used as a Collection). also using audience and generator as collections
seems weird because they should be objects but collections are objects
so it should be fine? i haven't seen these fields used anyway so it
should be safe to "claim" it for ourselves?
2024-04-29 20:30:29 +02:00
95f9d05875
fix: redirect after fetching if id is different
for example, pleroma servers objects under /notice/abcd... but the
object id itself is different, under /objects/<uuid>. when fetching
pleroma redirects, but we get unreliable behavior. redirect so that we
can force clients to use the proper id
2024-04-29 20:11:19 +02:00
a3cf7a17e8
feat(apb): allow upcasting from object
basically now object.as_actor() or object.as_collection() returns an
option which is full with a self ref only if the type is correct, so
that we can assume flexible json behavior from anything implementing our
apb traits, and we don't need to rely anymore on knowing the underlying
type
also little import refactor
2024-04-29 20:01:39 +02:00
f6ba30a43f
feat(web): show when tl is loading, disable btn 2024-04-29 03:26:45 +02:00
a664a0372f
fix(web): video max sizing, cursor 2024-04-29 02:42:59 +02:00
9faae6f627
feat(web): show audio, video and generic attachments
not only images anymore!!!
2024-04-29 02:33:21 +02:00
0e30d98c32
docs: about the name 2024-04-28 16:56:15 +02:00
ab91a4c7bc
fix: your inbox contains posts by you 2024-04-26 13:48:57 +02:00
08b53bf416
fix: also hide more button in thread view 2024-04-25 03:20:54 +02:00
c9f09c3e35
docs: updated frontend screenshot 2024-04-24 16:02:37 +02:00
1a3cc5e2ff
fix(web): don't insert activities already seen
this happens because we're paginating with just an offset, meaning that
when new activities get inserted that offset "gets shifted forward" and
we receive again some activities we saw already. this should get fixed
for good on the backend, but for now discarding them here makes it
usable
2024-04-24 05:48:41 +02:00
6c92328b8d
feat(web): hide sensitive posts, add posting option 2024-04-24 05:38:09 +02:00
ed0a4fd211
fix: always forget about this... 2024-04-24 05:21:04 +02:00
3156b8d2d2
feat: sensitive field
this is not part of activitystreams afaik and should not be in apub but
it's quite convenient to do it this way sooooooooooo for now will do
2024-04-24 05:19:39 +02:00
abf4e8b370
fix: always embed specific activities 2024-04-24 05:04:30 +02:00
7617170206
feat(web): expandable images
is it sustainable to create a signal for each image? we'll find out!
2024-04-24 04:58:46 +02:00
1ce364276b
fix(web): attachment padding 2024-04-24 04:50:50 +02:00
d71510595d
fix(web): don't embed all activities
only create and announce, also show actor for follows
2024-04-24 04:50:17 +02:00
2ba96e802e
fix: show own activities/objects 2024-04-24 04:08:07 +02:00
66f36ce71b
fix(web): show stray objects too 2024-04-24 04:07:45 +02:00
768081c251
fix: big refactor of timelines querying
should not be more reliable, consistent and all around less buggy, but
it may actually break some things so let's find out
2024-04-24 02:32:23 +02:00
165bf19f8c
feat: don't add next link when done paginating 2024-04-23 23:37:57 +02:00
e9c765b555
feat(web): remove more button when tl is over 2024-04-23 23:37:39 +02:00
8969780b29
feat(web): added CWs, better images 2024-04-23 23:28:19 +02:00
d50a762f63
fix(apb): is_empty === len()==0, new is_nothing
basically is_empty on an empty Node::Vec is true, but is_nothing on an
empty Node::Vec is false
2024-04-23 23:27:01 +02:00
deb5fe5744
fix(apb): don't iter vec needlessly 2024-04-23 23:26:49 +02:00
ba07b2cb9d
fix(apb): correct node order when iterating
use a VecDeque under the hood to be able to pop_front()
2024-04-23 20:58:37 +02:00
4b4d52ef6f
feat: fetch related things
fetching an object will get its author
fetching an activity will get its object and author
2024-04-23 17:56:46 +02:00
1741837bd0
fix(web): prefetch also users from attributed_to 2024-04-23 17:35:03 +02:00
597dee934d
fix: try hiding locked activities for public objs
idk if this works but basically when there's a public object from a
private activity, the query joins the activity anyway because it uses
the object relation, try using the addressing relation and see what
comes out
2024-04-23 17:21:32 +02:00
8a6c05f4fb
fix: relay follow/accept are public 2024-04-23 16:54:03 +02:00
2a9cf5bcf5
feat: command to also accept relay follow reqs
this has quite awful UX because you can't really know if relay is
following back without checking logs, but whatevvvv works for now
2024-04-23 16:26:19 +02:00
dfbadf5d11
fix: oops i meant server inbox GET, now it is 2024-04-23 06:29:52 +02:00
2bf4469270
feat: server timeline is object-based 2024-04-23 06:21:02 +02:00
70920985cf
fix: use hs2019 instead of rsa-sha256
im not sure why but apparently there's some bug somewhere? maybe some
instances are picky and want the new thing? should still be fine using
sha256 as signing tho
2024-04-23 05:46:48 +02:00
1731bcb1c6
fix: remove again trailing slash 2024-04-23 05:31:19 +02:00
2cb6cfd2f1
fix: well-known nodeinfo base url 2024-04-23 05:29:26 +02:00
8b88d24250
fix: show signature when invalid 2024-04-23 05:19:24 +02:00
e316e1a840
fix: also change main key name for actor 2024-04-23 05:07:04 +02:00
4f8132a642
fix: dispatcher check doesn't include trailing 2024-04-23 05:01:59 +02:00
8150b9082d
fix: proper addressing, ctx.base() with trailing /
maybe aode-relay (and rust IRI parser) goes mad if there's no
trailing slash? idk, i'm speculating
2024-04-23 04:56:29 +02:00