Class: Flickr::Photo
- Inherits:
-
Object
- Object
- Flickr::Photo
- Defined in:
- lib/flickr/base.rb
Instance Attribute Summary collapse
-
#canaddmeta ⇒ Object
Returns the value of attribute canaddmeta.
-
#cancomment ⇒ Object
Returns the value of attribute cancomment.
-
#comments ⇒ Object
Returns the value of attribute comments.
-
#dateadded ⇒ Object
Returns the value of attribute dateadded.
-
#dates ⇒ Object
Returns the value of attribute dates.
-
#description ⇒ Object
Returns the value of attribute description.
-
#flickr ⇒ Object
readonly
Returns the value of attribute flickr.
-
#id ⇒ Object
Returns the value of attribute id.
-
#isfamily ⇒ Object
Returns the value of attribute isfamily.
-
#isfriend ⇒ Object
Returns the value of attribute isfriend.
-
#ispublic ⇒ Object
Returns the value of attribute ispublic.
-
#lastupdate ⇒ Object
Returns the value of attribute lastupdate.
-
#license_id ⇒ Object
Returns the value of attribute license_id.
-
#notes ⇒ Object
Returns the value of attribute notes.
-
#originalformat ⇒ Object
Returns the value of attribute originalformat.
-
#owner_id ⇒ Object
Returns the value of attribute owner_id.
-
#ownername ⇒ Object
Returns the value of attribute ownername.
-
#permaddmeta ⇒ Object
Returns the value of attribute permaddmeta.
-
#permcomment ⇒ Object
Returns the value of attribute permcomment.
-
#rotation ⇒ Object
Returns the value of attribute rotation.
-
#secret ⇒ Object
Returns the value of attribute secret.
-
#server ⇒ Object
Returns the value of attribute server.
-
#taken ⇒ Object
Returns the value of attribute taken.
-
#takengranularity ⇒ Object
Returns the value of attribute takengranularity.
-
#title ⇒ Object
Returns the value of attribute title.
-
#urls ⇒ Object
Returns the value of attribute urls.
Class Method Summary collapse
Instance Method Summary collapse
- #contexts ⇒ Object
- #delete ⇒ Object
- #exif ⇒ Object
- #exif=(set) ⇒ Object
-
#initialize(flickr, id) ⇒ Photo
constructor
A new instance of Photo.
- #license ⇒ Object
- #max_size ⇒ Object
- #owner ⇒ Object
- #sizes ⇒ Object
- #sizes=(sizes) ⇒ Object
- #tags ⇒ Object
- #tags=(set) ⇒ Object
- #url(size = nil) ⇒ Object
Constructor Details
#initialize(flickr, id) ⇒ Photo
Returns a new instance of Photo.
379 380 381 382 |
# File 'lib/flickr/base.rb', line 379 def initialize(flickr,id) @flickr = flickr @id = id end |
Instance Attribute Details
#canaddmeta ⇒ Object
Returns the value of attribute canaddmeta.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def @canaddmeta end |
#cancomment ⇒ Object
Returns the value of attribute cancomment.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def cancomment @cancomment end |
#comments ⇒ Object
Returns the value of attribute comments.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def comments @comments end |
#dateadded ⇒ Object
Returns the value of attribute dateadded.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def dateadded @dateadded end |
#dates ⇒ Object
Returns the value of attribute dates.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def dates @dates end |
#description ⇒ Object
Returns the value of attribute description.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def description @description end |
#flickr ⇒ Object (readonly)
Returns the value of attribute flickr.
368 369 370 |
# File 'lib/flickr/base.rb', line 368 def flickr @flickr end |
#id ⇒ Object
Returns the value of attribute id.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def id @id end |
#isfamily ⇒ Object
Returns the value of attribute isfamily.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def isfamily @isfamily end |
#isfriend ⇒ Object
Returns the value of attribute isfriend.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def isfriend @isfriend end |
#ispublic ⇒ Object
Returns the value of attribute ispublic.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def ispublic @ispublic end |
#lastupdate ⇒ Object
Returns the value of attribute lastupdate.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def lastupdate @lastupdate end |
#license_id ⇒ Object
Returns the value of attribute license_id.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def license_id @license_id end |
#notes ⇒ Object
Returns the value of attribute notes.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def notes @notes end |
#originalformat ⇒ Object
Returns the value of attribute originalformat.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def originalformat @originalformat end |
#owner_id ⇒ Object
Returns the value of attribute owner_id.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def owner_id @owner_id end |
#ownername ⇒ Object
Returns the value of attribute ownername.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def ownername @ownername end |
#permaddmeta ⇒ Object
Returns the value of attribute permaddmeta.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def @permaddmeta end |
#permcomment ⇒ Object
Returns the value of attribute permcomment.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def permcomment @permcomment end |
#rotation ⇒ Object
Returns the value of attribute rotation.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def rotation @rotation end |
#secret ⇒ Object
Returns the value of attribute secret.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def secret @secret end |
#server ⇒ Object
Returns the value of attribute server.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def server @server end |
#taken ⇒ Object
Returns the value of attribute taken.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def taken @taken end |
#takengranularity ⇒ Object
Returns the value of attribute takengranularity.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def takengranularity @takengranularity end |
#title ⇒ Object
Returns the value of attribute title.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def title @title end |
#urls ⇒ Object
Returns the value of attribute urls.
361 362 363 |
# File 'lib/flickr/base.rb', line 361 def urls @urls end |
Class Method Details
.from_xml(xml, flickr = nil) ⇒ Object
402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 |
# File 'lib/flickr/base.rb', line 402 def self.from_xml(xml,flickr=nil) att = xml.attributes phid = att['id'] photo = flickr.photo_cache_lookup(phid) if flickr photo ||= Flickr::Photo.new(flickr,phid) photo.owner_id ||= att['owner'] || (xml.elements['owner'] && xml.elements['owner'].attributes['nsid']) photo.secret = att['secret'] if att['secret'] photo.originalformat = att['originalformat'] if att['originalformat'] photo.server = att['server'].to_i if att['server'] photo.title = att['title'] || cond_text(xml.elements,'title') photo.license_id = att['license'] photo.rotation = att['rotation'].to_i if att['rotation'] photo.ispublic = (att['ispublic'].to_i == 1) if att['ispublic'] photo.isfriend = (att['isfriend'].to_i == 1) if att['isfriend'] photo.isfamily = (att['isfamily'].to_i == 1) if att['isfamily'] photo.ownername = att['ownername'] || (xml.elements['owner'] && xml.elements['owner'].attributes['username']) photo.description = cond_text(xml.elements,'description') photo.dateadded = Time.at(att['dateadded'].to_i) if att['dateadded'] if xml.elements['exif'] list = [] xml.elements.each('exif') do |el| exif = Flickr::Exif.from_xml(el) list << exif end photo.exif = list end if xml.elements['visibility'] att = xml.elements['visibility'].attributes photo.ispublic = (att['ispublic'].to_i == 1) photo.isfriend = (att['isfriend'].to_i == 1) photo.isfamily = (att['isfamily'].to_i == 1) end if xml.elements['dates'] att = xml.elements['dates'].attributes dates = {} dates[:posted] = Time.at(att['posted'].to_i) dates[:taken] = Time.gm(*ParseDate.parsedate(att['taken'])) dates[:lastupdate] = Time.at(att['lastupdate'].to_i) dates[:takengranularity] = att['takengranularity'].to_i photo.dates = dates end if xml.elements['editability'] att = xml.elements['editability'].attributes photo.cancomment = (att['cancomment'].to_i == 1) photo. = (att['canaddmeta'].to_i == 1) end photo.comments = cond_text(xml.elements,'comments') photo.comments &&= photo.comments.to_i if xml.elements['notes'] notes = [] xml.elements['notes'].each_element do |el| notes << Flickr::Note.from_xml(el,photo) end photo.notes = notes end if xml.elements['tags'] = [] xml.elements['tags'].each_element do |el| << Flickr::Tag.from_xml(el,photo) end photo. = end if xml.elements['urls'] urls = {} xml.elements['urls'].each_element do |el| att = el.attributes urls[att['type'].intern] = el.text end photo.urls = urls end flickr.photo_cache_store(photo) if flickr return photo end |
Instance Method Details
#contexts ⇒ Object
392 |
# File 'lib/flickr/base.rb', line 392 def contexts() @contexts ||= @flickr.photos.getAllContexts(self) end |
#delete ⇒ Object
400 |
# File 'lib/flickr/base.rb', line 400 def delete() @flickr.photos.delete(self) end |
#exif ⇒ Object
384 |
# File 'lib/flickr/base.rb', line 384 def exif() @exif ||= @flickr.photos.getExif(self) end |
#exif=(set) ⇒ Object
385 |
# File 'lib/flickr/base.rb', line 385 def exif=(set) @exif = set end |
#license ⇒ Object
390 |
# File 'lib/flickr/base.rb', line 390 def license() @flickr.photos.licenses.getInfo[@license_id] end |
#max_size ⇒ Object
374 375 376 377 |
# File 'lib/flickr/base.rb', line 374 def max_size sizes[:Original] || sizes[:Large] || sizes[:Medium] || sizes[:Small] end |
#owner ⇒ Object
370 |
# File 'lib/flickr/base.rb', line 370 def owner() @owner ||= @flickr.people.getInfo(owner_id) end |
#sizes ⇒ Object
371 |
# File 'lib/flickr/base.rb', line 371 def sizes() @sizes || @flickr.photos.getSizes(self).sizes end |
#sizes=(sizes) ⇒ Object
372 |
# File 'lib/flickr/base.rb', line 372 def sizes=(sizes) @sizes = sizes end |
#tags ⇒ Object
387 |
# File 'lib/flickr/base.rb', line 387 def () @tags ||= @flickr..getListPhoto(self) end |
#tags=(set) ⇒ Object
388 |
# File 'lib/flickr/base.rb', line 388 def (set) @tags = set end |
#url(size = nil) ⇒ Object
394 395 396 397 398 |
# File 'lib/flickr/base.rb', line 394 def url(size=nil) base = 'http://static.flickr.com' ext = (size == 'o') ? self.originalformat : 'jpg' return size ? "#{base}/#@server/#{@id}_#{@secret}_#{size}.#{ext}" : "#{base}/#@server/#{@id}_#{@secret}.jpg" end |