feat(ads/seo/release): v1.2.0 with live Google Ads, isolated ad profile, ads.txt, and SEO/AEO/GEO optimization

This commit is contained in:
Yun Chan 2026-09-14 00:39:44 +09:00
parent a88aafa1e5
commit 0e568f1f0a
975 changed files with 130593 additions and 16783 deletions

View file

@ -1,6 +1,6 @@
# MediaBrowser 원격 빌드 수집 스크립트 (PowerShell)
# Paca 원격 빌드 수집 스크립트 (PowerShell)
# 빌드머신(vd-linux / vd-mac)에서 Cli + Avalonia 셸을 RID별 self-contained publish 하고
# 산출물을 out/mediabrowser-<rid>.tar.gz 로 수집한다.
# 산출물을 out/Paca-<rid>.tar.gz 로 수집한다.
#
# 사용: ./build/remote/build-remote.ps1 [-Target mac|linux|all]
param(
@ -13,7 +13,7 @@ $root = Split-Path -Parent (Split-Path -Parent $PSScriptRoot)
$outDir = Join-Path $root "out"
New-Item -ItemType Directory -Path $outDir -Force | Out-Null
$remoteDir = "build/videodownloader"
$remoteDir = "build/Paca"
function Push-Source {
param([string]$HostName)
@ -36,16 +36,16 @@ function Build-And-Collect {
param([string]$HostName, [string]$Rid)
Write-Host "==> [$HostName] publish $Rid" -ForegroundColor Cyan
$cmd = "cd $remoteDir && export DOTNET_ROOT=`$HOME/.dotnet && export PATH=`$HOME/.dotnet:`$PATH && " +
"dotnet publish VideoDownloader.Cli -c Release -r $Rid --self-contained -o out/cli-$Rid && " +
"dotnet publish VideoDownloader.Avalonia -c Release -r $Rid --self-contained -o out/avalonia-$Rid && " +
"cd out && tar -czf mediabrowser-$Rid.tar.gz cli-$Rid avalonia-$Rid"
"dotnet publish src/Paca.Cli -c Release -r $Rid --self-contained -o out/cli-$Rid && " +
"dotnet publish src/Paca.Avalonia -c Release -r $Rid --self-contained -o out/avalonia-$Rid && " +
"cd out && tar -czf Paca-$Rid.tar.gz cli-$Rid avalonia-$Rid"
& ssh.exe $HostName $cmd
if ($LASTEXITCODE -ne 0) { throw "[$HostName] 빌드 실패: $Rid" }
$localTarget = Join-Path $outDir "mediabrowser-$Rid.tar.gz"
Write-Host "==> [$HostName] 수집: mediabrowser-$Rid.tar.gz" -ForegroundColor Green
& scp.exe "${HostName}:${remoteDir}/out/mediabrowser-$Rid.tar.gz" $localTarget
$localTarget = Join-Path $outDir "Paca-$Rid.tar.gz"
Write-Host "==> [$HostName] 수집: Paca-$Rid.tar.gz" -ForegroundColor Green
& scp.exe "${HostName}:${remoteDir}/out/Paca-$Rid.tar.gz" $localTarget
if ($LASTEXITCODE -ne 0) { throw "[$HostName] 산출물 수집 실패: $Rid" }
}
@ -62,5 +62,5 @@ if ($Target -eq "linux" -or $Target -eq "all") {
}
Write-Host "`n원격 빌드 및 수집 완료:" -ForegroundColor Green
Get-ChildItem (Join-Path $outDir "mediabrowser-*.tar.gz") |
Get-ChildItem (Join-Path $outDir "Paca-*.tar.gz") |
ForEach-Object { Write-Host (" {0,-35} {1:N1} MB" -f $_.Name, ($_.Length / 1MB)) }

View file

@ -1,14 +1,14 @@
#!/usr/bin/env bash
# 빌드머신(ChanpacaLaptop=linux / Mac mini=macos)에서
# Cli + Avalonia 셸을 RID별 self-contained publish 하고
# 산출물을 로컬 out/mediabrowser-<rid>.tar.gz 로 수집한다.
# 산출물을 로컬 out/Paca-<rid>.tar.gz 로 수집한다.
#
# 사용: bash build/remote/build-remote.sh [linux|mac|all]
set -euo pipefail
cd "$(dirname "$0")/../.."
TARGET="${1:-all}"
REMOTE_DIR="build/videodownloader"
REMOTE_DIR="build/Paca"
mkdir -p out
@ -22,12 +22,12 @@ build_and_collect() { # $1 = ssh 대상, $2 = RID
local rid="$2"
echo "==> [$host] publish $rid"
ssh -o BatchMode=yes "$host" "cd $REMOTE_DIR && export DOTNET_ROOT=\$HOME/.dotnet && export PATH=\$HOME/.dotnet:\$PATH && \
dotnet publish VideoDownloader.Cli -c Release -r $rid --self-contained -o out/cli-$rid && \
dotnet publish VideoDownloader.Avalonia -c Release -r $rid --self-contained -o out/avalonia-$rid && \
cd out && tar -czf mediabrowser-$rid.tar.gz cli-$rid avalonia-$rid"
dotnet publish src/Paca.Cli -c Release -r $rid --self-contained -o out/cli-$rid && \
dotnet publish src/Paca.Avalonia -c Release -r $rid --self-contained -o out/avalonia-$rid && \
cd out && tar -czf Paca-$rid.tar.gz cli-$rid avalonia-$rid"
echo "==> [$host] 수집: out/mediabrowser-$rid.tar.gz"
scp -o BatchMode=yes "$host:$REMOTE_DIR/out/mediabrowser-$rid.tar.gz" "out/mediabrowser-$rid.tar.gz"
echo "==> [$host] 수집: out/Paca-$rid.tar.gz"
scp -o BatchMode=yes "$host:$REMOTE_DIR/out/Paca-$rid.tar.gz" "out/Paca-$rid.tar.gz"
}
if [[ "$TARGET" == "mac" || "$TARGET" == "all" ]]; then
@ -43,4 +43,4 @@ if [[ "$TARGET" == "linux" || "$TARGET" == "all" ]]; then
fi
echo "==> 원격 빌드 완료:"
ls -lh out/mediabrowser-*.tar.gz 2>/dev/null || true
ls -lh out/Paca-*.tar.gz 2>/dev/null || true