I tried making a fork in git.gnu.io but got 404s, so I sent the patch here.
On 2015-08-02 [email protected] wrote: > From: fr33domlover <[email protected]> > > Until now, if there is no avatar URL, no other source is used to display an > avatar. With this commit, if there is no avatar URL but the user does have a > verified email address, the email address is passed through libravatar to get > an avatar URL from it. > > Things to consider modifying: > > - Fallback URL (currently none is specified) > - Size (currently it's the default, 80) > - HTTPS (currently an HTTP URL is generated) > --- > Snowdrift.cabal | 1 + > View/User.hs | 11 +++++++++++ > stack.yaml | 2 ++ > templates/user.hamlet | 2 +- > 4 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/Snowdrift.cabal b/Snowdrift.cabal > index 8e3c553..d610cd6 100644 > --- a/Snowdrift.cabal > +++ b/Snowdrift.cabal > @@ -200,6 +200,7 @@ library > , http-types > -- Oh yeah! > , lens > + , libravatar > , lifted-base > , mime-mail > , monad-logger > diff --git a/View/User.hs b/View/User.hs > index 7fbbc24..51ec69a 100644 > --- a/View/User.hs > +++ b/View/User.hs > @@ -26,6 +26,8 @@ import Widgets.ProjectPledges > import qualified Data.Map as M > import qualified Data.Set as S > import Data.String (fromString) > +import qualified Data.Text as T > +import Network.Libravatar (avatarUrl) > > createUserForm :: Maybe Text -> Form (Text, Text, Maybe Text, Maybe Text, > Maybe Text, Maybe Text) createUserForm ident extra = do > @@ -142,6 +144,15 @@ renderUser mviewer_id user_id user projects_and_roles = > do then Just <$> handlerToWidget (generateFormPost establishUserForm) > else return Nothing > > + let libravatar email = avatarUrl (Left email) False Nothing Nothing > + avatarFinal <- liftIO $ > + case (userAvatar user, userEmail user, userEmail_verified user) of > + (Just url, _, _) -> return $ Just url > + (Nothing, Just email, True) -> do > + murl <- libravatar $ T.unpack email > + return $ murl >>= return . fromString > + _ -> return Nothing > + > $(widgetFile "user") > > setPasswordForm :: Form SetPassword > diff --git a/stack.yaml b/stack.yaml > index c8d430f..045b906 100644 > --- a/stack.yaml > +++ b/stack.yaml > @@ -5,8 +5,10 @@ packages: > - '.' > extra-deps: > # Absent from LTS 2.13 > +- dns-2.0.0 > - mime-0.4.0.2 > - github-0.13.2 > +- libravatar-0.1.0.1 > - titlecase-0.1.0.1 > - yesod-markdown-0.9.4 > # Transitive dep of github > diff --git a/templates/user.hamlet b/templates/user.hamlet > index cfe91e6..1b56936 100644 > --- a/templates/user.hamlet > +++ b/templates/user.hamlet > @@ -21,7 +21,7 @@ $if Just user_id == mviewer_id > <h1> > #{userDisplayName user_entity} > <div .row> > - $maybe avatar <- userAvatar user > + $maybe avatar <- avatarFinal > <div .col-sm-5> > <figure> > <img .headshot src=#{avatar}> --- fr33domlover <http://www.rel4tion.org/people/fr33domlover> GPG key ID: 63E5E57D (size: 4096) GPG key fingerprint: 6FEE C222 7323 EF85 A49D 5487 5252 C5C8 63E5 E57D _______________________________________________ Dev mailing list [email protected] https://lists.snowdrift.coop/mailman/listinfo/dev
