<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=z3ocjwNrnRrvLUocrbHaxWNh26R1m">plat0-scraper</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=z3ocjwNrnRrvLUocrbHaxWNh26R1m">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z3ocjwNrnRrvLUocrbHaxWNh26R1m&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z3ocjwNrnRrvLUocrbHaxWNh26R1m&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z3ocjwNrnRrvLUocrbHaxWNh26R1m&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z3ocjwNrnRrvLUocrbHaxWNh26R1m&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        

    <div class="list-group">
    <div class="list-group-item">
    <div style="font-size:1.3rem;">plat0-scraper</div>
    <div class="repo-item">a rust based web scraper for real time trains, focused on actual historic platform allocation</div>
    <div>rad:z3ocjwNrnRrvLUocrbHaxWNh26R1m</div>
    </div>
    <div class="list-group-item">
    <div>Visibility</div>
    <div class="repo-item">public</div>
    </div>
    <div class="list-group-item">
    <div>Delegates</div><div class="repo-item">did:key:z6MkinXZSYCHdxkgWNd9a331ECGnYtio5wLPYTfMJuQVG7T5</div>
    </div>
    <div class="list-group-item">
    <div>Default branch</div>
    <div><span class="repo-item">master &#8594 95b6b7e6997806530606fc0a1a37728b54f71993</span> (Thu Mar  5 20:34:06 2026)</div>
    </div>
    <div class="list-group-item">
    <div>Threshold</div>
    <div class="repo-item">1</div>
    </div>
    </div>
    
        <div class="list-group mt-3">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-book"></i> README.md</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;"># Platform Allocation RealTimeTrains Scraper

this is a rust based web scraper for real time trains, focused on actual historic platform allocation. tts original use was to track platform zero calls at Stockport station due to its irregular pattern.

as part of my mission to [visit every platform zero](/projects/plat0), i needed to know what the calling pattern at Stockport station was at its platform zero. unfortunately it seemed very irregular as to which booked services actually called at the platform. as such, i made this scraper for [RealTimeTrains](https://realtimetrains.co.uk) that looks at actual historical platform allocation for all services at any UK railway station for any time period that RealTimeTrains holds such data. where a platform cannot be determined (either because it&#x27;s a bus replacement service, or the train hasn&#x27;t yet called at the station) it is set as 255. the output is of csv form to stdout (for full compatibility use `-m &quot; &quot;`).

and yes i know RTT has an api.

# installation
with cargo:
```bash
cargo install --git https://git.gay/plat0-scraper
```

with Nix flakes:
```bash
nix profile install &#x27;git+https://git.gay/blltrx/plat0-scraper&#x27;
plat0-scraper LDS
```
# usage

```
Usage: plat0-scraper [OPTIONS] &lt;STATION&gt; [DATE] [RANGE]

Arguments:
  &lt;STATION&gt;  NR 3 char station code
  [DATE]     ISO formatted date between year 2001 and 2100
             &lt;year&gt;-&lt;month&gt;-&lt;day&gt; [default: 2024-06-16]
  [RANGE]    Range of days to search starting on DATE [default: 1]

Options:
  -o, --only-platform-zero               Only show calls at platform zero
  -m, --missing-string &lt;MISSING_STRING&gt;  Character for empty entries [default: ~~~~]
  -h, --help                             Print help```
```
</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

