Skip to content

Commit adfbed2

Browse files
committed
remove duplicate entries and cleanings
1 parent 8e703dc commit adfbed2

8 files changed

Lines changed: 59 additions & 140 deletions

File tree

src/chat/bookmarks.js

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -24,53 +24,6 @@ const BOOKMARK_ICON = 'noun_45961.svg'
2424
const label = utils.label
2525
const dom = window.document || null
2626

27-
/** Create a resource if it really does not exist
28-
* Be absolutely sure something does not exist before creating a new empty file
29-
* as otherwise existing could be deleted.
30-
* @param doc {NamedNode} - The resource
31-
*/
32-
function createIfNotExists (doc) {
33-
return new Promise(function (resolve, reject) {
34-
store.fetcher.load(doc).then(
35-
response => {
36-
debug.log('createIfNotExists doc exists, all good ' + doc)
37-
// store.fetcher.webOperation('HEAD', doc.uri).then(response => {
38-
resolve(response)
39-
},
40-
err => {
41-
if (err.response.status === 404) {
42-
debug.log(
43-
'createIfNotExists doc does NOT exist, will create... ' + doc
44-
)
45-
46-
store.fetcher
47-
.webOperation('PUT', doc.uri, {
48-
data: '',
49-
contentType: 'text/turtle'
50-
})
51-
.then(
52-
response => {
53-
// fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers
54-
delete store.fetcher.requested[doc.uri] // delete cached 404 error
55-
debug.log('createIfNotExists doc created ok ' + doc)
56-
resolve(response)
57-
},
58-
err => {
59-
debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)
60-
reject(err)
61-
}
62-
)
63-
} else {
64-
debug.log(
65-
'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err
66-
)
67-
reject(err)
68-
}
69-
}
70-
)
71-
})
72-
}
73-
7427
// @@@@ use the one in rdflib.js when it is avaiable and delete this
7528
function updatePromise (del, ins) {
7629
return new Promise(function (resolve, reject) {
@@ -109,7 +62,7 @@ export async function findBookmarkDocument (userContext) {
10962
)
11063
try {
11164
debug.log('Creating new bookmark file ' + newBookmarkFile)
112-
await createIfNotExists(newBookmarkFile)
65+
await store.fetcher.createIfNotExists(newBookmarkFile)
11366
} catch (e) {
11467
debug.warn("Can't make fresh bookmark file:" + e)
11568
return userContext

src/chat/chatLogic.js

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ export class ChatChannel {
101101
sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()))
102102
}
103103
}
104+
104105
try {
105106
await store.updater.updateMany([], sts)
106107
} catch (err) {
@@ -217,35 +218,4 @@ export function nick (person) {
217218
if (s) return '' + s.value
218219
return '' + utils.label(person)
219220
}
220-
221-
export async function _createIfNotExists (doc, contentType = 'text/turtle', data = '') {
222-
let response
223-
try {
224-
response = await store.fetcher.load(doc)
225-
} catch (err) {
226-
if (err.response.status === 404) {
227-
debug.log(
228-
'createIfNotExists: doc does NOT exist, will create... ' + doc
229-
)
230-
try {
231-
response = await store.fetcher.webOperation('PUT', doc.uri, {
232-
data,
233-
contentType
234-
})
235-
} catch (err) {
236-
debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)
237-
throw err
238-
}
239-
delete store.fetcher.requested[doc.uri] // delete cached 404 error
240-
// debug.log('createIfNotExists doc created ok ' + doc)
241-
return response
242-
} else {
243-
debug.log(
244-
'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err
245-
)
246-
throw err
247-
}
248-
}
249-
return response
250-
}
251221
// ends

src/chat/dateFolder.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class DateFolder {
4747
// let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(
4848
const date = new Date(str) // not explicitly UTC but is assumed so in spec
4949
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
50-
debug.log('Date for ' + doc + ':' + date.toISOString())
50+
// debug.log('Date for ' + doc + ':' + date.toISOString())
5151
return date
5252
}
5353

@@ -80,7 +80,7 @@ export class DateFolder {
8080
siblings = siblings.filter(younger)
8181
const folder = lastOrFirst(siblings)
8282
if (folder) return folder
83-
debug.log(' parent no suitable offspring ' + parent)
83+
// debug.log(' parent no suitable offspring ' + parent)
8484
} catch (err) {
8585
if (err.response && err.response.status && err.response.status === 404) {
8686
debug.log('Error 404 for chat parent file ' + parent)
@@ -91,20 +91,20 @@ export class DateFolder {
9191
}
9292
}
9393
if (level === 0) {
94-
debug.log('loadPrevious: returning as level is zero')
94+
// debug.log('loadPrevious: returning as level is zero')
9595
return null // 3:day, 2:month, 1: year 0: no
9696
}
9797

9898
const uncle = await previousPeriod(parent, level - 1)
9999
if (!uncle) {
100-
debug.log(' previousPeriod: nothing left before. ', parent)
100+
// debug.log(' previousPeriod: nothing left before. ', parent)
101101
return null // reached first ever
102102
}
103103
await store.fetcher.load(uncle)
104104
const cousins = store.each(uncle, ns.ldp('contains'))
105105
const result = lastOrFirst(cousins)
106-
debug.log(' previousPeriod: returning cousins at level ' + level, cousins)
107-
debug.log(' previousPeriod: returning result at level ' + level, result)
106+
// debug.log(' previousPeriod: returning cousins at level ' + level, cousins)
107+
// debug.log(' previousPeriod: returning result at level ' + level, result)
108108

109109
return result
110110
} // previousPeriod
@@ -118,10 +118,10 @@ export class DateFolder {
118118
if (!await emptyLeaf(leafDocument)) {
119119
return nextDate
120120
} else {
121-
debug.log(' loadPrevious: skipping empty ' + leafDocument)
121+
// debug.log(' loadPrevious: skipping empty ' + leafDocument)
122122
date = nextDate
123123
folder = this.leafDocumentFromDate(date).dir()
124-
debug.log(' loadPrevious: moved back to ' + folder)
124+
// debug.log(' loadPrevious: moved back to ' + folder)
125125
}
126126
} else {
127127
return null // no more left
@@ -142,7 +142,7 @@ export class DateFolder {
142142
if (!'0123456789'.includes(tail[0])) return false // not numeric
143143
return true
144144
}
145-
debug.log(' parent ' + parent)
145+
// debug.log(' parent ' + parent)
146146
delete folderFetcher.requested[parent.uri]
147147
// try {
148148
await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed
@@ -182,9 +182,9 @@ export class DateFolder {
182182
])
183183
sortMe.sort()
184184
if (backwards) sortMe.reverse()
185-
debug.log(
185+
/* debug.log(
186186
(backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]
187-
)
187+
) */
188188
return sortMe[0][1]
189189
} // firstleafObject
190190
} // class

src/chat/infinite.js

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
113113
displayed[ele.AJAR_subject.uri] = true
114114
}
115115
}
116-
117116
const messages = store.each(chatChannel, ns.wf('message'), null, messageTable.chatDocument)
117+
118118
const stored = {}
119119
for (const m of messages) {
120120
stored[m.uri] = true
@@ -157,29 +157,33 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
157157

158158
if (options.thread) { // only show things in thread
159159
if (store.holds(message, ns.sioc('has_reply'), options.thread)) { // root of thread
160-
debug.log(' addMessage: displaying root of thread ' + thread)
160+
// debug.log(' addMessage: displaying root of thread ' + thread)
161161
} else if (thread && thread.sameTerm(options.thread)) {
162-
debug.log(' addMessage: Displaying body of thread ' + message.uri.slice(-10))
162+
// debug.log(' addMessage: Displaying body of thread ' + message.uri.slice(-10))
163163
} else {
164-
debug.log(' addMessage: Suppress non-thread message in thread table ' + message.uri.slice(-10))
164+
// debug.log(' addMessage: Suppress non-thread message in thread table ' + message.uri.slice(-10))
165165
return // suppress message not in thread
166166
}
167167
} else { // Not threads
168168
if (thread) {
169-
debug.log(' addMessage: Suppress thread message in non-thread table ' + message.uri.slice(-10))
169+
// debug.log(' addMessage: Suppress thread message in non-thread table ' + message.uri.slice(-10))
170170
return // supress thread messages in body
171171
} else {
172-
debug.log(' addMessage: Normal non-thread message in non-thread table ' + message.uri.slice(-10))
172+
// debug.log(' addMessage: Normal non-thread message in non-thread table ' + message.uri.slice(-10))
173173
}
174174
}
175-
176-
await insertMessageIntoTable(channelObject,
177-
messageTable,
178-
message,
179-
messageTable.fresh,
180-
options,
181-
userContext
182-
) // fresh from elsewhere
175+
if (!messageTable.fresh) { // if messageTable has been updated with insertMessageIntoTable() don't do it again
176+
// debug.log('@@@ infinite insertMessageIntoTable ' + message) // alain
177+
// debug.log('fresh ' + messageTable.fresh)
178+
// debug.log(messageTable)
179+
await insertMessageIntoTable(channelObject,
180+
messageTable,
181+
message,
182+
messageTable.fresh,
183+
options,
184+
userContext
185+
) // fresh from elsewhere
186+
}
183187
}
184188

185189
/* Add a new messageTable at the top/bottom
@@ -194,16 +198,16 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
194198
if (!liveMessageTable) await appendCurrentMessages() // If necessary skip to today and add that
195199
return true // done
196200
}
197-
debug.log(' insertPreviousMessages: loadPrevious given date ' + date)
201+
// debug.log(' insertPreviousMessages: loadPrevious given date ' + date)
198202

199203
date = await dateFolder.loadPrevious(date, backwards) // backwards
200-
debug.log(' insertPreviousMessages: loadPrevious returns date ' + date)
204+
// debug.log(' insertPreviousMessages: loadPrevious returns date ' + date)
201205

202-
debug.log(
206+
/* debug.log(
203207
`insertPreviousMessages: from ${
204208
backwards ? 'backwards' : 'forwards'
205209
} loadPrevious: ${date}`
206-
)
210+
) */
207211
if (!date && !backwards && !liveMessageTable) {
208212
await appendCurrentMessages() // If necessary skip to today and add that
209213
}
@@ -248,15 +252,15 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
248252
** @returns DOM element generates
249253
*/
250254
async function createMessageTable (date, live) {
251-
debug.log(' createMessageTable for ' + date)
255+
// debug.log(' createMessageTable for ' + date)
252256
const chatDocument = dateFolder.leafDocumentFromDate(date)
253257
try {
254-
await store.fetcher.load(chatDocument)
258+
await store.fetcher.createIfNotExists(chatDocument)
255259
} catch (err) {
256260
const messageTable = dom.createElement('table')
257261
const statusTR = messageTable.appendChild(dom.createElement('tr')) // ### find status in exception
258262
if (err.response && err.response.status && err.response.status === 404) {
259-
debug.log('Error 404 for chat file ' + chatDocument)
263+
// debug.log('Error 404 for chat file ' + chatDocument)
260264
return await renderMessageTable(date, live) // no message file is fine. will be created later
261265
// statusTR.appendChild(widgets.errorMessageBlock(dom, 'no message file', 'white'))
262266
} else {
@@ -370,7 +374,7 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
370374
const userContext = { dom, statusArea, div: statusArea } // logged on state, pointers to user's stuff
371375
372376
*/
373-
debug.log('Options for called message Area', options)
377+
// debug.log('Options for called message Area', options)
374378
const messageTable = dom.createElement('table')
375379
messageTable.style.width = '100%' // fill the pane div
376380
messageTable.extendBackwards = extendBackwards // Make function available to scroll stuff
@@ -473,10 +477,7 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
473477
for (const st of sts) {
474478
await addMessage(st.object, messageTable)
475479
}
476-
messageTable.fresh = true
477-
478-
// loadMessageTable(messageTable, chatDocument)
479-
messageTable.fresh = false
480+
messageTable.fresh = true // message table updated with insertMessageIntoTable()
480481
return messageTable
481482
} // renderMessageTable
482483

@@ -576,7 +577,7 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
576577
}
577578
// debug.log(' chat/loadMoreWhereNeeded: Going now')
578579
const scrollBottom = div.scrollHeight - div.scrollTop
579-
debug.log('infinite scroll: adding above: top ' + div.scrollTop)
580+
// debug.log('infinite scroll: adding above: top ' + div.scrollTop)
580581
done = await earliest.messageTable.extendBackwards()
581582
if (freeze) {
582583
div.scrollTop = div.scrollHeight - scrollBottom
@@ -592,10 +593,10 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
592593
latest.messageTable.extendForwards
593594
) {
594595
const scrollTop = div.scrollTop
595-
debug.log(
596+
/* debug.log(
596597
'infinite scroll: adding below: bottom: ' +
597598
(div.scrollHeight - div.scrollTop - div.clientHeight)
598-
)
599+
) */
599600
done = await latest.messageTable.extendForwards() // then add more data on the bottom
600601
if (freeze) {
601602
div.scrollTop = scrollTop // while adding below keep same things in view
@@ -689,7 +690,7 @@ export async function infiniteMessageArea (dom, wasStore, chatChannel, options)
689690
const threadTime = store.any(threadRootMessage, ns.dct('created'), null, threadRootMessage.doc())
690691
if (threadTime) {
691692
earliest.limit = new Date(threadTime.value)
692-
debug.log(' inifinite: thread start at ' + earliest.limit)
693+
// debug.log(' infinite: thread start at ' + earliest.limit)
693694
}
694695
}
695696
}

src/chat/keys.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export async function getPrivateKey (webId: NamedNode) {
6868
// delete invalid public key
6969
if (publicKey) {
7070
del = [$rdf.st(webId, ns.solid('publicKey'), $rdf.lit(publicKey), store.sym(publicKeyDoc))]
71-
debug.log(del)
71+
debug.log('delete invalid publicKey ' + del)
7272
}
7373
// update new valid key
7474
const newPublicKey = generatePublicKey(privateKey)
@@ -89,10 +89,10 @@ const deleteKeyAcl = async (keyDoc: string) => {
8989
// delete READ only keyAclDoc. This is possible if the webId is an owner
9090
try {
9191
const response = await store.fetcher.webOperation('DELETE', keyAclDoc.value) // this may fail if webId is not an owner
92-
debug.log('delete ' + keyAclDoc.value + ' ' + response.status) // should test 404 and 2xx
92+
debug.log('delete keyAcl' + keyAclDoc.value + ' ' + response.status) // should test 404 and 2xx
9393
} catch (err) {
9494
if (err.response.status !== 404) { throw new Error(err) }
95-
debug.log('delete ' + keyAclDoc.value + ' ' + err.response.status) // should test 404 and 2xx
95+
debug.log('delete keyAcl' + keyAclDoc.value + ' ' + err.response.status) // should test 404 and 2xx
9696
}
9797
}
9898
}

0 commit comments

Comments
 (0)