首页>代码>Spring+Spring MVC+Freemarker模板整合开发M-LOG博客系统源码下载>/mlog_jsp/src/org/mspring/mlog/api/gravatar/Gravatar.java
/** * */ package org.mspring.mlog.api.gravatar; import java.io.FileNotFoundException; import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.Validate; import org.mspring.platform.utils.StringUtils; /** * @author Gao Youbo * @since 2012-8-14 * @Description * @TODO */ public final class Gravatar { private final static int DEFAULT_SIZE = 80; private final static String GRAVATAR_URL = "http://www.gravatar.com/avatar/"; private static final GravatarRating DEFAULT_RATING = GravatarRating.GENERAL_AUDIENCES; private static final GravatarDefaultImage DEFAULT_DEFAULT_IMAGE = GravatarDefaultImage.HTTP_404; private int size = DEFAULT_SIZE; private GravatarRating rating = DEFAULT_RATING; private GravatarDefaultImage defaultImage = DEFAULT_DEFAULT_IMAGE; /** * Specify a gravatar size between 1 and 512 pixels. If you omit this, a * default size of 80 pixels is used. */ public void setSize(int sizeInPixels) { Validate.isTrue(sizeInPixels >= 1 && sizeInPixels <= 512, "sizeInPixels needs to be between 1 and 512"); this.size = sizeInPixels; } /** * Specify a rating to ban gravatar images with explicit content. */ public void setRating(GravatarRating rating) { Validate.notNull(rating, "rating"); this.rating = rating; } /** * Specify the default image to be produced if no gravatar image was found. */ public void setDefaultImage(GravatarDefaultImage defaultImage) { Validate.notNull(defaultImage, "defaultImage"); this.defaultImage = defaultImage; } /** * Returns the Gravatar URL for the given email address. */ public String getUrl(String email) { Validate.notNull(email, "email"); // hexadecimal MD5 hash of the requested user's lowercased email address // with all whitespace trimmed String emailHash = DigestUtils.md5Hex(email.toLowerCase().trim()); String params = formatUrlParameters(); return GRAVATAR_URL + emailHash + ".jpg" + params; } /** * Downloads the gravatar for the given URL using Java {@link URL} and * returns a byte array containing the gravatar jpg, returns null if no * gravatar was found. */ public byte[] download(String email) throws GravatarDownloadException { InputStream stream = null; try { URL url = new URL(getUrl(email)); stream = url.openStream(); return IOUtils.toByteArray(stream); } catch (FileNotFoundException e) { return null; } catch (Exception e) { throw new GravatarDownloadException(e); } finally { IOUtils.closeQuietly(stream); } } private String formatUrlParameters() { List<String> params = new ArrayList<String>(); if (size != DEFAULT_SIZE) params.add("s=" + size); if (rating != DEFAULT_RATING) params.add("r=" + rating.getCode()); if (defaultImage != GravatarDefaultImage.GRAVATAR_ICON) params.add("d=" + defaultImage.getCode()); if (params.isEmpty()) return ""; else return "?" + StringUtils.join(params.iterator(), "&"); } }
最近下载更多
wanglinddad LV54
2022年4月22日
SOLEIL. LV3
2021年6月25日
XcHyxa LV7
2021年6月9日
Demo1111 LV30
2020年12月24日
起名字是个麻烦事 LV12
2020年7月7日
xuweisong2010 LV27
2020年3月28日
243846758 LV6
2019年12月24日
嘎嘎嘎12358 LV10
2019年12月13日
tzj163 LV5
2019年12月6日
8战魂5无双8 LV43
2019年11月15日
最近浏览更多
微信网友_6680567232876544 LV8
2023年10月10日
薄荷wwww LV1
2023年6月30日
3416059514 LV1
2023年6月23日
mengmeng12323423 LV3
2023年6月17日
Mhdpig LV3
2023年5月25日
jinglang LV11
2023年5月4日
sweetbox LV10
2023年4月16日
13133117021 LV4
2023年3月10日
陈小灏 LV14
2023年3月10日
gnnhka LV10
2023年2月4日