WarcRecordFetcher was splitting out and discarding the HTTP response
headers to get at the HTML body — now it keeps and parses them, so
Server/X-Powered-By headers get captured alongside the <meta
name="generator"> tag already sitting in the parsed DOM. No extra
requests: same WARC segment already fetched for --with-metadata.
Site copies these from its homepage capture, same as
title/description/keywords. New badges on the site detail page show
the detected platform (e.g. "Wix.com Website Builder") and server
signature at a glance.
Verified against real .es data: correctly detected Wix
("00padel.es"), nginx/Apache/Cloudflare server headers, and PHP
X-Powered-By headers across the batch.
39 lines
858 B
PHP
39 lines
858 B
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
|
|
class Site extends Model
|
|
{
|
|
protected $fillable = [
|
|
'collection',
|
|
'domain',
|
|
'url',
|
|
'title',
|
|
'description',
|
|
'keywords',
|
|
'server',
|
|
'powered_by',
|
|
'generator',
|
|
];
|
|
|
|
public function pages(): HasMany
|
|
{
|
|
return $this->hasMany(SitePage::class);
|
|
}
|
|
|
|
/** Links this site's pages make out to other domains. */
|
|
public function outboundLinks(): HasMany
|
|
{
|
|
return $this->hasMany(Backlink::class);
|
|
}
|
|
|
|
/** Backlinks pointing at this site, i.e. rows recorded against its domain as the target. */
|
|
public function inboundLinks(): HasMany
|
|
{
|
|
return $this->hasMany(Backlink::class, 'target_domain', 'domain');
|
|
}
|
|
}
|