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