<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GNU social &mdash; Some public communities</title>
  <link rel="shortcut icon" href="/favicon.ico">
  <link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/pure-min.css">
  <link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/grids-responsive-min.css">
  <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
  <link rel="stylesheet" href="/assets/css/style.css">
  <style>
  .content-wrapper {
    top: 2em;
  }
  #nodes {
      font-family: Helvetica, Arial, sans-serif;
      border-collapse: collapse;
      width: 100%;
  }

  #nodes td, #nodes th {
      border: 1px solid #ddd;
      padding: 8px;
  }

  #nodes tr:nth-child(even){background-color: #f2f2f2;}

  #nodes tr:hover {background-color: #ddd;}

  #nodes th {
      padding-top: 12px;
      padding-bottom: 12px;
      text-align: left;
      background-color: #A22430;
      color: white;
  }
  </style>
<?php
    $query = urlencode('
    {
      nodes(platform: "gnusocial") {
        openSignups
        name
        host
        countryCode
      }
    }
    ');
    $query_result = json_decode(file_get_contents("https://the-federation.info/graphql?query={$query}"), true);
    $query_result = $query_result['data']['nodes'];
    // Filter out instances with closed signups
    $nodes = array_filter($query_result, function ($node) {
        return $node['openSignups'];
    });
    // garbage collect
    unset($query_result);
?>
</head>

<body>
  <header class="header">
      <div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
        <a class="pure-menu-heading" href="/">GNU social</a>
        <ul class="pure-menu-list">
          <li class="pure-menu-item"><a href="/" class="pure-menu-link">Home</a></li>
          <li class="pure-menu-item"><a href="/v2" class="pure-menu-link">Version 2</a></li>
          <li class="pure-menu-item"><a href="/v3" class="pure-menu-link">Version 3</a></li>
        </ul>
      </div>
  </header>
  <div class="content-wrapper">
    <div class="content">

      <h2 class="content-head is-center">Some public GNU social communities</h2>
        <p>Please note that the servers listed here are not run by us and we are not responsible for their operation or
        their content. They are listed here as a service to the community.</p>

        <h3>Public GNU social Servers</h3>
        <table id="nodes">
        <thead>
                <tr>
                <th>Name</th>
                <th>Country</th>
                </tr>
        </thead>
        <tbody>
        <?php foreach ($nodes as $node): ?>
                <tr>
                <td>
                        <a href="https://<?php echo $node['host']; ?>"><?php echo $node['name']; ?></a>
                </td>
                <td>
                        <?php echo $node['countryCode']; ?>
                </td>
                </tr>
        <?php endforeach; ?>
        </tbody>
        </table>
        <p><br>This table's data comes from <a href="https://the-federation.info/">the federation - a statistics hub</a>, if
        you want to be listed here, please go to https://the-federation.info/register/&#x3C;yournode.tld&#x3E;.
        After some seconds, you should see your node added.</p>
    </div>
    <footer class="l-box is-center">
      This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
    </footer>
  </div>
</body>

</html>
