2024-01-30 17:08:29 +00:00
|
|
|
"
|
|
|
|
I manage instagram URLs information.
|
|
|
|
|
|
|
|
InstagramUrl newURL: 'https://instagram.com/restOfURL'
|
|
|
|
"
|
|
|
|
Class {
|
2024-05-26 18:44:40 +00:00
|
|
|
#name : 'InstagramUrl',
|
|
|
|
#superclass : 'Object',
|
2024-01-30 17:08:29 +00:00
|
|
|
#instVars : [
|
|
|
|
'url'
|
|
|
|
],
|
2024-05-26 18:44:40 +00:00
|
|
|
#category : 'Instagram',
|
|
|
|
#package : 'Instagram'
|
2024-01-30 17:08:29 +00:00
|
|
|
}
|
|
|
|
|
2024-05-26 18:44:40 +00:00
|
|
|
{ #category : 'instance creation' }
|
2024-01-30 17:08:29 +00:00
|
|
|
InstagramUrl class >> newURL: url [
|
2024-01-30 17:50:17 +00:00
|
|
|
| instance |
|
2024-01-30 17:08:29 +00:00
|
|
|
instance := self new.
|
2024-01-30 17:50:17 +00:00
|
|
|
instance url: (instance urlCheck: url).
|
2024-01-30 17:08:29 +00:00
|
|
|
^ instance
|
|
|
|
]
|
|
|
|
|
2024-05-26 18:44:40 +00:00
|
|
|
{ #category : 'initialization' }
|
2024-01-30 17:08:29 +00:00
|
|
|
InstagramUrl >> initialize [
|
|
|
|
| initial |
|
|
|
|
initial := 'https://www.instagram.com' asUrl.
|
|
|
|
super initialize.
|
|
|
|
self url: initial.
|
|
|
|
|
|
|
|
|
|
|
|
]
|
|
|
|
|
2024-05-26 18:44:40 +00:00
|
|
|
{ #category : 'opening' }
|
2024-01-30 17:08:29 +00:00
|
|
|
InstagramUrl >> openWithoutTracking [
|
|
|
|
WebBrowser openOn: self urlWithoutTracking
|
|
|
|
]
|
|
|
|
|
2024-05-26 18:44:40 +00:00
|
|
|
{ #category : 'accessing' }
|
2024-01-30 17:08:29 +00:00
|
|
|
InstagramUrl >> url [
|
|
|
|
|
|
|
|
^ url
|
|
|
|
]
|
|
|
|
|
2024-05-26 18:44:40 +00:00
|
|
|
{ #category : 'accessing' }
|
2024-01-30 17:08:29 +00:00
|
|
|
InstagramUrl >> url: aURL [
|
|
|
|
|
|
|
|
url := aURL
|
|
|
|
]
|
|
|
|
|
2024-05-26 18:44:40 +00:00
|
|
|
{ #category : 'testing' }
|
|
|
|
InstagramUrl >> urlCheck: aURLString [
|
2024-01-30 17:50:17 +00:00
|
|
|
| urlCheck |
|
2024-05-26 18:44:40 +00:00
|
|
|
(aURLString includesSubstring: 'instagram.com')
|
|
|
|
ifFalse: [ UIManager default inform: '" ', aURLString, ' " it''s not an instagram URL.'.
|
2024-01-30 17:50:17 +00:00
|
|
|
^ self url].
|
2024-05-26 18:44:40 +00:00
|
|
|
urlCheck := aURLString asUrl.
|
2024-01-30 17:50:17 +00:00
|
|
|
urlCheck hasHost ifFalse: [ urlCheck host: urlCheck segments first.
|
|
|
|
urlCheck removeFirstPathSegment. ].
|
|
|
|
urlCheck hasScheme ifFalse: [ urlCheck scheme: 'https' ].
|
|
|
|
^ urlCheck
|
|
|
|
]
|
|
|
|
|
2024-05-26 18:44:40 +00:00
|
|
|
{ #category : 'accessing' }
|
2024-01-30 17:08:29 +00:00
|
|
|
InstagramUrl >> urlWithoutTracking [
|
|
|
|
^ self url queryRemoveAll; asStringOrText
|
|
|
|
]
|