Commit graph

58 commits

Author SHA1 Message Date
Johann150
a5241379af
fix lints 2022-06-24 12:44:22 +02:00
Johann150
6078c986d3
fix: render empty note content correctly
Instead of coercing to `null`, coercing to an empty string should simplify handling.
2022-06-16 12:51:44 +02:00
Johann150
b54f906605
fix: correctly render note text
Fix a regression from #8787 that was previously fixed in #8440.
2022-06-16 12:32:09 +02:00
Johann150
a683a7092d
enhance(federation): use ActivityPub defined property in favour of proprietary property. (#8787)
* add activitypub `source` property

* parse MFM from new `source` attribute
2022-06-10 14:31:58 +09:00
syuilo
11afdf7e24 fix bug 2022-06-04 15:15:44 +09:00
Johann150
32dff28460
fix: add id for activitypub follows (#8689)
* add id for activitypub follows

* fix lint

* fix: follower must be local, followee must be remote

Misskey will only use ActivityPub follow requests for users that are local
and are requesting to follow a remote user. This check is to ensure that
this endpoint can not be used by other services or instances.

* fix: missing import

* render block with id

* fix comment
2022-06-04 13:52:42 +09:00
Johann150
9954c054a7
fix: ensure resolver does not fetch local resources via HTTP(S) (#8733)
* refactor: parseUri types and checks

The type has been refined to better represent what it actually is. Uses of
parseUri are now also checking the parsed object type before resolving.

* cannot resolve URLs with fragments

* also take remaining part of URL into account

Needed for parsing the follows URIs.

* Resolver uses DbResolver for local

* remove unnecessary use of DbResolver

Using DbResolver would mean that the URL is parsed and handled again.
This duplicated processing can be avoided by querying the database directly.

* fix missing property name
2022-06-04 11:29:20 +09:00
Johann150
81109b14b5
fix: correctly render empty note text (#8746)
Ensure that the _misskey_content attribute will always exist. Because
the API endpoint does not require the existence of the `text` field,
that field may be `undefined`. By using `?? null` it can be ensured
that the value is at least `null`.

Furthermore, the rendered HTML of a note with empty text will also be
the empty string. From git blame it seems that this behaviour was added
because of a Mastodon bug that might have previously existed. Hoever,
this seems to be no longer the case as I can find mastodon posts that
have empty content.

The code could be made a bit more succinct by using the null coercion
operator.
2022-06-03 23:18:44 +09:00
Johann150
804fa33535
refactor: improve code quality (#8751)
* remove unnecessary if

`Array.prototype.some` already returns a boolean so an if to return
true or false is completely unnecessary in this case.

* perf: use count instead of find

When using `count` instead of `findOneBy`, the data is not
unnecessarily loaded.

* remove duplicate null check

The variable is checked for null in the lines above and the function
returns if so. Therefore, it can not be null at this point.

* simplify `getJsonSchema`

Because the assigned value is `null` and the used keys are only
shallow, use of `nestedProperty.set` seems inappropriate. Because the
value is not read, the initial for loop can be replaced by a `for..in`
loop.

Since all keys will be assigned `null`, the condition of the ternary
expression in the nested function will always be true. Therefore the
recursion case will never happen. With this the nested function can be
eliminated.

* remove duplicate condition

The code above already checks `dragging` and returns if it is truthy.
Checking it again later is therefore unnecessary.

To make this more obvious the `return` is removed in favour of using
an if...else construct.

* remove impossible "unknown" time

The `ago` variable will always be a number and all non-negative numbers
are already covered by other cases, the negative case is handled with
`future` so there is no case when `unkown` could be achieved.
2022-05-29 15:15:52 +09:00
Johann150
e54aa56ee1
chore: remove unused imports 2022-05-28 21:17:23 +02:00
Johann150
6b109c7b0f
fix: wrong type for isVisibleForMe 2022-05-24 10:12:42 +02:00
Johann150
edfded7fb7
fix(activitypub): add authorization checks (#8534)
* fix spelling

* fix(activitypub): add authorization checks
2022-05-19 20:40:16 +09:00
syuilo
ce51ef5df5 refactor 2022-04-17 21:01:02 +09:00
syuilo
31e5c5f69a refactor
Resolve #8467
2022-04-17 20:58:37 +09:00
syuilo
02bb36cdc4 refactor: fix type 2022-04-17 20:44:21 +09:00
syuilo
2d2b3edaaf refactor: fix type 2022-04-17 13:26:31 +09:00
syuilo
ddd655c0c1 refactor: fix type 2022-04-17 13:14:29 +09:00
syuilo
d39465085c refactor: fix type 2022-04-17 12:59:41 +09:00
syuilo
4907dc91f7 lint 2022-04-16 17:18:51 +09:00
syuilo
7f5d189528 fix type 2022-04-03 16:40:47 +09:00
syuilo
ff9a074ab6 fix type 2022-04-03 16:35:36 +09:00
syuilo
91f4ec3747 fix types 2022-04-03 16:30:22 +09:00
syuilo
41c2aed7dc chore: fix lint 2022-04-03 15:33:22 +09:00
syuilo
6b6464a659 fix syntax error 2022-04-02 15:31:11 +09:00
Johann150
1033e8e57f
fix(federation): avoid duplicate activity delivery (#8429)
* prefer shared inbox over individual inbox

* no new shared inbox for direct recipes

* fix type error
2022-04-02 15:16:35 +09:00
syuilo
17589843da perf(server): use cached user info in getUserFromApId 2022-03-26 19:09:57 +09:00
syuilo
8cbfc047bb refactor 2022-03-26 18:42:37 +09:00
syuilo
3cac8e0f6f perf(server): improve deliver performance 2022-03-26 17:43:08 +09:00
syuilo
1c67c26bd8
refactor: migrate to typeorm 3.0 (#8443)
* wip

* wip

* wip

* Update following.ts

* wip

* wip

* wip

* Update resolve-user.ts

* maxQueryExecutionTime

* wip

* wip
2022-03-26 15:34:00 +09:00
syuilo
ac8c66f5ab perf(server): refactor and performance improvements 2022-03-25 16:27:41 +09:00
Johann150
725b78349a
recognize null in _misskey_content for notes (#8440) 2022-03-23 03:16:04 +09:00
MeiMei
ba9563b983
Use unique id for Undo (#8434) 2022-03-22 00:39:00 +09:00
syuilo
21de5c4a9c perf(server): reduce db query 2022-03-21 05:42:11 +09:00
syuilo
aebd77ad38 perf(server): reduce db query 2022-03-20 15:44:49 +09:00
xianon
0a6c9a00bd
リレーが動作するように修正する (#8396) 2022-03-12 13:21:04 +09:00
syuilo
51517cf96c fix esm 2022-03-01 01:26:32 +09:00
syuilo
4701127946 fix esm 2022-03-01 01:24:50 +09:00
tamaina
e314be5b59
Fix avatar/banner proxy (#8346)
* Fix avatar/banner proxy

Co-authored-by: mei23 <m@m544.net>

* use getAvatarUrl

* fix

* join avatar and banner to improve performance

* join

* Update hybrid-timeline.ts

* fix

Co-authored-by: mei23 <m@m544.net>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-02-27 13:59:10 +09:00
syuilo
d071d18dd7
refactor: Use ESM (#8358)
* wip

* wip

* fix

* clean up

* Update tsconfig.json

* Update activitypub.ts

* wip
2022-02-27 11:07:39 +09:00
syuilo
b6db709e02 refacator: fix typw 2022-02-19 14:53:33 +09:00
nullobsi
3ff89fa7ec
feat: Option to show replies in timeline (rebase #7685) (#8202)
* Add an option for timeline replies. Credit to Emilis (puffaboo)

* update db on request
2022-02-06 16:02:48 +09:00
syuilo
bd7662e5e4 refactor 2022-02-04 11:10:53 +09:00
syuilo
6caec5b8e2 refactor 2022-02-03 21:43:53 +09:00
syuilo
b7bbe090e9 refactor 2022-02-03 21:20:25 +09:00
syuilo
449709f6cb refactor: fix type 2022-01-26 18:42:14 +09:00
MeiMei
7aecf15f94
refactor, enhance: ドライブ引数のオブジェクト化, 追加時のcomment指定 (#8180)
* refactor: ドライブの引数をオブジェクト化する Resolve #8177

* Resolve #8181

* fix

* archivePath
2022-01-23 22:52:35 +09:00
MeiMei
d8905a9588
Unifying Misskey-specific IRIs in JSON-LD @context Resolve #8116 (#8178)
* Unifying Misskey-specific IRIs in JSON-LD `@context` Resolve #8116

* CHANGELOG
2022-01-23 01:52:35 +09:00
syuilo
eec7e6500e enhance: convert svg to png of custom emojis 2022-01-21 18:47:02 +09:00
Johann150
cbb7e95d82
enhance: Forward report (#8001)
* implement sending AP Flag object

Optionally allow a user to select to forward a report about a remote
user to the other instance. This is added in a backwards-compatible way.

* add locale string

* forward report only for moderators

* add switch to moderator UI to forward report

* fix report note url

* return forwarded status from API

apparently forgot to carry this over from my testing environment

* object in Flag activity has to be an array

For correct interoperability with Pleroma the "object" property of the Flag
activity has to be an array.

This array will in the future also hold the link to respective notes, so it
makes sense to correct this on our side.

* Update get-note-menu.ts

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-01-21 03:06:38 +09:00
syuilo
6be1db00d1 refactor(server): use insert instead of save 2022-01-03 02:20:30 +09:00