mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-11 09:45:52 +00:00
Various updates
- Add display Qortal-Hub embed links - Add encrypted icon to messages - Add qortal request DECRYPT_AESGCM - Minor fixes
This commit is contained in:
parent
db71257c02
commit
d822c65fc5
@ -4,6 +4,12 @@ import {
|
|||||||
uint8ArrayToObject,
|
uint8ArrayToObject,
|
||||||
decryptSingle
|
decryptSingle
|
||||||
} from '../../../plugins/plugins/core/components/GroupEncryption.js'
|
} from '../../../plugins/plugins/core/components/GroupEncryption.js'
|
||||||
|
import {
|
||||||
|
extensionToPointer,
|
||||||
|
encodedToChar,
|
||||||
|
embedToString,
|
||||||
|
parseQortalLink
|
||||||
|
} from '../../../plugins/plugins/core/components/qdn-action-constants.js'
|
||||||
|
|
||||||
const Base64Message = {}
|
const Base64Message = {}
|
||||||
|
|
||||||
@ -29,13 +35,16 @@ Base64Message.decode = function (string, keys, ref) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let repliedToStr = ''
|
let repliedToStr = ''
|
||||||
|
let addedFileStr = ''
|
||||||
let messageStr = ''
|
let messageStr = ''
|
||||||
let hubString = ''
|
let hubString = ''
|
||||||
|
let messageRep = ''
|
||||||
|
let messageUseEmbed = {}
|
||||||
|
|
||||||
const res = decryptSingle(string, keys, false)
|
const res = decryptSingle(string, keys, false)
|
||||||
|
|
||||||
if (res === 'noKey' || res === 'decryptionFailed') {
|
if (res === 'noKey' || res === 'decryptionFailed') {
|
||||||
return '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"This message could not be decrypted"}]}]},"images":[""],"repliedTo":"","version":3}'
|
return '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"This message could not be decrypted"}]}]}' + addedFileStr + ',"repliedTo":"","version":3,"isFromHub":true}'
|
||||||
}
|
}
|
||||||
|
|
||||||
const decryptToUnit8Array = base64ToUint8Array(res)
|
const decryptToUnit8Array = base64ToUint8Array(res)
|
||||||
@ -54,7 +63,26 @@ Base64Message.decode = function (string, keys, ref) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (responseData.hasOwnProperty('message') && typeof responseData['message'] === 'string' && responseData['message'].length) {
|
if (responseData.hasOwnProperty('message') && typeof responseData['message'] === 'string' && responseData['message'].length) {
|
||||||
const messageRep = responseData.message
|
if (responseData.message.includes('qortal://use-embed/')) {
|
||||||
|
const useEmbed1 = extensionToPointer(responseData.message)
|
||||||
|
const useEmbed2 = /<newpointer>(.*?)<\/newpointer>/g.exec(useEmbed1)
|
||||||
|
const useEmbed3 = encodedToChar(useEmbed2[1])
|
||||||
|
|
||||||
|
messageUseEmbed = parseQortalLink(useEmbed3)
|
||||||
|
addedFileStr = embedToString(messageUseEmbed)
|
||||||
|
|
||||||
|
const useEmbed4 = responseData.message.split(useEmbed2[1]).join('')
|
||||||
|
|
||||||
|
if (useEmbed4 === "<p></p>") {
|
||||||
|
messageRep = useEmbed4.split('<p></p>').join('<p>Qortal-Hub embed link</p>')
|
||||||
|
} else {
|
||||||
|
messageRep = useEmbed4
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
messageRep = responseData.message
|
||||||
|
addedFileStr = ',"images":[""]'
|
||||||
|
}
|
||||||
|
|
||||||
const messageRep1 = messageRep.split('"').join('<upvote>')
|
const messageRep1 = messageRep.split('"').join('<upvote>')
|
||||||
const messageRep2 = messageRep1.split('</p><p></p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
const messageRep2 = messageRep1.split('</p><p></p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||||
const messageRep3 = messageRep2.split('</p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
const messageRep3 = messageRep2.split('</p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||||
@ -77,11 +105,11 @@ Base64Message.decode = function (string, keys, ref) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (responseData.type === "edit") {
|
if (responseData.type === "edit") {
|
||||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3,"isEdited":true}'
|
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]}' + addedFileStr + ',"repliedTo":"' + repliedToStr + '","version":3,"isEdited":true,"isFromHub":true}'
|
||||||
} else if (responseData.type === "reaction") {
|
} else if (responseData.type === "reaction") {
|
||||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3,"isReaction":true}'
|
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]}' + addedFileStr + ',"repliedTo":"' + repliedToStr + '","version":3,"isReaction":true,"isFromHub":true}'
|
||||||
} else {
|
} else {
|
||||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3}'
|
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]}' + addedFileStr + ',"repliedTo":"' + repliedToStr + '","version":3,"isFromHub":true}'
|
||||||
}
|
}
|
||||||
|
|
||||||
const preparedString = hubString.split('<upvote>').join('\\"')
|
const preparedString = hubString.split('<upvote>').join('\\"')
|
||||||
|
@ -177,7 +177,7 @@ function processText(input) {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log({ error })
|
console.error({ error })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1081,7 +1081,7 @@ class MessageTemplate extends LitElement {
|
|||||||
let version = 0
|
let version = 0
|
||||||
let isForwarded = false
|
let isForwarded = false
|
||||||
let isEdited = false
|
let isEdited = false
|
||||||
|
let isFromHub = false
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const parsedMessageObj = JSON.parse(this.messageObj.decodedMessage)
|
const parsedMessageObj = JSON.parse(this.messageObj.decodedMessage)
|
||||||
@ -1101,6 +1101,7 @@ class MessageTemplate extends LitElement {
|
|||||||
version = parsedMessageObj.version
|
version = parsedMessageObj.version
|
||||||
isForwarded = parsedMessageObj.type === 'forward'
|
isForwarded = parsedMessageObj.type === 'forward'
|
||||||
isEdited = parsedMessageObj.isEdited && true
|
isEdited = parsedMessageObj.isEdited && true
|
||||||
|
isFromHub = parsedMessageObj.isFromHub && true
|
||||||
|
|
||||||
if (parsedMessageObj.images && Array.isArray(parsedMessageObj.images) && parsedMessageObj.images.length > 0) {
|
if (parsedMessageObj.images && Array.isArray(parsedMessageObj.images) && parsedMessageObj.images.length > 0) {
|
||||||
image = parsedMessageObj.images[0]
|
image = parsedMessageObj.images[0]
|
||||||
@ -1132,6 +1133,8 @@ class MessageTemplate extends LitElement {
|
|||||||
let hideit = hidemsg.includes(this.messageObj.sender)
|
let hideit = hidemsg.includes(this.messageObj.sender)
|
||||||
let forwarded = ''
|
let forwarded = ''
|
||||||
let edited = ''
|
let edited = ''
|
||||||
|
let fromHubOk = ''
|
||||||
|
let fromHubNo = ''
|
||||||
|
|
||||||
levelFounder = html`<level-founder checkleveladdress="${this.messageObj.sender}"></level-founder>`
|
levelFounder = html`<level-founder checkleveladdress="${this.messageObj.sender}"></level-founder>`
|
||||||
|
|
||||||
@ -1247,6 +1250,18 @@ class MessageTemplate extends LitElement {
|
|||||||
</span>
|
</span>
|
||||||
`
|
`
|
||||||
|
|
||||||
|
fromHubOk = html`
|
||||||
|
<div style="margin-top:3px;">
|
||||||
|
<mwc-icon style="font-size:16px; color: var(--chat-group);">key</mwc-icon>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
|
||||||
|
fromHubNo = html`
|
||||||
|
<div style="margin-top:3px;">
|
||||||
|
<mwc-icon style="font-size:16px; color: var(--chat-group);">key_off</mwc-icon>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
|
||||||
if (repliedToData) {
|
if (repliedToData) {
|
||||||
try {
|
try {
|
||||||
repliedToData.decodedMessage = JSON.parse(repliedToData.decodedMessage)
|
repliedToData.decodedMessage = JSON.parse(repliedToData.decodedMessage)
|
||||||
@ -1536,9 +1551,10 @@ class MessageTemplate extends LitElement {
|
|||||||
<p class="attachment-name">
|
<p class="attachment-name">
|
||||||
${attachment && attachment.attachmentName}
|
${attachment && attachment.attachmentName}
|
||||||
</p>
|
</p>
|
||||||
<p class="attachment-size">
|
${attachment.attachmentSize > 0 ?
|
||||||
|
`<p class="attachment-size">
|
||||||
${roundToNearestDecimal(attachment.attachmentSize)} mb
|
${roundToNearestDecimal(attachment.attachmentSize)} mb
|
||||||
</p>
|
</p>` : ''}
|
||||||
</div>
|
</div>
|
||||||
<vaadin-icon
|
<vaadin-icon
|
||||||
@click=${async () => await this.downloadAttachment(attachment)}
|
@click=${async () => await this.downloadAttachment(attachment)}
|
||||||
@ -1662,18 +1678,21 @@ class MessageTemplate extends LitElement {
|
|||||||
${this.isInProgress ? html`
|
${this.isInProgress ? html`
|
||||||
<p>${translate('chatpage.cchange91')}</p>
|
<p>${translate('chatpage.cchange91')}</p>
|
||||||
` : this.isAgo ? html`
|
` : this.isAgo ? html`
|
||||||
|
${isFromHub ? html`<span>${fromHubOk}</span>` : html`<span>${fromHubNo}</span>`}
|
||||||
<div id="timeformat">
|
<div id="timeformat">
|
||||||
<span>
|
<span>
|
||||||
<message-time timestamp=${this.messageObj.timestamp}></message-time>
|
<message-time timestamp=${this.messageObj.timestamp}></message-time>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
` : this.isIso ? html`
|
` : this.isIso ? html`
|
||||||
|
${isFromHub ? html`<span>${fromHubOk}</span>` : html`<span>${fromHubNo}</span>`}
|
||||||
<div id="timeformat">
|
<div id="timeformat">
|
||||||
<span>
|
<span>
|
||||||
${new Date(this.messageObj.timestamp).toLocaleString()}
|
${new Date(this.messageObj.timestamp).toLocaleString()}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
` : this.isBoth ? html`
|
` : this.isBoth ? html`
|
||||||
|
${isFromHub ? html`<span>${fromHubOk}</span>` : html`<span>${fromHubNo}</span>`}
|
||||||
<div id="timeformat">
|
<div id="timeformat">
|
||||||
<span>
|
<span>
|
||||||
${new Date(this.messageObj.timestamp).toLocaleString()}
|
${new Date(this.messageObj.timestamp).toLocaleString()}
|
||||||
@ -2176,7 +2195,7 @@ class MessageTemplate extends LitElement {
|
|||||||
|
|
||||||
await writeFile(fileHandle, blob).then(() => console.log('FILE SAVED'))
|
await writeFile(fileHandle, blob).then(() => console.log('FILE SAVED'))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.error(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,125 @@ export const mimeToExtensionMap = {
|
|||||||
"application/x-bzip2": ".bz2",
|
"application/x-bzip2": ".bz2",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const parseQortalLink = (link) => {
|
||||||
|
const prefix = "qortal://use-embed/"
|
||||||
|
|
||||||
|
let params = {}
|
||||||
|
|
||||||
|
if (!link.startsWith(prefix)) {
|
||||||
|
throw new Error("Invalid link format")
|
||||||
|
}
|
||||||
|
|
||||||
|
const [typePart, queryPart] = link.slice(prefix.length).split("?")
|
||||||
|
const type = typePart.split("/")[0].toUpperCase()
|
||||||
|
|
||||||
|
if (queryPart) {
|
||||||
|
const queryPairs = queryPart.split("&")
|
||||||
|
queryPairs.forEach((pair) => {
|
||||||
|
const [key, value] = pair.split("=")
|
||||||
|
if (key && value) {
|
||||||
|
const decodedKey = decodeURIComponent(key.trim())
|
||||||
|
const decodedValue = value.trim().replace(/<\/?[^>]+(>|$)/g,"")
|
||||||
|
params[decodedKey] = decodedValue
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return { type, ...params }
|
||||||
|
}
|
||||||
|
|
||||||
|
export const extensionToPointer = (repString) => {
|
||||||
|
const replace00 = repString.split('qortal://use-embed/').join('<newpointer>qortal://use-embed/')
|
||||||
|
const replace01 = replace00.split('.pdf').join('.pdf</newpointer>')
|
||||||
|
const replace02 = replace01.split('.doc').join('.doc</newpointer>')
|
||||||
|
const replace03 = replace02.split('.xls').join('.xls</newpointer>')
|
||||||
|
const replace04 = replace03.split('.ppt').join('.ppt</newpointer>')
|
||||||
|
const replace05 = replace04.split('.odt').join('.odt</newpointer>')
|
||||||
|
const replace06 = replace05.split('.ods').join('.ods</newpointer>')
|
||||||
|
const replace07 = replace06.split('.odp').join('.odp</newpointer>')
|
||||||
|
const replace08 = replace07.split('.txt').join('.txt</newpointer>')
|
||||||
|
const replace09 = replace08.split('.csv').join('.csv</newpointer>')
|
||||||
|
const replace10 = replace09.split('.html').join('.html</newpointer>')
|
||||||
|
const replace11 = replace10.split('.xml').join('.xml</newpointer>')
|
||||||
|
const replace12 = replace11.split('.json').join('.json</newpointer>')
|
||||||
|
const replace13 = replace12.split('.jpg').join('.jpg</newpointer>')
|
||||||
|
const replace14 = replace13.split('.png').join('.png</newpointer>')
|
||||||
|
const replace15 = replace14.split('.gif').join('.gif</newpointer>')
|
||||||
|
const replace16 = replace15.split('.webp').join('.webp</newpointer>')
|
||||||
|
const replace17 = replace16.split('.svg').join('.svg</newpointer>')
|
||||||
|
const replace18 = replace17.split('.tif').join('.tif</newpointer>')
|
||||||
|
const replace19 = replace18.split('.bmp').join('.bmp</newpointer>')
|
||||||
|
const replace20 = replace19.split('.mp3').join('.mp3</newpointer>')
|
||||||
|
const replace21 = replace20.split('.ogg').join('.ogg</newpointer>')
|
||||||
|
const replace22 = replace21.split('.wav').join('.wav</newpointer>')
|
||||||
|
const replace23 = replace22.split('.webm').join('.webm</newpointer>')
|
||||||
|
const replace24 = replace23.split('.ogv').join('.ogv</newpointer>')
|
||||||
|
const replace25 = replace24.split('.avi').join('.avi</newpointer>')
|
||||||
|
const replace26 = replace25.split('.mov').join('.mov</newpointer>')
|
||||||
|
const replace27 = replace26.split('.wmv').join('.wmv</newpointer>')
|
||||||
|
const replace28 = replace27.split('.mpeg').join('.mpeg</newpointer>')
|
||||||
|
const replace29 = replace28.split('.3gp').join('.3gp</newpointer>')
|
||||||
|
const replace30 = replace29.split('.3g2').join('.3g2</newpointer>')
|
||||||
|
const replace31 = replace30.split('.mkv').join('.mkv</newpointer>')
|
||||||
|
const replace32 = replace31.split('.flv').join('.flv</newpointer>')
|
||||||
|
const replace33 = replace32.split('.zip').join('.zip</newpointer>')
|
||||||
|
const replace34 = replace33.split('.rar').join('.rar</newpointer>')
|
||||||
|
const replace35 = replace34.split('.tar').join('.tar</newpointer>')
|
||||||
|
const replace36 = replace35.split('.7z').join('.7z</newpointer>')
|
||||||
|
const replace37 = replace36.split('.gz').join('.gz</newpointer>')
|
||||||
|
const replace38 = replace37.split('.bz2').join('.bz2</newpointer>')
|
||||||
|
|
||||||
|
return replace38
|
||||||
|
}
|
||||||
|
|
||||||
|
export const encodedToChar = (encodedString) => {
|
||||||
|
const encode01 = encodedString.split('&').join('&')
|
||||||
|
const encode02 = encode01.split(' ').join(' ')
|
||||||
|
const encode03 = encode02.split('<').join('<')
|
||||||
|
const encode04 = encode03.split('>').join('>')
|
||||||
|
const encode05 = encode04.split('"').join('"')
|
||||||
|
const encode06 = encode05.split('%20').join(' ')
|
||||||
|
const encode07 = encode06.split('%23').join('#')
|
||||||
|
const encode08 = encode07.split('%24').join('$')
|
||||||
|
const encode09 = encode08.split('%26').join('&')
|
||||||
|
const encode10 = encode09.split('%2B').join('+')
|
||||||
|
const encode11 = encode10.split('%2C').join(',')
|
||||||
|
const encode12 = encode11.split('%2F').join('/')
|
||||||
|
const encode13 = encode12.split('%3A').join(':')
|
||||||
|
const encode14 = encode13.split('%3B').join(';')
|
||||||
|
const encode15 = encode14.split('%3D').join('=')
|
||||||
|
const encode16 = encode15.split('%3F').join('?')
|
||||||
|
const encode17 = encode16.split('%40').join('@')
|
||||||
|
|
||||||
|
return encode17
|
||||||
|
}
|
||||||
|
|
||||||
|
export const embedToString = (embed) => {
|
||||||
|
let embedString = ''
|
||||||
|
let embedService = ''
|
||||||
|
let embedName = ''
|
||||||
|
let embedIdentifier = ''
|
||||||
|
let embedAttachmentName = ''
|
||||||
|
|
||||||
|
if (embed.type === "IMAGE") {
|
||||||
|
embedService = embed.service
|
||||||
|
embedName = embed.name
|
||||||
|
embedIdentifier = embed.identifier
|
||||||
|
embedString = ',"images":[{"service":"' + embedService + '","name":"' + embedName + '","identifier":"' + embedIdentifier + '"}],"isImageDeleted":false'
|
||||||
|
} else if (embed.type === "ATTACHMENT") {
|
||||||
|
embedService = embed.service
|
||||||
|
embedName = embed.name
|
||||||
|
embedIdentifier = embed.identifier
|
||||||
|
embedAttachmentName = embed.fileName
|
||||||
|
embedString = ',"attachments":[{"service":"' + embedService + '","name":"' + embedName + '","identifier":"' + embedIdentifier + '","attachmentName":"' + embedAttachmentName + '","attachmentSize":0}],"isAttachmentDeleted":false'
|
||||||
|
} else {
|
||||||
|
embedString = ',"images":[""]'
|
||||||
|
}
|
||||||
|
|
||||||
|
return embedString
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export const listOfAllQortalRequests = [
|
export const listOfAllQortalRequests = [
|
||||||
'IS_USING_GATEWAY',
|
'IS_USING_GATEWAY',
|
||||||
'ADMIN_ACTION',
|
'ADMIN_ACTION',
|
||||||
@ -69,6 +188,7 @@ export const listOfAllQortalRequests = [
|
|||||||
'DECRYPT_QORTAL_GROUP_DATA',
|
'DECRYPT_QORTAL_GROUP_DATA',
|
||||||
'ENCRYPT_DATA_WITH_SHARING_KEY',
|
'ENCRYPT_DATA_WITH_SHARING_KEY',
|
||||||
'DECRYPT_DATA_WITH_SHARING_KEY',
|
'DECRYPT_DATA_WITH_SHARING_KEY',
|
||||||
|
'DECRYPT_AESGCM',
|
||||||
'CREATE_TRADE_BUY_ORDER',
|
'CREATE_TRADE_BUY_ORDER',
|
||||||
'CREATE_TRADE_SELL_ORDER',
|
'CREATE_TRADE_SELL_ORDER',
|
||||||
'CANCEL_TRADE_SELL_ORDER',
|
'CANCEL_TRADE_SELL_ORDER',
|
||||||
|
@ -33,6 +33,9 @@ export const ENCRYPT_DATA_WITH_SHARING_KEY = 'ENCRYPT_DATA_WITH_SHARING_KEY'
|
|||||||
// DECRYPT_DATA_WITH_SHARING_KEY
|
// DECRYPT_DATA_WITH_SHARING_KEY
|
||||||
export const DECRYPT_DATA_WITH_SHARING_KEY = 'DECRYPT_DATA_WITH_SHARING_KEY'
|
export const DECRYPT_DATA_WITH_SHARING_KEY = 'DECRYPT_DATA_WITH_SHARING_KEY'
|
||||||
|
|
||||||
|
// DECRYPT_AESGCM
|
||||||
|
export const DECRYPT_AESGCM = 'DECRYPT_AESGCM'
|
||||||
|
|
||||||
// CREATE_TRADE_BUY_ORDER
|
// CREATE_TRADE_BUY_ORDER
|
||||||
export const CREATE_TRADE_BUY_ORDER = 'CREATE_TRADE_BUY_ORDER'
|
export const CREATE_TRADE_BUY_ORDER = 'CREATE_TRADE_BUY_ORDER'
|
||||||
|
|
||||||
|
@ -5,7 +5,12 @@ import {
|
|||||||
uint8ArrayToObject,
|
uint8ArrayToObject,
|
||||||
decryptSingle
|
decryptSingle
|
||||||
} from './GroupEncryption.js'
|
} from './GroupEncryption.js'
|
||||||
|
import {
|
||||||
|
extensionToPointer,
|
||||||
|
encodedToChar,
|
||||||
|
embedToString,
|
||||||
|
parseQortalLink
|
||||||
|
} from './qdn-action-constants.js'
|
||||||
|
|
||||||
const nacl = {}
|
const nacl = {}
|
||||||
|
|
||||||
@ -2738,7 +2743,6 @@ class Curve25519 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const base58Instant = new Base58()
|
const base58Instant = new Base58()
|
||||||
|
|
||||||
const curve25519Instance = new Curve25519()
|
const curve25519Instance = new Curve25519()
|
||||||
|
|
||||||
self.addEventListener('message', async (e) => {
|
self.addEventListener('message', async (e) => {
|
||||||
@ -2762,7 +2766,6 @@ self.addEventListener('message', async (e) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
const decode = (string, keys, ref) => {
|
const decode = (string, keys, ref) => {
|
||||||
const binaryString = atob(string)
|
const binaryString = atob(string)
|
||||||
const binaryLength = binaryString.length
|
const binaryLength = binaryString.length
|
||||||
@ -2785,13 +2788,16 @@ const decode = (string, keys, ref) => {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let repliedToStr = ''
|
let repliedToStr = ''
|
||||||
|
let addedFileStr = ''
|
||||||
let messageStr = ''
|
let messageStr = ''
|
||||||
let hubString = ''
|
let hubString = ''
|
||||||
|
let messageRep = ''
|
||||||
|
let messageUseEmbed = {}
|
||||||
|
|
||||||
const res = decryptSingle(string, keys, false)
|
const res = decryptSingle(string, keys, false)
|
||||||
|
|
||||||
if (res === 'noKey' || res === 'decryptionFailed') {
|
if (res === 'noKey' || res === 'decryptionFailed') {
|
||||||
return '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"This message could not be decrypted"}]}]},"images":[""],"repliedTo":"","version":3}'
|
return '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"This message could not be decrypted"}]}]}' + addedFileStr + ',"repliedTo":"","version":3,"isFromHub":true}'
|
||||||
}
|
}
|
||||||
|
|
||||||
const decryptToUnit8Array = base64ToUint8Array(res)
|
const decryptToUnit8Array = base64ToUint8Array(res)
|
||||||
@ -2810,7 +2816,26 @@ const decode = (string, keys, ref) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (responseData.hasOwnProperty('message') && typeof responseData['message'] === 'string' && responseData['message'].length) {
|
if (responseData.hasOwnProperty('message') && typeof responseData['message'] === 'string' && responseData['message'].length) {
|
||||||
const messageRep = responseData.message
|
if (responseData.message.includes('qortal://use-embed/')) {
|
||||||
|
const useEmbed1 = extensionToPointer(responseData.message)
|
||||||
|
const useEmbed2 = /<newpointer>(.*?)<\/newpointer>/g.exec(useEmbed1)
|
||||||
|
const useEmbed3 = encodedToChar(useEmbed2[1])
|
||||||
|
|
||||||
|
messageUseEmbed = parseQortalLink(useEmbed3)
|
||||||
|
addedFileStr = embedToString(messageUseEmbed)
|
||||||
|
|
||||||
|
const useEmbed4 = responseData.message.split(useEmbed2[1]).join('')
|
||||||
|
|
||||||
|
if (useEmbed4 === "<p></p>") {
|
||||||
|
messageRep = useEmbed4.split('<p></p>').join('<p>Qortal-Hub embed link</p>')
|
||||||
|
} else {
|
||||||
|
messageRep = useEmbed4
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
messageRep = responseData.message
|
||||||
|
addedFileStr = ',"images":[""]'
|
||||||
|
}
|
||||||
|
|
||||||
const messageRep1 = messageRep.split('"').join('<upvote>')
|
const messageRep1 = messageRep.split('"').join('<upvote>')
|
||||||
const messageRep2 = messageRep1.split('</p><p></p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
const messageRep2 = messageRep1.split('</p><p></p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||||
const messageRep3 = messageRep2.split('</p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
const messageRep3 = messageRep2.split('</p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||||
@ -2833,11 +2858,11 @@ const decode = (string, keys, ref) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (responseData.type === "edit") {
|
if (responseData.type === "edit") {
|
||||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3,"isEdited":true}'
|
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]}' + addedFileStr + ',"repliedTo":"' + repliedToStr + '","version":3,"isEdited":true,"isFromHub":true}'
|
||||||
} else if (responseData.type === "reaction") {
|
} else if (responseData.type === "reaction") {
|
||||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3,"isReaction":true}'
|
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]}' + addedFileStr + ',"repliedTo":"' + repliedToStr + '","version":3,"isReaction":true,"isFromHub":true}'
|
||||||
} else {
|
} else {
|
||||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3}'
|
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]}' + addedFileStr + ',"repliedTo":"' + repliedToStr + '","version":3,"isFromHub":true}'
|
||||||
}
|
}
|
||||||
|
|
||||||
const preparedString = hubString.split('<upvote>').join('\\"')
|
const preparedString = hubString.split('<upvote>').join('\\"')
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1105,6 +1105,19 @@ export const publishData = async ({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getNameInfo(address) {
|
||||||
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||||
|
const nodeUrl = `${myNode.protocol}://${myNode.domain}:${myNode.port}`
|
||||||
|
const response = await fetch(`${nodeUrl}/names/address/` + address)
|
||||||
|
const nameData = await response.json()
|
||||||
|
|
||||||
|
if (nameData.length > 0) {
|
||||||
|
return nameData[0].name
|
||||||
|
} else {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export const getPublishesFromAdmins = async (admins, groupId) => {
|
export const getPublishesFromAdmins = async (admins, groupId) => {
|
||||||
const queryString = admins.map((name) => `name=${name}`).join("&")
|
const queryString = admins.map((name) => `name=${name}`).join("&")
|
||||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||||
@ -1113,7 +1126,7 @@ export const getPublishesFromAdmins = async (admins, groupId) => {
|
|||||||
const response = await fetch(url)
|
const response = await fetch(url)
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
consoöe.error("network error")
|
console.error("network error")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1178,7 +1191,7 @@ export const getPublishesFromAdminsAdminSpace = async (admins, groupId) => {
|
|||||||
const response = await fetch(url)
|
const response = await fetch(url)
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
consoöe.error("network error")
|
console.error("network error")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user