module Web.Twitter.Types.Lens
( TT.DateString
, TT.UserId
, TT.Friends
, TT.URIString
, TT.UserName
, TT.StatusId
, TT.LanguageCode
, TT.StreamingAPI(..)
, TT.Status
, TT.SearchResult
, TT.SearchStatus
, TT.SearchMetadata
, TT.RetweetedStatus
, TT.DirectMessage
, TT.EventTarget(..)
, TT.Event
, TT.Delete
, TT.User
, TT.List
, TT.Entities
, TT.EntityIndices
, TT.Entity
, TT.HashTagEntity
, TT.UserEntity
, TT.URLEntity
, TT.MediaEntity
, TT.MediaSize
, TT.Coordinates
, TT.Place
, TT.BoundingBox
, statusContributors
, statusCoordinates
, statusCreatedAt
, statusCurrentUserRetweet
, statusEntities
, statusExtendedEntities
, statusFavoriteCount
, statusFavorited
, statusFilterLevel
, statusId
, statusInReplyToScreenName
, statusInReplyToStatusId
, statusInReplyToUserId
, statusLang
, statusPlace
, statusPossiblySensitive
, statusScopes
, statusRetweetCount
, statusRetweeted
, statusRetweetedStatus
, statusSource
, statusText
, statusTruncated
, statusUser
, statusWithheldCopyright
, statusWithheldInCountries
, statusWithheldScope
, searchResultStatuses
, searchResultSearchMetadata
, searchStatusCreatedAt
, searchStatusId
, searchStatusText
, searchStatusSource
, searchStatusUser
, searchStatusCoordinates
, searchMetadataMaxId
, searchMetadataSinceId
, searchMetadataRefreshURL
, searchMetadataNextResults
, searchMetadataCount
, searchMetadataCompletedIn
, searchMetadataSinceIdStr
, searchMetadataQuery
, searchMetadataMaxIdStr
, rsCreatedAt
, rsId
, rsText
, rsSource
, rsTruncated
, rsEntities
, rsUser
, rsRetweetedStatus
, rsCoordinates
, dmCreatedAt
, dmSenderScreenName
, dmSender
, dmText
, dmRecipientScreeName
, dmId
, dmRecipient
, dmRecipientId
, dmSenderId
, dmCoordinates
, evCreatedAt
, evTargetObject
, evEvent
, evTarget
, evSource
, delId
, delUserId
, userContributorsEnabled
, userCreatedAt
, userDefaultProfile
, userDefaultProfileImage
, userDescription
, userFavoritesCount
, userFollowRequestSent
, userFollowing
, userFollowersCount
, userFriendsCount
, userGeoEnabled
, userId
, userIsTranslator
, userLang
, userListedCount
, userLocation
, userName
, userNotifications
, userProfileBackgroundColor
, userProfileBackgroundImageURL
, userProfileBackgroundImageURLHttps
, userProfileBackgroundTile
, userProfileBannerURL
, userProfileImageURL
, userProfileImageURLHttps
, userProfileLinkColor
, userProfileSidebarBorderColor
, userProfileSidebarFillColor
, userProfileTextColor
, userProfileUseBackgroundImage
, userProtected
, userScreenName
, userShowAllInlineMedia
, userStatusesCount
, userTimeZone
, userURL
, userUtcOffset
, userVerified
, userWithheldInCountries
, userWithheldScope
, listId
, listName
, listFullName
, listMemberCount
, listSubscriberCount
, listMode
, listUser
, hashTagText
, userEntityUserId
, userEntityUserName
, userEntityUserScreenName
, ueURL
, ueExpanded
, ueDisplay
, meType
, meId
, meSizes
, meMediaURL
, meMediaURLHttps
, meURL
, msWidth
, msHeight
, msResize
, coordinates
, coordinatesType
, placeAttributes
, placeBoundingBox
, placeCountry
, placeCountryCode
, placeFullName
, placeId
, placeName
, placeType
, placeURL
, boundingBoxCoordinates
, boundingBoxType
, enHashTags
, enUserMentions
, enURLs
, enMedia
, entityBody
, entityIndices
, AsStatus(..)
, AsUser(..)
)
where
import Web.Twitter.Types.Lens.Types
import qualified Web.Twitter.Types as TT
import Data.Text (Text)
import Web.Twitter.Types.Lens.TH
makeLenses ''TT.Status
makeLenses ''TT.SearchResult
makeLenses ''TT.SearchStatus
makeLenses ''TT.SearchMetadata
makeLenses ''TT.RetweetedStatus
makeLenses ''TT.DirectMessage
makeLenses ''TT.Event
makeLenses ''TT.Delete
makeLenses ''TT.User
makeLenses ''TT.List
makeLenses ''TT.HashTagEntity
makeLenses ''TT.UserEntity
makeLenses ''TT.URLEntity
makeLenses ''TT.MediaEntity
makeLenses ''TT.MediaSize
makeLenses ''TT.Coordinates
makeLenses ''TT.Place
makeLenses ''TT.BoundingBox
makeLenses ''TT.Entities
makeLenses ''TT.Entity
class AsStatus s where
status_id :: Lens' s TT.StatusId
text :: Lens' s Text
user :: Lens' s TT.User
created_at :: Lens' s TT.DateString
geolocation :: Lens' s (Maybe TT.Coordinates)
instance AsStatus TT.Status where
status_id = statusId
text = statusText
user = statusUser
created_at = statusCreatedAt
geolocation = statusCoordinates
instance AsStatus TT.SearchStatus where
status_id = searchStatusId
text = searchStatusText
user = searchStatusUser
created_at = searchStatusCreatedAt
geolocation = searchStatusCoordinates
instance AsStatus TT.RetweetedStatus where
status_id = rsId
text = rsText
user = rsUser
created_at = rsCreatedAt
geolocation = rsCoordinates
instance AsStatus TT.DirectMessage where
status_id = dmId
text = dmText
user = dmSender
created_at = dmCreatedAt
geolocation = dmCoordinates
class AsUser u where
user_id :: Lens' u TT.UserId
name :: Lens' u TT.UserName
screen_name :: Lens' u Text
instance AsUser TT.User where
user_id = userId
name = userName
screen_name = userScreenName
instance AsUser TT.UserEntity where
user_id = userEntityUserId
name = userEntityUserName
screen_name = userEntityUserScreenName
instance AsUser (TT.Entity TT.UserEntity) where
user_id = entityBody.userEntityUserId
name = entityBody.userEntityUserName
screen_name = entityBody.userEntityUserScreenName