#!/usr/bin/perl
my $ver = 'v001';
use strict;
use daveperl;

# Framechannel Device reference:
# http://www.streamingmeemee.com/wp-content/uploads/2011/06/FrameChannel-Certification-Checklist-v20.pdf

# picasa rss feed:
#my $rss_in = cat_file($ARGV[0]);
my $url = $ARGV[0];
if (! defined $url) {
	$url = 'https://picasaweb.google.com/data/feed/base/user/113434799782645457166/albumid/5643716389836437457?alt=rss&kind=photo&hl=en_US'
}
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $res = $ua->get($url);
my $rss_in = $res->content;

use XML::TreePP;
my $parser = XML::TreePP->new();
my $feed = $parser->parse($rss_in);

use Data::Dumper;
#print Dumper( $feed );
dprintf1 "rss: '%s'\n", $feed->{rss};
dprintf1 "chn: '%s'\n", $feed->{rss}->{channel};
dprintf1 "itm: '%s'\n", $feed->{rss}->{channel}->{item};

sub get_urls
{
	my @urls = ();
foreach my $item (@{$feed->{rss}->{channel}->{item}}) {
	#print Dumper( $item );
	dprintf2 "item keys: '%s'\n", join(",", keys %$item);
	my $mg = $item->{'media:group'};
	dprintf2 "mg (%s) keys: '%s'\n", $mg, join(",", keys %$mg);
	my $tn_aref = $mg->{'media:thumbnail'};
	#printf "tn_aref: '%s'\n", $tn_aref;
	
	my @tns = @{$tn_aref};
	my $biggest_tn = pop @tns;
	#rint Dumper( $biggest_tn );

	my $height = $biggest_tn->{'-height'};
	my $width  = $biggest_tn->{'-width'};
	my $max_dimension;
	my $replace_tn;
	if ($height > $width) {
		$max_dimension = $height;
		$replace_tn = 's768';
	} else {
		$max_dimension = $width;
		$replace_tn = 's1024';
	}

	my $url = $biggest_tn->{'-url'};
	# https://lh4.googleusercontent.com/-JBBhqtOSUVQ/SfSWaZfW3zI/AAAAAAABIDU/-yKBl-9_MKs/s288/DSC_0190.JPG
	my @parts = split('/', $url);
	$parts[-2] = $replace_tn;
	my $new_url = join('/', @parts);
	$new_url =~ s/^https/http/;
	push @urls, $new_url;
}
	return @urls;
}

# TTL is in minutes
# Putting <fc:deviceaction action="sleep" /> in here will make the device sleep
#<frameuserinfo:firstname>-</frameuserinfo:firstname>
#<frameuserinfo:lastname>-</frameuserinfo:lastname>
#<frameuserinfo:username>inactive_frame</frameuserinfo:username>
#<frameuserinfo:unregistered>FALSE</frameuserinfo:unregistered>

print '<?xml version="1.0" encoding="utf-8" ?>
<rss>
<channel>
<ttl>2</ttl>
<title>faked framechannel rss feed '.$ver.'</title>
';

my $nr = 0;
foreach my $url (get_urls()) {
	# media:duration is in seconds
	#<media:duration>30</media:duration>

	printf '<item>
<title>img %s faked by dave script</title>
<media:content url="%s" type="image/jpeg" />
</item>'."\n", $nr, $url;
	$nr++;
}

print "</channel>
</rss>\n";