Changeset 224
- Timestamp:
- 08/21/06 17:16:46 (2 years ago)
- Files:
-
- plagger/trunk/lib/Plagger/Enclosure.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plagger/trunk/lib/Plagger/Enclosure.pm
r119 r224 1 1 package Plagger::Enclosure; 2 3 2 use strict; 4 3 5 use base qw( Plagger::Thing);6 __PACKAGE__->mk_accessors(qw( url size content_type ));4 use base qw( Class::Accessor::Fast ); 5 __PACKAGE__->mk_accessors(qw( length type local_path is_inline )); 7 6 8 sub new { 9 bless {}, $_[0]; 7 use Plagger::Util; 8 use URI; 9 10 sub url { 11 my $self = shift; 12 if (@_) { 13 $self->{url} = URI->new($_[0]); 14 } 15 $self->{url}; 10 16 } 11 17 12 sub media { 13 my $self = shift; 14 if($self->{media}){ 15 return $self->{media}; 18 sub auto_set_type { 19 my($self, $type) = @_; 20 21 if (defined $type) { 22 return $self->type($type); 16 23 } 17 else { 18 my $media = Plagger::Enclosure::Media->new; 19 $self->{media} = $media; 20 return $media; 21 } 24 25 # set MIME type via URL extension 26 my $mime = Plagger::Util::mime_type_of($self->url); 27 $self->type($mime->type) if $mime; 22 28 } 23 29 24 package Plagger::Enclosure::Media; 30 sub media_type { 31 my $self = shift; 32 ( split '/', $self->type )[0] || 'unknown'; 33 } 25 34 26 use strict; 27 use base qw( Plagger::Thing ); 35 sub sub_type { 36 my $self = shift; 37 ( split '/', $self->type )[1] || 'unknown'; 38 } 28 39 29 __PACKAGE__->mk_accessors(qw( artist album title year )); 30 31 sub new { 32 bless {}, $_[0]; 40 sub filename { 41 my $self = shift; 42 if (@_) { 43 $self->{filename} = shift; 44 } 45 $self->{filename} || (split '/', $self->url->path)[-1]; 33 46 } 34 47 35 48 1; 49
