Markdown.
This commit is contained in:
		
							parent
							
								
									1f5dc57d6f
								
							
						
					
					
						commit
						03c72e85f7
					
				| @ -5,3 +5,4 @@ class ChannelMessageModel(BaseModel): | |||||||
|     channel_uid = ModelField(name="channel_uid", required=True, kind=str) |     channel_uid = ModelField(name="channel_uid", required=True, kind=str) | ||||||
|     user_uid = ModelField(name="user_uid", required=True, kind=str) |     user_uid = ModelField(name="user_uid", required=True, kind=str) | ||||||
|     message = ModelField(name="message", required=True, kind=str) |     message = ModelField(name="message", required=True, kind=str) | ||||||
|  |     html = ModelField(name="html", required=False, kind=str) | ||||||
|  | |||||||
| @ -1,14 +1,38 @@ | |||||||
| from snek.system.service import BaseService | from snek.system.service import BaseService | ||||||
| 
 | import jinja2  | ||||||
| 
 | 
 | ||||||
| class ChannelMessageService(BaseService): | class ChannelMessageService(BaseService): | ||||||
|     mapper_name = "channel_message" |     mapper_name = "channel_message" | ||||||
| 
 | 
 | ||||||
|     async def create(self, channel_uid, user_uid, message): |     async def create(self, channel_uid, user_uid, message): | ||||||
|         model = await self.new() |         model = await self.new() | ||||||
|  |          | ||||||
|         model["channel_uid"] = channel_uid |         model["channel_uid"] = channel_uid | ||||||
|         model["user_uid"] = user_uid |         model["user_uid"] = user_uid | ||||||
|         model["message"] = message |         model["message"] = message | ||||||
|  |                  | ||||||
|  |         context = { | ||||||
|  |              | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |          | ||||||
|  |         record = model.record  | ||||||
|  |         context.update(record) | ||||||
|  |         user = await self.app.services.user.get(uid=user_uid) | ||||||
|  |         context.update(dict( | ||||||
|  |             user_uid=user['uid'], | ||||||
|  |             username=user['username'], | ||||||
|  |             user_nick=user['nick'] | ||||||
|  |         )) | ||||||
|  |         try: | ||||||
|  |             template = self.app.jinja2_env.get_template("message.html") | ||||||
|  |             model["html"] = template.render(**context) | ||||||
|  |         except Exception as ex: | ||||||
|  |             print(ex,flush=True) | ||||||
|  |         print("RENDER",flush=True) | ||||||
|  |         print("RECORD",context,flush=True) | ||||||
|  |          | ||||||
|  |         print("AFTER RENDER",flush=True) | ||||||
|         if await self.save(model): |         if await self.save(model): | ||||||
|             return model |             return model | ||||||
|         raise Exception(f"Failed to create channel message: {model.errors}.") |         raise Exception(f"Failed to create channel message: {model.errors}.") | ||||||
|  | |||||||
| @ -17,7 +17,8 @@ class ChatService(BaseService): | |||||||
|         user = await self.services.user.get(uid=user_uid) |         user = await self.services.user.get(uid=user_uid) | ||||||
|         await self.services.notification.create_channel_message(channel_message_uid) |         await self.services.notification.create_channel_message(channel_message_uid) | ||||||
|         sent_to_count = await self.services.socket.broadcast(channel_uid, dict( |         sent_to_count = await self.services.socket.broadcast(channel_uid, dict( | ||||||
|             message=message, |             message=channel_message["message"], | ||||||
|  |             html=channel_message["html"], | ||||||
|             user_uid=user_uid, |             user_uid=user_uid, | ||||||
|             color=user['color'], |             color=user['color'], | ||||||
|             channel_uid=channel_uid, |             channel_uid=channel_uid, | ||||||
|  | |||||||
| @ -34,6 +34,7 @@ class MessageListElement extends HTMLElement { | |||||||
|         element.dataset.created_at = message.created_at |         element.dataset.created_at = message.created_at | ||||||
|         element.dataset.user_uid = message.user_uid |         element.dataset.user_uid = message.user_uid | ||||||
|         element.dataset.message = message.message  |         element.dataset.message = message.message  | ||||||
|  |          | ||||||
|         element.classList.add("message") |         element.classList.add("message") | ||||||
|         if(!this.messages.length){ |         if(!this.messages.length){ | ||||||
|             element.classList.add("switch-user") |             element.classList.add("switch-user") | ||||||
| @ -53,7 +54,8 @@ class MessageListElement extends HTMLElement { | |||||||
|         author.textContent = message.user_nick |         author.textContent = message.user_nick | ||||||
|         const text = document.createElement("div") |         const text = document.createElement("div") | ||||||
|         text.classList.add("text") |         text.classList.add("text") | ||||||
|         text.innerHTML = this.linkifyText(message.message) |         if(message.html) | ||||||
|  |             text.innerHTML = this.linkifyText(message.html) | ||||||
|         const time = document.createElement("div") |         const time = document.createElement("div") | ||||||
|         time.classList.add("time") |         time.classList.add("time") | ||||||
|         time.textContent = message.created_at |         time.textContent = message.created_at | ||||||
| @ -79,6 +81,7 @@ class MessageListElement extends HTMLElement { | |||||||
|             message.user_nick, |             message.user_nick, | ||||||
|             message.color, |             message.color, | ||||||
|             message.message, |             message.message, | ||||||
|  |             message.html, | ||||||
|             message.created_at, |             message.created_at, | ||||||
|             message.updated_at |             message.updated_at | ||||||
|         ) |         ) | ||||||
|  | |||||||
| @ -1,14 +1,16 @@ | |||||||
| class MessageModel { | class MessageModel { | ||||||
|     message = null  |     message = null  | ||||||
|  |     html = null | ||||||
|     user_uid = null  |     user_uid = null  | ||||||
|     channel_uid = null  |     channel_uid = null  | ||||||
|     created_at = null  |     created_at = null  | ||||||
|     updated_at = null   |     updated_at = null   | ||||||
|     element = null  |     element = null  | ||||||
|     color = null |     color = null | ||||||
|     constructor(uid, channel_uid,user_uid,user_nick, color,message,created_at, updated_at){ |     constructor(uid, channel_uid,user_uid,user_nick, color,message,html,created_at, updated_at){ | ||||||
|         this.uid = uid  |         this.uid = uid  | ||||||
|         this.message = message  |         this.message = message  | ||||||
|  |         this.html = html  | ||||||
|         this.user_uid = user_uid  |         this.user_uid = user_uid  | ||||||
|         this.user_nick = user_nick |         this.user_nick = user_nick | ||||||
|         this.color = color |         this.color = color | ||||||
|  | |||||||
| @ -73,7 +73,8 @@ class RPCView(BaseView): | |||||||
|                     channel_uid=message["channel_uid"], |                     channel_uid=message["channel_uid"], | ||||||
|                     user_nick=user['nick'], |                     user_nick=user['nick'], | ||||||
|                     message=message["message"], |                     message=message["message"], | ||||||
|                     created_at=message["created_at"] |                     created_at=message["created_at"], | ||||||
|  |                     html=message['html']  | ||||||
|                 )) |                 )) | ||||||
|             return messages |             return messages | ||||||
|          |          | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user