diff --git a/repository/TiddlyWiki/FedWikiItem.class.st b/repository/TiddlyWiki/FedWikiItem.class.st new file mode 100644 index 0000000..b4ce69c --- /dev/null +++ b/repository/TiddlyWiki/FedWikiItem.class.st @@ -0,0 +1,34 @@ +Class { + #name : #FedWikiItem, + #superclass : #Object, + #instVars : [ + 'text', + 'id', + 'type' + ], + #category : #'TiddlyWiki-Model' +} + +{ #category : #accessing } +FedWikiItem >> fromDictionary: aDictionary [ + text := aDictionary at: 'text'. + id := aDictionary at: 'id'. + type := aDictionary at: 'type'. +] + +{ #category : #accessing } +FedWikiItem >> printOn: aStream [ + super printOn: aStream. + aStream + nextPutAll: '( ',self type, ' | ', self text, ' )' +] + +{ #category : #accessing } +FedWikiItem >> text [ + ^ text +] + +{ #category : #accessing } +FedWikiItem >> type [ + ^ type +] diff --git a/repository/TiddlyWiki/FedWikiPage.class.st b/repository/TiddlyWiki/FedWikiPage.class.st index 29df435..b884a92 100644 --- a/repository/TiddlyWiki/FedWikiPage.class.st +++ b/repository/TiddlyWiki/FedWikiPage.class.st @@ -2,26 +2,91 @@ Class { #name : #FedWikiPage, #superclass : #Object, #instVars : [ - 'url' + 'url', + 'title', + 'story', + 'journal', + 'importJournal' ], #category : #'TiddlyWiki-Model' } +{ #category : #accessing } +FedWikiPage >> dataDictionary [ + | dataUrl | + self isView ifFalse: [ + self inform: 'Please provide a view url for the FedWiki page.'. + ^ self]. + dataUrl := self scheme , '://', self host, '/', self titleSegmentUrl, '.json'. + ^ STONJSON fromString: dataUrl asUrl retrieveContents +] + +{ #category : #accessing } +FedWikiPage >> fromDataDictionary [ + title := self dataDictionary at: 'title'. + story := self dataDictionary at: 'story'. + self importJournal ifTrue: [ journal := self dataDictionary at: 'journal']. +] + { #category : #accessing } FedWikiPage >> host [ ^ self url host ] +{ #category : #accessing } +FedWikiPage >> importJournal [ + ^ importJournal ifNil: [ importJournal := false ] +] + +{ #category : #accessing } +FedWikiPage >> importJournal: aBoolean [ + importJournal := aBoolean +] + { #category : #accessing } FedWikiPage >> isView [ ^ self url firstPathSegment = 'view' ] +{ #category : #accessing } +FedWikiPage >> jsonData [ + | dataUrl | + self isView ifFalse: [ + self inform: 'Please provide a view url for the FedWiki page.'. + ^ self]. + dataUrl := self scheme , '://', self host, self titleSegmentUrl, '.json' +] + +{ #category : #accessing } +FedWikiPage >> printOn: aStream [ + super printOn: aStream. + aStream + nextPutAll: '( ', self title, ' | ', self story size asString, ' items story )' +] + { #category : #accessing } FedWikiPage >> scheme [ ^ self url scheme ] +{ #category : #accessing } +FedWikiPage >> story [ + ^ story +] + +{ #category : #accessing } +FedWikiPage >> title [ + ^ title. +] + +{ #category : #accessing } +FedWikiPage >> titleSegmentUrl [ + self isView ifFalse: [ + self inform: 'Please provide a view url for the FedWiki page.'. + ^ self]. + ^ self url segments last. +] + { #category : #accessing } FedWikiPage >> url [ ^ url