From 6c5bb9a6d1c9aca3754e540a8feb6f23f934c245 Mon Sep 17 00:00:00 2001 From: doesnm Date: Tue, 30 Jan 2024 18:33:43 +0300 Subject: [PATCH] aliases, message author, get rid from bulma --- README.md | 1 - blog.js | 32 ++++++++++++++++++++++---------- index.html | 8 +------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 033c7bb..cf1c415 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,3 @@ При переходе на #!id:homeserver.ru если комната разрешает просмотр гостям, то появляется "список постов" Можно получить отдельное событие через #id:homeserver.ru/!event_id:homeserver.ru -[![Made with Bulma](https://bulma.io/images/made-with-bulma.png)](https://bulma.io) diff --git a/blog.js b/blog.js index ce18fe7..e092fc1 100644 --- a/blog.js +++ b/blog.js @@ -1,6 +1,5 @@ let posts = []; const table = document.querySelector("table"); - function getReactions(posts,p){ let reactions = []; const preReactions = posts.filter(f => f.type == "m.reaction" && f.content["m.relates_to"].event_id == p.event_id).map(m => m.content["m.relates_to"]); @@ -23,8 +22,8 @@ function getReactions(posts,p){ } function printPost(post,roomId,noButton){ let body = DOMPurify.sanitize(post.content.formatted_body ?? post.content.body); -body = body.split("\n").join("
"); - table.innerHTML += `${body}${post.content.msgtype == "m.image" ? `
` : ''}${!noButton ? `Открыть` : ''}`; + body = body.split("\n").join("
"); + table.innerHTML += `${post.sender}
${body}${post.content.msgtype == "m.image" ? `
` : ''}${!noButton ? `
Открыть` : ''}`; } function loadPosts(roomId,start){ @@ -41,11 +40,17 @@ if(!["m.room.message","m.reaction"].includes(c.type)) return; if(c.redacted_because) return; if(ignored_events.includes(c.event_id)) return; if(c.type == "m.room.message"){ +if(c.content.formatted_body != undefined){ + c.content.body = ""; + if(c.content["m.new_content"]) c.content["m.new_content"].body = ""; + } + + } + if(c.content.formatted_body != undefined){ c.content.body = ""; if(c.content["m.new_content"]) c.content["m.new_content"].body = ""; } - } if(c.content["m.new_content"]){ if(ignored_events.includes(c.content["m.relates_to"].event_id)) return; @@ -53,19 +58,26 @@ if(c.type == "m.room.message"){ c.content = c.content["m.new_content"]; } posts.push(c); - }); + }) posts.forEach((p,i,a) => { printPost(p,roomId); }); if(json.end) table.innerHTML += ``; -}); +}) } } - window.onhashchange = () => { let hash = location.hash.slice(1); if(hash.startsWith("!") && !hash.includes("/")){ return loadPosts(hash,undefined); + }else if(('#' + hash).match(/\#(.*)\:(\w*)\.(\w*)/gm)){ + fetch(`https://matrix.org/_matrix/client/v3/directory/room/%23${hash.replace(":","%3A")}`).then(r => r.json()).then(json => { + if(!json.room_id){ + table.innerHTML = `Ошибка!Алиас не найден`; + }else{ + loadPosts(json.room_id) + } + }) } if(hash.includes("/")){ hash = hash.split("/"); @@ -81,10 +93,10 @@ table.innerHTML = `Контент`; } }); }else{ -//loadPosts("roomId"); -table.innerHTML = "Добро пожаловатьЭто блог работающий поверх децентрализованного мессенджера Matrix" + +table.innerHTML = 'Добро пожаловатьЭто блог работающий поверх децентрализованного мессенджера Matrix' } }; window.addEventListener("load", () => { window.onhashchange(); -}); \ No newline at end of file +}); diff --git a/index.html b/index.html index c9cede3..50e792d 100644 --- a/index.html +++ b/index.html @@ -3,18 +3,12 @@ - Blog - - - - -
АААААААААААААААААААААААААААААААА
+
-