diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..f0baaa9 --- /dev/null +++ b/.env.sample @@ -0,0 +1,63 @@ +# Server Information +SERVER_ADMIN="Company LLC" +SERVER_LOCATION="France" +SERVER_PROTOCOL="https" +SERVER_DOMAIN="https://example.org" + +# Default Instances and Options +## Set the instances you want to use. +## Can be overriden by the user in their preferences. +DEFAULT_MEDIA_PROXY="https://yt.sudovanilla.org" # Invidious (YouTube) +DEFAULT_MEDIA_DATA_PROXY="https://yt.sudovanilla.org" # Invidious (YouTube) +DEFAULT_STREAM_PROXY="https://twitch-backend.sudovanilla.org" # SafeTwitch (Twitch) +DEFAULT_STREAM_DATA_PROXY="https://twitch-backend.sudovanilla.org" # SafeTwitch (Twitch) +DEFAULT_IMAGE_PROXY="https://ipx.sudovanilla.org" +DEFAULT_PLAYER="Zorn" + +# Important Information +## If you've modified the source code, please publish +## your changes and list the repo here. +MODIFIED="false" +CUSTOM_SOURCE_CODE="" + +# UI Customization +META_COLOR="" +COLOR="" +THEME="" +THEME_TOGGLE_ENABLED="" +THEME_TOGGLE_STYLE="" +FOOTER_VERSION="" +REVERT_LAYOUT="" +SIDEBAR_CATEGORIES="true" +SIDEBAR_DISCOVER="false" + +# Platform Support +PLATFORM_YOUTUBE="true" +PLATFORM_TWITCH="true" # Planned + +# Analytics +ANALYTICS="false" + +MATOMO_ID="" +MATOMO_SRC="" + +PLAUSIBLE_DOMAIN="" +PLAUSIBLE_SRC="" + +UMAMI_ID="" +UMAMI_SRC="" + +AMPLITUDE_APIKEY="" + +METRICAL_APP="" + +FATHOM_SITE="" +FATHOM_SRC="" + +MINIAML_ID="" + +SWETRIX_SRC="" +SWETRIX_API="" +SWETRIX_PROJECT_ID="" + +SIMPLEANALYTICS_DOMAIN="" \ No newline at end of file diff --git a/config.json b/config.json deleted file mode 100644 index 398a783..0000000 --- a/config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "SERVER_DOMAIN": "https://example.org", - "SERVER_ADMIN": "Company LLC", - "SERVER_LOCATION": "Undisclosed", - - "STATISTICS": false, - "ANALYLICS_TOOL": "", - "ANALYLICS_ID": "", - "SCRIPT_SRC": "", - "DOMAIN": "example.org", - - "DEFAULT_VIDEO_PROXY": "https://yt.sudovanilla.org", - "DEFAULT_DATA_PROXY": "https://yt.sudovanilla.org", - "DEFAULT_IMAGE_PROXY": "https://ipx.sudovanilla.org", - "DEFAULT_PLAYER": "Zorn", - - "SIDEBAR_CATEGORIES": true, - "SIDEBAR_DISCOVER": false, - - "MODIFIED": false, - "CUSTOM_SOURCE_CODE": "" -} \ No newline at end of file diff --git a/src/components/MusicItem.astro b/src/components/MusicItem.astro index 49d20e3..f4ca2c7 100644 --- a/src/components/MusicItem.astro +++ b/src/components/MusicItem.astro @@ -13,7 +13,7 @@ const { import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY -} from '../../config.json' +} from '@utils/GetConfig' // i18n import i18next, { t } from "i18next"; diff --git a/src/components/VideoItem.astro b/src/components/VideoItem.astro index 60f5439..5e606cc 100644 --- a/src/components/VideoItem.astro +++ b/src/components/VideoItem.astro @@ -13,7 +13,7 @@ const { import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY -} from '../../config.json' +} from '@utils/GetConfig' // i18n import i18next, { t } from "i18next"; diff --git a/src/components/global/Footer.astro b/src/components/global/Footer.astro index b22ce52..c49a6e1 100644 --- a/src/components/global/Footer.astro +++ b/src/components/global/Footer.astro @@ -2,7 +2,7 @@ // Configuration import { DEFAULT_PLAYER -} from '../../../config.json' +} from '@utils/GetConfig' --- { diff --git a/src/components/global/Head.astro b/src/components/global/Head.astro index fae62c2..32117df 100644 --- a/src/components/global/Head.astro +++ b/src/components/global/Head.astro @@ -1,4 +1,21 @@ --- +// i18n +import i18next, { t } from "i18next"; +import { Trans, HeadHrefLangs } from "astro-i18next/components"; + +// Cookies +/// Language +//// If the user is new to the site, set English as default +if (Astro.cookies.get("Language") === undefined) { + Astro.cookies.set("Language", "EN", {path: "/",sameSite: 'strict'}) +} + +//// Check what language the user has set it to and switch to it +var UserLanguage = Astro.cookies.get("Language").value +if (UserLanguage === "JP") {i18next.changeLanguage("jp")} +else if (UserLanguage === "EN") {i18next.changeLanguage("en")} + +// Properties const { Title, Description, @@ -16,9 +33,12 @@ import { SCRIPT_SRC, DOMAIN, SERVER_DOMAIN -} from '../../../config.json' +} from '@utils/GetConfig' + +// Icons import { Donate, Download, ShareIos, ThumbsUp } from '@iconoir/vue' +// Embed const SWV = Astro.url.href.split("embed/").pop(); if (Astro.url.href.match('watch')) { @@ -39,7 +59,7 @@ if (Astro.url.href.match('watch')) { - + diff --git a/src/layouts/Category.astro b/src/layouts/Category.astro index be41dfe..00af81f 100644 --- a/src/layouts/Category.astro +++ b/src/layouts/Category.astro @@ -15,7 +15,7 @@ import Video from '@components/VideoItem.astro' import { DEFAULT_DATA_PROXY, DEFAULT_VIDEO_PROXY -} from '../../config.json' +} from '@utils/GetConfig' // Fetch diff --git a/src/pages/api/language/en.astro b/src/pages/api/language/en.astro new file mode 100644 index 0000000..40da0c7 --- /dev/null +++ b/src/pages/api/language/en.astro @@ -0,0 +1,8 @@ +--- +Astro.cookies.set("Language", "EN", { + path: "/", + sameSite: "strict" +}); +return Astro.redirect("/"); +--- + \ No newline at end of file diff --git a/src/pages/api/language/jp.astro b/src/pages/api/language/jp.astro new file mode 100644 index 0000000..95ea390 --- /dev/null +++ b/src/pages/api/language/jp.astro @@ -0,0 +1,8 @@ +--- +Astro.cookies.set("Language", "JP", { + path: "/", + sameSite: "strict" +}); +return Astro.redirect("/"); +--- + \ No newline at end of file diff --git a/src/pages/channel/[...slug].astro b/src/pages/channel/[...slug].astro index d01eee0..9db9f1e 100644 --- a/src/pages/channel/[...slug].astro +++ b/src/pages/channel/[...slug].astro @@ -6,7 +6,7 @@ import i18next, { t, changeLanguage } from "i18next"; changeLanguage("en"); // Configuration -import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY, SERVER_DOMAIN } from "../../../config.json"; +import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY, SERVER_DOMAIN } from '@utils/GetConfig' import { BrightStar, Donate, Download, ShareIos, ThumbsUp } from "@iconoir/vue"; // Components diff --git a/src/pages/discover/tech.astro b/src/pages/discover/tech.astro index 6031305..4d3ae5a 100644 --- a/src/pages/discover/tech.astro +++ b/src/pages/discover/tech.astro @@ -7,7 +7,7 @@ const { FetchData, CategoryName, CategoryDescription } = Astro.props; // Use on top of Default Layout import Base from "@layouts/Default.astro"; // Configuration -import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY } from "../../../config.json"; +import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY } from '@utils/GetConfig' // Discover Data import Discover from "../../data/discover.json"; diff --git a/src/pages/embed/[...slug].astro b/src/pages/embed/[...slug].astro index f16a890..9d3ecc7 100644 --- a/src/pages/embed/[...slug].astro +++ b/src/pages/embed/[...slug].astro @@ -3,7 +3,7 @@ import { t, changeLanguage } from "i18next"; import Embed from "@layouts/Embed.astro"; import "@styles/video.scss"; // Configuration -import { DEFAULT_VIDEO_PROXY, DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY, SERVER_DOMAIN } from "../../../config.json"; +import { DEFAULT_VIDEO_PROXY, DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY, SERVER_DOMAIN } from '@utils/GetConfig' // Fetch const SWV = Astro.url.href.split("embed/").pop(); diff --git a/src/pages/index.astro b/src/pages/index.astro index 4f30eb6..40aa60a 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -10,7 +10,7 @@ changeLanguage("en"); import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY -} from '../../config.json' +} from '@utils/GetConfig' import { FireFlame, Frame, Gamepad, GraphUp, Movie, MusicDoubleNote } from "@iconoir/vue"; // Fetch diff --git a/src/pages/instance.astro b/src/pages/instance.astro index 2af8166..cb26b83 100644 --- a/src/pages/instance.astro +++ b/src/pages/instance.astro @@ -18,7 +18,7 @@ import { MODIFIED, CUSTOM_SOURCE_CODE, STATISTICS -} from '../../config.json' +} from '@utils/GetConfig' import { FireFlame, Frame, Gamepad, GraphUp, Movie, MusicDoubleNote } from "@iconoir/vue"; --- diff --git a/src/pages/search.astro b/src/pages/search.astro index 8c6754c..f46caed 100644 --- a/src/pages/search.astro +++ b/src/pages/search.astro @@ -3,7 +3,7 @@ import { t, changeLanguage } from "i18next" import Base from "@layouts/Default.astro" // Configuration -import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY } from "../../config.json" +import { DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY } from '@utils/GetConfig' changeLanguage("en") diff --git a/src/pages/watch.astro b/src/pages/watch.astro index 93ae59c..2618421 100644 --- a/src/pages/watch.astro +++ b/src/pages/watch.astro @@ -3,7 +3,7 @@ import { t, changeLanguage } from "i18next"; import Base from "@layouts/Default.astro"; import "@styles/video.scss"; // Configuration -import { DEFAULT_VIDEO_PROXY, DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY, SERVER_DOMAIN } from "../../config.json"; +import { DEFAULT_VIDEO_PROXY, DEFAULT_DATA_PROXY, DEFAULT_IMAGE_PROXY, SERVER_DOMAIN } from '@utils/GetConfig' import { Donate, Download, ShareIos, ThumbsUp, MediaVideo } from "@iconoir/vue"; // Components diff --git a/src/utilities/GetConfig.js b/src/utilities/GetConfig.js new file mode 100644 index 0000000..72918da --- /dev/null +++ b/src/utilities/GetConfig.js @@ -0,0 +1,39 @@ +export var SERVER_ADMIN = import.meta.env.SERVER_ADMIN +export var SERVER_LOCATION = import.meta.env.SERVER_LOCATION +export var SERVER_PROTOCOL = import.meta.env.SERVER_PROTOCOL +export var SERVER_DOMAIN = import.meta.env.SERVER_DOMAIN +export var SERVER_BASE = import.meta.env.SERVER_BASE +export var DEFAULT_VIDEO_PROXY = import.meta.env.DEFAULT_VIDEO_PROXY +export var DEFAULT_DATA_PROXY = import.meta.env.DEFAULT_DATA_PROXY +export var DEFAULT_IMAGE_PROXY = import.meta.env.DEFAULT_IMAGE_PROXY +export var DEFAULT_PLAYER = import.meta.env.DEFAULT_PLAYER +export var SIDEBAR_CATEGORIES = import.meta.env.SIDEBAR_CATEGORIES +export var SIDEBAR_DISCOVER = import.meta.env.SIDEBAR_DISCOVER +export var MODIFIED = import.meta.env.MODIFIED +export var CUSTOM_SOURCE_CODE = import.meta.env.CUSTOM_SOURCE_CODE +export var META_COLOR = import.meta.env.META_COLOR +export var COLOR = import.meta.env.COLOR +export var THEME = import.meta.env.THEME +export var SIDEBAR_SIZE = import.meta.env.SIDEBAR_SIZE +export var SIDEBAR_ICONS = import.meta.env.SIDEBAR_ICONS +export var THEME_TOGGLE_ENABLED = import.meta.env.THEME_TOGGLE_ENABLED +export var THEME_TOGGLE_STYLE = import.meta.env.THEME_TOGGLE_STYLE +export var WHITELABEL = import.meta.env.WHITELABEL +export var FOOTER_VERSION = import.meta.env.FOOTER_VERSION +export var REVERT_LAYOUT = import.meta.env.REVERT_LAYOUT +export var ANALYTICS = import.meta.env.ANALYTICS +export var MATOMO_ID = import.meta.env.MATOMO_ID +export var MATOMO_SRC = import.meta.env.MATOMO_SRC +export var PLAUSIBLE_DOMAIN = import.meta.env.PLAUSIBLE_DOMAIN +export var PLAUSIBLE_SRC = import.meta.env.PLAUSIBLE_SRC +export var UMAMI_ID = import.meta.env.UMAMI_ID +export var UMAMI_SRC = import.meta.env.UMAMI_SRC +export var AMPLITUDE_APIKEY = import.meta.env.AMPLITUDE_APIKEY +export var METRICAL_APP = import.meta.env.METRICAL_APP +export var FATHOM_SITE = import.meta.env.FATHOM_SITE +export var FATHOM_SRC = import.meta.env.FATHOM_SRC +export var MINIAML_ID = import.meta.env.MINIAML_ID +export var SWETRIX_SRC = import.meta.env.SWETRIX_SRC +export var SWETRIX_API = import.meta.env.SWETRIX_API +export var SWETRIX_PROJECT_ID = import.meta.env.SWETRIX_PROJECT_ID +export var SIMPLEANALYTICS_DOMAIN = import.meta.env.SIMPLEANALYTICS_DOMAIN \ No newline at end of file