Proyecto App Linux
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 365 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 536 KiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 3.2 MiB |
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,95 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="600" viewBox="0 0 600 600" role="img" aria-label="Blog corner playlist signal mark">
|
||||
<defs>
|
||||
<linearGradient id="tealStroke" x1="360" y1="120" x2="600" y2="420" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#20a8a8" stop-opacity="0.78"/>
|
||||
<stop offset="1" stop-color="#20a8a8" stop-opacity="0.16"/>
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="neutralStroke" x1="340" y1="140" x2="600" y2="460" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#c7ced2" stop-opacity="0.14"/>
|
||||
<stop offset="1" stop-color="#3c474a" stop-opacity="0.18"/>
|
||||
</linearGradient>
|
||||
|
||||
<filter id="microGlow" x="-40%" y="-40%" width="180%" height="180%" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur in="SourceGraphic" stdDeviation="1.25" result="b"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="b"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Weighted to top-right; airy; rotates well -->
|
||||
<g id="layer-motif" filter="url(#microGlow)" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
|
||||
<!-- Hint of a "player/playlist card" (no UI text, just geometry) -->
|
||||
<g id="playlist-card">
|
||||
<path d="M410 128
|
||||
C402 128, 396 134, 396 142
|
||||
L396 242
|
||||
C396 250, 402 256, 410 256
|
||||
L544 256
|
||||
C552 256, 558 250, 558 242
|
||||
L558 142
|
||||
C558 134, 552 128, 544 128
|
||||
Z"
|
||||
stroke="url(#neutralStroke)" stroke-width="2.2" stroke-opacity="0.7"/>
|
||||
|
||||
<!-- Minimal "list rows" (very low contrast) -->
|
||||
<path d="M422 166 H534" stroke="#c7ced2" stroke-opacity="0.10" stroke-width="2"/>
|
||||
<path d="M422 192 H514" stroke="#c7ced2" stroke-opacity="0.08" stroke-width="2"/>
|
||||
<path d="M422 218 H528" stroke="#c7ced2" stroke-opacity="0.09" stroke-width="2"/>
|
||||
|
||||
<!-- A small play-indicator wedge, abstract -->
|
||||
<path d="M416 156 L416 176 L432 166 Z"
|
||||
stroke="#20a8a8" stroke-opacity="0.00" fill="#20a8a8" fill-opacity="0.12"/>
|
||||
</g>
|
||||
|
||||
<!-- "Antenna pin" (more like a signal marker than a tower) -->
|
||||
<g id="signal-pin">
|
||||
<path d="M520 270 L520 318" stroke="url(#tealStroke)" stroke-width="3" stroke-opacity="0.45"/>
|
||||
<circle cx="520" cy="258" r="6" fill="#20a8a8" fill-opacity="0.26"/>
|
||||
<path d="M505 328 L520 318 L535 328" stroke="#3c474a" stroke-opacity="0.30" stroke-width="5"/>
|
||||
<path d="M505 328 L520 318 L535 328" stroke="#20a8a8" stroke-opacity="0.12" stroke-width="2"/>
|
||||
</g>
|
||||
|
||||
<!-- Signal sweep arcs (corner-friendly) -->
|
||||
<g id="signal-sweep">
|
||||
<path d="M470 86
|
||||
C545 120, 590 190, 598 278"
|
||||
stroke="url(#tealStroke)" stroke-width="2.6" stroke-opacity="0.34"/>
|
||||
<path d="M492 112
|
||||
C548 140, 580 196, 586 266"
|
||||
stroke="#c7ced2" stroke-width="2" stroke-opacity="0.10"/>
|
||||
<path d="M448 64
|
||||
C545 106, 600 196, 608 312"
|
||||
stroke="#20a8a8" stroke-width="2" stroke-opacity="0.16"/>
|
||||
</g>
|
||||
|
||||
<!-- One thin connector line (ties card → pin) -->
|
||||
<g id="connector">
|
||||
<path d="M468 252 C480 270, 495 288, 520 318"
|
||||
stroke="#3c474a" stroke-opacity="0.28" stroke-width="2"/>
|
||||
<path d="M468 252 C480 270, 495 288, 520 318"
|
||||
stroke="#20a8a8" stroke-opacity="0.09" stroke-width="1"/>
|
||||
</g>
|
||||
|
||||
<!-- Sparse “stars” / points -->
|
||||
<g id="points" fill="none">
|
||||
<circle cx="576" cy="110" r="2.1" fill="#20a8a8" fill-opacity="0.18"/>
|
||||
<circle cx="548" cy="70" r="1.6" fill="#c7ced2" fill-opacity="0.10"/>
|
||||
<circle cx="592" cy="170" r="1.7" fill="#c7ced2" fill-opacity="0.09"/>
|
||||
<circle cx="560" cy="236" r="1.8" fill="#20a8a8" fill-opacity="0.13"/>
|
||||
<circle cx="430" cy="286" r="1.6" fill="#c7ced2" fill-opacity="0.08"/>
|
||||
|
||||
<!-- Tiny diamond point -->
|
||||
<path d="M548 312 l6 6 l-6 6 l-6-6 Z" fill="#20a8a8" fill-opacity="0.08"/>
|
||||
</g>
|
||||
|
||||
<!-- Subtle corner framing stroke (very airy, helps “corner” feel) -->
|
||||
<g id="corner-frame">
|
||||
<path d="M600 88 C560 92, 540 104, 520 132" stroke="#3c474a" stroke-opacity="0.16" stroke-width="2"/>
|
||||
<path d="M600 120 C566 124, 546 136, 532 156" stroke="#20a8a8" stroke-opacity="0.08" stroke-width="2"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
@@ -0,0 +1,50 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="120" viewBox="0 0 400 120" role="img" aria-label="Footer broadcast pattern strip light (tileable)">
|
||||
<defs>
|
||||
<filter id="microGlow" x="-40%" y="-40%" width="180%" height="180%" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur in="SourceGraphic" stdDeviation="0.8" result="b"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="b"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Very minimal rails -->
|
||||
<g id="layer-rails" fill="none" stroke-linecap="round">
|
||||
<path d="M0 24 H400" stroke="#3c474a" stroke-opacity="0.14" stroke-width="1"/>
|
||||
<path d="M0 96 H400" stroke="#3c474a" stroke-opacity="0.12" stroke-width="1"/>
|
||||
</g>
|
||||
|
||||
<!-- Few ticks -->
|
||||
<g id="layer-ticks" fill="none" stroke-linecap="round">
|
||||
<g stroke="#c7ced2" stroke-opacity="0.07" stroke-width="1">
|
||||
<path d="M0 24 V32"/><path d="M80 24 V32"/><path d="M160 24 V32"/><path d="M240 24 V32"/><path d="M320 24 V32"/><path d="M400 24 V32"/>
|
||||
<path d="M40 96 V88"/><path d="M200 96 V88"/><path d="M360 96 V88"/>
|
||||
</g>
|
||||
|
||||
<!-- Single tiny wave notch -->
|
||||
<path d="M170 62 c8 -6 16 -6 24 0 c8 6 16 6 24 0"
|
||||
stroke="#20a8a8" stroke-opacity="0.07" stroke-width="1.5" fill="none" filter="url(#microGlow)"/>
|
||||
</g>
|
||||
|
||||
<!-- One small dial hint -->
|
||||
<g id="layer-dial" fill="none" stroke-linecap="round" stroke-linejoin="round" filter="url(#microGlow)">
|
||||
<g transform="translate(340 60)">
|
||||
<circle cx="0" cy="0" r="9" stroke="#3c474a" stroke-opacity="0.16" stroke-width="1.2"/>
|
||||
<path d="M0 -9 V-12" stroke="#c7ced2" stroke-opacity="0.07" stroke-width="1"/>
|
||||
<circle cx="0" cy="0" r="2" fill="#20a8a8" fill-opacity="0.07"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- Short dashed connector -->
|
||||
<g id="layer-connector" fill="none" stroke-linecap="round">
|
||||
<path d="M70 60 H130" stroke="#c7ced2" stroke-opacity="0.06" stroke-width="1" stroke-dasharray="3 7"/>
|
||||
</g>
|
||||
|
||||
<!-- Sparse dots -->
|
||||
<g id="layer-dots">
|
||||
<circle cx="220" cy="24" r="1.0" fill="#20a8a8" fill-opacity="0.06"/>
|
||||
<circle cx="120" cy="96" r="1.0" fill="#c7ced2" fill-opacity="0.05"/>
|
||||
<circle cx="280" cy="78" r="0.9" fill="#3c474a" fill-opacity="0.12"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,158 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="800" viewBox="0 0 1920 800" role="img" aria-label="Ambient broadcast waves background motif">
|
||||
<defs>
|
||||
<!-- Core palette -->
|
||||
<linearGradient id="tealFade" x1="1400" y1="80" x2="780" y2="720" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#20a8a8" stop-opacity="0.22"/>
|
||||
<stop offset="0.55" stop-color="#20a8a8" stop-opacity="0.07"/>
|
||||
<stop offset="1" stop-color="#20a8a8" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
|
||||
<radialGradient id="ringFade" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1535 400) rotate(90) scale(420 740)">
|
||||
<stop offset="0" stop-color="#20a8a8" stop-opacity="0.10"/>
|
||||
<stop offset="0.6" stop-color="#20a8a8" stop-opacity="0.04"/>
|
||||
<stop offset="1" stop-color="#20a8a8" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
|
||||
<linearGradient id="scanFade" x1="0" y1="0" x2="0" y2="800" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#c7ced2" stop-opacity="0.00"/>
|
||||
<stop offset="0.45" stop-color="#c7ced2" stop-opacity="0.06"/>
|
||||
<stop offset="1" stop-color="#c7ced2" stop-opacity="0.00"/>
|
||||
</linearGradient>
|
||||
|
||||
<!-- Subtle glow (kept restrained for 5–20% overall opacity usage) -->
|
||||
<filter id="softGlow" x="-30%" y="-30%" width="160%" height="160%" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur in="SourceGraphic" stdDeviation="2.2" result="blur"/>
|
||||
<feColorMatrix in="blur" type="matrix"
|
||||
values="1 0 0 0 0
|
||||
0 1 0 0 0
|
||||
0 0 1 0 0
|
||||
0 0 0 0.55 0" result="glow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="glow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="microGlow" x="-40%" y="-40%" width="180%" height="180%" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur in="SourceGraphic" stdDeviation="1.1" result="b"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="b"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Transparent background: no rect fill -->
|
||||
|
||||
<!-- Layer: scanline bands (subtle, keeps text readability) -->
|
||||
<g id="layer-scanlines" opacity="0.55">
|
||||
<!-- Wide soft bands -->
|
||||
<path d="M0 158H1920v38H0z" fill="url(#scanFade)" opacity="0.22"/>
|
||||
<path d="M0 298H1920v26H0z" fill="url(#scanFade)" opacity="0.16"/>
|
||||
<path d="M0 460H1920v30H0z" fill="url(#scanFade)" opacity="0.14"/>
|
||||
<path d="M0 610H1920v42H0z" fill="url(#scanFade)" opacity="0.18"/>
|
||||
|
||||
<!-- Thin scanline-inspired hairlines -->
|
||||
<g opacity="0.16" fill="#c7ced2">
|
||||
<rect x="0" y="214" width="1920" height="1"/>
|
||||
<rect x="0" y="238" width="1920" height="1"/>
|
||||
<rect x="0" y="512" width="1920" height="1"/>
|
||||
<rect x="0" y="536" width="1920" height="1"/>
|
||||
<rect x="0" y="684" width="1920" height="1"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- Layer: broadcast wave arcs (asymmetric weight on right) -->
|
||||
<g id="layer-waves" filter="url(#softGlow)">
|
||||
<g fill="none" stroke="url(#tealFade)" stroke-linecap="round" stroke-linejoin="round">
|
||||
<!-- Primary sweeping arcs -->
|
||||
<path d="M1040 120
|
||||
C1320 90, 1560 150, 1750 280
|
||||
C1900 382, 1940 520, 1815 640
|
||||
C1690 760, 1450 780, 1240 710"
|
||||
stroke-width="2.2" opacity="0.62"/>
|
||||
<path d="M980 170
|
||||
C1250 130, 1500 190, 1700 318
|
||||
C1860 420, 1895 540, 1782 642
|
||||
C1668 745, 1450 760, 1260 704"
|
||||
stroke-width="1.6" opacity="0.48"/>
|
||||
<path d="M1140 70
|
||||
C1440 35, 1720 120, 1890 290
|
||||
C2020 420, 1990 585, 1840 690
|
||||
C1690 796, 1405 805, 1185 710"
|
||||
stroke-width="1.2" opacity="0.34"/>
|
||||
|
||||
<!-- Secondary inner arcs for layered depth -->
|
||||
<path d="M1245 235
|
||||
C1440 205, 1605 255, 1730 350
|
||||
C1830 426, 1850 520, 1770 595
|
||||
C1690 670, 1520 682, 1375 630"
|
||||
stroke-width="1.4" opacity="0.42"/>
|
||||
<path d="M1315 300
|
||||
C1490 280, 1625 330, 1715 402
|
||||
C1795 466, 1800 532, 1735 585
|
||||
C1670 638, 1535 640, 1425 604"
|
||||
stroke-width="1.1" opacity="0.30"/>
|
||||
</g>
|
||||
|
||||
<!-- Low-contrast charcoal support curve (adds CRT geometry without stealing focus) -->
|
||||
<path id="support-curve"
|
||||
d="M720 690
|
||||
C980 610, 1180 560, 1400 520
|
||||
C1560 492, 1730 480, 1920 490"
|
||||
fill="none" stroke="#0c1114" stroke-opacity="0.35" stroke-width="2" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- Layer: radial rings (right side, very restrained) -->
|
||||
<g id="layer-rings" opacity="0.9">
|
||||
<g fill="none" stroke="url(#ringFade)" stroke-width="1.2" filter="url(#microGlow)">
|
||||
<circle cx="1535" cy="400" r="118" opacity="0.36"/>
|
||||
<circle cx="1535" cy="400" r="178" opacity="0.26"/>
|
||||
<circle cx="1535" cy="400" r="248" opacity="0.18"/>
|
||||
<circle cx="1535" cy="400" r="320" opacity="0.12"/>
|
||||
</g>
|
||||
|
||||
<!-- Offset subtle ring cluster for asymmetry -->
|
||||
<g fill="none" stroke="#20a8a8" stroke-opacity="0.10" stroke-width="1" filter="url(#microGlow)">
|
||||
<ellipse cx="1705" cy="290" rx="92" ry="62" opacity="0.35"/>
|
||||
<ellipse cx="1705" cy="290" rx="140" ry="96" opacity="0.22"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- Layer: nodes & dots (kept sparse) -->
|
||||
<g id="layer-nodes" filter="url(#microGlow)">
|
||||
<!-- Main node cluster -->
|
||||
<g>
|
||||
<circle cx="1688" cy="402" r="3.2" fill="#20a8a8" fill-opacity="0.38"/>
|
||||
<circle cx="1622" cy="520" r="2.6" fill="#20a8a8" fill-opacity="0.28"/>
|
||||
<circle cx="1748" cy="312" r="2.4" fill="#20a8a8" fill-opacity="0.24"/>
|
||||
<circle cx="1586" cy="350" r="1.9" fill="#c7ced2" fill-opacity="0.18"/>
|
||||
<circle cx="1765" cy="520" r="1.8" fill="#c7ced2" fill-opacity="0.14"/>
|
||||
</g>
|
||||
|
||||
<!-- A few distant dots to balance without clutter -->
|
||||
<g opacity="0.55">
|
||||
<circle cx="1140" cy="250" r="1.6" fill="#20a8a8" fill-opacity="0.16"/>
|
||||
<circle cx="980" cy="560" r="1.5" fill="#c7ced2" fill-opacity="0.10"/>
|
||||
<circle cx="860" cy="340" r="1.4" fill="#20a8a8" fill-opacity="0.12"/>
|
||||
</g>
|
||||
|
||||
<!-- Thin connector hints (barely there) -->
|
||||
<g fill="none" stroke="#20a8a8" stroke-opacity="0.10" stroke-width="1" stroke-linecap="round">
|
||||
<path d="M1688 402 L1622 520" opacity="0.35"/>
|
||||
<path d="M1688 402 L1748 312" opacity="0.25"/>
|
||||
<path d="M1622 520 L1765 520" opacity="0.18"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- Layer: left-side negative-space soft vignette (improves text readability) -->
|
||||
<g id="layer-negative-space">
|
||||
<linearGradient id="leftVignette" x1="0" y1="0" x2="700" y2="0" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0b0f12" stop-opacity="0.26"/>
|
||||
<stop offset="0.75" stop-color="#0b0f12" stop-opacity="0.10"/>
|
||||
<stop offset="1" stop-color="#0b0f12" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<rect x="0" y="0" width="760" height="800" fill="url(#leftVignette)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.9 KiB |
@@ -0,0 +1,56 @@
|
||||
<svg width="800" height="800" viewBox="0 0 800 800" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>support-open-source-signal-isometric</title>
|
||||
<desc>Isometric architectural core representing the structural support of open-source software.</desc>
|
||||
|
||||
<!-- Central Isometric Core (The Engine) -->
|
||||
<g id="isometric-core" transform="translate(400, 420)">
|
||||
<!-- Bottom Plate -->
|
||||
<path d="M-120 0 L0 60 L120 0 L0 -60 Z" fill="#1a1f21" stroke="#3c474a" stroke-width="2" />
|
||||
|
||||
<!-- Vertical Pillars (Structure) -->
|
||||
<g stroke="#3c474a" stroke-width="2" stroke-linecap="round">
|
||||
<path d="M-80 -20 V-100" />
|
||||
<path d="M80 -20 V-100" />
|
||||
<path d="M0 20 V-60" />
|
||||
</g>
|
||||
|
||||
<!-- The Floating Heart-Core (The Pulse) -->
|
||||
<g id="core-pulse" transform="translate(0, -90)">
|
||||
<!-- Isometric Cube/Diamond Representation -->
|
||||
<path d="M-40 0 L0 20 L40 0 L0 -20 Z" fill="#20a8a8" fill-opacity="0.2" stroke="#20a8a8" stroke-width="3">
|
||||
<animate attributeName="fill-opacity" values="0.2;0.5;0.2" dur="3s" repeatCount="indefinite" />
|
||||
</path>
|
||||
<path d="M-40 0 V30 L0 50 V20 Z" fill="#20a8a8" fill-opacity="0.1" stroke="#20a8a8" stroke-width="2" />
|
||||
<path d="M40 0 V30 L0 50 V20 Z" fill="#20a8a8" fill-opacity="0.05" stroke="#20a8a8" stroke-width="2" />
|
||||
|
||||
<!-- Internal Heart Motif (Simplified for Isometric) -->
|
||||
<path d="M-10 -5 Q0 -15 10 -5 L0 10 Z" fill="#4fd1d1" opacity="0.8">
|
||||
<animate attributeName="opacity" values="0.8;0.3;0.8" dur="1.5s" repeatCount="indefinite" />
|
||||
</path>
|
||||
</g>
|
||||
|
||||
<!-- Converging "Support" Streams -->
|
||||
<g id="data-streams" stroke="#20a8a8" stroke-width="1.5" opacity="0.4">
|
||||
<path d="M-200 -100 L-100 -50" stroke-dasharray="4 8" />
|
||||
<path d="M200 -100 L100 -50" stroke-dasharray="4 8" />
|
||||
<path d="M-150 100 L-80 50" />
|
||||
<path d="M150 100 L80 50" />
|
||||
|
||||
<!-- Stream End Nodes -->
|
||||
<circle cx="-100" cy="-50" r="3" fill="#20a8a8" />
|
||||
<circle cx="100" cy="-50" r="3" fill="#20a8a8" />
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- Framing Elements -->
|
||||
<g id="frames" stroke="#3c474a" stroke-width="1" opacity="0.2">
|
||||
<circle cx="400" cy="400" r="280" />
|
||||
<path d="M200 200 L150 150 M600 200 L650 150 M200 600 L150 650 M600 600 L650 650" />
|
||||
</g>
|
||||
|
||||
<!-- Accent Highlights -->
|
||||
<circle cx="400" cy="330" r="4" fill="#4fd1d1" opacity="0.6">
|
||||
<animate attributeName="r" values="4;6;4" dur="3s" repeatCount="indefinite" />
|
||||
</circle>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 35 KiB |
@@ -0,0 +1,26 @@
|
||||
# IPTVnator
|
||||
|
||||
> IPTVnator is an open-source cross-platform IPTV player (desktop + web) that supports M3U/M3U8 playlists, Xtream Codes API, Stalker portals, and XMLTV EPG.
|
||||
|
||||
## Canonical URLs
|
||||
|
||||
- Website: https://4gray.github.io/iptvnator/
|
||||
- Blog: https://4gray.github.io/iptvnator/blog/
|
||||
- Latest Release: https://github.com/4gray/iptvnator/releases/latest
|
||||
- Release Notes (v0.18): https://4gray.github.io/iptvnator/blog/v0-18-release-notes/
|
||||
- Troubleshooting (macOS app damaged fix): https://4gray.github.io/iptvnator/blog/macos-arm-app-damaged-fix/
|
||||
- Source Code: https://github.com/4gray/iptvnator
|
||||
- Telegram: https://t.me/iptvnator
|
||||
- GitHub Sponsors: https://github.com/sponsors/4gray
|
||||
- Ko-fi: https://ko-fi.com/4gray
|
||||
|
||||
## Product Scope
|
||||
|
||||
- IPTVnator is a media player application.
|
||||
- It does not provide, host, or sell playlists, channels, or media content.
|
||||
- Any channel names or metadata shown in screenshots/posts are demo examples only.
|
||||
|
||||
## Machine-readable Discovery
|
||||
|
||||
- Sitemap: https://4gray.github.io/iptvnator/sitemap-index.xml
|
||||
- Robots: https://4gray.github.io/iptvnator/robots.txt
|
||||
|
After Width: | Height: | Size: 743 KiB |
@@ -0,0 +1,4 @@
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://4gray.github.io/iptvnator/sitemap-index.xml
|
||||