feat(users/Profpatsch/whatcd-resolver): implement artist refresh v0
This is kind of a chonker because I went into so many rabbit holes. Foremost this implements a simple “Refresh Artist” button that fetches current artist torrent groups. BUG: the `artist` endpoint torrent struct is shite, it’s missing most info that we get in the `search` endpoint torrent struct, plus it’s organized differently (e.g. the `artists` thingy is in the torrent_group not the torrent). I should switch everything over to fetching the `torrent_group.id`s first and then going through and slowly fetching every torrent group separately … however that might time out very quickly. ugh. There doesn’t seem to be a way of fetching multiple torrent groups. Random other shit & improvements: * intersperse for builders * fix json errors so that the structs don’t get too big (`restrictJson`) * show error messages as json so jaeger displays it with nested UI * color pretty-printed json outpt on command line * add some important integral functions to MyPrelude * add `sintersperse` and `mintersperse` to MyPrelude Change-Id: If8bfcd68dc5c905e118ad86d50d7416962bf55d4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12960 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
This commit is contained in:
parent
cabb8cd3d0
commit
3040fe2e90
9 changed files with 584 additions and 163 deletions
|
|
@ -51,6 +51,7 @@ newtype AppT m a = AppT {unAppT :: ReaderT Context m a}
|
|||
data AppException
|
||||
= AppExceptionTree ErrorTree
|
||||
| AppExceptionPretty [Pretty.Err]
|
||||
| AppExceptionEnc Enc
|
||||
deriving anyclass (Exception)
|
||||
|
||||
instance IsString AppException where
|
||||
|
|
@ -59,6 +60,7 @@ instance IsString AppException where
|
|||
instance Show AppException where
|
||||
showsPrec _ (AppExceptionTree t) = ("AppException: " ++) . ((textToString $ prettyErrorTree t) ++)
|
||||
showsPrec _ (AppExceptionPretty t) = ("AppException: " ++) . ((Pretty.prettyErrsNoColor t) ++)
|
||||
showsPrec _ (AppExceptionEnc e) = ((textToString $ Enc.encToTextPretty e) ++)
|
||||
|
||||
instance (MonadIO m) => MonadLogger (AppT m) where
|
||||
monadLoggerLog loc src lvl msg = liftIO $ Logger.defaultOutput IO.stderr loc src lvl (Logger.toLogStr msg)
|
||||
|
|
@ -119,6 +121,7 @@ appThrowNewSpan spanName exc = inSpan' spanName $ \span -> do
|
|||
let msg = case exc of
|
||||
AppExceptionTree e -> prettyErrorTree e
|
||||
AppExceptionPretty p -> Pretty.prettyErrsNoColor p & stringToText
|
||||
AppExceptionEnc e -> Enc.encToTextPretty e
|
||||
recordException
|
||||
span
|
||||
( T2
|
||||
|
|
@ -132,6 +135,7 @@ appThrow span exc = do
|
|||
let msg = case exc of
|
||||
AppExceptionTree e -> prettyErrorTree e
|
||||
AppExceptionPretty p -> Pretty.prettyErrsNoColor p & stringToText
|
||||
AppExceptionEnc e -> Enc.encToTextPretty e
|
||||
recordException
|
||||
span
|
||||
( T2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue