亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? flickrservice.java

?? 使用Flickr API來操作網(wǎng)絡相冊
?? JAVA
字號:
/**
 * 
 */
package com.ftrd.flickr.service;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import javax.imageio.ImageIO;

import org.xml.sax.SAXException;

import com.aetrion.flickr.Flickr;
import com.aetrion.flickr.FlickrException;
import com.aetrion.flickr.REST;
import com.aetrion.flickr.RequestContext;
import com.aetrion.flickr.auth.Auth;
import com.aetrion.flickr.auth.AuthInterface;
import com.aetrion.flickr.auth.Permission;
import com.aetrion.flickr.people.User;
import com.aetrion.flickr.photos.Photo;
import com.aetrion.flickr.photos.Size;
import com.aetrion.flickr.photosets.Photoset;
import com.aetrion.flickr.photosets.Photosets;
import com.aetrion.flickr.photosets.PhotosetsInterface;
import com.aetrion.flickr.uploader.UploadMetaData;
import com.aetrion.flickr.uploader.Uploader;
import com.aetrion.flickr.util.AuthStore;
import com.aetrion.flickr.util.FileAuthStore;
import com.ftrd.Service;

/**
 * This POJO implements the service that delivers photos from <a
 * href="http://www.flickr.com">Flicr</a>. Implementation is based on the <a
 * href="http://www.flickr.com/services/api/">Flickr API</a>, abstracted by the
 * <a href="http://sourceforge.net/projects/flickrj">flickrj</a> library.
 * 
 * @author <a href="mailto:tuyun1984@gmail.com">Daniel Tu</a>
 * @since 2008-10-6
 */

public class FlickrService implements Service {

	private Flickr flickr;

	private REST Rest;
	
	private AuthStore authStore = null;

	/**
	 * Flag set to determine if we have a valid connection to Flickr
	 */
	private boolean Connected = false;

	public FlickrService(){
		// Connect to flickr
		try {
			Connect();
		} catch (Exception ex) {
			System.out.println("Can not connect to flickr!");
			ex.printStackTrace();
		}

	}

	/**
	 * connect to flickr by flickr_api_key and secret.
	 * operate CONNECT_RETRY times, else connect errot.
	 * 
	 * @throws Exception
	 */
	private void Connect() throws Exception {
		// Try to connect at most 'CONNECT_RETRY' times before throwing an
		// exception
		Exception latestEx = null;
		for (int i = 0; !Connected && i < ConflickrConstants.CONNECT_RETRY; i++){
			try {
				// Initialize
				Rest = new REST();
				Rest.setHost(ConflickrConstants.HOST);
				System.out.println("connecting...........");
				flickr = new Flickr(ConflickrConstants.FLICKR_API_KEY,
						ConflickrConstants.FLICKR_SECRET, Rest);
				System.out.println("print the flickr obj: " + flickr.getApiKey() + ", " 
						+ flickr.getSharedSecret() + ", " + flickr.toString());
				Connected = true;
			} catch (Exception ex) {
				latestEx = ex;
			}
		}
		System.out.println("Connected...............");
		if (!Connected)
			throw latestEx;
	}

	public static void main(String args[]){
		System.out.println("New Flickrservice.................");
		FlickrService fs = new FlickrService();
		
		try {
			User user = fs.flickr.getPeopleInterface().findByEmail(ConflickrConstants.DEFAULT_USERNAME);
			System.out.println("### " + user.getId());
			fs.getTotalPhotosCount(ConflickrConstants.USERID);
			fs.downloadPhoto("2921340940");
			System.out.println("Downloaded.................");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
	/**
	 * authorize whether user has the permission to write, used in upload.
	 * 
	 * @throws IOException
	 * @throws SAXException
	 * @throws FlickrException
	 */
	private void authorize() throws IOException, SAXException, FlickrException {
		
		AuthInterface authInterface = flickr.getAuthInterface();
		String frob = "";
		try {
			frob = authInterface.getFrob();
		} catch (FlickrException e) {
			e.printStackTrace();
		}
		System.out.println("frob: " + frob);
		
		// grant the write permission by user at the first time
		URL authUrl = this.flickr.getAuthInterface().buildAuthenticationUrl( Permission.READ, frob);
		System.out.println("Please visit: " + authUrl.toExternalForm() + " then, hit enter.");
		System.in.read();
		try {
			Auth auth = authInterface.getToken(frob);
			RequestContext.getRequestContext().setAuth(auth);
			// store the auth permission to local
			this.authStore.store(auth);

			System.out.println("Authentication success");
			
			// This token can be used until the user revokes it.
			System.out.println("Token: " + auth.getToken());
			System.out.println("nsid: " + auth.getUser().getId());
			System.out.println("Realname: " + auth.getUser().getRealName());
			System.out.println("Username: " + auth.getUser().getUsername());
			System.out.println("Permission: " + auth.getPermission());
		} catch (FlickrException e) {
			System.out.println("Authentication failed");
			e.printStackTrace();
		}
	}

	/**
	 * get total photo count by userid
	 * 
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public int getTotalPhotosCount(String userId) throws Exception {
		int count = 0;
		try {
			User user = flickr.getPeopleInterface().getInfo(userId);
			System.out.println("username: " + user.getUsername());
			System.out.println("userID: " + user.getId());
			count = user.getPhotosCount();
		} catch (Exception e) {
			System.out.println("The flickr email is wrong!");
			e.printStackTrace();
		}
		return count;
	}

	/**
	 * list all photosets by userid
	 * 
	 * @param userid
	 */
	public void listUsersPhotosets(String userid) {
		PhotosetsInterface setiface = flickr.getPhotosetsInterface();

		try {
			Photosets photosets = setiface.getList(userid);
			Collection sets = photosets.getPhotosets();
			Iterator it = sets.iterator();
			while (it.hasNext()) {
				Photoset pset = (Photoset) it.next();

				System.out.print(pset.getId() + " - ");
				System.out.println(pset.getTitle());
			}
		} catch (IOException ex) {
			ex.printStackTrace();
		} catch (FlickrException ex) {
			ex.printStackTrace();
		} catch (SAXException ex) {
			ex.printStackTrace();
		}

	}

	public void addAlbum(String album_id) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see com.ftrd.Service#uploadPhoto(java.lang.String, java.lang.String)
	 */
	public void uploadPhoto(String album_id, String filename) throws Exception {

		FileInputStream photo = null;

		try {
			photo = new FileInputStream(filename);
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		}

		try {
			RequestContext rc = RequestContext.getRequestContext();
			// Check if local exist the auth file
			this.authStore = new FileAuthStore(new File("D:\\flickrtest\\"));
			
			if (this.authStore != null) {
				Auth auth = this.authStore.retrieve(ConflickrConstants.USERID);
				if (auth == null) 
					this.authorize();
				else 
					rc.setAuth(auth);
			}
			
			Uploader flickrUploader = new Uploader(flickr.getApiKey(), flickr
					.getSharedSecret());
			String photo_Id = flickrUploader
					.upload(photo, new UploadMetaData());
			flickr.getPhotosetsInterface().addPhoto(album_id, photo_Id);
		} catch (IOException e) {
			System.out.println("check the filename.");
			e.printStackTrace();
		} catch (FlickrException e) {
			System.out.println("upload photo to flickr error.");
			e.printStackTrace();
		} catch (SAXException e) {
			System.out.println("can not get photo_id of the photo uploaded.");
			e.printStackTrace();
		}

	}

	/* (non-Javadoc)
	 * @see com.ftrd.Service#addTags(java.lang.String, java.lang.String)
	 */
	public void addTags(String photo_id, String tag) throws Exception {
		// split the tag by breakspace
		String[] tags = tag.split(" ");
		try {
			flickr.getPhotosInterface().addTags(photo_id, tags);
		} catch (IOException e) {
			System.out.println("check the tag.");
			e.printStackTrace();
		} catch (FlickrException e) {
			System.out.println("add tag to photo error.");
			e.printStackTrace();
		} catch (SAXException e) {
			System.out.println("can not add tag to photo.");
			e.printStackTrace();
		}
	}

	public void connect(String username, String password, String apiKey)
			throws Exception {
		// Try to connect at most 'CONNECT_RETRY' times before throwing an
		// exception
		Exception latestEx = null;
		for (int i = 0; !Connected && i < ConflickrConstants.CONNECT_RETRY; i++)
			try {
				// Initialize
				Rest = new REST();
				Rest.setHost(ConflickrConstants.HOST);
				flickr = new Flickr(apiKey);

				Connected = true;
			} catch (Exception ex) {
				latestEx = ex;
			}
		if (!Connected)
			throw latestEx;

	}

	public void deleteAlbum(String album_id) throws Exception {
		try {
			flickr.getPhotosetsInterface().delete(album_id);
		} catch (IOException e) {
			System.out.println("check the album_id.");
			e.printStackTrace();
		} catch (FlickrException e) {
			System.out.println("delete photoset error.");
			e.printStackTrace();
		} catch (SAXException e) {
			System.out.println("can not delete photoset.");
			e.printStackTrace();
		}
	}

	public void deletePhoto(String album_id, String photo_id) {
		try {
			flickr.getPhotosInterface().delete(photo_id);
		} catch (IOException e) {
			System.out.println("check the photo_id.");
			e.printStackTrace();
		} catch (FlickrException e) {
			System.out.println("delete photo error.");
			e.printStackTrace();
		} catch (SAXException e) {
			System.out.println("can not delete photo.");
			e.printStackTrace();
		}
	}

	public void download(String album_id, String photo_id) {
		// TODO Auto-generated method stub

	}

	public int downloadAlbum(String album_id) {
		// TODO Auto-generated method stub
		return 0;
	}

	public void downloadContentsInAlbum(String album_id) {
		// TODO Auto-generated method stub

	}

	public Object getAlbum(String album_id) throws Exception {
		PhotosetsInterface photosetsInter = flickr.getPhotosetsInterface();
		Photoset photoset = photosetsInter.getInfo(album_id);
		// TODO Auto-generated method stub
		return photoset;
	}

	public List getAlbumTags(String album_id) {
		// TODO Auto-generated method stub
		return null;
	}

	public Object getPhoto(String album_id, String photo_id) throws Exception {
		Photo photo = null;
		try {
			photo = flickr.getPhotosInterface().getPhoto(photo_id);
		} catch (IOException e) {
			System.out.println("check the photo_id.");
			e.printStackTrace();
		} catch (FlickrException e) {
			System.out.println("get photo error.");
			e.printStackTrace();
		} catch (SAXException e) {
			System.out.println("can not get photo.");
			e.printStackTrace();
		}
		return photo;
	}

	public List getPhotoComments(String photo_id) {
		List<String> comments = new ArrayList<String>();
		try {
			comments = (ArrayList<String>)flickr.getPhotosetsCommentsInterface().getList(photo_id);
		} catch (IOException e) {
			System.out.println("check the photo_id.");
			e.printStackTrace();
		} catch (FlickrException e) {
			System.out.println("get photo comments error.");
			e.printStackTrace();
		} catch (SAXException e) {
			System.out.println("can not get photo comments.");
			e.printStackTrace();
		}
		return comments;
	}

	public List getPhotoTags(String photo_id) {
		Photo photo = null;
		List<String> tags = new ArrayList<String>();
		try {
			photo = flickr.getPhotosInterface().getPhoto(photo_id);
			tags = (ArrayList<String>)photo.getTags();
		} catch (IOException e) {
			System.out.println("check the photo_id.");
			e.printStackTrace();
		} catch (FlickrException e) {
			System.out.println("get photo tags error.");
			e.printStackTrace();
		} catch (SAXException e) {
			System.out.println("can not get photo tags.");
			e.printStackTrace();
		}
		return tags;
	}

	/* (non-Javadoc)
	 * @see com.ftrd.Service#getPhotots(java.lang.String)
	 */
	public List getPhotots(String album_id) throws Exception {
		List<Photo> photosList = new ArrayList<Photo>();

		PhotosetsInterface setsInterface = flickr.getPhotosetsInterface();

		try {
			Collection photos = setsInterface.getPhotos(album_id, 0, 0);
			Iterator it = photos.iterator();
			while (it.hasNext()) {
				Photo photo = (Photo) it.next();
				photosList.add(photo);
			}
		} catch (IOException ex) {
			ex.printStackTrace();
		} catch (FlickrException ex) {
			ex.printStackTrace();
		} catch (SAXException ex) {
			ex.printStackTrace();
		}

		return photosList;
	}

	public void modifyAlbum(String album_id) {
		// TODO Auto-generated method stub

	}

	public void removeTags(String photo_id, String tag) throws Exception {
		// TODO Auto-generated method stub
	}

	/* (non-Javadoc)
	 * @see com.ftrd.Service#saveToFile(java.lang.Object, java.lang.String)
	 */
	public void saveToFile(Object object, String author) {
		// TODO Auto-generated method stub
		Photo photo = (Photo) object;
		String title = photo.getTitle();
		try {
			BufferedImage bufImage = flickr.getPhotosInterface().getImage(
					photo, Size.MEDIUM);
			ImageIO.write(bufImage, "jpg", new File("D:\\flickrtest\\" + title
					+ ".jpg"));
		} catch (IOException ioe) {
			// TODO: handle exception
		} catch (FlickrException fce) {
			// TODO: handle exception
		}

	}

	/**
	 * download the plickr photo and save it to local
	 * 
	 * @param photo_id
	 * @throws Exception
	 */
	public void downloadPhoto(String photo_id) throws Exception {
		Photo photo = flickr.getPhotosInterface().getPhoto(photo_id);
		saveToFile(photo, "");
		
		System.out.println("download successful!");
		
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品系列在线| 国产精品影视网| 久久99精品国产91久久来源| 成a人片国产精品| 欧美日韩精品久久久| 国产欧美一区二区精品婷婷| 图片区小说区国产精品视频| 91在线精品一区二区三区| 精品黑人一区二区三区久久| 一区二区三区视频在线观看| 国产99久久久精品| 精品少妇一区二区三区免费观看| 一级日本不卡的影视| 国产成人综合在线观看| 7878成人国产在线观看| 亚洲最大色网站| 99久久99久久精品免费看蜜桃| 精品久久国产老人久久综合| 午夜激情一区二区三区| 色综合久久久久久久久久久| 国产清纯在线一区二区www| 久久精品国产秦先生| 日韩一区二区免费在线观看| 亚洲国产日韩综合久久精品| 91婷婷韩国欧美一区二区| 中文字幕av一区二区三区免费看| 久久se精品一区精品二区| 日韩一卡二卡三卡国产欧美| 日韩精品高清不卡| 欧美日韩中字一区| 午夜精品久久久久久不卡8050| 欧美专区日韩专区| 亚洲一级二级三级在线免费观看| 在线精品亚洲一区二区不卡| 亚洲综合男人的天堂| 91成人在线免费观看| 一区二区三区中文字幕电影| 欧美午夜理伦三级在线观看| 亚洲一区二区精品3399| 欧美三级电影在线观看| 午夜精品一区在线观看| 日韩午夜电影在线观看| 久久精品国产一区二区| 久久综合久久综合亚洲| 成人久久18免费网站麻豆 | 成人av集中营| 自拍偷拍亚洲激情| 欧美日韩国产免费一区二区| 日韩av电影免费观看高清完整版 | 成人国产精品免费观看视频| 国产精品护士白丝一区av| 色综合天天性综合| 亚洲一区电影777| 精品免费国产一区二区三区四区| 极品尤物av久久免费看| 国产亚洲女人久久久久毛片| 99久久免费国产| 性做久久久久久久久| 久久亚洲二区三区| 在线观看日韩高清av| 日韩va欧美va亚洲va久久| 久久免费午夜影院| 色综合久久天天| 黄网站免费久久| 亚洲乱码日产精品bd| 欧美一区二区三区不卡| 成人免费av在线| 日韩国产一区二| 国产精品久久久久一区二区三区 | 国产精品一区专区| 一区二区三区在线看| 欧美mv和日韩mv的网站| 91丝袜国产在线播放| 91亚洲大成网污www| 日欧美一区二区| 国产精品乱码一区二区三区软件 | 精品成人佐山爱一区二区| av在线不卡观看免费观看| 美女爽到高潮91| 亚洲欧美另类久久久精品2019| 日韩精品中文字幕一区| 91福利社在线观看| 成人免费视频网站在线观看| 秋霞午夜鲁丝一区二区老狼| 综合电影一区二区三区| 久久久精品欧美丰满| 欧美久久婷婷综合色| 91亚洲精品久久久蜜桃| 国产精品一区在线观看你懂的| 午夜精品久久一牛影视| 亚洲欧洲日本在线| 久久中文娱乐网| 欧美成人精品1314www| 欧美私人免费视频| 色综合婷婷久久| 国产精品一区二区三区99| 蜜臀精品久久久久久蜜臀 | 国产精品女主播在线观看| 日韩精品一区二区三区老鸭窝| 欧美日韩精品欧美日韩精品| 91麻豆国产香蕉久久精品| 成人精品一区二区三区中文字幕| 国产一区二区在线视频| 久久99国产精品成人| 久久99久久精品欧美| 日韩影院精彩在线| 日本怡春院一区二区| 视频一区二区三区中文字幕| 亚洲一区二区av在线| 一区二区三区免费| 亚洲五码中文字幕| 亚洲bdsm女犯bdsm网站| 日韩电影免费在线看| 日本成人在线不卡视频| 日本美女一区二区三区| 日欧美一区二区| 男男视频亚洲欧美| 精一区二区三区| 国产专区综合网| 成人亚洲精品久久久久软件| 国产成人一区在线| 成人黄色av电影| 91丨porny丨户外露出| 色哟哟一区二区在线观看| 在线一区二区三区做爰视频网站| 91色.com| 欧美精品 国产精品| 欧美一区二区三区视频免费| 日韩免费视频一区二区| 久久先锋影音av鲁色资源网| 国产欧美日韩综合| 亚洲蜜臀av乱码久久精品| 亚洲在线视频免费观看| 天天av天天翘天天综合网| 美洲天堂一区二卡三卡四卡视频| 精品一区二区三区免费播放| 成人免费视频caoporn| 日本一二三不卡| 亚洲一二三级电影| 另类调教123区| 成人av资源网站| 欧美日韩精品欧美日韩精品| 久久综合久久综合九色| 中文字幕一区二区三区在线播放| 亚洲综合成人网| 久久国产麻豆精品| 91麻豆国产在线观看| 欧美videossexotv100| 最近中文字幕一区二区三区| 亚洲最新视频在线观看| 国产原创一区二区| 日本高清视频一区二区| 精品少妇一区二区三区日产乱码| 国产精品高清亚洲| 日产欧产美韩系列久久99| voyeur盗摄精品| 日韩三级.com| 亚洲自拍与偷拍| 福利电影一区二区| 日韩天堂在线观看| 亚洲视频香蕉人妖| 韩国v欧美v亚洲v日本v| 欧洲在线/亚洲| 亚洲国产成人午夜在线一区| 日韩高清中文字幕一区| 成人国产在线观看| 久久亚洲捆绑美女| 午夜在线成人av| 91美女在线视频| 国产欧美一区二区精品婷婷 | 亚洲成人一二三| 成人三级在线视频| 日韩三级视频中文字幕| 一个色综合网站| 成人av在线播放网站| 亚洲精品一区在线观看| 日韩精品欧美精品| 在线看国产日韩| 中文字幕中文在线不卡住| 国模大尺度一区二区三区| 在线播放视频一区| 亚洲高清在线精品| 99re视频精品| 成人欧美一区二区三区视频网页| 国产一区二区精品久久99 | 欧美三区在线观看| 中文字幕一区二区不卡| 丰满亚洲少妇av| 国产日韩欧美激情| 国产suv精品一区二区6| 26uuu色噜噜精品一区| 精品在线免费观看| 日韩美女视频在线| 精品在线观看免费| 欧美精品一区二区在线观看| 九九视频精品免费| 久久亚区不卡日本| 国产精品性做久久久久久| 国产午夜亚洲精品羞羞网站| 国产成人久久精品77777最新版本|