<commit_before><!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Sync</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="Calvin 'calzoneman' Montgomery">

    <link href="./assets/css/bootstrap.css" rel="stylesheet">
    <link href="./assets/css/ytsync.css" rel="stylesheet">
    <style>
      body {
        padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
      }
    </style>
    <link href="./assets/css/bootstrap-responsive.css" rel="stylesheet">
  </head>

  <body>

    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="brand" href="#">Sync</a>
          <div class="nav-collapse collapse">
            <ul class="nav">
                <li><a href="index.html">Home</a></li>
                <li class="active"><a href="#">Help</a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>

    <div class="container">
        <div class="row">
            <div class="span8">
                <h1>Chat Commands</h1>
                <table class="table table-bordered table-striped">
                    <thead>
                        <tr>
                            <th>Command</th>
                            <th>Rank</th>
                            <th>Result</th>
                        </tr>
                    </thead>
                    <tr>
                        <td><pre>/sp Spoiler Alert!</pre></td>
                        <td>Anyone</td>
                        <td><span class="spoiler">Spoiler Alert!</span></td>
                    </tr>
                    <tr>
                        <td><pre>/me does something</pre></td>
                        <td>Anyone</td>
                        <td><span class="action">username does something</span></td>
                    </tr>
                    <tr>
                        <td><pre>/say This is important!</pre></td>
                        <td>Moderators</td>
                        <td><span class="shout">This is important!</span></td>
                    </tr>
                    <tr>
                        <td><pre>/kick username</pre></td>
                        <td>Moderators</td>
                        <td>(username is kicked from the room)</td>
                    </tr>
                    <tr>
                        <td><pre>/ban username</pre></td>
                        <td>Moderators</td>
                        <td>(username is IP banned from the room)</td>
                    </tr>
                    <tr>
                        <td><pre>/unban ip_address</pre></td>
                        <td>Moderators</td>
                        <td>(The IP address is unbanned from the room)</td>
                    </tr>
                    <tr>
                        <td><pre>/poll Title,Option 1,Option 2,etc</pre></td>
                        <td>Moderators</td>
                        <td>
                            <div class="well active">
                                <button class="close pull-right">&times;</button>
                                <button class="btn btn-danger pull-right">Close Poll</button>
                                <h3>Title</h3>
                                <div class="option">
                                    <button class="btn">0</button>
                                    Option 1
                                </div>
                                <div class="option">
                                    <button class="btn">0</button>
                                    Option 2
                                </div>
                                <div class="option">
                                    <button class="btn">0</button>
                                    etc
                                </div>
                            </div>
                        </td>
                    </tr>
                </table>
                <p>There are also some other chat features.  When your name appears in a message, <span class="nick-highlight">the message will be highlighted.</span>  If you type the beginning of someone's name in chat, pressing tab will attempt to autocomplete the name.</p>

                <h1>Queue Controls</h1>
                <p>Queue Controls are only visible to moderators by default.  A moderator can unlock the queue to make the controls visible to everyone.<br> Below is an example of the queue controls.  On your channel, simply paste a link of one of the following accepted formats and press "Queue Next" to add it after the current video, or "Queue @ End" to add it at the end of the playlist.  Press "Play Next" to advance to the next video in the playlist.<br>
                </p>
                <strong>Acceptable URLs</strong>
                <ul>
                    <li>http://www.youtube.com/watch?v=(videoid)</li>
                    <li>http://www.vimeo.com/(videoid)</li>
                    <li>http://www.soundcloud.com/(songid)</li>
                    <li>http://www.dailymotion.com/video/(videoid)</li>
                    <li>http://www.twitch.tv/(channel)</li>
                    <li>http://www.livestream.com/(channel)</li>
                </ul>
                <div>
                    <input type="text" id="mediaurl" style="margin:auto;">
                    <div class="btn-group">
                        <button class="btn" id="queue_next">Queue Next</button>
                        <button class="btn" id="queue_end">Queue @ End</button>
                    </div>
                    <button class="btn btn-inverse" id="play_next">Play Next</button>
                </div>
                <p>Below is an example of an entry in the playlist.  Please note the control buttons only appear if you are a moderator or if the queue is unlocked.  The button with vertical arrows is for moving videos in the playlist.  Click and hold the button and drag the mouse up and down to move the video in the playlist.  The red "X" button will remove the video from the playlist.  The green play button will jump the playlist to that video.  The "Next" button will move the video so that it plays after the current video.
                </p>
                <ul class="videolist">
                    <li class="well">
                        <div class="btn-group qe_buttons">
                            <button class="btn qe_btn"><i class="icon-resize-vertical"></i></button>
                            <button class="btn btn-danger qe_btn"><i class="icon-remove"></i></button>
                            <button class="btn btn-success qe_btn"><i class="icon-play"></i></button>
                            <button class="btn qe_btn">Next</button>
                        </div>
                        <div class="qe_title">Title</div>
                        <div class="qe_time">00:00</div>
                        <div class="qe_clear"></div>
                    </li>
                </ul>
                <p>Moderators will also see the "(Un)Lock Queue" button.  This button can be used to toggle whether anyone can add videos, or just moderators.
                </p>
                <button class="btn btn-danger" style="width: 100%">Unlock Queue</button>
                <button class="btn btn-success" style="width: 100%">Lock Queue</button>
                <h1>Userlist Controls</h1>
                <div class="dropdown">
                    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu" style="display: block;">
                        <li><a tabindex="-1" href="#">Make Leader</a></li>
                        <li><a tabindex="-1" href="#">Take Leader</a></li>
                        <li><a tabindex="-1" href="#">Kick</a></li>
                        <li><a tabindex="-1" href="#">IP Ban</a></li>
                        <li class="divider"></li>
                        <li><a tabindex="-1" href="#">Promote</a></li>
                        <li><a tabindex="-1" href="#">Demote</a></li>
                    </ul>
                </div>
                <table class="table table-bordered table-striped" style="margin-top: 200px">
                    <thead>
                        <tr>
                            <th>Function</th>
                            <th>Description</th>
                    </tr>
                    </thead>
                    <tr>
                        <td>Make Leader</td>
                        <td>Assigns leadership of the media to this user.  When someone is assigned leadership, the server follows their video/audio and syncs other clients to them.  This allows for seeking within the video.  By default, the server leads by itself.
                        </td>
                    </tr>
                    <tr>
                        <td>Take Leader</td>
                        <td>Revokes leadership from this user and the server takes over</td>
                    </tr>
                    <tr>
                        <td>Kick</td>
                        <td>Kicks this user from the room</td>
                    </tr>
                    <tr>
                        <td>IP Ban</td>
                        <td>IP bans this user from the room.  This can be reversed using the /unban chat command or from the ban list interface</td>
                    </tr>
                    <tr>
                        <td>Promote</td>
                        <td>Increases this user's rank in this channel by 1.  All users start with rank 0.  Moderators have rank 2, channel owners have rank 3.  When you register a channel, you are assigned rank 10.
                    </tr>
                    <tr>
                        <td>Demote</td>
                        <td>Decreases this user's rank in this channel by 1.  All users start with rank 0.  Moderators have rank 2, channel owners have rank 3.  When you register a channel, you are assigned rank 10.
                    </tr>
                </table>

                <h1>Ranks</h1>
                <table class="table table-bordered table-striped">
                    <thead>
                        <tr>
                            <th>Rank Name</th>
                            <th>Numeric Rank</th>
                        </tr>
                    </thead>
                    <tr>
                        <td class="userlist_siteadmin">Website Administrator</td>
                        <td>255+</td>
                    </tr>
                    <tr>
                        <td class="userlist_owner">Channel Administrator</td>
                        <td>3-254</td>
                    </tr>
                    <tr>
                        <td class="userlist_op">Channel Moderator</td>
                        <td>2</td>
                    </tr>
                    <tr>
                        <td>User</td>
                        <td>0-1</td>
                    </tr>
                </table>

                
            </div>
        </div>
    </div> <!-- /container -->

    <script src="./assets/js/jquery.js"></script>
  </body>
</html><commit_msg>Update help page<commit_after><!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Sync</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="Calvin 'calzoneman' Montgomery">

    <link href="./assets/css/bootstrap.css" rel="stylesheet">
    <link href="./assets/css/ytsync.css" rel="stylesheet">
    <style>
      body {
        padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
      }
    </style>
    <link href="./assets/css/bootstrap-responsive.css" rel="stylesheet">
  </head>

  <body>

    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="brand" href="#">Sync</a>
          <div class="nav-collapse collapse">
            <ul class="nav">
                <li><a href="index.html">Home</a></li>
                <li class="active"><a href="#">Help</a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>

    <div class="container">
        <div class="row">
            <div class="span8">
                <a name="chatcommands"></a>
                <a href="#chatcommands"><h1>Chat Commands</h1></a>
                <table class="table table-bordered table-striped">
                    <thead>
                        <tr>
                            <th>Command</th>
                            <th>Rank</th>
                            <th>Result</th>
                        </tr>
                    </thead>
                    <tr>
                        <td><pre>/sp Spoiler Alert!</pre></td>
                        <td>Anyone</td>
                        <td><span class="spoiler">Spoiler Alert!</span></td>
                    </tr>
                    <tr>
                        <td><pre>/me does something</pre></td>
                        <td>Anyone</td>
                        <td><span class="action">username does something</span></td>
                    </tr>
                    <tr>
                        <td><pre>/say This is important!</pre></td>
                        <td>Moderators</td>
                        <td><span class="shout">This is important!</span></td>
                    </tr>
                    <tr>
                        <td><pre>/kick username</pre></td>
                        <td>Moderators</td>
                        <td>(username is kicked from the room)</td>
                    </tr>
                    <tr>
                        <td><pre>/ban username</pre></td>
                        <td>Moderators</td>
                        <td>(username is IP banned from the room)</td>
                    </tr>
                    <tr>
                        <td><pre>/unban ip_address</pre></td>
                        <td>Moderators</td>
                        <td>(The IP address is unbanned from the room)</td>
                    </tr>
                    <tr>
                        <td><pre>/poll Title,Option 1,Option 2,etc</pre></td>
                        <td>Moderators</td>
                        <td>
                            <div class="well active">
                                <button class="close pull-right">&times;</button>
                                <button class="btn btn-danger pull-right">End Poll</button>
                                <h3>Title</h3>
                                <div class="option">
                                    <button class="btn">0</button>
                                    Option 1
                                </div>
                                <div class="option">
                                    <button class="btn">0</button>
                                    Option 2
                                </div>
                                <div class="option">
                                    <button class="btn">0</button>
                                    etc
                                </div>
                            </div>
                        </td>
                    </tr>
                </table>
                <p>There are also some other chat features.  When your name appears in a message, <span class="nick-highlight">the message will be highlighted.</span>  If you type the beginning of someone's name in chat, pressing tab will attempt to autocomplete the name.</p>

                <a name="queuecontrols"></a>
                <a href="#queuecontrols"><h1>Queue Controls</h1></a>
                <p>Queue Controls are only visible to moderators by default.  A moderator can unlock the queue to make the controls visible to everyone.<br> Below is an example of the queue controls.  On your channel, simply paste a link of one of the following accepted formats and press "Queue Next" to add it after the current video, or "Queue @ End" to add it at the end of the playlist.  If Voteskip is enabled in <a href="#channeloptions">Channel Options</a>, then pressing voteskip indicates you would like to skip the current video.  If a majority of connected users does this, the video will be skipped.</br>
                </p>
                <strong>Acceptable URLs</strong>
                <ul>
                    <li>http://www.youtube.com/watch?v=(videoid)</li>
                    <li>http://www.youtube.com/playlist?list=(playlistid)</li>
                    <li>http://www.vimeo.com/(videoid)</li>
                    <li>http://www.soundcloud.com/(songid)</li>
                    <li>http://www.dailymotion.com/video/(videoid)</li>
                    <li>http://www.twitch.tv/(channel)</li>
                    <li>http://www.livestream.com/(channel)</li>
                </ul>
                You can also queue multiple items at once by separating the URLs with commas.
                <div>
                    <input type="text" id="mediaurl" style="margin:auto;">
                    <div class="btn-group">
                        <button class="btn">Queue Next</button>
                        <button class="btn">Queue @ End</button>
                    </div>
                    <button class="btn btn-danger">Voteskip</button>
                </div>
                <p>Below is an example of an entry in the playlist.  Please note the control buttons only appear if you are a moderator or if the queue is unlocked.  The button with vertical arrows is for moving videos in the playlist.  Click and hold the button and drag the mouse up and down to move the video in the playlist.  The red "X" button will remove the video from the playlist.  The green play button will jump the playlist to that video.  The "Next" button will move the video so that it plays after the current video.
                </p>
                <ul class="videolist">
                    <li class="well">
                        <div class="btn-group qe_buttons">
                            <button class="btn qe_btn"><i class="icon-resize-vertical"></i></button>
                            <button class="btn btn-danger qe_btn"><i class="icon-remove"></i></button>
                            <button class="btn btn-success qe_btn"><i class="icon-play"></i></button>
                            <button class="btn qe_btn">Next</button>
                        </div>
                        <div class="qe_title">Title</div>
                        <div class="qe_time">00:00</div>
                        <div class="qe_clear"></div>
                    </li>
                </ul>
                <p>Moderators will also see the "(Un)Lock Queue" button.  This button can be used to toggle whether anyone can add videos, or just moderators.
                </p>
                <button class="btn btn-danger" style="width: 100%">Unlock Queue</button>
                <button class="btn btn-success" style="width: 100%">Lock Queue</button>
                <a name="userlistcontrols"></a>
                <a href="#userlistcontrols"><h1>Userlist Controls</h1></a>
                <div class="dropdown">
                    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu" style="display: block;">
                        <li><a tabindex="-1" href="javascript:void(0);">Ignore User</a></li>
                        <li class="divider"></li>
                        <li><a tabindex="-1" href="javascript:void(0);">Make Leader</a></li>
                        <li><a tabindex="-1" href="javascript:void(0);">Take Leader</a></li>
                        <li><a tabindex="-1" href="javascript:void(0);">Kick</a></li>
                        <li><a tabindex="-1" href="javascript:void(0);">IP Ban</a></li>
                        <li class="divider"></li>
                        <li><a tabindex="-1" href="javascript:void(0);">Promote</a></li>
                        <li><a tabindex="-1" href="javascript:void(0);">Demote</a></li>
                    </ul>
                </div>
                <table class="table table-bordered table-striped" style="margin-top: 280px">
                    <thead>
                        <tr>
                            <th>Function</th>
                            <th>Description</th>
                    </tr>
                    </thead>
                    <tr>
                        <td>Ignore User</td>
                        <td>Ignores incoming chat messages from this user
                        </td>
                    </tr>
                    <tr>
                        <td>Make Leader</td>
                        <td>Assigns leadership of the media to this user.  When someone is assigned leadership, the server follows their video/audio and syncs other clients to them.  This allows for seeking within the video.  By default, the server leads by itself.
                        </td>
                    </tr>
                    <tr>
                        <td>Take Leader</td>
                        <td>Revokes leadership from this user and the server takes over</td>
                    </tr>
                    <tr>
                        <td>Kick</td>
                        <td>Kicks this user from the room</td>
                    </tr>
                    <tr>
                        <td>IP Ban</td>
                        <td>IP bans this user from the room.  This can be reversed using the /unban chat command or from the ban list interface</td>
                    </tr>
                    <tr>
                        <td>Promote</td>
                        <td>Increases this user's rank in this channel by 1.  All users start with rank 0.  Moderators have rank 2, channel owners have rank 3.  When you register a channel, you are assigned rank 10.
                    </tr>
                    <tr>
                        <td>Demote</td>
                        <td>Decreases this user's rank in this channel by 1.  All users start with rank 0.  Moderators have rank 2, channel owners have rank 3.  When you register a channel, you are assigned rank 10.
                    </tr>
                </table>

                <a name="synchronization"></a>
                <a href="#synchronization"><h1>Synchronization and Leaders</h1></a>
                <p>
                Synchronization is handled a little bit differently from Synchtube.  By default, media synchronization is managed by the server, which sends out synchronization updates every 5 seconds.  This means if you attempt to seek your client manually, it will be jumped back to the server's position.  If you need to seek the video, you can assign leader to someone (see <a href="#userlistcontrols">Userlist Controls</a>).  Giving someone leader makes the video follow their client, so any seeking they do will be broadcast to everyone in the channel.<br>
                When someone is leader, they also get partial moderator powers temporarily.  Leaders can open polls, use <code>/say</code>, and manage the queue, but cannot kick/ban, change channel options, or change chat filters.  This is useful if you want to leave someone in charge but not make them a full moderator.  Leadership is revoked upon refresh, or you can revoke it manually.
                </p>
                <br>
                <a name="ranks"></a>
                <a href="#ranks"><h1>Ranks</h1></a>
                <table class="table table-bordered table-striped">
                    <thead>
                        <tr>
                            <th>Rank Name</th>
                            <th>Numeric Rank</th>
                        </tr>
                    </thead>
                    <tr>
                        <td class="userlist_siteadmin">Website Administrator</td>
                        <td>255+</td>
                    </tr>
                    <tr>
                        <td class="userlist_owner">Channel Administrator</td>
                        <td>3-254</td>
                    </tr>
                    <tr>
                        <td class="userlist_op">Channel Moderator</td>
                        <td>2</td>
                    </tr>
                    <tr>
                        <td>User</td>
                        <td>0-1</td>
                    </tr>
                </table>
            </div>
        </div>
    </div> <!-- /container -->

    <script src="./assets/js/jquery.js"></script>
  </body>
</html>
{'fraction_non_alphanumeric': 0.12104216388225934, 'fraction_numerical': 0.005688146380270485, 'mean_word_length': 1.2142857142857142, 'pattern_counts': {'":': 0, '<': 745, '<?xml version=': 0, '>': 745, 'https://': 0, 'lorem ipsum': 0, 'www.': 13, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3044576', 'n_tokens_mistral': 6641, 'n_tokens_neox': 6082, 'n_words': 1805}