#!/usr/bin/perl require "environment.pl"; $config = (); my $config_file = $docroot . '/config/default.xml'; if(-f $config_file) { use XML::Simple; $config = XMLin($config_file); } $config_file = $docroot . '/config/' . $username . '.xml'; if(-f $config_file) { use XML::Simple; my $config_in = XMLin($config_file); &deep_copy($config_in, $config); } sub deep_copy { my($source, $dest) = @_; foreach $key (keys %{$source}) { if(ref($source->{$key}) eq 'HASH') { $dest->{$key} = () unless $dest->{$key}; &deep_copy($source->{$key}, $dest->{$key}); } else { $dest->{$key} = $source->{$key}; } } } sub save_config { XMLout($config, rootname=>'mediaserv', outputfile=>$config_file); } sub shared_playlists { my $config_file = $docroot . '/config/playlists.xml'; my @playlists = (); if(-f $config_file) { use XML::Simple; my $playlists = XMLin($config_file, forcearray=>1); foreach $user (keys %{ $playlists }) { next if $user = $username; foreach $list (keys %{ $playlists->{$user} }) { if(ref($playlists->{$user}->{$list}) eq 'ARRAY') { next unless grep {$_ eq $username} @{$playlists->{$user}->{$list}}; } push @playlists, $list; } } } return @playlists } 1;