Compare commits
	
		
			2 commits
		
	
	
		
			217a815750
			...
			20bacce068
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 20bacce068 | |||
| f80bf36991 | 
					 4 changed files with 58 additions and 28 deletions
				
			
		| 
						 | 
				
			
			@ -14,7 +14,6 @@ class MatrixEvent extends ElemJS {
 | 
			
		|||
	// predicates
 | 
			
		||||
 | 
			
		||||
	canGroup() {
 | 
			
		||||
		//return this.data.type === "m.room.message"
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -52,17 +51,4 @@ class MatrixEvent extends ElemJS {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function simpleEvent(filter, render) {
 | 
			
		||||
	return class extends MatrixEvent {
 | 
			
		||||
		render() {
 | 
			
		||||
			super.render()
 | 
			
		||||
			return this.text(render(this.data))
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		static canRender(event) {
 | 
			
		||||
			return filter(event)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {MatrixEvent, simpleEvent}
 | 
			
		||||
module.exports = {MatrixEvent}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,47 @@
 | 
			
		|||
const {simpleEvent} = require("./event")
 | 
			
		||||
const {MatrixEvent} = require("./event")
 | 
			
		||||
 | 
			
		||||
const UnknownMembership = simpleEvent((e) => e.type == "m.room.member", (e) => "unknown membership event")
 | 
			
		||||
 | 
			
		||||
function createMembershipEvent(membership, message) {
 | 
			
		||||
	return simpleEvent((e) => e.type == "m.room.member" && e.content.membership === membership, message)
 | 
			
		||||
class MembershipEvent extends MatrixEvent {
 | 
			
		||||
	static canRender(event) {
 | 
			
		||||
		return event.type == "m.room.member"
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const JoinedEvent = createMembershipEvent("join", (e) => "joined the room")
 | 
			
		||||
const InvitedEvent = createMembershipEvent("invite", (e) => `invited ${e.content.displayname} the room`)
 | 
			
		||||
const LeaveEvent = createMembershipEvent("leave", () => "left the room")
 | 
			
		||||
 | 
			
		||||
class JoinedEvent extends MembershipEvent {
 | 
			
		||||
	static canRender(event) {
 | 
			
		||||
		return super.canRender(event) && event.content.membership === "join"
 | 
			
		||||
	}
 | 
			
		||||
	render() {
 | 
			
		||||
		super.render()
 | 
			
		||||
		return this.text("joined the room")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class InvitedEvent extends MembershipEvent {
 | 
			
		||||
	static canRender(event) {
 | 
			
		||||
		return super.canRender(event) && event.content.membership === "invite"
 | 
			
		||||
	}
 | 
			
		||||
	render() {
 | 
			
		||||
		super.render()
 | 
			
		||||
		return this.text(`invited ${this.data.content.displayname}`)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class LeaveEvent extends MembershipEvent {
 | 
			
		||||
	static canRender(event) {
 | 
			
		||||
		return super.canRender(event) && event.content.membership === "leave"
 | 
			
		||||
	}
 | 
			
		||||
	render() {
 | 
			
		||||
		super.render()
 | 
			
		||||
		return this.text(`left the room`)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class UnknownMembership extends MembershipEvent {
 | 
			
		||||
	render() {
 | 
			
		||||
		super.render()
 | 
			
		||||
		return this.text("unknown membership event")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = [JoinedEvent, InvitedEvent, LeaveEvent, UnknownMembership]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,8 +24,8 @@ purifier.addHook("uponSanitizeAttribute", (node, hookevent, config) => {
 | 
			
		|||
	hookevent.keepAttr = allowed_attributes.indexOf(hookevent.attrName) > -1;
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
//Remove bad classes from our code element
 | 
			
		||||
purifier.addHook("uponSanitizeElement", (node, hookevent, config) => {
 | 
			
		||||
	// Remove bad classes from our code element
 | 
			
		||||
	if (node.tagName == "CODE") {
 | 
			
		||||
		node.classList.forEach(c => {
 | 
			
		||||
			if (!c.startsWith("language-")) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,13 @@
 | 
			
		|||
const {simpleEvent} = require("./event")
 | 
			
		||||
const UnknownEvent = simpleEvent(() => true, () => "Cannot render event")
 | 
			
		||||
const {MatrixEvent} = require("./event")
 | 
			
		||||
 | 
			
		||||
class UnknownEvent extends MatrixEvent {
 | 
			
		||||
	static canRender() {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
	render() {
 | 
			
		||||
		super.render()
 | 
			
		||||
		return this.text(`cannot render event`)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
module.exports = [UnknownEvent]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue