# MusicIP Documentation

## Official documentation

- HTTP Protocol
- Custom Tags
- Power Search
- Power Words

## Potential source of interest: index.html of the web server as used on Linux

The following code is being used in the Linux implementation's web UI to MusicIP. It might be of interest for server management tasks like adding tracks to the collection.

    	<HTML>
    		<HEAD>
    		<TITLE>MusicMagic Server</TITLE>
    		</HEAD>
    		<BODY>
    		<h1>MusicMagic Server</h1>

    		<h3>Current Cache</h3>

    		<table width=%100>
    		    <TR>
    		    <TD width=5%>&nbsp;</TD>
    		    <TD width=35%>
    		<table>
    		    <tr><td>Total songs</td><td align=right><?total?></td></tr>
    		    <tr><td>Mixable songs</td><td align=right><?mixable?></td></tr>
    		    <tr><td>Songs to validate</td><td align=right><?todo?></td></tr>
    		    <tr><td colspan=2><?active?>&nbsp;</td></tr>
    		    <!-- NYI: Usage stats?  Log file? -->
    		</table>
    		</TD><TD width=60%>

    		<form action="/server/add">
    		    <input type=submit value="Add Music">
    		    <input type=text name=root> <i>enter root folder of music</i>
    		</form>

    		<form action="/server/search">
    		    <input type=submit value="Search Songs">
    		    <input type=text name=query> <i>enter text to match songs</i>
    		</form>

    		<form action="/server/refresh">
    		    <input type=submit value="Refresh Songs">
    		</form>

    		<!-- Only show this if the cache is obsolete -->
    		<?reloadstart?>
    		<form action="/server/reload">
    		    <input type=submit value="Reload Cache"> <i>Cache has been modified on disk</i>
    		</form>
    		<?reloadstop?>
    		<!-- NYI: Overwrite cache option as well? -->

    		</TD></tR>
    		</TABLE>

    		<hr>

    		<h3>Validation</h3>

    		<!-- Processor load options on Windows -->
    		<!-- NYI: Only for win32 -->
    		<?cpustart?>
    		<form action="/server/updateProcessorUse">
    		    Processor use
    		<select name="use" onchange="submit()"><?cpu?></select>
    		 <i>(affects time to complete validation)</i>
    		</form>
    		<?cpustop?>

    		<form action="/server/validate">
    		    <input type=submit name="action" value="Start Validation">
    		    <input type=submit name="action" value="Stop Validation">
    		</form>

    		<hr>

    		<h3>Mix Settings</h3>

    		<form action="/server/updateMixSettings">
    		<table>
    		  <tr><td>Artist style</td><td>
    		    <select name=style><?style?></select></td></tr>
    		  <tr><td>Variety</td><td>
    		    <select name=variety><?variety?></select></td></tr>
    		  <tr><td>Mix size</td><td>
    		    <input name="size" value="<?mixsize?>" type=text size=20>
    		    <select name="type"><?mixtype?></select></td></tr>
    		  <tr><td>No duplicates within</td><td>
    		    <input name="dupsize" value="<?dupsize?>" type=text size=20>
    		    <select name="duptype"><?duptype?></select></td></tr>
    		  <tr><td colspan="2">
    		    <input name="seed" <?seed?> type=checkbox> Always include seed songs in mix</td></tr>
    		  <tr><td colspan="2"><input type=submit value="Update Settings"></td></tr>
    		</table>
    		</form>

    		<hr>

    		<h3>Server Settings</h3>

    		<form action="/server/updateServerSettings">
    		<table>

    		<tr><td colspan=4><input name=proxy <?proxy?> type=checkbox>Enable proxy</td></tr>

    		<tr><td>Host</td><td><input name=host value="<?host?>" size=40 type=text></td><td>Port</td><td><input name=port value="<?port?>" type=text><br></td></tr>

    		<tr><td colspan=4><input name=auth <?auth?> type=checkbox>Enable proxy authentication<br></td></tr>
    		<tr><td>Username</td><td><input name=user value="<?user?>" size=40 type=text></td><td>Password</td><td><input name=password value="<?password?>" type=password></td></tr>
    		</table>
    		<input type=submit value="Update Settings">
    		</form>

    		<form action="/server/test">
    		<input type=submit value="Test Connection">
    		</form>
    		</BODY>
    	</HTML>