chore: normalize function for getting original written message content (#3514)
This commit is contained in:
parent
37341eccc5
commit
e029c38f7d
3 changed files with 19 additions and 47 deletions
|
|
@ -520,20 +520,10 @@ class GetAnalyticsController extends BaseController {
|
|||
ownMessage: room.client.userID == event.senderId,
|
||||
);
|
||||
|
||||
final String? originalSent = pangeaMessageEvent.originalSent?.text;
|
||||
String? originalWritten = originalSent;
|
||||
if (pangeaMessageEvent.originalWritten != null &&
|
||||
!pangeaMessageEvent.originalWritten!.content.originalSent) {
|
||||
originalWritten = pangeaMessageEvent.originalWritten!.text;
|
||||
} else if (pangeaMessageEvent.originalSent?.choreo != null &&
|
||||
pangeaMessageEvent.originalSent!.choreo!.choreoSteps.isNotEmpty) {
|
||||
final steps = pangeaMessageEvent.originalSent!.choreo!.choreoSteps;
|
||||
originalWritten = steps.first.text;
|
||||
}
|
||||
|
||||
final Map<String, String?> entry = {
|
||||
"sent": originalSent,
|
||||
"written": originalWritten,
|
||||
"sent": pangeaMessageEvent.originalSent?.text ??
|
||||
pangeaMessageEvent.body,
|
||||
"written": pangeaMessageEvent.originalWrittenContent,
|
||||
};
|
||||
|
||||
messages.add(entry);
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:fluffychat/pangea/chat_settings/utils/download_file.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dart';
|
||||
import '../../choreographer/models/choreo_record.dart';
|
||||
|
||||
Future<void> downloadChat(
|
||||
Room room,
|
||||
|
|
@ -134,19 +133,6 @@ List<PangeaMessageEvent> getPangeaMessageEvents(
|
|||
return allPangeaMessages;
|
||||
}
|
||||
|
||||
String getOriginalText(PangeaMessageEvent message) {
|
||||
try {
|
||||
final List<ChoreoRecordStep>? steps =
|
||||
message.originalSent?.choreo?.choreoSteps;
|
||||
if (steps != null && steps.isNotEmpty) return steps.first.text;
|
||||
if (message.originalWritten != null) return message.originalWritten!.text;
|
||||
if (message.originalSent != null) return message.originalSent!.text;
|
||||
return message.body;
|
||||
} catch (err) {
|
||||
return message.body;
|
||||
}
|
||||
}
|
||||
|
||||
String getSentText(PangeaMessageEvent message) =>
|
||||
message.originalSent?.text ?? message.body;
|
||||
|
||||
|
|
@ -196,7 +182,7 @@ String getTxtContent(
|
|||
final String timestamp =
|
||||
DateFormat('yyyy-MM-dd hh:mm:ss').format(message.originServerTs);
|
||||
final String sender = message.senderId;
|
||||
final String originalMsg = getOriginalText(message);
|
||||
final String originalMsg = message.originalWrittenContent;
|
||||
final String sentMsg = getSentText(message);
|
||||
final bool usageAvailable = usageIsAvailable(message);
|
||||
|
||||
|
|
@ -245,7 +231,7 @@ String getCSVContent(
|
|||
final String timestamp =
|
||||
DateFormat('yyyy-MM-dd hh:mm:ss').format(message.originServerTs);
|
||||
final String sender = message.senderId;
|
||||
final String originalMsg = getOriginalText(message);
|
||||
final String originalMsg = message.originalWrittenContent;
|
||||
final String sentMsg = getSentText(message);
|
||||
final bool usageAvailable = usageIsAvailable(message);
|
||||
|
||||
|
|
@ -306,7 +292,7 @@ List<int> getExcelContent(
|
|||
for (int i = 0; i < messages.length; i++) {
|
||||
final PangeaMessageEvent message = messages[i];
|
||||
final String sender = message.senderId;
|
||||
final String originalMsg = getOriginalText(message);
|
||||
final String originalMsg = message.originalWrittenContent;
|
||||
final String sentMsg = getSentText(message);
|
||||
final bool usageAvailable = usageIsAvailable(message);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import 'package:matrix/matrix.dart';
|
|||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/choreographer/models/choreo_record.dart';
|
||||
import 'package:fluffychat/pangea/choreographer/models/pangea_match_model.dart';
|
||||
import 'package:fluffychat/pangea/choreographer/repo/full_text_translation_repo.dart';
|
||||
import 'package:fluffychat/pangea/choreographer/repo/language_detection_repo.dart';
|
||||
import 'package:fluffychat/pangea/common/constants/model_keys.dart';
|
||||
|
|
@ -586,6 +585,19 @@ class PangeaMessageEvent {
|
|||
RepresentationEvent? get originalWritten => representations
|
||||
.firstWhereOrNull((element) => element.content.originalWritten);
|
||||
|
||||
String get originalWrittenContent {
|
||||
String? written = originalSent?.content.text;
|
||||
if (originalWritten != null && !originalWritten!.content.originalSent) {
|
||||
written = originalWritten!.text;
|
||||
} else if (originalSent?.choreo != null &&
|
||||
originalSent!.choreo!.choreoSteps.isNotEmpty) {
|
||||
final steps = originalSent!.choreo!.choreoSteps;
|
||||
written = steps.first.text;
|
||||
}
|
||||
|
||||
return written ?? body;
|
||||
}
|
||||
|
||||
PangeaRepresentation get defaultRepresentation => PangeaRepresentation(
|
||||
langCode: LanguageKeys.unknownLanguage,
|
||||
text: body,
|
||||
|
|
@ -698,22 +710,6 @@ class PangeaMessageEvent {
|
|||
/// it returns the message body.
|
||||
String get messageDisplayText => messageDisplayRepresentation?.text ?? body;
|
||||
|
||||
List<PangeaMatch>? errorSteps(String lemma) {
|
||||
final RepresentationEvent? repEvent = originalSent ?? originalWritten;
|
||||
if (repEvent?.choreo == null) return null;
|
||||
|
||||
final List<PangeaMatch> steps = repEvent!.choreo!.choreoSteps
|
||||
.where(
|
||||
(choreoStep) =>
|
||||
choreoStep.acceptedOrIgnoredMatch != null &&
|
||||
choreoStep.acceptedOrIgnoredMatch?.match.shortMessage == lemma,
|
||||
)
|
||||
.map((element) => element.acceptedOrIgnoredMatch)
|
||||
.cast<PangeaMatch>()
|
||||
.toList();
|
||||
return steps;
|
||||
}
|
||||
|
||||
/// Returns a list of all [PracticeActivityEvent] objects
|
||||
/// associated with this message event.
|
||||
List<PracticeActivityEvent> get _practiceActivityEvents {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue