53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.7 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>
 | 
						|
	<p><small>(please note that this is just first prototype, not a final product)</small></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="https://tildegit.org/severak/gallery">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; |