Class: Flickr::Groups

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

Instance Attribute Summary

Attributes inherited from APIBase

#flickr

Instance Method Summary collapse

Methods inherited from APIBase

#initialize

Constructor Details

This class inherits a constructor from Flickr::APIBase

Instance Method Details

#browse(category = nil) ⇒ Object

category can be a Category or nsid string



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/flickr/groups.rb', line 7

def browse(category=nil)
	category=category.id if (category.class == Flickr::Category ||
		category.class == Flickr::SubCategory )

	args = category ?  {'cat_id' => category } : {}
	res = @flickr.call_method('flickr.groups.browse',args)
	att = res.root.attributes
	cat=Flickr::Category.new(att['name'],att['path'],att['pathids'])
	res.elements['/category'].each_element('subcat') do |e|
		att = e.attributes
		cat.subcats << Flickr::SubCategory.new(att['name'],
			att['id'],att['count'].to_i)
	end
	res.elements['/category'].each_element('group') do |e|
		att = e.attributes
		nsid = att['nsid']

		g = @flickr.group_cache_lookup(nsid)
		g ||= Flickr::Group.new(@flickr,nsid)

		g.name = att['name']
		g.members = att['members'].to_i
		g.online = att['online'].to_i
		g.chatnsid = att['chatnsid']
		g.inchat = att['inchat'].to_i

		@flickr.group_cache_store(g)
		cat.groups << g
	end

	return cat
end

#getInfo(group) ⇒ Object

group can be a Group or group nsid



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/flickr/groups.rb', line 41

def getInfo(group)
	group = group.nsid if group.class == Flickr::Group
	g = @flickr.group_cache_lookup(group)
	return g if g && g.fully_fetched

	res = @flickr.call_method('flickr.groups.getInfo',
		'group_id' => group)
	group = res.elements['/group'].attributes['id']
	g ||= Flickr::Group.new(@flickr,nsid)
	g.name = res.elements['/group/name'].text
	g.description = res.elements['/group/description'].text
	g.members = res.elements['/group/members'].text.to_i
	g.privacy = res.elements['/group/privacy'].text.to_i
	g.fully_fetched = true

	@flickr.group_cache_store(g)
	return g
end

#poolsObject



4
# File 'lib/flickr/groups.rb', line 4

def pools() @pools ||= Flickr::Pools.new(@flickr,self) end

#search(text, per_page = nil, page = nil) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/flickr/groups.rb', line 60

def search(text,per_page=nil,page=nil)
	args = { 'text' => text }
	args['per_page'] = per_page if per_page
	args['page'] = page if page
	res = @flickr.call_method('flickr.groups.search',args)
	att = res.root.attributes
	list = Flickr::GroupList.new(att['page'].to_i,att['pages'].to_i,
		att['perpage'].to_i,att['total'].to_i)
	res.elements['/groups'].each_element('group') do |e|
		att = e.attributes
		nsid = att['nsid']
		g = @flickr.group_cache_lookup(nsid) ||
			Flickr::Group.new(@flickr,nsid)
		g.name = att['name']
		g.eighteenplus = att['eighteenplus'].to_i == 1

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