Blossomforth

GravatarUtil.java

Apr 15th, 2015
440
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.23 KB | None | 0 0
  1. package com.blossompone.utils;
  2.  
  3. import java.io.UnsupportedEncodingException;
  4. import java.net.URLEncoder;
  5. import java.security.MessageDigest;
  6. import java.security.NoSuchAlgorithmException;
  7.  
  8. public class GravatarUtil {
  9.    
  10.     //@formatter:off
  11.     boolean reqExtension = false;
  12.     public GravatarUtil setReturnExtension(boolean flag) { reqExtension = flag; return this; }
  13.    
  14.     Integer size = 80;
  15.     public GravatarUtil setImgSize(Integer x) { size = x; return this; }
  16.    
  17.     DefaultOptions defOpts = null;
  18.     public GravatarUtil setDefaultOption(DefaultOptions opts) { defOpts = opts; return this; }
  19.    
  20.     String defImg = null;
  21.     @SuppressWarnings("deprecation")
  22.     public GravatarUtil setDefaultImageURL(String url) { defImg = url == null ? null : URLEncoder.encode(url); return this; }
  23.    
  24.     boolean forceDefaultImg = false;
  25.     public GravatarUtil setForceDefault(boolean flag) { forceDefaultImg = flag; return this; }
  26.    
  27.     Rating rating = Rating.G;
  28.     public GravatarUtil setRating(Rating r) { rating = r; return this; }
  29.    
  30.     boolean secure = false;
  31.     public GravatarUtil setSecure(boolean flag) { secure = flag; return this; }
  32.    
  33.     public String getUrl(String email) throws Exception{
  34.         StringBuilder sb = new StringBuilder();
  35.         sb.append((secure ? "https://secure" : "http://www") + ".gravatar.com/avatar/");
  36.        
  37.         email = new String(new MD5Util().md5Hex(email.toLowerCase().trim()));
  38.         sb.append(email + (reqExtension ? ".jpg" : ""));
  39.        
  40.         boolean firstParam = true;
  41.        
  42.         if(size != 80) { sb.append((firstParam ? "?" : "&") + "s=" + size); firstParam = false; }
  43.         if(defOpts != null) { sb.append((firstParam ? "?" : "&") + "d="+defOpts); firstParam = false; }
  44.         else if(defImg!=null && !defImg.equals("")) { sb.append((firstParam ? "?" : "&") + "d=" + defImg); firstParam = false; }
  45.         if(forceDefaultImg) { sb.append((firstParam ? "?" : "&") + "f=y"); firstParam = false; }
  46.         if(rating != null && rating != Rating.G) { sb.append((firstParam ? "?" : "&") + "rating=" + rating); firstParam = false; }
  47.        
  48.         return sb.toString();
  49.     }
  50.    
  51.    
  52.     //@formatter:on
  53.     public GravatarUtil() {}
  54.    
  55.     public static enum DefaultOptions {
  56.         _404("404"), MYSTERY_MAN("mm"), IDENTICON("identicon"), MONSTERID("monsterid"), WAVATAR("wavatar"), RETRO("retro"), BLANK("blank");
  57.        
  58.         private final String st;
  59.        
  60.         DefaultOptions(String st) {
  61.             this.st = st;
  62.         }
  63.        
  64.         public String getString() {
  65.             return st;
  66.         }
  67.        
  68.         public String toString() {
  69.             return getString();
  70.         }
  71.     }
  72.    
  73.     public static enum Rating {
  74.         G("g"), PG("pg"), R("r"), X("x");
  75.        
  76.         private final String st;
  77.        
  78.         Rating(String st) {
  79.             this.st = st;
  80.         }
  81.        
  82.         public String getString() {
  83.             return st;
  84.         }
  85.        
  86.         public String toString() {
  87.             return getString();
  88.         }
  89.     }
  90.    
  91.     public class MD5Util {
  92.         public String hex(byte[] array) {
  93.             StringBuffer sb = new StringBuffer();
  94.             for (int i = 0; i < array.length; ++i) {
  95.                 sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));
  96.             }
  97.             return sb.toString();
  98.         }
  99.        
  100.         public String md5Hex(String message) {
  101.             try {
  102.                 MessageDigest md = MessageDigest.getInstance("MD5");
  103.                 return hex(md.digest(message.getBytes("CP1252")));
  104.             } catch (NoSuchAlgorithmException e) {} catch (UnsupportedEncodingException e) {}
  105.             return null;
  106.         }
  107.     }
  108. }
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment