52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
|
<?php
|
||
|
$html = file_get_contents('https://tilde.town/');
|
||
|
|
||
|
$download = [];
|
||
|
$gallery = [];
|
||
|
|
||
|
$download[] = '@echo off';
|
||
|
|
||
|
$gallery[] = <<<HTML
|
||
|
<!doctype html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||
|
<title>tilde.town gallery</title>
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
|
<link rel="stylesheet" href="gallery.css">
|
||
|
</head>
|
||
|
<body>
|
||
|
<div class="wrapper">
|
||
|
<h1>tilde.town gallery</h1>
|
||
|
<p>by <a href="https://tilde.town/~severak">Severák</a></p>
|
||
|
<p>I really like <a href="https://neocities.org/browse">Neocities browse page</a>. I was wondering how would it look for tilde.town.</p>
|
||
|
<p>So here is it:</p>
|
||
|
<ul class="gallery">
|
||
|
HTML;
|
||
|
|
||
|
$regex = '/<a href="\/~(\w+)">[\w]+<\/a>/';
|
||
|
$matches = [];
|
||
|
preg_match_all($regex, $html, $matches);
|
||
|
|
||
|
foreach ($matches[1] as $match) {
|
||
|
$download[] = sprintf('echo downloading %s...', $match);
|
||
|
$download[] = sprintf('capture-website --overwrite --no-javascript --scale-factor 0.5 http://tilde.town/~%s/ --output %s.png', $match, $match);
|
||
|
$gallery[] = sprintf('<li><a href="https://tilde.town/~%s"><img src="%s.png" title="%s"><p>%s</p></a></li>', $match, $match, $match, $match);
|
||
|
}
|
||
|
$download[] = 'echo ALL OK';
|
||
|
|
||
|
$gallery[] = <<<HTML
|
||
|
</ul>
|
||
|
|
||
|
<hr>
|
||
|
<small>Generated using <a href="">this code</a>. Updated manually, because you need headless browser to generate all these thumbnails.</small>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|
||
|
HTML;
|
||
|
|
||
|
|
||
|
file_put_contents('download.bat', implode(PHP_EOL, $download));
|
||
|
file_put_contents('index.html', implode(PHP_EOL, $gallery));
|
||
|
|
||
|
echo 'OK - generated index.html + download.bat' . PHP_EOL;
|