summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/Main.hs28
1 files changed, 4 insertions, 24 deletions
diff --git a/app/Main.hs b/app/Main.hs
index 82acb3c..005b63a 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -12,11 +12,13 @@ import Control.Lens ( (^.)
)
import Control.Monad.IO.Class ( liftIO )
import Data.Aeson ( (.:)
+ , (.=)
, FromJSON(..)
- , ToJSON
+ , ToJSON(..)
, Value(..)
, decode
, encode
+ , object
)
import qualified Data.Aeson.KeyMap as KM
( KeyMap
@@ -180,33 +182,11 @@ getInfobox name = do
searchYt :: Text -> Handler [Video]
searchYt query = do
(_, Just hout, _, _) <- liftIO $ createProcess
- (proc "yt-dlp" ["-j", "ytsearch3:" <> T.unpack query])
+ (proc "yt-dlp" ["-j", "ytsearch10:" <> T.unpack query])
{ std_out = CreatePipe
}
liftIO $ (catMaybes . map decode . BSL.lines) <$> BSL.hGetContents hout
-data Video = Video
- { vid :: Text
- , vtitle :: Text
- , vdesc :: Text
- , vduration :: Int
- }
- deriving (Eq, Show, Generic)
-
-instance FromJSON Video where
- parseJSON (Object o) =
- Video
- <$> o
- .: "id"
- <*> o
- .: "title"
- <*> o
- .: "description"
- <*> o
- .: "duration"
-
-instance ToJSON Video
-
app :: Application
app = serve api server