diff --git a/deno/ddln_server.ts b/deno/ddln_server.ts index d91b336..2a7738b 100644 --- a/deno/ddln_server.ts +++ b/deno/ddln_server.ts @@ -360,11 +360,15 @@ async function main() { messageDispatch.set('hello2', hello2Handler); messageDispatch.set('peer_message', peerMessageHandler); + const port = parseInt(Deno.env.get("PORT") ?? "443"); + const certFile = Deno.env.get("TLS_CERT") ?? "/etc/letsencrypt/live/ddln.app/fullchain.pem"; + const keyFile = Deno.env.get("TLS_KEY") ?? "/etc/letsencrypt/live/ddln.app/privkey.pem"; + Deno.serve({ hostname: "[::]", - port: 443, - cert: Deno.readTextFileSync("/etc/letsencrypt/live/ddln.app/fullchain.pem"), - key: Deno.readTextFileSync("/etc/letsencrypt/live/ddln.app/privkey.pem"), + port, + cert: Deno.readTextFileSync(certFile), + key: Deno.readTextFileSync(keyFile), }, handler); await devServerWatchFiles(); diff --git a/src/App.ts b/src/App.ts index 75f6f57..ac52c39 100644 --- a/src/App.ts +++ b/src/App.ts @@ -13,12 +13,11 @@ type PeerID = string; class Post { post_timestamp: Date; post_id: string; + reply_to_id: string|null; author: string; author_id: string; text: string; image_data: ArrayBuffer | null; - - importedFrom: "twitter" | null; importSource: any; @@ -29,7 +28,8 @@ class Post { post_timestamp: Date, imageData: ArrayBuffer | null = null, importedFrom: "twitter" | null = null, - importSource: any = null) { + importSource: any = null, + reply_to_id:string|null = null) { this.post_timestamp = post_timestamp; this.post_id = generateID(); @@ -41,6 +41,7 @@ class Post { this.importedFrom = importedFrom; this.importSource = importSource; + this.reply_to_id = reply_to_id; } } @@ -118,6 +119,7 @@ export class App { peername: string = ''; userID: string = ''; peerID: string = ''; + replyToID: string|null = null; following: Set = new Set(); posts: StoragePost[] = []; isHeadless: boolean = false; @@ -342,23 +344,16 @@ export class App { } return true; - // return posts; - - // return postIDs; }); this.peerManager.registerRPC('sendPostForUser', async (sendingPeerID: string, userID: string, post: Post) => { console.log.apply(null, log(`[app] sendPostForUser got post[${logID(post.post_id)}] from peer[${logID(sendingPeerID)}] for user[${logID(userID)}] author[${post.author}] text[${post.text}]`)); - // if (post.text === "image...") { - // debugger; - // } let peerData = this.statusBar.getPeerData(sendingPeerID); if (peerData) { this.statusBar.updatePeerMessage(sendingPeerID, `⬇️${logID(userID)} ${peerData.havePostCount}/${peerData.neededPostCount}}`); } await this.sync.writePostForUser(userID, post); - // if (userID === this.userID) { if (peerData) { peerData.havePostCount++ @@ -372,14 +367,13 @@ export class App { this.renderTimer = setTimeout(() => { this.render() }, 1000); return true; - // } }); - this.statusBar.setMessageHTML("Connecting to ddln network...") + this.statusBar.setMessageHTML("Connecting to ddln...") await this.peerManager.connect(); console.log.apply(null, log("*************** after peerManager.connect"));; - this.statusBar.setMessageHTML("Connected to ddln network...") + this.statusBar.setMessageHTML("Connected to ddln.") @@ -729,7 +723,7 @@ export class App { } } - async createNewPost(userID: string, postText: string, mediaData?: ArrayBuffer, mimeType?: "image/png" | "image/gif" | "image/jpg" | "image/jpeg" | "video/mp4") { + async createPost(userID: string, postText: string, mediaData?: ArrayBuffer, mimeType?: "image/svg+xml" | "image/png" | "image/gif" | "image/jpg" | "image/jpeg" | "video/mp4", replyToID:string|null = null) { if ((typeof postText !== "string") || postText.length === 0) { console.log.apply(null, log("Not posting an empty string...")); return; @@ -737,14 +731,14 @@ export class App { if (mediaData && (mimeType === 'image/jpg' || mimeType === 'image/jpeg' || mimeType === 'image/png') && - (mediaData as ArrayBuffer).byteLength > 500 * 1024) { + (mediaData as ArrayBuffer).byteLength > 256 * 1024) { let compressedImage = await this.compressImage(mediaData as ArrayBuffer, mimeType, 0.9); if (compressedImage) { mediaData = compressedImage as ArrayBuffer; } } - let post = new Post(this.username, userID, postText, new Date(), mediaData); + let post = new Post(this.username, userID, postText, new Date(), mediaData, null, null, replyToID); // this.posts.push(post); // localStorage.setItem(key, JSON.stringify(posts)); addData(userID, post); @@ -990,8 +984,7 @@ export class App { let composeButton = this.div('compose-button'); composeButton.addEventListener('click', e => { - document.getElementById('compose')!.style.display = 'block'; - document.getElementById('textarea_post')?.focus(); + this.enterCompose(); }); @@ -999,11 +992,13 @@ export class App { filePicker?.addEventListener('change', async (event: any) => { for (let file of filePicker.files as any) { let buffer = await file.arrayBuffer(); - await this.createNewPost(this.userID, 'image...', buffer, file.type); + await this.createPost(this.userID, 'image...', buffer, file.type); } // Reset so that if they pick the same image again, we still get the change event. filePicker.value = ''; + + this.exitCompose(); }); let filePickerLabel = document.getElementById('file-input-label'); @@ -1040,25 +1035,28 @@ export class App { // clearPostsButton.addEventListener('click', () => { clearData(userID); posts = []; this.render() }); - - let postButton = document.getElementById("button_post") as HTMLButtonElement; + let cancelPostButton = document.getElementById("button_cancel_post") as HTMLElement; let postText = document.getElementById("textarea_post") as HTMLTextAreaElement; - - if (!(postButton && postText)) { + let postButton = document.getElementById("button_post") as HTMLButtonElement; + + if (!(cancelPostButton && postButton && postText)) { throw new Error(); } + cancelPostButton.addEventListener('click', (e) => { + this.exitCompose(); + }); + postText.addEventListener('paste', async (e) => { const dataTransfer = e.clipboardData const file = dataTransfer!.files[0]; let buffer = await file.arrayBuffer(); - await this.createNewPost(this.userID, 'image...', buffer, file.type as any); + await this.createPost(this.userID, 'image...', buffer, file.type as any); }); postButton.addEventListener("click", () => { - this.createNewPost(userID, postText.value); - postText.value = ""; - document.getElementById('compose')!.style.display = 'none'; + this.createPost(userID, postText.value, undefined, undefined, this.replyToID); + this.exitCompose(); }); // updateApp.addEventListener("click", () => { @@ -1072,6 +1070,31 @@ export class App { } + + // Change this all to a template so we're not toggling state in this crazy way! + enterCompose(replyToID:string|null=null) { + if (replyToID) { + this.renderComposeReplyArea(replyToID); + document.getElementById("compose-reply-area")!.style.display = "block"; + } + + replyToID = replyToID; + + document.getElementById('compose')!.style.display = 'block'; + document.getElementById('textarea_post')?.focus(); + document.getElementById('compose-dimmer')?.classList.add("compose-dimmer-dimmed"); + document.body.classList.add("no-scroll"); + } + + exitCompose() { + let postText = document.getElementById("textarea_post") as HTMLTextAreaElement; + postText.value = ""; + document.getElementById('compose')!.style.display = 'none'; + document.getElementById('compose-dimmer')?.classList.remove("compose-dimmer-dimmed"); + document.getElementById("compose-reply-area")!.style.display = "none"; + document.body.classList.remove("no-scroll"); + } + async getPostsForFeed() { // get N posts from each user and sort them by date. @@ -1486,6 +1509,12 @@ export class App { this.render(); } + renderComposeReplyArea(replyToID:string) { + let composeReplyArea = document.getElementById('compose-reply-area') as HTMLElement; + composeReplyArea.innerText = replyToID; + composeReplyArea.classList.add("show"); + } + renderPost(post: Post, first: boolean) { if (!(post.hasOwnProperty("text"))) { throw new Error("Post is malformed!"); @@ -1505,6 +1534,16 @@ export class App { await navigator.clipboard.writeText(shareUrl) }; + let replyButton = document.createElement('button'); replyButton.innerText = 'reply'; + replyButton.onclick = async () => { + console.log(`replying to post ${post.post_id}`); + this.enterCompose(post.post_id); + // let shareUrl = `${document.location.origin}/user/${post.author_id}/post/${post.post_id}`; + + // await navigator.clipboard.writeText(shareUrl) + }; + + let ownPost = post.author_id === this.userID; let markdown = post.text; @@ -1530,11 +1569,17 @@ export class App { @${post.author} - ${post.post_timestamp.toLocaleDateString()} - ${ownPost ? `` : ''} - ${ownPost ? `` : ''} -
${markdown}
+ +
+ + + ${ownPost ? `` : ''} + + ${ownPost ? `` : ''} + + ` containerDiv.innerHTML = postTemplate; @@ -1545,33 +1590,33 @@ export class App { // containerDiv.querySelector('#editButton')?.appendChild(editButton); } - containerDiv.querySelector('#shareButton')?.appendChild(shareButton); + containerDiv.querySelector('#replyButton')?.appendChild(replyButton); - if (!("image_data" in post && post.image_data)) { - // containerDiv.appendChild(timestampDiv); - return containerDiv; - // return null; + let hasImage = ("image_data" in post && post.image_data); + if (hasImage) { + let image = document.createElement("img"); + + image.title = `${(post.image_data!.byteLength / 1024 / 1024).toFixed(2)}MBytes`; + // const blob = new Blob([post.image_data as ArrayBuffer], { type: 'image/png' }); + const blob = new Blob([post.image_data as ArrayBuffer]); + const url = URL.createObjectURL(blob); + image.onload = () => { + // URL.revokeObjectURL(url); + }; + + image.src = url; + // image.src = image.src = "data:image/png;base64," + post.image; + image.className = "postImage"; + // image.onclick = () => { App.maximizeElement(image) }; + + containerDiv.querySelector('#image')?.appendChild(image); } - let image = document.createElement("img"); - image.title = `${(post.image_data.byteLength / 1024 / 1024).toFixed(2)}MBytes`; - // const blob = new Blob([post.image_data as ArrayBuffer], { type: 'image/png' }); - const blob = new Blob([post.image_data as ArrayBuffer]); - const url = URL.createObjectURL(blob); - image.onload = () => { - // URL.revokeObjectURL(url); - }; - - image.src = url; - // image.src = image.src = "data:image/png;base64," + post.image; - image.className = "postImage"; - // image.onclick = () => { App.maximizeElement(image) }; - - containerDiv.appendChild(image); // containerDiv.appendChild(timestampDiv); + return containerDiv; } diff --git a/src/PeerManager.ts b/src/PeerManager.ts index c1c78b9..b488129 100644 --- a/src/PeerManager.ts +++ b/src/PeerManager.ts @@ -6,7 +6,6 @@ import { generateID } from "IDUtils"; import { log, logID } from "log"; -// import { App } from "./App"; // Use a broadcast channel to only have one peer manager for multiple tabs, // then we won't need to have a session ID as all queries for a peerID will be coming from the same peer manager @@ -22,7 +21,6 @@ export class PeerManager { routingTable: Map; peers: Map; - // private signaler: Signaler; searchQueryFunctions: Map = new Map(); RPC_remote: Map = new Map(); rpc: { [key: string]: Function } = {}; @@ -46,14 +44,6 @@ export class PeerManager { reconnectTimer: number | null = null; peerStateSuperlog: boolean = true; - // async watchdog() { - // // Check that we're connected to at least N peers. If not, reconnect to the bootstrap server. - - // if (this.peers.size === 0) { - // await this.sendHello2(); - // } - // } - animals = ['shrew', 'jerboa', 'lemur', 'weasel', 'possum', 'possum', 'marmoset', 'planigale', 'mole', 'narwhal']; adjectives = ['snazzy', 'whimsical', 'jazzy', 'bonkers', 'wobbly', 'spiffy', 'chirpy', 'zesty', 'bubbly', 'perky', 'sassy']; snakes = ['mamba', 'cobra', 'python', 'viper', 'krait', 'sidewinder', 'constrictor', 'boa', 'asp', 'anaconda', 'krait'] @@ -108,6 +98,18 @@ export class PeerManager { } + onPeerMessageFromPeer(remotePeerID: string, messageJSON: any) { + let targetPeer = this.peers.get(messageJSON.to); + + if (!targetPeer) { + console.log.apply(null, log("[PeerManager] Coulnd't find peer for onPeerMessageFromPeer:", messageJSON.to)); + return; + } + + targetPeer.send(messageJSON); + } + + onWebsocketMessage(event: MessageEvent) { let messageJSON = event.data; let message: any = null; @@ -149,10 +151,11 @@ export class PeerManager { if (!peerConnection) { let remotePeerID = message.from; let newPeer = new PeerConnection(this, remotePeerID, this.websocketSendPeerMessage.bind(this)); - if (this._isBootstrapPeer) { - newPeer.setPolite(false); - } + + newPeer.setPoliteFromID(remotePeerID, true); + peerConnection = newPeer; + this.peers.set(newPeer.remotePeerID, newPeer); this.onConnectRequest(newPeer); @@ -580,6 +583,12 @@ class PeerConnection { this.polite = polite; } + setPoliteFromID(peerID: PeerID, remote = false) { + let polite = (parseInt(peerID.charAt(peerID.length-1), 16) % 2 == 0) && !remote; + + this.setPolite(polite); + } + setupDataChannel() { if (!this.dataChannel) { throw new Error(); @@ -713,6 +722,7 @@ class PeerConnection { try { this.makingOffer = true; + this.setPoliteFromID(this.peerManager.peerID); await this.rtcPeer.setLocalDescription(); if (!this.rtcPeer.localDescription) { @@ -801,12 +811,6 @@ class PeerConnection { } catch (err) { console.error(err); } - // }; - // */ - - - - } disconnect() { @@ -884,15 +888,12 @@ class PeerConnection { } } - - - call(functionName: string, args: any) { let transactionID = generateID(); // make this faster as we will only ever have a small number of in-flight queries on a peer - // Think about a timeout here to auto reject it after a while. let promise = new Promise((resolve, reject) => { this.pendingRPCs.set(transactionID, { resolve, reject, functionName }); - setTimeout(() => reject(`function:${functionName}[${transactionID}] failed to resolve after 10 seconds.`), 10_000); + let timeoutSeconds = 10; + setTimeout(() => reject(`function:${functionName}[${transactionID}] failed to resolve after ${timeoutSeconds} seconds.`), timeoutSeconds * 1000); }); let message = { diff --git a/src/Sync.ts b/src/Sync.ts index 877dae7..6ab74e1 100644 --- a/src/Sync.ts +++ b/src/Sync.ts @@ -123,7 +123,8 @@ export class Sync { '194696a2-d850-4bb0-98f7-47416b3d1662', 'f6b21eb1-a0ff-435b-8efc-6a3dd70c0dca', 'dd1d92aa-aa24-4166-a925-94ba072a9048', - '290dbb4f-6ce1-491a-b90d-51d8efcd3d60' + '290dbb4f-6ce1-491a-b90d-51d8efcd3d60', + '3b32d0eb-94d5-49c4-a43b-0959a9fbb015' ]); getFollowing(userID: string): string[] { diff --git a/src/db.ts b/src/db.ts index e9eef5d..d8285c1 100644 --- a/src/db.ts +++ b/src/db.ts @@ -15,7 +15,7 @@ const followingStoreName: string = "following" const profileStoreName: string = "profiles" let keyBase = "dandelion_posts_v1_" let key = ""; -let version = 1; +let version = 3; interface IDBRequestEvent extends Event { @@ -28,13 +28,22 @@ type DBError = Event & { }; -async function upgrade_0to1(db: IDBDatabase) { +async function upgrade_0to1(db: IDBDatabase, _transaction: IDBTransaction) { let postsStore = db.createObjectStore(postStoreName, { keyPath: "id", autoIncrement: true }); postsStore.createIndex("datetimeIndex", "post_timestamp", { unique: false }); postsStore.createIndex("postIDIndex", "data.post_id", { unique: true }); } +async function upgrade_1to2(_db: IDBDatabase, _transaction: IDBTransaction) { + // Was broken for some clients — index creation moved to upgrade_2to3 +} +async function upgrade_2to3(_db: IDBDatabase, transaction: IDBTransaction) { + const postsStore = transaction.objectStore(postStoreName); + if (!postsStore.indexNames.contains("postReplyIndex")) { + postsStore.createIndex("postReplyIndex", "data.reply_to_id", { unique: false }); + } +} // let following = ['b38b623c-c3fa-4351-9cab-50233c99fa4e']; @@ -51,13 +60,13 @@ async function upgrade_0to1(db: IDBDatabase) { // let tombstones = ['b38b623c-c3fa-4351-9cab-50233c99fa4e']; -async function upgrade_1to2(db: IDBDatabase) { - let followingStore = db.createObjectStore(followingStoreName, { keyPath: "id", autoIncrement: true }); - let profileStore = db.createObjectStore(profileStoreName, { keyPath: "id", autoIncrement: true }); - let tombstoneStore = db.createObjectStore(tombstoneStoreName, { keyPath: "id", autoIncrement: true }); - tombstoneStore.createIndex("postIDIndex", "data.post_id", { unique: true }); +// async function upgrade_1to2(db: IDBDatabase) { +// let followingStore = db.createObjectStore(followingStoreName, { keyPath: "id", autoIncrement: true }); +// let profileStore = db.createObjectStore(profileStoreName, { keyPath: "id", autoIncrement: true }); +// let tombstoneStore = db.createObjectStore(tombstoneStoreName, { keyPath: "id", autoIncrement: true }); +// tombstoneStore.createIndex("postIDIndex", "data.post_id", { unique: true }); -} +// } // async function upgrade_1to2(db: IDBDatabase) { // console.log("Upgrading database from 1 to 2"); @@ -86,15 +95,15 @@ async function upgrade_1to2(db: IDBDatabase) { // } // } -async function upgrade_2to3(db: IDBDatabase) { - let followingStore = db.createObjectStore(followingStoreName, { keyPath: "id", autoIncrement: true }); -} +// async function upgrade_2to3(db: IDBDatabase) { +// let followingStore = db.createObjectStore(followingStoreName, { keyPath: "id", autoIncrement: true }); +// } let upgrades = new Map([ [0, upgrade_0to1], [1, upgrade_1to2], - [2, upgrade_2to3] + [2, upgrade_2to3], ]); export function openDatabase(userID: string): Promise { @@ -110,13 +119,15 @@ export function openDatabase(userID: string): Promise { request.onupgradeneeded = async (event: IDBVersionChangeEvent) => { const db: IDBDatabase = (event.target as IDBOpenDBRequest).result; + const transaction: IDBTransaction = (event.target as IDBOpenDBRequest).transaction!; - let upgradeFunction = upgrades.get(event.oldVersion); - if (!upgradeFunction) { - throw new Error(`db: Don't have an upgrade function to go from version ${event.oldVersion} to version ${event.newVersion}`); + for (let v = event.oldVersion; v < (event.newVersion ?? version); v++) { + const upgradeFunction = upgrades.get(v); + if (!upgradeFunction) { + throw new Error(`db: Don't have an upgrade function to go from version ${v} to version ${v + 1}`); + } + await upgradeFunction(db, transaction); } - // debugger; - await upgradeFunction(db); }; request.onsuccess = (event: Event) => { diff --git a/static/App.js b/static/App.js index 1e11624..266ac06 100644 --- a/static/App.js +++ b/static/App.js @@ -5,7 +5,7 @@ import { openDatabase, getData, addData, deleteData, getAllData, getPostForUser import { arrayBufferToBase64, compressString } from "dataUtils"; import { log, logID, renderLog, setLogVisibility } from "log"; class Post { - constructor(author, author_id, text, post_timestamp, imageData = null, importedFrom = null, importSource = null) { + constructor(author, author_id, text, post_timestamp, imageData = null, importedFrom = null, importSource = null, reply_to_id = null) { this.post_timestamp = post_timestamp; this.post_id = generateID(); this.author = author; @@ -14,6 +14,7 @@ class Post { this.image_data = imageData; this.importedFrom = importedFrom; this.importSource = importSource; + this.reply_to_id = reply_to_id; } } class StatusBar { @@ -68,6 +69,7 @@ export class App { this.peername = ''; this.userID = ''; this.peerID = ''; + this.replyToID = null; this.following = new Set(); this.posts = []; this.isHeadless = false; @@ -252,20 +254,14 @@ export class App { await this.peerManager?.rpc.sendPostForUser(requestingPeerID, this.peerID, userID, post); } return true; - // return posts; - // return postIDs; }); this.peerManager.registerRPC('sendPostForUser', async (sendingPeerID, userID, post) => { console.log.apply(null, log(`[app] sendPostForUser got post[${logID(post.post_id)}] from peer[${logID(sendingPeerID)}] for user[${logID(userID)}] author[${post.author}] text[${post.text}]`)); - // if (post.text === "image...") { - // debugger; - // } let peerData = this.statusBar.getPeerData(sendingPeerID); if (peerData) { this.statusBar.updatePeerMessage(sendingPeerID, `⬇️${logID(userID)} ${peerData.havePostCount}/${peerData.neededPostCount}}`); } await this.sync.writePostForUser(userID, post); - // if (userID === this.userID) { if (peerData) { peerData.havePostCount++; this.statusBar.updatePeerMessage(sendingPeerID, `⬇️${logID(userID)} ${peerData.havePostCount}/${peerData.neededPostCount}}`); @@ -275,13 +271,12 @@ export class App { } this.renderTimer = setTimeout(() => { this.render(); }, 1000); return true; - // } }); - this.statusBar.setMessageHTML("Connecting to ddln network..."); + this.statusBar.setMessageHTML("Connecting to ddln..."); await this.peerManager.connect(); console.log.apply(null, log("*************** after peerManager.connect")); ; - this.statusBar.setMessageHTML("Connected to ddln network..."); + this.statusBar.setMessageHTML("Connected to ddln."); if (this.isBootstrapPeer) { return; } @@ -530,20 +525,20 @@ export class App { return null; } } - async createNewPost(userID, postText, mediaData, mimeType) { + async createPost(userID, postText, mediaData, mimeType, replyToID = null) { if ((typeof postText !== "string") || postText.length === 0) { console.log.apply(null, log("Not posting an empty string...")); return; } if (mediaData && (mimeType === 'image/jpg' || mimeType === 'image/jpeg' || mimeType === 'image/png') && - mediaData.byteLength > 500 * 1024) { + mediaData.byteLength > 256 * 1024) { let compressedImage = await this.compressImage(mediaData, mimeType, 0.9); if (compressedImage) { mediaData = compressedImage; } } - let post = new Post(this.username, userID, postText, new Date(), mediaData); + let post = new Post(this.username, userID, postText, new Date(), mediaData, null, null, replyToID); // this.posts.push(post); // localStorage.setItem(key, JSON.stringify(posts)); addData(userID, post); @@ -736,17 +731,17 @@ export class App { }); let composeButton = this.div('compose-button'); composeButton.addEventListener('click', e => { - document.getElementById('compose').style.display = 'block'; - document.getElementById('textarea_post')?.focus(); + this.enterCompose(); }); let filePicker = document.getElementById('file-input'); filePicker?.addEventListener('change', async (event) => { for (let file of filePicker.files) { let buffer = await file.arrayBuffer(); - await this.createNewPost(this.userID, 'image...', buffer, file.type); + await this.createPost(this.userID, 'image...', buffer, file.type); } // Reset so that if they pick the same image again, we still get the change event. filePicker.value = ''; + this.exitCompose(); }); let filePickerLabel = document.getElementById('file-input-label'); filePickerLabel?.addEventListener('click', () => { @@ -773,21 +768,24 @@ export class App { // this.render(); // }); // clearPostsButton.addEventListener('click', () => { clearData(userID); posts = []; this.render() }); - let postButton = document.getElementById("button_post"); + let cancelPostButton = document.getElementById("button_cancel_post"); let postText = document.getElementById("textarea_post"); - if (!(postButton && postText)) { + let postButton = document.getElementById("button_post"); + if (!(cancelPostButton && postButton && postText)) { throw new Error(); } + cancelPostButton.addEventListener('click', (e) => { + this.exitCompose(); + }); postText.addEventListener('paste', async (e) => { const dataTransfer = e.clipboardData; const file = dataTransfer.files[0]; let buffer = await file.arrayBuffer(); - await this.createNewPost(this.userID, 'image...', buffer, file.type); + await this.createPost(this.userID, 'image...', buffer, file.type); }); postButton.addEventListener("click", () => { - this.createNewPost(userID, postText.value); - postText.value = ""; - document.getElementById('compose').style.display = 'none'; + this.createPost(userID, postText.value, undefined, undefined, this.replyToID); + this.exitCompose(); }); // updateApp.addEventListener("click", () => { // registration?.active?.postMessage({ type: "update_app" }); @@ -796,6 +794,26 @@ export class App { // this.showInfo() // }); } + // Change this all to a template so we're not toggling state in this crazy way! + enterCompose(replyToID = null) { + if (replyToID) { + this.renderComposeReplyArea(replyToID); + document.getElementById("compose-reply-area").style.display = "block"; + } + replyToID = replyToID; + document.getElementById('compose').style.display = 'block'; + document.getElementById('textarea_post')?.focus(); + document.getElementById('compose-dimmer')?.classList.add("compose-dimmer-dimmed"); + document.body.classList.add("no-scroll"); + } + exitCompose() { + let postText = document.getElementById("textarea_post"); + postText.value = ""; + document.getElementById('compose').style.display = 'none'; + document.getElementById('compose-dimmer')?.classList.remove("compose-dimmer-dimmed"); + document.getElementById("compose-reply-area").style.display = "none"; + document.body.classList.remove("no-scroll"); + } async getPostsForFeed() { // get N posts from each user and sort them by date. // This isn't really going to work very well. @@ -1090,6 +1108,11 @@ export class App { deleteData(userID, postID); this.render(); } + renderComposeReplyArea(replyToID) { + let composeReplyArea = document.getElementById('compose-reply-area'); + composeReplyArea.innerText = replyToID; + composeReplyArea.classList.add("show"); + } renderPost(post, first) { if (!(post.hasOwnProperty("text"))) { throw new Error("Post is malformed!"); @@ -1106,6 +1129,14 @@ export class App { let shareUrl = `${document.location.origin}/user/${post.author_id}/post/${post.post_id}`; await navigator.clipboard.writeText(shareUrl); }; + let replyButton = document.createElement('button'); + replyButton.innerText = 'reply'; + replyButton.onclick = async () => { + console.log(`replying to post ${post.post_id}`); + this.enterCompose(post.post_id); + // let shareUrl = `${document.location.origin}/user/${post.author_id}/post/${post.post_id}`; + // await navigator.clipboard.writeText(shareUrl) + }; let ownPost = post.author_id === this.userID; let markdown = post.text; if (this.markedAvailable) { @@ -1124,11 +1155,17 @@ export class App { @${post.author} - ${post.post_timestamp.toLocaleDateString()} - ${ownPost ? `` : ''} - ${ownPost ? `` : ''} -
${markdown}
+ +
+ + + ${ownPost ? `` : ''} + + ${ownPost ? `` : ''} + + `; containerDiv.innerHTML = postTemplate; if (ownPost) { @@ -1136,24 +1173,23 @@ export class App { // containerDiv.querySelector('#editButton')?.appendChild(editButton); } containerDiv.querySelector('#shareButton')?.appendChild(shareButton); - if (!("image_data" in post && post.image_data)) { - // containerDiv.appendChild(timestampDiv); - return containerDiv; - // return null; + containerDiv.querySelector('#replyButton')?.appendChild(replyButton); + let hasImage = ("image_data" in post && post.image_data); + if (hasImage) { + let image = document.createElement("img"); + image.title = `${(post.image_data.byteLength / 1024 / 1024).toFixed(2)}MBytes`; + // const blob = new Blob([post.image_data as ArrayBuffer], { type: 'image/png' }); + const blob = new Blob([post.image_data]); + const url = URL.createObjectURL(blob); + image.onload = () => { + // URL.revokeObjectURL(url); + }; + image.src = url; + // image.src = image.src = "data:image/png;base64," + post.image; + image.className = "postImage"; + // image.onclick = () => { App.maximizeElement(image) }; + containerDiv.querySelector('#image')?.appendChild(image); } - let image = document.createElement("img"); - image.title = `${(post.image_data.byteLength / 1024 / 1024).toFixed(2)}MBytes`; - // const blob = new Blob([post.image_data as ArrayBuffer], { type: 'image/png' }); - const blob = new Blob([post.image_data]); - const url = URL.createObjectURL(blob); - image.onload = () => { - // URL.revokeObjectURL(url); - }; - image.src = url; - // image.src = image.src = "data:image/png;base64," + post.image; - image.className = "postImage"; - // image.onclick = () => { App.maximizeElement(image) }; - containerDiv.appendChild(image); // containerDiv.appendChild(timestampDiv); return containerDiv; } diff --git a/static/App.js.map b/static/App.js.map index 08af1de..bdcf7ad 100644 --- a/static/App.js.map +++ b/static/App.js.map @@ -1 +1 @@ -{"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/static/PeerManager.js b/static/PeerManager.js index 645181a..45af899 100644 --- a/static/PeerManager.js +++ b/static/PeerManager.js @@ -51,6 +51,14 @@ export class PeerManager { this.messageSuperlog && console.log.apply(null, log("<-signaler:", message)); this.websocket.send(messageJSON); } + onPeerMessageFromPeer(remotePeerID, messageJSON) { + let targetPeer = this.peers.get(messageJSON.to); + if (!targetPeer) { + console.log.apply(null, log("[PeerManager] Coulnd't find peer for onPeerMessageFromPeer:", messageJSON.to)); + return; + } + targetPeer.send(messageJSON); + } onWebsocketMessage(event) { let messageJSON = event.data; let message = null; @@ -82,9 +90,7 @@ export class PeerManager { if (!peerConnection) { let remotePeerID = message.from; let newPeer = new PeerConnection(this, remotePeerID, this.websocketSendPeerMessage.bind(this)); - if (this._isBootstrapPeer) { - newPeer.setPolite(false); - } + newPeer.setPoliteFromID(remotePeerID, true); peerConnection = newPeer; this.peers.set(newPeer.remotePeerID, newPeer); this.onConnectRequest(newPeer); @@ -163,7 +169,6 @@ export class PeerManager { // message: { type: "get_posts_for_user", post_ids: postIds, user_id: message.user_id } } } constructor(userID, peerID, isBootstrapPeer) { - // private signaler: Signaler; this.searchQueryFunctions = new Map(); this.RPC_remote = new Map(); this.rpc = {}; @@ -182,12 +187,6 @@ export class PeerManager { this.watchdogInterval = null; this.reconnectTimer = null; this.peerStateSuperlog = true; - // async watchdog() { - // // Check that we're connected to at least N peers. If not, reconnect to the bootstrap server. - // if (this.peers.size === 0) { - // await this.sendHello2(); - // } - // } this.animals = ['shrew', 'jerboa', 'lemur', 'weasel', 'possum', 'possum', 'marmoset', 'planigale', 'mole', 'narwhal']; this.adjectives = ['snazzy', 'whimsical', 'jazzy', 'bonkers', 'wobbly', 'spiffy', 'chirpy', 'zesty', 'bubbly', 'perky', 'sassy']; this.snakes = ['mamba', 'cobra', 'python', 'viper', 'krait', 'sidewinder', 'constrictor', 'boa', 'asp', 'anaconda', 'krait']; @@ -417,6 +416,10 @@ class PeerConnection { setPolite(polite) { this.polite = polite; } + setPoliteFromID(peerID, remote = false) { + let polite = (parseInt(peerID.charAt(peerID.length - 1), 16) % 2 == 0) && !remote; + this.setPolite(polite); + } setupDataChannel() { if (!this.dataChannel) { throw new Error(); @@ -513,6 +516,7 @@ class PeerConnection { } try { this.makingOffer = true; + this.setPoliteFromID(this.peerManager.peerID); await this.rtcPeer.setLocalDescription(); if (!this.rtcPeer.localDescription) { return; @@ -590,8 +594,6 @@ class PeerConnection { catch (err) { console.error(err); } - // }; - // */ } disconnect() { this.rtcPeer?.close(); @@ -651,10 +653,10 @@ class PeerConnection { } call(functionName, args) { let transactionID = generateID(); // make this faster as we will only ever have a small number of in-flight queries on a peer - // Think about a timeout here to auto reject it after a while. let promise = new Promise((resolve, reject) => { this.pendingRPCs.set(transactionID, { resolve, reject, functionName }); - setTimeout(() => reject(`function:${functionName}[${transactionID}] failed to resolve after 10 seconds.`), 10000); + let timeoutSeconds = 10; + setTimeout(() => reject(`function:${functionName}[${transactionID}] failed to resolve after ${timeoutSeconds} seconds.`), timeoutSeconds * 1000); }); let message = { type: "rpc_call", diff --git a/static/PeerManager.js.map b/static/PeerManager.js.map index 83b4d6d..854c345 100644 --- a/static/PeerManager.js.map +++ b/static/PeerManager.js.map @@ -1 +1 @@ -{"version":3,"file":"PeerManager.js","sourceRoot":"","sources":["../src/PeerManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"PeerManager.js","sourceRoot":"","sources":["../src/PeerManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/static/Sync.js b/static/Sync.js index 40020c3..be90c4d 100644 --- a/static/Sync.js +++ b/static/Sync.js @@ -45,7 +45,8 @@ export class Sync { '194696a2-d850-4bb0-98f7-47416b3d1662', 'f6b21eb1-a0ff-435b-8efc-6a3dd70c0dca', 'dd1d92aa-aa24-4166-a925-94ba072a9048', - '290dbb4f-6ce1-491a-b90d-51d8efcd3d60' + '290dbb4f-6ce1-491a-b90d-51d8efcd3d60', + '3b32d0eb-94d5-49c4-a43b-0959a9fbb015' ]); // async getPostIdsForUserHandler(data: any) { // let message = data.message; diff --git a/static/Sync.js.map b/static/Sync.js.map index 9538c0e..983156d 100644 --- a/static/Sync.js.map +++ b/static/Sync.js.map @@ -1 +1 @@ -{"version":3,"file":"Sync.js","sourceRoot":"","sources":["../src/Sync.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Sync.js","sourceRoot":"","sources":["../src/Sync.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/static/db.js b/static/db.js index 18a7aa2..03c368d 100644 --- a/static/db.js +++ b/static/db.js @@ -10,12 +10,21 @@ const followingStoreName = "following"; const profileStoreName = "profiles"; let keyBase = "dandelion_posts_v1_"; let key = ""; -let version = 1; -async function upgrade_0to1(db) { +let version = 3; +async function upgrade_0to1(db, _transaction) { let postsStore = db.createObjectStore(postStoreName, { keyPath: "id", autoIncrement: true }); postsStore.createIndex("datetimeIndex", "post_timestamp", { unique: false }); postsStore.createIndex("postIDIndex", "data.post_id", { unique: true }); } +async function upgrade_1to2(_db, _transaction) { + // Was broken for some clients — index creation moved to upgrade_2to3 +} +async function upgrade_2to3(_db, transaction) { + const postsStore = transaction.objectStore(postStoreName); + if (!postsStore.indexNames.contains("postReplyIndex")) { + postsStore.createIndex("postReplyIndex", "data.reply_to_id", { unique: false }); + } +} // let following = ['b38b623c-c3fa-4351-9cab-50233c99fa4e']; // let profiles = [ // { @@ -27,12 +36,12 @@ async function upgrade_0to1(db) { // description: "A very nice person who never does anything wrong.", // }]; // let tombstones = ['b38b623c-c3fa-4351-9cab-50233c99fa4e']; -async function upgrade_1to2(db) { - let followingStore = db.createObjectStore(followingStoreName, { keyPath: "id", autoIncrement: true }); - let profileStore = db.createObjectStore(profileStoreName, { keyPath: "id", autoIncrement: true }); - let tombstoneStore = db.createObjectStore(tombstoneStoreName, { keyPath: "id", autoIncrement: true }); - tombstoneStore.createIndex("postIDIndex", "data.post_id", { unique: true }); -} +// async function upgrade_1to2(db: IDBDatabase) { +// let followingStore = db.createObjectStore(followingStoreName, { keyPath: "id", autoIncrement: true }); +// let profileStore = db.createObjectStore(profileStoreName, { keyPath: "id", autoIncrement: true }); +// let tombstoneStore = db.createObjectStore(tombstoneStoreName, { keyPath: "id", autoIncrement: true }); +// tombstoneStore.createIndex("postIDIndex", "data.post_id", { unique: true }); +// } // async function upgrade_1to2(db: IDBDatabase) { // console.log("Upgrading database from 1 to 2"); // console.log("Converting all image arraybuffers to Blobs") @@ -55,13 +64,13 @@ async function upgrade_1to2(db) { // } // } // } -async function upgrade_2to3(db) { - let followingStore = db.createObjectStore(followingStoreName, { keyPath: "id", autoIncrement: true }); -} +// async function upgrade_2to3(db: IDBDatabase) { +// let followingStore = db.createObjectStore(followingStoreName, { keyPath: "id", autoIncrement: true }); +// } let upgrades = new Map([ [0, upgrade_0to1], [1, upgrade_1to2], - [2, upgrade_2to3] + [2, upgrade_2to3], ]); export function openDatabase(userID) { const dbName = `user_${userID}`; @@ -73,12 +82,14 @@ export function openDatabase(userID) { }; request.onupgradeneeded = async (event) => { const db = event.target.result; - let upgradeFunction = upgrades.get(event.oldVersion); - if (!upgradeFunction) { - throw new Error(`db: Don't have an upgrade function to go from version ${event.oldVersion} to version ${event.newVersion}`); + const transaction = event.target.transaction; + for (let v = event.oldVersion; v < (event.newVersion ?? version); v++) { + const upgradeFunction = upgrades.get(v); + if (!upgradeFunction) { + throw new Error(`db: Don't have an upgrade function to go from version ${v} to version ${v + 1}`); + } + await upgradeFunction(db, transaction); } - // debugger; - await upgradeFunction(db); }; request.onsuccess = (event) => { const db = event.target.result; diff --git a/static/db.js.map b/static/db.js.map index dc800ce..83675aa 100644 --- a/static/db.js.map +++ b/static/db.js.map @@ -1 +1 @@ -{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/static/index.html b/static/index.html index fdba9bd..547cd98 100644 --- a/static/index.html +++ b/static/index.html @@ -111,32 +111,41 @@ -
-
- - - - - -
- -
- - - - -
-
+ + +
✏️
+ + +
+ + +
+
Cancel
+ +
+ + +
+ \ No newline at end of file diff --git a/static/main.css b/static/main.css index f5c28a4..14b7cbe 100644 --- a/static/main.css +++ b/static/main.css @@ -4,7 +4,7 @@ :root { --main-bg-color: white; - --border-color: rgb(132, 136, 138); + --main-hover-color: rgb(64, 64, 64) --border-color: rgb(132, 136, 138); --edge-color: rgb(60, 60, 60); --main-fg-color: black; --highlight-fg-color: rgb(255, 255, 255); @@ -14,6 +14,7 @@ @media (prefers-color-scheme: dark) { :root { --main-bg-color: black; + --main-hover-color: rgb(64, 64, 64); --border-color: rgb(132, 136, 138); --edge-color: rgb(60, 60, 60); --main-fg-color: rgb(202, 208, 211); @@ -22,6 +23,10 @@ } } +/* html, body { + overscroll-behavior-y: none; +} */ + body { font-family: sans-serif; color: var(--main-fg-color); @@ -52,14 +57,21 @@ hr { font-family: sans-serif; background-color: var(--main-bg-color); color: var(--main-fg-color); - width: 100%; box-sizing: border-box; - padding-left: 30px; - padding-right: 30px; + padding-left: 20px; + padding-right: 20px; padding-top: 10px; border: 1px solid var(--border-color); resize: vertical; border-radius: 40px; + + width: 98%; + margin: 1%; + height: 270px; + + resize: vertical; + + max-height: 60vh; } .flex-container { @@ -72,17 +84,35 @@ hr { .content { max-width: 600px; - /* Your preferred max width for the content */ flex: 1; - /* Shorthand for flex-grow, flex-shrink and flex-basis */ + box-sizing: border-box; min-width: 300px; - /* Minimum width the content can shrink to */ padding: 20px; box-shadow: 0 0 5px var(--edge-color); text-align: left; overflow-x: hidden; - /* Hide horizontal overflow inside the flex container */ line-height: 1.3; + z-index: 0; +} + +.compose-dimmer-normal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 30; + background-color: black; + opacity: 0; + visibility: hidden; + transition: opacity 0.3s ease, visibility 0.3s ease; + +} + +.compose-dimmer-dimmed { + background-color: black; + opacity: 0.7; + visibility: visible; } .embed { @@ -104,16 +134,43 @@ hr { width: 100%; } -.right { - text-align: right; +/* .compose-footer { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + margin-top: 5px; + padding-left: 10px; + padding-right: 10px; + box-sizing: border-box; +} */ + +.compose-footer { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + flex-shrink: 0; + margin-top: 5px; + padding-left: 10px; + padding-right: 10px; + box-sizing: border-box; } -#buttons { - margin-left: 40px; +.compose-left-buttons, +.compose-right-buttons { + display: flex; + gap: 10px; /* Puts exactly 10px of space between buttons in the same group */ + align-items: center; } -#button_post { - margin-right: 40px; +.link { + user-select: none; + display:inline-block; +} +.link:hover { + cursor: pointer; + color: var(--border-color); } a { @@ -160,6 +217,7 @@ a { button, .button { + user-select: none; font-size: 12px; background-color: var(--main-bg-color); border-radius: 10px; @@ -175,6 +233,15 @@ button, cursor: pointer; } +button:hover, +.button:hover { + background-color: var(--main-hover-color); +} + +#deleteButton { + float: right; +} + .button-big { font-size: large; } @@ -202,8 +269,39 @@ iframe { height: 300px; } +/* #compose { + display: none; + position: fixed; + z-index: 100; +} */ + #compose { display: none; + position: fixed; + top: 5%; + left: 50%; + width: 88%; + transform: translateX(-50%); + + max-height: 85vh; + max-width: 600px; + overflow-y: auto; + + background-color: var(--main-bg-color); + z-index: 100; + + padding: 5px; + border: 1px solid var(--border-color); + border-radius: 10px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5); +} + +#compose-reply-area { + display:none; +} + +.show { + display:block; } .username { @@ -260,6 +358,7 @@ iframe { } .burger-menu { + user-select: none; text-align: center; width: 46px; border-radius: 10px; @@ -269,7 +368,7 @@ iframe { top: 0px; font-size: 24px; cursor: pointer; - z-index: 1000; + z-index: 20; background: none; border: none; color: var(--main-fg-color); @@ -280,14 +379,14 @@ iframe { position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.5); - z-index: 900; } @media (max-width: 700px) { .nav-container { display: none; /* transform: translateX(-100%); */ - /* z-index: 1000; */ + z-index:10; + user-select: none; } .nav-container.active { @@ -328,7 +427,7 @@ iframe { .small { width: 24px; - height: 24px; + height: 24px; } .profile-pic-container img { @@ -343,6 +442,7 @@ iframe { } .compose-button { + user-select: none; font-size: 42px; position: fixed; bottom: 24px; @@ -366,11 +466,11 @@ iframe { align-content: center; padding-left: 55px; font-size: 12px; - height:12px; + height: 12px; } .spinner { - display: inline-block; + display: inline-block; animation-name: spin; animation-duration: 2000ms; animation-iteration-count: infinite; @@ -378,6 +478,10 @@ iframe { /* font-size: 64px; */ } +.no-scroll { + overflow: hidden; +} + @keyframes spin { from { transform: rotate(0deg); @@ -391,6 +495,6 @@ iframe { @media (prefers-reduced-motion: reduce) { .spinner { animation: none; - transform: none; + transform: none; } } \ No newline at end of file