Package com.appspot.finajjarane.framework.service.impl

Source Code of com.appspot.finajjarane.framework.service.impl.PicasaWebImpl

/**
* @author Fayçal INAJJARANE
*/
package com.appspot.finajjarane.framework.service.impl;

import java.net.URL;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;

import com.appspot.finajjarane.framework.generic.ApplicationConstants;
import com.appspot.finajjarane.framework.generic.Utils;
import com.appspot.finajjarane.framework.service.IPicasaWeb;
import com.google.gdata.client.photos.PicasawebService;
import com.google.gdata.data.media.mediarss.MediaContent;
import com.google.gdata.data.photos.AlbumFeed;
import com.google.gdata.data.photos.PhotoEntry;
import com.google.gdata.util.AuthenticationException;


@Service
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class PicasaWebImpl implements IPicasaWeb {

  private PicasawebService picasawebService;

  private List<PhotoEntry> photos = null;

  private Date lastUpdate = new Date();

  public PicasaWebImpl() throws AuthenticationException{
    this.picasawebService = new PicasawebService("faycal-inajjarane.appspot.com");
    this.picasawebService.setUserCredentials(ApplicationConstants.PICASA_WEB_USERNAME, ApplicationConstants.PICASA_WEB_PASSWORD);
  }

  @Override
  public String getImageUrl(final String imageTitle) {

    String defaultImage = ApplicationConstants.NO_IMAGE_FULL_LINK ;

    try{
      if(null == this.photos || Utils.getDatesDifferenceInSenconds(this.lastUpdate, new Date(), true)>ApplicationConstants.PICASA_SECONDES_REFRESH_ALBUM ){


      URL feedUrl = new URL("https://picasaweb.google.com/data/feed/api/user/"   +
            ApplicationConstants.PICASA_WEB_USERNAME_SHORT     +
            "/albumid/" + ApplicationConstants.PICASA_MAIN_ALBUM_ID );

      AlbumFeed mainAlbum = this.picasawebService.getFeed(feedUrl, AlbumFeed.class);

      this.photos = mainAlbum.getPhotoEntries();

      // Set last update entries
      this.lastUpdate = new Date();

      }

      for(PhotoEntry photo : this.photos){
        if(photo.getSummary().getPlainText().compareTo(imageTitle)==0){
          for(MediaContent mediaContent : photo.getMediaContents()){
            return mediaContent.getUrl();
          }
        }
      }
      return defaultImage;
    }
    catch(Exception e){
      return defaultImage;
    }
  }

}
TOP

Related Classes of com.appspot.finajjarane.framework.service.impl.PicasaWebImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.