-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A library for crawling exhentai
--
-- A library for crawling exhentai, with the support of streaming
@package exh
@version 1.0.2
-- | Authentication API.
module Web.Exhentai.API.Auth
data Credential
Credential :: ByteString -> ByteString -> Credential
[$sel:username:Credential] :: Credential -> ByteString
[$sel:password:Credential] :: Credential -> ByteString
-- | Authenticates and loads user preferences. This should be called before
-- any other functions are called
auth :: Effs '[Http, Error HttpException, Cookie, ConduitIO, Bracket] m => Credential -> m ()
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.ByteString.Internal.ByteString, b GHC.Types.~ Data.ByteString.Internal.ByteString) => Optics.Internal.Optic.LabelOptic "password" k Web.Exhentai.API.Auth.Credential Web.Exhentai.API.Auth.Credential a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.ByteString.Internal.ByteString, b GHC.Types.~ Data.ByteString.Internal.ByteString) => Optics.Internal.Optic.LabelOptic "username" k Web.Exhentai.API.Auth.Credential Web.Exhentai.API.Auth.Credential a b
instance GHC.Classes.Eq Web.Exhentai.API.Auth.Credential
instance GHC.Show.Show Web.Exhentai.API.Auth.Credential
-- | Internal module
module Web.Exhentai.Utils
body :: Traversal' Document Element
div :: AffineTraversal' Element Element
h1 :: AffineTraversal' Element Element
a :: AffineTraversal' Element Element
table :: AffineTraversal' Element Element
tr :: AffineTraversal' Element Element
td :: AffineTraversal' Element Element
img :: AffineTraversal' Element Element
cl :: Text -> AffineTraversal' Element Element
id :: Text -> AffineTraversal' Element Element
viaShowRead :: (Show a, Read a) => Prism' Text a
scripts :: AffineTraversal' Element Element
(^?:) :: (Is (Join A_Traversal l) A_Fold, Is l (Join A_Traversal l), Is A_Traversal (Join A_Traversal l)) => Document -> Optic l is Element Element a a -> Maybe a
infixl 8 ^?:
(^..:) :: (Is (Join A_Traversal l) A_Fold, Is l (Join A_Traversal l), Is A_Traversal (Join A_Traversal l)) => Document -> Optic l is Element Element a a -> [a]
infixl 8 ^..:
sinkAeson :: (FromJSON a, Monad m) => ConduitT ByteString o m (Either String a)
jsonRequest :: (FromJSON a, Effs '[Http, Error HttpException, ConduitIO, Cookie, Bracket] m) => Request -> m (Either String a)
htmlRequest :: Effs '[Http, Error HttpException, ConduitIO, Cookie, Bracket] m => Request -> m Document
htmlRequest' :: Effs '[Http, Error HttpException, ConduitIO, Cookie, Bracket] m => Text -> m Document
parseUploadTime :: Text -> Maybe UTCTime
annotate :: ann -> Maybe a -> Either ann a
(!!) :: [a] -> Int -> Maybe a
-- | Internal modules
module Web.Exhentai.Parsing.Search
pages :: Traversal' Element Int
pagesElem :: Traversal' Element Element
linkOf :: Traversal' Element Text
galleryPreviewElement :: Traversal' Element Element
previewImage :: Traversal' Element Text
title :: Traversal' Element Text
galleryLink :: Traversal' Element Text
-- | Internal module
module Web.Exhentai.Parsing.Image
imageSrc :: Traversal' Element Text
nextImage :: Traversal' Element Text
-- | Internal module
module Web.Exhentai.Parsing.Gallery
meta :: AffineTraversal' Element Element
title :: Traversal' Element Element
enTitle :: Traversal' Element Text
jaTitle :: Traversal' Element Text
mainMeta :: Traversal' Element Element
mainMetaL :: Traversal' Element Element
mainMetaM :: Traversal' Element Element
mainMetaR :: Traversal' Element Element
previewStr :: Traversal' Element Text
category :: Traversal' Element Text
uploader :: Traversal' Element Text
metaPath :: Traversal' Element Element
metaKeys :: Traversal' Element Text
metaValues :: Traversal' Element Element
parent :: Traversal' Element Text
ratingCount :: Traversal' Element Int
averageRating :: Traversal' Element Text
tagList :: Traversal' Element Element
tagCategory :: Traversal' Element Text
tagsByCategory :: Traversal' Element Element
tags :: Traversal' Element Text
popupLink :: Traversal' Element Text
imagePages :: Traversal' Element Text
newer :: Traversal' Element Text
-- | Gallery API.
module Web.Exhentai.API.Gallery
data Gallery
Gallery :: {-# UNPACK #-} !Int -> {-# UNPACK #-} !Text -> Gallery
[$sel:galleryId:Gallery] :: Gallery -> {-# UNPACK #-} !Int
[$sel:token:Gallery] :: Gallery -> {-# UNPACK #-} !Text
-- | Information about a gallery
data GalleryInfo
GalleryInfo :: {-# UNPACK #-}Text -> {-# UNPACK #-}Text -> GalleryCategory -> Maybe Text -> {-# UNPACK #-}Text -> {-# UNPACK #-}Double -> {-# UNPACK #-}Int -> {-# UNPACK #-}Int -> [(TagCategory, [Text])] -> {-# UNPACK #-}UTCTime -> Maybe Gallery -> Maybe Gallery -> Visibility -> {-# UNPACK #-}Text -> {-# UNPACK #-}Int -> {-# UNPACK #-}Text -> {-# UNPACK #-}Text -> GalleryInfo
[$sel:title:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Text
[$sel:previewLink:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Text
[$sel:category:GalleryInfo] :: GalleryInfo -> GalleryCategory
[$sel:jaTitle:GalleryInfo] :: GalleryInfo -> Maybe Text
[$sel:uploader:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Text
[$sel:rating:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Double
[$sel:ratingCount:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Int
[$sel:favoriteCount:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Int
[$sel:tags:GalleryInfo] :: GalleryInfo -> [(TagCategory, [Text])]
[$sel:uploadTime:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}UTCTime
[$sel:newer:GalleryInfo] :: GalleryInfo -> Maybe Gallery
[$sel:parent:GalleryInfo] :: GalleryInfo -> Maybe Gallery
[$sel:visibility:GalleryInfo] :: GalleryInfo -> Visibility
[$sel:language:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Text
[$sel:length:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Int
[$sel:archiverLink:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Text
[$sel:torrentLink:GalleryInfo] :: GalleryInfo -> {-# UNPACK #-}Text
data Visibility
Visible :: Visibility
Replaced :: Visibility
Expunged :: Visibility
Unknown :: {-# UNPACK #-}Text -> Visibility
data GalleryCategory
Misc :: GalleryCategory
Doujinshi :: GalleryCategory
Manga :: GalleryCategory
ArtistCG :: GalleryCategory
GameCG :: GalleryCategory
ImageSet :: GalleryCategory
Cosplay :: GalleryCategory
AsianPorn :: GalleryCategory
NonH :: GalleryCategory
Western :: GalleryCategory
Private :: GalleryCategory
data TagCategory
Language :: TagCategory
Parody :: TagCategory
Character :: TagCategory
Group :: TagCategory
Artist :: TagCategory
Male :: TagCategory
Female :: TagCategory
Misc' :: TagCategory
Reclass :: TagCategory
allGalleryCats :: Set GalleryCategory
-- | Fetch a gallery's GalleryInfo
fetchGalleryInfo :: Effs '[Http, Error HttpException, Cookie, ConduitIO, Bracket, Throw ExhentaiError] m => Gallery -> m GalleryInfo
parseGalleryLink :: Text -> Maybe Gallery
-- | Extract all gallery informations from a document
parseGallery :: Document -> Either Text GalleryInfo
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Visible" k Web.Exhentai.API.Gallery.Visibility Web.Exhentai.API.Gallery.Visibility a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Replaced" k Web.Exhentai.API.Gallery.Visibility Web.Exhentai.API.Gallery.Visibility a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Expunged" k Web.Exhentai.API.Gallery.Visibility Web.Exhentai.API.Gallery.Visibility a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "_Unknown" k Web.Exhentai.API.Gallery.Visibility Web.Exhentai.API.Gallery.Visibility a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Misc" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Doujinshi" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Manga" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_ArtistCG" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_GameCG" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_ImageSet" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Cosplay" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_AsianPorn" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_NonH" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Western" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Private" k Web.Exhentai.API.Gallery.GalleryCategory Web.Exhentai.API.Gallery.GalleryCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Language" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Parody" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Character" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Group" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Artist" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Male" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Female" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Misc'" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ (), b GHC.Types.~ ()) => Optics.Internal.Optic.LabelOptic "_Reclass" k Web.Exhentai.API.Gallery.TagCategory Web.Exhentai.API.Gallery.TagCategory a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "archiverLink" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Web.Exhentai.API.Gallery.GalleryCategory, b GHC.Types.~ Web.Exhentai.API.Gallery.GalleryCategory) => Optics.Internal.Optic.LabelOptic "category" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Int, b GHC.Types.~ GHC.Types.Int) => Optics.Internal.Optic.LabelOptic "favoriteCount" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text, b GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "jaTitle" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "language" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Int, b GHC.Types.~ GHC.Types.Int) => Optics.Internal.Optic.LabelOptic "length" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Web.Exhentai.API.Gallery.Gallery, b GHC.Types.~ GHC.Maybe.Maybe Web.Exhentai.API.Gallery.Gallery) => Optics.Internal.Optic.LabelOptic "newer" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Web.Exhentai.API.Gallery.Gallery, b GHC.Types.~ GHC.Maybe.Maybe Web.Exhentai.API.Gallery.Gallery) => Optics.Internal.Optic.LabelOptic "parent" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "previewLink" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Internal.Optic.LabelOptic "rating" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Int, b GHC.Types.~ GHC.Types.Int) => Optics.Internal.Optic.LabelOptic "ratingCount" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [(Web.Exhentai.API.Gallery.TagCategory, [Data.Text.Internal.Text])], b GHC.Types.~ [(Web.Exhentai.API.Gallery.TagCategory, [Data.Text.Internal.Text])]) => Optics.Internal.Optic.LabelOptic "tags" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "title" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "torrentLink" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Time.Clock.Internal.UTCTime.UTCTime, b GHC.Types.~ Data.Time.Clock.Internal.UTCTime.UTCTime) => Optics.Internal.Optic.LabelOptic "uploadTime" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "uploader" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Web.Exhentai.API.Gallery.Visibility, b GHC.Types.~ Web.Exhentai.API.Gallery.Visibility) => Optics.Internal.Optic.LabelOptic "visibility" k Web.Exhentai.API.Gallery.GalleryInfo Web.Exhentai.API.Gallery.GalleryInfo a b
instance GHC.Classes.Eq Web.Exhentai.API.Gallery.Gallery
instance GHC.Show.Show Web.Exhentai.API.Gallery.Gallery
instance GHC.Enum.Enum Web.Exhentai.API.Gallery.TagCategory
instance GHC.Classes.Eq Web.Exhentai.API.Gallery.TagCategory
instance GHC.Show.Show Web.Exhentai.API.Gallery.TagCategory
instance GHC.Enum.Bounded Web.Exhentai.API.Gallery.GalleryCategory
instance GHC.Enum.Enum Web.Exhentai.API.Gallery.GalleryCategory
instance GHC.Classes.Ord Web.Exhentai.API.Gallery.GalleryCategory
instance GHC.Classes.Eq Web.Exhentai.API.Gallery.GalleryCategory
instance GHC.Show.Show Web.Exhentai.API.Gallery.GalleryCategory
instance GHC.Classes.Eq Web.Exhentai.API.Gallery.Visibility
instance GHC.Show.Show Web.Exhentai.API.Gallery.Visibility
instance GHC.Classes.Eq Web.Exhentai.API.Gallery.GalleryInfo
instance GHC.Show.Show Web.Exhentai.API.Gallery.GalleryInfo
module Web.Exhentai.API.Watched
-- | Fetch the list of watched galleries
fetchWatched :: Effs '[Http, Error HttpException, Cookie, ConduitIO, Bracket] m => m [Gallery]
-- | Fetch the list of popular galleries
fetchPopular :: Effs '[Http, Error HttpException, Cookie, ConduitIO, Bracket] m => m [Gallery]
module Web.Exhentai.API.Search
data SearchQuery
SearchQuery :: Maybe (Set GalleryCategory) -> {-# UNPACK #-}Text -> SearchQuery
[$sel:categories:SearchQuery] :: SearchQuery -> Maybe (Set GalleryCategory)
[$sel:searchString:SearchQuery] :: SearchQuery -> {-# UNPACK #-}Text
data SearchResult
SearchResult :: [Gallery] -> Maybe Text -> Maybe Text -> SearchResult
[$sel:galleries:SearchResult] :: SearchResult -> [Gallery]
[$sel:prevPage:SearchResult] :: SearchResult -> Maybe Text
[$sel:nextPage:SearchResult] :: SearchResult -> Maybe Text
-- | Search a search query
search :: Effs '[Http, Error HttpException, ConduitIO, Cookie, Bracket] m => SearchQuery -> m SearchResult
-- | Iterate through all the Galleries asosciated with a search query,
-- putting them into a stream
searchRecur :: Effs '[Http, Error HttpException, ConduitIO, Cookie, Bracket] m => SearchQuery -> ConduitT i Gallery m ()
-- | A resumable version of searchRecur that reports it's progress.
searchRecurResumable :: Effs '[Http, Error HttpException, ConduitIO, Cookie, Bracket] m => SearchQuery -> ConduitT i (Either Text Gallery) m ()
-- | Fetch a search page using its url
fetchSearchPage :: Effs '[Http, Error HttpException, ConduitIO, Cookie, Bracket] m => Text -> m SearchResult
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [Web.Exhentai.API.Gallery.Gallery], b GHC.Types.~ [Web.Exhentai.API.Gallery.Gallery]) => Optics.Internal.Optic.LabelOptic "galleries" k Web.Exhentai.API.Search.SearchResult Web.Exhentai.API.Search.SearchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text, b GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "nextPage" k Web.Exhentai.API.Search.SearchResult Web.Exhentai.API.Search.SearchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text, b GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "prevPage" k Web.Exhentai.API.Search.SearchResult Web.Exhentai.API.Search.SearchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe (Data.Set.Internal.Set Web.Exhentai.API.Gallery.GalleryCategory), b GHC.Types.~ GHC.Maybe.Maybe (Data.Set.Internal.Set Web.Exhentai.API.Gallery.GalleryCategory)) => Optics.Internal.Optic.LabelOptic "categories" k Web.Exhentai.API.Search.SearchQuery Web.Exhentai.API.Search.SearchQuery a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "searchString" k Web.Exhentai.API.Search.SearchQuery Web.Exhentai.API.Search.SearchQuery a b
instance GHC.Classes.Eq Web.Exhentai.API.Search.SearchQuery
instance GHC.Show.Show Web.Exhentai.API.Search.SearchQuery
instance GHC.Classes.Eq Web.Exhentai.API.Search.SearchResult
instance GHC.Show.Show Web.Exhentai.API.Search.SearchResult
module Web.Exhentai.API.Archiver
-- | Download an origian archive from an archiver url as a stream
streamOriginal :: Effs '[Http, Error HttpException, Cookie, ConduitIO, Bracket, Throw ExhentaiError] m => Text -> ContT r m (Response (ConduitT i ByteString IO ()))
-- | Download an resampled archive from an archiver url as a stream
streamResampled :: Effs '[Http, Error HttpException, Cookie, ConduitIO, Bracket, Throw ExhentaiError] m => Text -> ContT r m (Response (ConduitT i ByteString IO ()))
-- | MPV (multi-page viewer) API.
module Web.Exhentai.API.MPV
data DispatchRequest
DispatchRequest :: {-# UNPACK #-}Int -> {-# UNPACK #-}Int -> {-# UNPACK #-}Text -> {-# UNPACK #-}Text -> Maybe Server -> DispatchRequest
[$sel:galleryId:DispatchRequest] :: DispatchRequest -> {-# UNPACK #-}Int
[$sel:page:DispatchRequest] :: DispatchRequest -> {-# UNPACK #-}Int
[$sel:imgKey:DispatchRequest] :: DispatchRequest -> {-# UNPACK #-}Text
[$sel:mpvKey:DispatchRequest] :: DispatchRequest -> {-# UNPACK #-}Text
[$sel:exclude:DispatchRequest] :: DispatchRequest -> Maybe Server
data Server
HAtH :: {-# UNPACK #-}Int -> Server
Other :: {-# UNPACK #-}Text -> Server
newtype Dim
Dim :: Int -> Dim
-- | Build dispatch requests for a gallery
buildRequest :: Effs '[Http, Error HttpException, Cookie, ConduitIO, Bracket, Throw ExhentaiError] m => Gallery -> m [DispatchRequest]
-- | Fetch an image with a DispatchRequest
fetchImage :: Effs '[Http, Error HttpException, Cookie, ConduitIO, Bracket, Throw ExhentaiError] m => DispatchRequest -> ContT r m (Response (ConduitT i ByteString IO ()))
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ GHC.Types.Int, b GHC.Types.~ GHC.Types.Int) => Optics.Internal.Optic.LabelOptic "_HAtH" k Web.Exhentai.API.MPV.Server Web.Exhentai.API.MPV.Server a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Prism, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "_Other" k Web.Exhentai.API.MPV.Server Web.Exhentai.API.MPV.Server a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.An_Iso, a GHC.Types.~ GHC.Types.Int, b GHC.Types.~ GHC.Types.Int) => Optics.Internal.Optic.LabelOptic "_Dim" k Web.Exhentai.API.MPV.Dim Web.Exhentai.API.MPV.Dim a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Web.Exhentai.API.MPV.Server, b GHC.Types.~ GHC.Maybe.Maybe Web.Exhentai.API.MPV.Server) => Optics.Internal.Optic.LabelOptic "exclude" k Web.Exhentai.API.MPV.DispatchRequest Web.Exhentai.API.MPV.DispatchRequest a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Int, b GHC.Types.~ GHC.Types.Int) => Optics.Internal.Optic.LabelOptic "galleryId" k Web.Exhentai.API.MPV.DispatchRequest Web.Exhentai.API.MPV.DispatchRequest a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "imgKey" k Web.Exhentai.API.MPV.DispatchRequest Web.Exhentai.API.MPV.DispatchRequest a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "mpvKey" k Web.Exhentai.API.MPV.DispatchRequest Web.Exhentai.API.MPV.DispatchRequest a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Int, b GHC.Types.~ GHC.Types.Int) => Optics.Internal.Optic.LabelOptic "page" k Web.Exhentai.API.MPV.DispatchRequest Web.Exhentai.API.MPV.DispatchRequest a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "dimension" k Web.Exhentai.API.MPV.DispatchResult Web.Exhentai.API.MPV.DispatchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "galleryPath" k Web.Exhentai.API.MPV.DispatchResult Web.Exhentai.API.MPV.DispatchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Web.Exhentai.API.MPV.Dim, b GHC.Types.~ Web.Exhentai.API.MPV.Dim) => Optics.Internal.Optic.LabelOptic "height" k Web.Exhentai.API.MPV.DispatchResult Web.Exhentai.API.MPV.DispatchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "imgLink" k Web.Exhentai.API.MPV.DispatchResult Web.Exhentai.API.MPV.DispatchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "origImgPath" k Web.Exhentai.API.MPV.DispatchResult Web.Exhentai.API.MPV.DispatchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Internal.Optic.LabelOptic "searchPath" k Web.Exhentai.API.MPV.DispatchResult Web.Exhentai.API.MPV.DispatchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Web.Exhentai.API.MPV.Server, b GHC.Types.~ Web.Exhentai.API.MPV.Server) => Optics.Internal.Optic.LabelOptic "server" k Web.Exhentai.API.MPV.DispatchResult Web.Exhentai.API.MPV.DispatchResult a b
instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Web.Exhentai.API.MPV.Dim, b GHC.Types.~ Web.Exhentai.API.MPV.Dim) => Optics.Internal.Optic.LabelOptic "width" k Web.Exhentai.API.MPV.DispatchResult Web.Exhentai.API.MPV.DispatchResult a b
instance GHC.Classes.Eq Web.Exhentai.API.MPV.Server
instance GHC.Show.Show Web.Exhentai.API.MPV.Server
instance GHC.Classes.Eq Web.Exhentai.API.MPV.Dim
instance GHC.Show.Show Web.Exhentai.API.MPV.Dim
instance GHC.Classes.Eq Web.Exhentai.API.MPV.DispatchResult
instance GHC.Show.Show Web.Exhentai.API.MPV.DispatchResult
instance GHC.Classes.Eq Web.Exhentai.API.MPV.DispatchRequest
instance GHC.Show.Show Web.Exhentai.API.MPV.DispatchRequest
instance Data.Aeson.Types.ToJSON.ToJSON Web.Exhentai.API.MPV.DispatchRequest
instance Data.Aeson.Types.FromJSON.FromJSON Web.Exhentai.API.MPV.DispatchResult
instance Data.Aeson.Types.FromJSON.FromJSON Web.Exhentai.API.MPV.Dim
instance Data.Aeson.Types.FromJSON.FromJSON Web.Exhentai.API.MPV.Server
instance Data.Aeson.Types.ToJSON.ToJSON Web.Exhentai.API.MPV.Server
module Web.Exhentai
data Http :: Effect
formRequest :: Effs '[Http, Error HttpException] m => String -> m Request
genBoundary :: Eff Http m => m ByteString
respOpen :: Effs '[Http, Error HttpException] m => Request -> m (Response BodyReader)
respClose :: Eff Http m => Response a -> m ()
data ConduitIO :: Effect
[RunConduitIO] :: ConduitT () Void IO a -> ConduitIO m a
runConduitIO :: Eff ConduitIO m => ConduitT () Void IO a -> m a
data Cookie :: Effect
[TakeCookie] :: Cookie m CookieJar
[ReadCookie] :: Cookie m CookieJar
[PutCookie] :: CookieJar -> Cookie m ()
takeCookie :: Eff Cookie m => m CookieJar
readCookie :: Eff Cookie m => m CookieJar
putCookie :: Eff Cookie m => CookieJar -> m ()
type ExhC = CompositionC '[HttpToIOC, ConduitIOToIOC, CookieToIOC]
exhToIO :: (Effs '[Embed IO, Reader Manager] m, Threaders '[ReaderThreads] m p) => ExhC m a -> m a
data HttpH
type HttpToIOC = InterpretC HttpH Http
httpToIO :: (Effs '[Embed IO, Reader Manager] m, Threaders '[ReaderThreads] m p) => HttpToIOC m a -> m a
data CookieH
type CookieToIOC = CompositionC '[CookieToReaderC, ReaderC (MVar CookieJar)]
cookieToIO :: (Eff (Embed IO) m, Threaders '[ReaderThreads] m p) => CookieToIOC m a -> m a
data ConduitIOH
type ConduitIOToIOC = InterpretC ConduitIOH ConduitIO
conduitIOToIO :: Eff (Embed IO) m => ConduitIOToIOC m a -> m a
data ExhentaiError
JSONParseFailure :: String -> ExhentaiError
XMLParseFailure :: Text -> Text -> ExhentaiError
[$sel:reason:JSONParseFailure] :: ExhentaiError -> Text
[$sel:url:JSONParseFailure] :: ExhentaiError -> Text
ExtractionFailure :: ExhentaiError