summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2022-10-13 17:19:54 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2022-10-13 17:55:07 +0200
commit37009906bb3521db3ae77a0bb39a6943b7ccdec0 (patch)
tree612c6360194266ebb83f96016ff37e6626d57ad6 /src/timeline
parentBump mtxclient (diff)
downloadnheko-37009906bb3521db3ae77a0bb39a6943b7ccdec0.tar.xz
Evaluate push rules locally
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/Permissions.h2
-rw-r--r--src/timeline/TimelineModel.cpp11
-rw-r--r--src/timeline/TimelineModel.h2
3 files changed, 15 insertions, 0 deletions
diff --git a/src/timeline/Permissions.h b/src/timeline/Permissions.h

index aa10999d..1b3f55e4 100644 --- a/src/timeline/Permissions.h +++ b/src/timeline/Permissions.h
@@ -34,6 +34,8 @@ public: void invalidate(); + const mtx::events::state::PowerLevels &powerlevelEvent() const { return pl; }; + private: QString roomId_; mtx::events::state::PowerLevels pl; diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 0eec5cae..0e726bde 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp
@@ -2921,6 +2921,17 @@ TimelineModel::directChatOtherUserId() const return {}; } +mtx::pushrules::PushRuleEvaluator::RoomContext +TimelineModel::pushrulesRoomContext() const +{ + return mtx::pushrules::PushRuleEvaluator::RoomContext{ + .user_display_name = + cache::displayName(room_id_.toStdString(), http::client()->user_id().to_string()), + .member_count = cache::client()->memberCount(room_id_.toStdString()), + .power_levels = permissions_.powerlevelEvent(), + }; +} + RoomSummary * TimelineModel::parentSpace() { diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 8e191556..a4904f4f 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h
@@ -336,6 +336,8 @@ public: bool isDirect() const { return roomMemberCount() <= 2; } QString directChatOtherUserId() const; + mtx::pushrules::PushRuleEvaluator::RoomContext pushrulesRoomContext() const; + std::optional<mtx::events::collections::TimelineEvents> eventById(const QString &id) { auto e = events.get(id.toStdString(), "");