Handle no match cases and modify textForEvent to handle redacted messages
This commit is contained in:
parent
c58abd9582
commit
8a1cd77ef4
2 changed files with 13 additions and 9 deletions
|
@ -13,13 +13,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
import {MatrixClientPeg} from './MatrixClientPeg';
|
||||
import { MatrixClientPeg } from './MatrixClientPeg';
|
||||
import { _t } from './languageHandler';
|
||||
import * as Roles from './Roles';
|
||||
import {isValid3pidInvite} from "./RoomInvite";
|
||||
import { isValid3pidInvite } from "./RoomInvite";
|
||||
import SettingsStore from "./settings/SettingsStore";
|
||||
import {ALL_RULE_TYPES, ROOM_RULE_TYPES, SERVER_RULE_TYPES, USER_RULE_TYPES} from "./mjolnir/BanList";
|
||||
import {WIDGET_LAYOUT_EVENT_TYPE} from "./stores/widgets/WidgetLayoutStore";
|
||||
import { ALL_RULE_TYPES, ROOM_RULE_TYPES, SERVER_RULE_TYPES, USER_RULE_TYPES } from "./mjolnir/BanList";
|
||||
import { WIDGET_LAYOUT_EVENT_TYPE } from "./stores/widgets/WidgetLayoutStore";
|
||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
||||
|
||||
// These functions are frequently used just to check whether an event has
|
||||
// any text to display at all. For this reason they return deferred values
|
||||
|
@ -235,11 +236,13 @@ function textForServerACLEvent(ev): () => string | null {
|
|||
return getText;
|
||||
}
|
||||
|
||||
function textForMessageEvent(ev): () => string | null {
|
||||
function textForMessageEvent(ev: MatrixEvent): () => string | null {
|
||||
return () => {
|
||||
const senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||
const isRedacted = ev.isRedacted();
|
||||
let message = ev.getContent().body;
|
||||
if (ev.getContent().msgtype === "m.emote") {
|
||||
if (isRedacted) message = "Message Deleted";
|
||||
else if (ev.getContent().msgtype === "m.emote") {
|
||||
message = "* " + senderDisplayName + " " + message;
|
||||
} else if (ev.getContent().msgtype === "m.image") {
|
||||
message = _t('%(senderDisplayName)s sent an image.', {senderDisplayName});
|
||||
|
|
|
@ -35,12 +35,13 @@ export default class PlainTextExporter extends Exporter {
|
|||
|
||||
const match = REPLY_REGEX.exec(content.body);
|
||||
|
||||
if (!match) return content.body;
|
||||
|
||||
let rplSource: string;
|
||||
const rplName = match[1];
|
||||
const rplText = match[3];
|
||||
const sourceMatch = REPLY_REGEX.exec(content.body);
|
||||
rplSource = sourceMatch && sourceMatch.length === 4 ? sourceMatch[3] : content.body;
|
||||
rplSource = rplSource.substring(0, REPLY_SOURCE_MAX_LENGTH);
|
||||
|
||||
rplSource = match[2].substring(1, REPLY_SOURCE_MAX_LENGTH);
|
||||
// Get the first non-blank line from the source.
|
||||
const lines = rplSource.split('\n').filter((line) => !/^\s*$/.test(line))
|
||||
if (lines.length > 0) {
|
||||
|
|
Loading…
Reference in a new issue