echo '<td align="left"> </td>'; // Title echo '<td align="left" colspan="3"> </td>'; // MD5_data echo '<td align="left"> </td>'; // Tags //echo '<td align="left"> </td>'; // Warning/Error echo '<td align="left"> '; if (!empty($fileinfo['warning'])) { $FilesWithWarnings++; echo '<a href="#" onClick="alert(\'' . FixTextFields(implode('\\n', $fileinfo['warning'])) . '\'); return false;" title="' . FixTextFields(implode("\n", $fileinfo['warning'])) . '">warning</a><br>'; } if (!empty($fileinfo['error'])) { if ($fileinfo['error'][0] != 'unable to determine file format') { $FilesWithErrors++; echo '<a href="#" onClick="alert(\'' . FixTextFields(implode('\\n', $fileinfo['error'])) . '\'); return false;" title="' . FixTextFields(implode("\n", $fileinfo['error'])) . '">error</a><br>'; } } echo '</td>'; echo '<td align="left"> </td>'; // Edit echo '<td align="left"> <a href="' . $_SERVER['PHP_SELF'] . '?listdirectory=' . urlencode($listdirectory) . '&deletefile=' . urlencode($dirname . $filename) . '" onClick="return confirm(\'Are you sure you want to delete ' . addslashes($dirname . $filename) . '? \\n(this action cannot be un-done)\');" title="Permanently delete ' . addslashes($dirname . $filename) . '">delete</a></td>'; echo '</tr>'; } } echo '<tr bgcolor="#' . $getID3checkColor_Head . '">'; echo '<td><b>Average:</b></td>'; echo '<td align="right">' . number_format($TotalScannedFilesize / max($TotalScannedKnownFiles, 1)) . '</td>'; echo '<td> </td>'; echo '<td align="right">' . getid3_lib::PlaytimeString($TotalScannedPlaytime / max($TotalScannedPlaytimeFiles, 1)) . '</td>'; echo '<td align="right">' . BitrateText(round($TotalScannedBitrate / 1000 / max($TotalScannedBitrateFiles, 1))) . '</td>';
} $OutputListOfWords[] = $ThisWord; } $UCstring = implode(' ', $OutputListOfWords); $UCstring = str_replace(' From “', ' from “', $UCstring); $UCstring = str_replace(' \'n\' ', ' \'N\' ', $UCstring); return $UCstring; } echo '<hr><form action="' . FixTextFields($_SERVER['SCRIPT_NAME']) . '">'; echo '<b>Warning:</b> Scanning a new directory will erase all previous entries in the database!<br>'; echo 'Directory: <input type="text" name="scan" size="50" value="' . FixTextFields(!empty($_REQUEST['scan']) ? $_REQUEST['scan'] : '') . '"> '; echo '<input type="submit" value="Go" onClick="return confirm(\'Are you sure you want to erase all entries in the database and start scanning again?\');">'; echo '</form>'; echo '<hr><form action="' . FixTextFields($_SERVER['SCRIPT_NAME']) . '">'; echo 'Re-scanning a new directory will only add new, previously unscanned files into the list (and not erase the database).<br>'; echo 'Directory: <input type="text" name="newscan" size="50" value="' . FixTextFields(!empty($_REQUEST['newscan']) ? $_REQUEST['newscan'] : '') . '"> '; echo '<input type="SUBMIT" value="Go">'; echo '</form><hr>'; echo '<ul>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?deadfilescheck=1">Remove deleted or changed files from database</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?md5datadupes=1">List files with identical MD5_DATA values</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?artisttitledupes=1">List files with identical artist + title</a> (<a href="' . $_SERVER['SCRIPT_NAME'] . '?artisttitledupes=1&samemix=1">same mix only</a>)</li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?fileextensions=1">File with incorrect file extension</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?formatdistribution=1">File Format Distribution</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?audiobitrates=1">Audio Bitrate Distribution</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?vbrmethod=1">VBR_Method Distribution</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?tagtypes=1">Tag Type Distribution</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?genredistribution=' . urlencode('%') . '">Genre Distribution</a></li>'; //echo '<li><a href="'.$_SERVER['SCRIPT_NAME'].'?missingtrackvolume=1">Scan for missing track volume information (update database from pre-v1.7.0b5)</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?encoderoptionsdistribution=1">Encoder Options Distribution</a></li>'; echo '<li><a href="' . $_SERVER['SCRIPT_NAME'] . '?encodedbydistribution=' . urlencode('%') . '">Encoded By (ID3v2) Distribution</a></li>';
echo '<TR BGCOLOR="#' . ($rowcounter++ % 2 ? 'DDDDDD' : 'EEEEEE') . '">'; echo '<TD><A HREF="' . $PHP_SELF . '?filename=' . urlencode($dirname . $filename) . '" TITLE="View detailed analysis">' . $filename . '</A></TD>'; echo '<TD ALIGN="RIGHT"> ' . number_format($fileinfo['filesize']) . '</TD>'; echo '<TD ALIGN="RIGHT"> ' . $fileinfo['fileformat'] . '</TD>'; echo '<TD ALIGN="RIGHT"> ' . (isset($fileinfo['playtime_string']) ? $fileinfo['playtime_string'] : '') . '</TD>'; echo '<TD ALIGN="LEFT"> ' . (isset($fileinfo['artist']) ? $fileinfo['artist'] : '') . '</TD>'; echo '<TD ALIGN="LEFT"> ' . (isset($fileinfo['title']) ? $fileinfo['title'] : '') . '</TD>'; echo '<TD ALIGN="LEFT"> ' . (isset($fileinfo['id3']['id3v1']) ? 'Y' : '') . '</TD>'; echo '<TD ALIGN="LEFT"> ' . (isset($fileinfo['id3']['id3v2']) ? 'Y' : '') . '</TD>'; echo '<TD ALIGN="LEFT"> ' . (isset($fileinfo['lyrics3']) ? 'Y' : '') . '</TD>'; echo '<TD ALIGN="LEFT"> '; if ($fileinfo['fileformat'] == 'mp3') { echo '<A HREF="getid3.write.php?EditorFilename=' . urlencode($dirname . $filename) . '" TITLE="Edit ID3 tag">edit ID3'; } echo '</TD>'; echo '<TD ALIGN="LEFT"> <A HREF="' . $PHP_SELF . '?listdirectory=' . urlencode($listdirectory) . '&deletefile=' . urlencode($dirname . $filename) . '" onClick="return confirm(\'Are you sure you want to delete ' . addslashes($dirname . $filename) . '? \\n(this action cannot be un-done)\');" TITLE="Permanently delete ' . "\n" . FixTextFields($filename) . "\n" . ' from' . "\n" . ' ' . FixTextFields($dirname) . '">delete</A></TD>'; echo '</TR>'; } } if (isset($DirectoryContents["{$dirname}"]['other']) && is_array($DirectoryContents["{$dirname}"]['other'])) { // ksort($DirectoryContents["$dirname"]['other']); uksort($DirectoryContents["{$dirname}"]['other'], 'MoreNaturalSort'); foreach ($DirectoryContents["{$dirname}"]['other'] as $filename => $fileinfo) { echo '<TR BGCOLOR="#' . ($rowcounter++ % 2 ? 'BBBBDD' : 'CCCCFF') . '">'; echo '<TD><A HREF="' . $PHP_SELF . '?filename=' . urlencode($dirname . $filename) . '"><I>' . $filename . '</I></A></TD>'; echo '<TD ALIGN="RIGHT"> ' . number_format($fileinfo['filesize']) . '</TD>'; echo '<TD ALIGN="RIGHT"> ' . (isset($fileinfo['fileformat']) ? $fileinfo['fileformat'] : '') . '</TD>'; echo '<TD ALIGN="RIGHT"> ' . (isset($fileinfo['playtime_string']) ? $fileinfo['playtime_string'] : '') . '</TD>'; echo '<TD ALIGN="LEFT"> </TD>'; // Artist echo '<TD ALIGN="LEFT"> </TD>';
unset($ArrayOfGenres[255]); asort($ArrayOfGenres); // sort into alphabetical order $ArrayOfGenres[255] = '-Unknown-'; // and put the special cases back on the end $ArrayOfGenres['CR'] = '-Cover-'; $ArrayOfGenres['RX'] = '-Remix-'; $EditorGenre = isset($OldThisfileInfo['comments']['genre'][0]) ? LookupGenre($OldThisfileInfo['comments']['genre'][0], true) : 255; foreach ($ArrayOfGenres as $key => $value) { echo '<OPTION VALUE="' . $key . '"' . ($EditorGenre == $key ? ' SELECTED' : '') . '>' . $value . '</OPTION>'; } echo '</SELECT></TD></TR>'; echo '<TR><TD ALIGN="RIGHT"><B>Comment</B></TD><TD><TEXTAREA COLS="30" ROWS="3" NAME="EditorComment" WRAP="VIRTUAL">' . (isset($OldThisfileInfo['comment']) ? $OldThisfileInfo['comment'] : '') . '</TEXTAREA></TD></TR>'; if ($OldThisfileInfo['fileformat'] == 'mp3') { echo '<TR><TD ALIGN="RIGHT"><B>Picture</B></TD><TD><INPUT TYPE="FILE" NAME="userfile" ACCEPT="image/jpeg, image/gif, image/png"></TD></TR>'; echo '<INPUT TYPE="HIDDEN" NAME="WriteID3v2TagNow" VALUE="1">'; echo '<TR><TD ALIGN="CENTER" COLSPAN="2"><INPUT TYPE="RADIO" NAME="WriteOrDelete" VALUE="W" CHECKED> Write <INPUT TYPE="RADIO" NAME="WriteOrDelete" VALUE="D"> Delete</TD></TR>'; echo '<TR><TD ALIGN="CENTER" COLSPAN="2"><INPUT TYPE="CHECKBOX" NAME="VersionToEdit1" VALUE="1"> ID3v1 <INPUT TYPE="CHECKBOX" NAME="VersionToEdit2" VALUE="2" CHECKED> ID3v2</TD></TR>'; } elseif ($OldThisfileInfo['fileformat'] == 'ogg') { echo '<INPUT TYPE="HIDDEN" NAME="WriteOggCommentTagNow" VALUE="1">'; } echo '<TR><TD ALIGN="CENTER" COLSPAN="2"><INPUT TYPE="SUBMIT" VALUE="Save Changes"> <INPUT TYPE="RESET" VALUE="Reset"></TD></TR>'; } else { echo '<TR><TD ALIGN="RIGHT"><B>Error</B></TD><TD>' . FixTextFields($EditorFilename) . ' does not exist</TD></TR>'; echo '<TR><TD ALIGN="CENTER" COLSPAN="2"><INPUT TYPE="SUBMIT" VALUE="Find File"></TD></TR>'; } } else { echo '<TR><TD ALIGN="CENTER" COLSPAN="2"><INPUT TYPE="TEXT" NAME="EditorFilename"></TD></TR>'; echo '<TR><TD ALIGN="CENTER" COLSPAN="2"><INPUT TYPE="SUBMIT" VALUE="Find File"></TD></TR>'; } echo '</FORM></TABLE>';
$result = safe_mysql_query($SQLquery); echo number_format(mysql_num_rows($result)) . ' files with VBR_method of "' . $_REQUEST['vbrmethod'] . '":<BR><BR>>'; while ($row = mysql_fetch_array($result)) { echo '<A HREF="getid3.demo.check.php?filename=' . rawurlencode($row['filename']) . '">' . $row['filename'] . '</A><BR>'; } } echo '<HR>'; } echo '<HR><FORM ACTION="' . FixTextFields($_SERVER['PHP_SELF']) . '">'; echo '<B>Warning:</B> Scanning a new directory will erase all previous entries in the database!<BR>'; echo 'Directory: <INPUT TYPE="TEXT" NAME="scan" VALUE="' . FixTextFields(!empty($_REQUEST['scan']) ? $_REQUEST['scan'] : '') . '"> '; echo '<INPUT TYPE="SUBMIT" VALUE="Go">'; echo '</FORM>'; echo '<HR><FORM ACTION="' . FixTextFields($_SERVER['PHP_SELF']) . '">'; echo 'Re-scanning a new directory will only add new, previously unscanned files into the list (and not erase the database).<BR>'; echo 'Directory: <INPUT TYPE="TEXT" NAME="newscan" VALUE="' . FixTextFields(!empty($_REQUEST['newscan']) ? $_REQUEST['newscan'] : '') . '"> '; echo '<INPUT TYPE="SUBMIT" VALUE="Go">'; echo '</FORM><HR>'; echo '<UL>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?deadfilescheck=1">Remove non-existant (deleted) files from database</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?md5datadupes=1">List files with identical MD5_DATA values</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?artisttitledupes=1">List files with identical artist + title</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?fileextensions=1">File with incorrect file extension</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?formatdistribution=1">File Format Distribution</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?audiobitrates=1">Audio Bitrate Distribution</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?vbrmethod=1">VBR_Method Distribution</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?tagtypes=1">Tag Type Distribution</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?errorswarnings=1">Files with Errors and/or Warnings</A></LI>'; echo '<LI><A HREF="' . $_SERVER['PHP_SELF'] . '?rescanerrors=1">Re-scan only files with Errors and/or Warnings</A></LI>'; echo '</UL>'; ?>
echo '<td align="left"> </td>'; // Title echo '<td align="left" colspan="3"> </td>'; // MD5_data echo '<td align="left"> </td>'; // Tags //echo '<td align="left"> </td>'; // Warning/Error echo '<td align="left"> '; if (!empty($fileinfo['warning'])) { $FilesWithWarnings++; echo '<a href="javascript:alert(\'' . FixTextFields(implode('\\n', $fileinfo['warning'])) . '\');" TITLE="' . FixTextFields(implode("\n", $fileinfo['warning'])) . '">warning</a><br>'; } if (!empty($fileinfo['error'])) { if ($fileinfo['error'][0] != 'unable to determine file format') { $FilesWithErrors++; echo '<a href="javascript:alert(\'' . FixTextFields(implode('\\n', $fileinfo['error'])) . '\');" TITLE="' . FixTextFields(implode("\n", $fileinfo['error'])) . '">error</a><br>'; } } echo '</td>'; echo '<td align="left"> </td>'; // Edit echo '<td align="left"> <a href="' . $_SERVER['PHP_SELF'] . '?listdirectory=' . urlencode($listdirectory) . '&deletefile=' . urlencode($dirname . $filename) . '" onClick="return confirm(\'Are you sure you want to delete ' . addslashes($dirname . $filename) . '? \\n(this action cannot be un-done)\');" TITLE="Permanently delete ' . addslashes($dirname . $filename) . '">delete</a></td>'; echo '</tr>'; } } echo '<tr bgcolor="#' . $getID3checkColor_Head . '">'; echo '<td><b>Average:</b></td>'; echo '<td align="right">' . number_format($TotalScannedFilesize / max($TotalScannedKnownFiles, 1)) . '</td>'; echo '<td> </td>'; echo '<td align="right">' . getid3_lib::PlaytimeString($TotalScannedPlaytime / max($TotalScannedPlaytimeFiles, 1)) . '</td>'; echo '<td align="right">' . BitrateText(round($TotalScannedBitrate / 1000 / max($TotalScannedBitrateFiles, 1))) . '</td>';