Files
huginn/app/Models/Site.php
T
m105 c7299fe928 Add tech-stack fingerprinting (server, powered-by, generator)
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.
2026-07-22 22:14:40 +03:00

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');
}
}