Guten Tag!
Ich habe ein Problem mit der Logging-Funktion in Mairlist. Wie ich im Wiki, hier https://wiki.mairlist.com/reference:logging_variables gelesen habe, soll seit der Version 6.3.3 die Variable %ALBUMART eingeführt worden sein. Diese habe ich in einen HTTP POST Befehl eingefügt und versuche, das aktuelle Songcover mit einem PHP-Script darstellen zu lassen. Leider kann ich machen, was ich will, es funktioniert einfach nicht. Eventuell gibt es ja jemand, der mir einen Denkanstoß geben kann? Ich füge die relevanten Daten einfach mal hier unter dem Text ein…
<?php
//max recent tracks to keep in the recently played tracks history
$max_recent = 5;
//secret key to access the script
$key = '*********';
//check access
if ($_REQUEST['key'] !== $key) {
ReturnError(400, 'Invalid key');
}
//artist/title info
$artist = $_REQUEST['artist'];
$title = $_REQUEST['title'];
//title to display
$t = htmlspecialchars($artist . ' - ' . $title);
$file = 'nowplaying_title.txt';
//recent tracks history
$recent = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$recent = array_slice($recent, 0, $max_recent);
//save current track title and played tracks history
$r = fopen($file, 'wb');
if ($r !== false) {
//current track
fwrite($r, $t . "\n");
//recent tracks
foreach ($recent as $s) {
fwrite($r, $s . "\n");
}
fclose($r);
} else {
ReturnError(500, 'Failed to write title to a file');
}
$max_next = 1;
$nextsong = $_REQUEST['next'];
$n = htmlspecialchars($nextsong);
$file2 = 'nextplaying.txt';
$next = file($file2, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$next = array_slice($next, 0, $max_next);
$r2 = fopen($file2, 'wb');
if ($r2 !== false) {
fwrite($r2, $n . "\n");
foreach ($next as $s2) {
fwrite($r2, $s2 . "\n");
}
fclose($r2);
} else {
ReturnError(500, 'Failed to write title to a file');
}
//album cover
$artwork = isset($_REQUEST['artwork']) && ($_REQUEST['artwork'] !== '') ? $_REQUEST['artwork'] : false;
if ($artwork !== false) {
$artwork = base64_decode($artwork);
$r = fopen('nowplaying_artwork.png', 'wb');
if ($r !== false) {
fwrite($r, $artwork);
fclose($r);
} else {
ReturnError(500, 'Failed to write artwork to a file');
}
}
function ReturnError($code, $text) {
$protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
header($protocol . ' ' . $code . ' ' . $text);
exit();
}
Das funktioniert soweit auch, bis auf die Ausgabe des Covers…
Grüße
Onkel_Unbekannt