Moving from GrafoscopioUtils.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2022-09-21 13:57:52 -05:00
parent ef469a9b85
commit 994ce727d1

View File

@ -0,0 +1,43 @@
Extension { #name : #LeDatabase }
{ #category : #'*MiniDocs' }
LeDatabase >> addPageFromMarkdeepUrl: aString [
| page |
page := self detectLocalPageForRemote: aString.
page ifNotNil: [ :arg | ^ self importErrorMessage: page ].
self addPage: page.
]
{ #category : #'*MiniDocs' }
LeDatabase >> detectLocalPageForRemote: markdeepDocUrl [
| markdeepHelper id remoteMetadata docTree |
markdeepHelper := Markdeep new.
docTree := (XMLHTMLParser on: markdeepDocUrl asUrl retrieveContents) parseDocument.
remoteMetadata := markdeepHelper metadataFromXML: docTree.
id := remoteMetadata at: 'id' ifAbsent: [ ^ false ].
^ self pageWithID: id ifAbsent: [ nil ].
]
{ #category : #'*MiniDocs' }
LeDatabase >> importErrorMessage: page [
^ String streamContents: [ :stream |
stream
nextPutAll: 'IMPORTATION ERROR: a page with';
nextPut: Character lf;
nextPut: Character lf;
nextPutAll: ' id: ' , page uidString;
nextPut: Character lf;
nextPutAll: ' title: ' , page contentAsString;
nextPut: Character lf;
nextPut: Character lf;
nextPutAll: 'already exists in this database.';
nextPut: Character lf;
nextPut: Character lf;
nextPutAll:
'Please do one of those before retrying this procedure:
1) Move the existing page files (.lepiter and .bak) to another (sub)folder.
2) Import the page url to another database.' ]
]