A music player that connects to your cloud/distributed storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Closes #41

+15 -4
+1 -2
elm-package.json
··· 40 40 "scottcorgan/elm-css-normalize": "1.1.9 <= v < 2.0.0", 41 41 "spisemisu/elm-sha": "1.0.5 <= v < 1.0.6", 42 42 "spisemisu/elm-utf8": "1.0.1 <= v < 1.0.2", 43 - "truqu/elm-base64": "1.0.5 <= v < 1.0.6" 43 + "truqu/elm-base64": "2.0.1 <= v < 3.0.0" 44 44 }, 45 45 "dependency-sources": { 46 - "fredcy/localstorage": "git@github.com:fredcy/localstorage", 47 46 "simonh1000/file-reader": "git@github.com:simonh1000/file-reader" 48 47 }, 49 48 "elm-version": "0.18.0 <= v < 0.19.0"
+12
src/App/Authentication/Demo.elm
··· 1 + module Authentication.Demo exposing (..) 2 + 3 + import Base64 4 + 5 + 6 + {-| Demo user data which is used on first sign-in (encode as base64). 7 + -} 8 + data : String 9 + data = 10 + "eyJmYXZvdXJpdGVzIjpbeyJhcnRpc3QiOiJKYW1lcyBCbGFrZSIsInRpdGxlIjoiRXNzZW50aWFsIE1peCAoMDktMTctMjAxMSkifV0sInNldHRpbmdzIjp7ImFwcGxpY2F0aW9uIjp7ImJhY2tncm91bmRJbWFnZSI6IjcuanBnIn0sImVxdWFsaXplciI6eyJsb3ciOjAsIm1pZCI6MCwiaGlnaCI6MCwidm9sdW1lIjoxfSwicXVldWUiOnsicmVwZWF0IjpmYWxzZSwic2h1ZmZsZSI6ZmFsc2V9LCJ0cmFja3MiOnsiZmF2b3VyaXRlc09ubHkiOmZhbHNlLCJzZWFyY2hUZXJtIjpudWxsLCJzZWxlY3RlZFBsYXlsaXN0IjpudWxsfX0sInNvdXJjZXMiOlt7ImlkIjoiMTUwNzY0MDIxODczNDIiLCJkYXRhIjp7ImFjY2Vzc0tleSI6IkFLSUFKUUNINTdZRkozVUVSWElBIiwiYnVja2V0TmFtZSI6Im9uZ2FrdS1yeW9oby1kZW1vIiwiZGlyZWN0b3J5UGF0aCI6Ii8iLCJuYW1lIjoiRGVtbyIsInJlZ2lvbiI6InVzLWVhc3QtMSIsInNlY3JldEtleSI6Ii9qSUM2REE5a2MyRFpTdzNLR3NGN1ZmdC94VEFSVHB0R2I5NmtrUDIifSwiZGlyZWN0b3J5UGxheWxpc3RzIjp0cnVlLCJlbmFibGVkIjp0cnVlLCJzZXJ2aWNlIjoiQW1hem9uUzMifV0sInRyYWNrcyI6W3siaWQiOiJNVFV3TnpZME1ESXhPRGN6TkRJdkwwWnlaV1VnYlhWemFXTXZLRk5YVERBeE15a3RiM0pwU21GdWRYTXRWMFZDTFRJd01UUXRSbEpGUlM4d01TMWliMjVwZEdFdWJYQXoiLCJwYXRoIjoiRnJlZSBtdXNpYy8oU1dMMDEzKS1vcmlKYW51cy1XRUItMjAxNC1GUkVFLzAxLWJvbml0YS5tcDMiLCJzb3VyY2VJZCI6IjE1MDc2NDAyMTg3MzQyIiwidGFncyI6eyJkaXNjIjoxLCJuciI6MSwiYWxidW0iOiJTb3VsZWN0aW9uIFdoaXRlIExhYmVsOiAwMTMiLCJhcnRpc3QiOiJvcmlKYW51cyIsInRpdGxlIjoiQm9uaXRhIiwiZ2VucmUiOiJTb3VsZWN0aW9uIiwicGljdHVyZSI6bnVsbCwieWVhciI6bnVsbH19LHsiaWQiOiJNVFV3TnpZME1ESXhPRGN6TkRJdkwwWnlaV1VnYlhWemFXTXZLRk5YVERBeE15a3RiM0pwU21GdWRYTXRWMFZDTFRJd01UUXRSbEpGUlM4d01pMDJMbTF3TXciLCJwYXRoIjoiRnJlZSBtdXNpYy8oU1dMMDEzKS1vcmlKYW51cy1XRUItMjAxNC1GUkVFLzAyLTYubXAzIiwic291cmNlSWQiOiIxNTA3NjQwMjE4NzM0MiIsInRhZ3MiOnsiZGlzYyI6MSwibnIiOjIsImFsYnVtIjoiU291bGVjdGlvbiBXaGl0ZSBMYWJlbDogMDEzIiwiYXJ0aXN0Ijoib3JpSmFudXMiLCJ0aXRsZSI6IjYiLCJnZW5yZSI6IlNvdWxlY3Rpb24iLCJwaWN0dXJlIjpudWxsLCJ5ZWFyIjpudWxsfX0seyJpZCI6Ik1UVXdOelkwTURJeE9EY3pOREl2TDBaeVpXVWdiWFZ6YVdNdktGTlhUREF4TXlrdGIzSnBTbUZ1ZFhNdFYwVkNMVEl3TVRRdFJsSkZSUzh3TXkxb2IzUmZjbVZ0YVhoZlpuUXVYM1JsYXk1c2RXNWZKbDk2YVd0dmJXOHViWEF6IiwicGF0aCI6IkZyZWUgbXVzaWMvKFNXTDAxMyktb3JpSmFudXMtV0VCLTIwMTQtRlJFRS8wMy1ob3RfcmVtaXhfZnQuX3Rlay5sdW5fJl96aWtvbW8ubXAzIiwic291cmNlSWQiOiIxNTA3NjQwMjE4NzM0MiIsInRhZ3MiOnsiZGlzYyI6MSwibnIiOjMsImFsYnVtIjoiU291bGVjdGlvbiBXaGl0ZSBMYWJlbDogMDEzIiwiYXJ0aXN0Ijoib3JpSmFudXMiLCJ0aXRsZSI6IkhvdCBSZW1peCBmdC4gVGVrLkx1biAmIFppa29tbyIsImdlbnJlIjoiU291bGVjdGlvbiIsInBpY3R1cmUiOm51bGwsInllYXIiOm51bGx9fSx7ImlkIjoiTVRVd056WTBNREl4T0Rjek5ESXZMMFp5WldVZ2JYVnphV012UTI5dFgxUnlkV2x6WlMxRGFHVnRhV05oYkY5TVpXZHpMVEl3TVRJdFJsSkZSUzh3TVMxamIyMWZkSEoxYVhObExXTm9aVzFwWTJGc1gyeGxaM011YlhBeiIsInBhdGgiOiJGcmVlIG11c2ljL0NvbV9UcnVpc2UtQ2hlbWljYWxfTGVncy0yMDEyLUZSRUUvMDEtY29tX3RydWlzZS1jaGVtaWNhbF9sZWdzLm1wMyIsInNvdXJjZUlkIjoiMTUwNzY0MDIxODczNDIiLCJ0YWdzIjp7ImRpc2MiOjEsIm5yIjo5LCJhbGJ1bSI6IkFkdWx0IFN3aW0gU2luZ2xlcyBQcm9qZWN0IDIwMTIiLCJhcnRpc3QiOiJDb20gVHJ1aXNlIiwidGl0bGUiOiJDaGVtaWNhbCBMZWdzIiwiZ2VucmUiOm51bGwsInBpY3R1cmUiOm51bGwsInllYXIiOjIwMTJ9fSx7ImlkIjoiTVRVd056WTBNREl4T0Rjek5ESXZMMFp5WldVZ2JYVnphV012VFdGdWRXVnNaVjlCZEhwbGJtbGZMVjh3TkY4dFgweHBkSFJzWlY5VGRHRnlMbTF3TXciLCJwYXRoIjoiRnJlZSBtdXNpYy9NYW51ZWxlX0F0emVuaV8tXzA0Xy1fTGl0dGxlX1N0YXIubXAzIiwic291cmNlSWQiOiIxNTA3NjQwMjE4NzM0MiIsInRhZ3MiOnsiZGlzYyI6MSwibnIiOjQsImFsYnVtIjoiVGhlIE1peWF6YWtpIFRvdXIgRVAiLCJhcnRpc3QiOiJNYW51ZWxlIEF0emVuaSIsInRpdGxlIjoiTGl0dGxlIFN0YXIiLCJnZW5yZSI6IkZ1bmsiLCJwaWN0dXJlIjpudWxsLCJ5ZWFyIjpudWxsfX0seyJpZCI6Ik1UVXdOelkwTURJeE9EY3pOREl2TDBaeVpXVWdiWFZ6YVdNdlVHRjBjbWxqYTE5TVpXVmZMVjh3TWw4dFgxRjFhWFIwYVc1ZlZHbHRaUzV0Y0RNIiwicGF0aCI6IkZyZWUgbXVzaWMvUGF0cmlja19MZWVfLV8wMl8tX1F1aXR0aW5fVGltZS5tcDMiLCJzb3VyY2VJZCI6IjE1MDc2NDAyMTg3MzQyIiwidGFncyI6eyJkaXNjIjoxLCJuciI6MiwiYWxidW0iOiJUaGUgTGFzdCBUaGluZyIsImFydGlzdCI6IlBhdHJpY2sgTGVlIiwidGl0bGUiOiJRdWl0dGluJyBUaW1lIiwiZ2VucmUiOiJFbGVjdHJvbmljIiwicGljdHVyZSI6bnVsbCwieWVhciI6bnVsbH19LHsiaWQiOiJNVFV3TnpZME1ESXhPRGN6TkRJdkwxSmhaR2x2TDJwaGJXVnpYMkpzWVd0bExXVnpjMlZ1ZEdsaGJGOXRhWGd0YzJGMExUQTVMVEUzTFRJd01URXViWEF6IiwicGF0aCI6IlJhZGlvL2phbWVzX2JsYWtlLWVzc2VudGlhbF9taXgtc2F0LTA5LTE3LTIwMTEubXAzIiwic291cmNlSWQiOiIxNTA3NjQwMjE4NzM0MiIsInRhZ3MiOnsiZGlzYyI6MSwibnIiOjEsImFsYnVtIjoiRXNzZW50aWFsIE1peC1TQVQtMDktMTciLCJhcnRpc3QiOiJKYW1lcyBCbGFrZSIsInRpdGxlIjoiRXNzZW50aWFsIE1peCAoMDktMTctMjAxMSkiLCJnZW5yZSI6IkVsZWN0cm9uaWMiLCJwaWN0dXJlIjpudWxsLCJ5ZWFyIjpudWxsfX1dfQ==" 11 + |> Base64.decode 12 + |> Result.withDefault "{}"
+2 -1
src/App/Authentication/State.elm
··· 1 1 module Authentication.State exposing (..) 2 2 3 + import Authentication.Demo as Demo 3 4 import Authentication.Transformers as Transformers 4 5 import Authentication.Ports as Ports 5 6 import Authentication.Types exposing (..) ··· 113 114 do (TopLevel.ImportUserData json) 114 115 115 116 Ok Nothing -> 116 - afterwards 117 + do (TopLevel.ImportUserData Demo.data) 117 118 118 119 Err err -> 119 120 displayError err
-1
src/App/Tracks/Types.elm
··· 228 228 in 229 229 id 230 230 |> Base64.encode 231 - |> Result.withDefault (id) 232 231 |> Regex.replace All (regex "=+$") (\_ -> "") 233 232 , path = path 234 233 , sourceId = sourceId