-- 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