" I model information of the items published on Internet Archive (https://archive.org/). " Class { #name : #ArchiveOrgItem, #superclass : #Object, #instVars : [ 'id', 'metadata' ], #category : #Brea } { #category : #utility } ArchiveOrgItem >> archive [ ^ 'https://archive.org' ] { #category : #utilities } ArchiveOrgItem >> createHtmlImageGalleryList [ "IMPORTANT: This is just a draft snipped. Should become a proper test o be deleted." self metadata ifNil: [ self getMetadata ]. ^ '
' ] { #category : #utilities } ArchiveOrgItem >> embeddedUrl [ ^ 'https://archive.org/embed/', self id. ] { #category : #utilities } ArchiveOrgItem >> galleryItemsBaseUrl [ "I create the place where all image would be located for creating a custom image gallery, according with the requirements for nanogallery2." ^ 'https://', (self metadata at: 'd2'), (self metadata at: 'dir'), '/'. ] { #category : #operation } ArchiveOrgItem >> getMetadata [ self id ifNil: [ ^ self ]. self metadata: (NeoJSONReader fromString: (self archive, '/metadata/', self id) asUrl retrieveContents) ] { #category : #accessing } ArchiveOrgItem >> id [ ^ id ] { #category : #accessing } ArchiveOrgItem >> id: anObject [ id := anObject ] { #category : #utilities } ArchiveOrgItem >> imagesGalleryList [ self metadata ifNil: [ self getMetadata ]. ^ (self metadata at: 'files') select: [ :file | (file at: 'format') = 'JPEG Thumb' ] ] { #category : #utilities } ArchiveOrgItem >> imagesGalleryListAsDictionary [ | galleryImages result | self imagesGalleryList ifNil: [ ^ self ]. galleryImages := OrderedCollection new. self imagesGalleryList do: [ :imgMetadata | galleryImages add: (Dictionary new at: 'imgOriginal' put: (imgMetadata at: 'original'); at: 'imgThumb' put: (imgMetadata at: 'name'); yourself) ]. result := { 'archiveItemImages' -> galleryImages } asDictionary. ^ result ] { #category : #accessing } ArchiveOrgItem >> metadata [ ^ metadata ] { #category : #accessing } ArchiveOrgItem >> metadata: anObject [ metadata := anObject ] { #category : #utilities } ArchiveOrgItem >> subjectTags [ self id ifNil: [ ^ self ]. self metadata ifNil: [ self getMetadata ]. ^ (self metadata at: 'metadata') at: 'subject' ] { #category : #utilities } ArchiveOrgItem >> subjectTagsAsDictionary [ | tagList result | self imagesGalleryList ifNil: [ ^ self ]. tagList := OrderedCollection new. self subjectTags do: [ :tag | tagList add: (Dictionary new at: 'tag' put: tag; yourself) ]. result := { 'tagList' -> tagList } asDictionary. ^ result ]