A music player that connects to your cloud/distributed storage.
at main 1.1 kB view raw
1module Url.Ext exposing (action, extractQueryParam, queryDictionary) 2 3import Dict exposing (Dict) 4import Maybe.Extra as Maybe 5import Url exposing (Url) 6import Url.Parser as Url 7import Url.Parser.Query as Query 8 9 10 11-- 🔱 12 13 14action : Url -> List String 15action url = 16 url 17 |> extractQueryParam "action" 18 |> Maybe.map (String.split "/") 19 |> Maybe.withDefault [] 20 21 22extractQueryParam : String -> Url -> Maybe String 23extractQueryParam key url = 24 { url | path = "" } 25 |> Url.parse (Url.query (Query.string key)) 26 |> Maybe.join 27 28 29queryDictionary : Url -> Dict String String 30queryDictionary url = 31 url.query 32 |> Maybe.map (String.split "&") 33 |> Maybe.withDefault [] 34 |> List.filterMap 35 (\s -> 36 case String.split "=" s of 37 [ k, v ] -> 38 Just ( k, v ) 39 40 k :: v -> 41 Just ( k, String.join "=" v ) 42 43 _ -> 44 Nothing 45 ) 46 |> Dict.fromList