diff options
| -rw-r--r-- | changelog.md | 4 | ||||
| -rw-r--r-- | readme.md | 6 | ||||
| -rw-r--r-- | src/Xmobar/Plugins/Monitors/Weather.hs | 31 | ||||
| -rw-r--r-- | xmobar.cabal | 12 | 
4 files changed, 6 insertions, 47 deletions
| diff --git a/changelog.md b/changelog.md index 6659053..b387f6e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,4 @@ -## Version 0.29.5 (January, 2019) +## Version 0.29.5 (February, 2019)  _Bug fixes_ @@ -6,6 +6,8 @@ _Bug fixes_      configuration file (issue #375).    - `Alsa` plugin: restart `alsactl` if it quits, e.g. because of a      sleep/awake cycle (issue #376). +  - `Weather` using the new HTTPS URL, which requires http-conduit as +    a dependency (issue #378).  ## Version 0.29.4 (December, 2018) @@ -130,15 +130,11 @@ Otherwise, you'll need to install them yourself.    .xpm files in `<icon>`.  Requires the [libXpm] C library.  - `with_uvmeter` Enables UVMeter plugin. The plugin shows UV data for -   Australia. Requires `with_conduit` to connect to HTTPS URLs. +   Australia.  - `with_weather` Support to display weather information. Enables     Weather plugin. -- `with_conduit` Use http-conduit for getting weather data enabling -  support for http proxies.  Requires [http-conduit] and [http-types]. -  Note that this flag has only an effect if `with_weather` is also set. -  - `all_extensions` Enables all the extensions above.  # Running xmobar diff --git a/src/Xmobar/Plugins/Monitors/Weather.hs b/src/Xmobar/Plugins/Monitors/Weather.hs index ce6fc29..30439f5 100644 --- a/src/Xmobar/Plugins/Monitors/Weather.hs +++ b/src/Xmobar/Plugins/Monitors/Weather.hs @@ -19,14 +19,10 @@ import Xmobar.Plugins.Monitors.Common  import qualified Control.Exception as CE -#ifdef HTTP_CONDUIT  import Network.HTTP.Conduit  import Network.HTTP.Types.Status  import Network.HTTP.Types.Method  import qualified Data.ByteString.Lazy.Char8 as B -#else -import Network.HTTP -#endif  import Text.ParserCombinators.Parsec @@ -189,7 +185,6 @@ stationUrl :: String -> String  stationUrl station = defUrl ++ station ++ ".TXT"  getData :: String -> IO String -#ifdef HTTP_CONDUIT  getData station = CE.catch (do      manager <- newManager tlsManagerSettings      request <- parseUrlThrow $ stationUrl station @@ -198,13 +193,6 @@ getData station = CE.catch (do      ) errHandler      where errHandler :: CE.SomeException -> IO String            errHandler _ = return "<Could not retrieve data>" -#else -getData station = do -    let request = getRequest (stationUrl station) -    CE.catch (simpleHTTP request >>= getResponseBody) errHandler -    where errHandler :: CE.IOException -> IO String -          errHandler _ = return "<Could not retrieve data>" -#endif  formatWeather :: [WeatherInfo] -> Monitor String  formatWeather [WI st ss y m d h (WindInfo wc wa wm wk wkh wms) v sk tC tF dC dF r p] = @@ -220,7 +208,6 @@ runWeather str =         formatWeather i  weatherReady :: [String] -> Monitor Bool -#ifdef HTTP_CONDUIT  weatherReady str = do      initRequest <- parseUrlThrow $ stationUrl $ head str      let request = initRequest{method = methodHead} @@ -234,21 +221,3 @@ weatherReady str = do              | statusIsServerError status = False              | statusIsClientError status = False              | otherwise = True -#else -weatherReady str = do -    let station = head str -        request = headRequest (stationUrl station) -    io $ CE.catch (simpleHTTP request >>= checkResult) errHandler -    where errHandler :: CE.IOException -> IO Bool -          errHandler _ = return False -          checkResult result = -            case result of -                Left _ -> return False -                Right response -> -                    case rspCode response of -                        -- Permission or network errors are failures; anything -                        -- else is recoverable. -                        (4, _, _) -> return False -                        (5, _, _) -> return False -                        (_, _, _) -> return True -#endif diff --git a/xmobar.cabal b/xmobar.cabal index d7cf9ea..b0c6cf6 100644 --- a/xmobar.cabal +++ b/xmobar.cabal @@ -87,10 +87,6 @@ flag with_weather    description: Enable weather plugin.    default: True -flag with_conduit -  description: Use http-conduits for weather data, used only if with_weather. -  default: False -  library      hs-source-dirs:  src @@ -251,15 +247,11 @@ library         cpp-options: -DXPM      if flag(with_weather) || flag(all_extensions) -       build-depends: HTTP >= 4000.2.4         exposed-modules: Xmobar.Plugins.Monitors.Weather         cpp-options: -DWEATHER -       if flag(with_conduit) -          -- use http-conduit  instead of simple-http -          build-depends: http-conduit, http-types -          cpp-options: -DHTTP_CONDUIT +       build-depends: http-conduit, http-types -    if flag(with_uvmeter) && flag(with_conduit) +    if flag(with_uvmeter)         exposed-modules: Xmobar.Plugins.Monitors.UVMeter         build-depends: http-conduit, http-types         cpp-options: -DUVMETER | 
