Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions netlify-arvio-tv-site/assets/home-v2.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 6 additions & 3 deletions netlify-arvio-tv-site/es/index.html

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions netlify-arvio-tv-site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,18 @@
<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"ARVIO","applicationCategory":"MultimediaApplication","operatingSystem":"Android TV, Google TV, Android","url":"https://arvio.tv/","inLanguage":"en","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"downloadUrl":"https://play.google.com/store/apps/details?id=com.arvio.tv","codeRepository":"https://github.com/ProdigyV21/ARVIO","description":"Free, open-source Android TV media player for Jellyfin, Plex, Emby, IPTV and compatible addons. Get the ARVIO APK, connect your sources and track with Trakt or Simkl."}</script>

<title>ARVIO — Free Android TV Media Player &amp; APK</title>
<link rel="stylesheet" href="/assets/home-v2.css?v=6">
<link rel="stylesheet" href="/assets/home-v2.css?v=7">
<script defer src="/assets/premium-journey.js?v=2"></script>
</head>
<body>
<a class="skip" href="#main">Skip to content</a>
<header class="nav">
<a class="brand" href="#top" aria-label="ARVIO home"><img src="/assets/arvio-wordmark.png" width="134" height="34" alt="ARVIO"></a>
<nav aria-label="Main navigation"><a href="#experience">Explore</a><a href="#devices">Devices</a><a class="nav-premium-link" href="#premium">Premium</a><a href="/guides/">Guides</a><a class="nav-community" href="https://discord.gg/UavuEYMfQ4">Discord <span aria-hidden="true">↗</span></a></nav>
<a class="button small mint-button nav-premium" href="https://ko-fi.com/arvio/tiers" data-premium-placement="header-membership">Get Premium <span aria-hidden="true">↗</span></a>
<div class="nav-actions">
<a class="button small glass nav-webapp" href="https://web.arvio.tv/">Web App <span aria-hidden="true">↗</span></a>
<a class="button small mint-button nav-premium" href="https://ko-fi.com/arvio/tiers" data-premium-placement="header-membership">Get Premium <span aria-hidden="true">↗</span></a>
</div>
</header>
<main id="main">
<section class="hero hero-v2" id="top">
Expand Down
9 changes: 6 additions & 3 deletions netlify-arvio-tv-site/pt-br/index.html

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ const locales = {
};

const copy = [
["Web App", "Web App", "App web"],
["Media kit", "Kit de imprensa", "Kit de prensa"],
["Guides", "Guias", "Guías"],
["ARVIO 2.0.", "ARVIO 2.0.", "ARVIO 2.0."],
Expand Down
20 changes: 20 additions & 0 deletions netlify-arvio-tv-site/scripts/home-navigation.test.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const test = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');

const site = path.resolve(__dirname, '..');

for (const file of ['index.html', 'es/index.html', 'pt-br/index.html']) {
test(`${file}: Web App and Premium stay together in the header`, () => {
const html = fs.readFileSync(path.join(site, file), 'utf8');
const header = html.match(/<header\b[^>]*>([\s\S]*?)<\/header>/u)?.[1];
const actions = header?.match(/<div class="nav-actions">([\s\S]*?)<\/div>/u)?.[1];
assert.ok(actions, 'Header actions must be grouped');
assert.match(actions, /class="button small glass nav-webapp" href="https:\/\/web\.arvio\.tv\/"/u);
assert.match(actions, /class="button small mint-button nav-premium" href="https:\/\/ko-fi\.com\/arvio\/tiers"/u);
assert.ok(actions.indexOf('nav-webapp') < actions.indexOf('nav-premium'));
assert.match(actions, file === 'es/index.html' ? />App web </u : />Web App </u);
assert.ok(!actions.includes('target="_blank"'), 'Web App should navigate directly');
});
}
Loading