Class: Flickr::Pools

Inherits:
APIBase show all
Defined in:
lib/flickr/pools.rb

Instance Attribute Summary

Attributes inherited from APIBase

#flickr

Instance Method Summary collapse

Constructor Details

#initialize(flickr, groups) ⇒ Pools

Returns a new instance of Pools.



24
25
26
27
# File 'lib/flickr/pools.rb', line 24

def initialize(flickr,groups)
	super(flickr)
	@groups = groups
end

Instance Method Details

#add(photo, group) ⇒ Object

photo can be a Photo or photo_id group can be a Group or group_id



31
32
33
34
35
36
# File 'lib/flickr/pools.rb', line 31

def add(photo,group)
	group = group.nsid if group.class == Flickr::Group
	photo = photo.id if photo.class == Flickr::Photo
	@flickr.call_method('flickr.groups.pools.add',
		'group_id' => group, 'photo_id' => photo)
end

#getContext(photo, group) ⇒ Object

photo can be a Photo or photo_id group can be a Group or group_id



49
50
51
52
53
54
55
# File 'lib/flickr/pools.rb', line 49

def getContext(photo,group)
	group = group.nsid if group.class == Flickr::Group
	photo = photo.id if photo.class == Flickr::Photo
	res = @flickr.call_method('flickr.groups.pools.getContex',
		'group_id' => group, 'photo_id' => photo)
	return Flickr::Context.from_xml(res)
end

#getGroupsObject



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/flickr/pools.rb', line 57

def getGroups
	res = @flickr.call_method('flickr.groups.pools.getGroups')
	list = []
	res.elements['/groups'].each_element do |el|
		att = el.attributes
		nsid = att['nsid']
		g = @flickr.group_cache_lookup(nsid) ||
		  Flickr::Group.new(@flickr,nsid,att['name'])
		g.name = att['name']
		g.admin = att['admin'].to_i == 1
		g.privacy = Flickr::Group::PRIVACY[att['privacy'].to_i]
		g.photo_count = att['photos'].to_i
		g.iconserver = att['iconserver'].to_i

		@flickr.group_cache_store(g)
		list << g
	end
	return list
end

#getPhotos(group, tags = nil, extras = nil, per_page = nil, page = nil) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/flickr/pools.rb', line 77

def getPhotos(group,tags=nil,extras=nil,per_page=nil,page=nil)
	group = group.nsid if group.class == Flickr::Group
	group = group.id.to_s if group.class == Flickr::PhotoPool
	args = { 'group_id' => group }
	args['tags'] = tags.map{|t| t.clean if t.class ==
		  Flick::Tag}.join(',') if tags
	args['extras'] = extras.join(',') if extras.class == Array
	args['per_page'] = per_page if per_page
	args['page'] = page if page

	res = @flickr.call_method('flickr.groups.pools.getPhotos', args)
	return Flickr::PhotoList.from_xml(res,@flickr)
end

#remove(photo, group) ⇒ Object

photo can be a Photo or photo_id group can be a Group or group_id



40
41
42
43
44
45
# File 'lib/flickr/pools.rb', line 40

def remove(photo,group)
	group = group.nsid if group.class == Flickr::Group
	photo = photo.id if photo.class == Flickr::Photo
	@flickr.call_method('flickr.groups.pools.add',
		'group_id' => group, 'photo_id' => photo)
end