0

Request logging

This commit is contained in:
Kaimi
2016-01-26 16:27:26 +03:00
parent aa1117a208
commit 57d2a840a5

View File

@@ -32,7 +32,8 @@ use constant
GENERIC_TITLE => 'Various Artists', GENERIC_TITLE => 'Various Artists',
URL_ALBUM_REGEX => qr{music\.yandex\.\w+/album/(\d+)}is, URL_ALBUM_REGEX => qr{music\.yandex\.\w+/album/(\d+)}is,
URL_TRACK_REGEX => qr{music\.yandex\.\w+/album/(\d+)/track/(\d+)}is, URL_TRACK_REGEX => qr{music\.yandex\.\w+/album/(\d+)/track/(\d+)}is,
URL_PLAYLIST_REGEX => qr{music\.yandex\.\w+/users/(.+?)/playlists/(\d+)}is URL_PLAYLIST_REGEX => qr{music\.yandex\.\w+/users/(.+?)/playlists/(\d+)}is,
RESPONSE_LOG_PREFIX => 'log_'
}; };
use constant use constant
{ {
@@ -405,7 +406,8 @@ sub download_track
my $request = $ua->head($url); my $request = $ua->head($url);
if(!$request->is_success) if(!$request->is_success)
{ {
info(DEBUG, 'HEAD request failed'); info(DEBUG, 'Request failed');
log_response($request);
return; return;
} }
@@ -416,7 +418,8 @@ sub download_track
$request = $ua->get($url, ':content_cb' => \&progress); $request = $ua->get($url, ':content_cb' => \&progress);
if(!$request->is_success) if(!$request->is_success)
{ {
info(DEBUG, 'GET request failed in '.(caller(0))[3]); info(DEBUG, 'Request failed');
log_response($request);
return; return;
} }
@@ -457,6 +460,7 @@ sub get_track_url
if(!$request->is_success) if(!$request->is_success)
{ {
info(DEBUG, 'Request failed'); info(DEBUG, 'Request failed');
log_response($request);
return; return;
} }
@@ -504,6 +508,7 @@ sub get_track_url
if(!$request->is_success) if(!$request->is_success)
{ {
info(DEBUG, 'Request failed'); info(DEBUG, 'Request failed');
log_response($request);
return; return;
} }
@@ -545,6 +550,7 @@ sub get_album_tracks_info
if(!$request->is_success) if(!$request->is_success)
{ {
info(DEBUG, 'Request failed'); info(DEBUG, 'Request failed');
log_response($request);
return; return;
} }
@@ -602,6 +608,7 @@ sub get_playlist_tracks_info
if(!$request->is_success) if(!$request->is_success)
{ {
info(DEBUG, 'Request failed'); info(DEBUG, 'Request failed');
log_response($request);
return; return;
} }
@@ -664,6 +671,7 @@ sub get_playlist_tracks_info
if(!$request->is_success) if(!$request->is_success)
{ {
info(DEBUG, 'Request failed'); info(DEBUG, 'Request failed');
log_response($request);
return; return;
} }
@@ -813,6 +821,7 @@ sub fetch_album_cover
if(!$request->is_success) if(!$request->is_success)
{ {
info(DEBUG, 'Request failed'); info(DEBUG, 'Request failed');
log_response($request);
undef $mp3tags->{APIC}; undef $mp3tags->{APIC};
return; return;
} }
@@ -996,3 +1005,20 @@ sub read_file
return; return;
} }
sub log_response
{
my $response = shift;
my $log_filename = RESPONSE_LOG_PREFIX . time;
if(open(my $fh, '>', $log_filename))
{
binmode $fh;
print $fh, $response->as_string;
close $fh;
info(DEBUG, 'Response stored at ' . $log_filename);
}
info(DEBUG, 'Failed to store response stored at ' . $log_filename);
}