diff --git a/package.json b/package.json index 39029b7b..059f694a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sudo-flix", - "version": "4.5.0", + "version": "4.5.1", "private": true, "homepage": "https://sudo-flix.lol", "scripts": { diff --git a/public/lightbar-images/shark.png b/public/lightbar-images/shark.png new file mode 100644 index 00000000..4840f572 Binary files /dev/null and b/public/lightbar-images/shark.png differ diff --git a/src/assets/locales/cat.json b/src/assets/locales/cat.json index 8a8ba624..89b16617 100644 --- a/src/assets/locales/cat.json +++ b/src/assets/locales/cat.json @@ -139,7 +139,7 @@ } }, "media": { - "episodeDisplay": "S{{season}} E{{episode}}", + "episodeDisplay": "S{{season}} - E{{episode}}", "types": { "movie": "Meow Movie", "show": "Meow Show" diff --git a/src/assets/locales/en.json b/src/assets/locales/en.json index f85446f5..33f280c5 100644 --- a/src/assets/locales/en.json +++ b/src/assets/locales/en.json @@ -386,7 +386,7 @@ "badge": "Not found", "detailsButton": "Show details", "homeButton": "Go home", - "text": "We can not find the media you are looking for or no one provides it... Did you enable the extension for this site?", + "text": "We can not find the media you are looking for or no one provides it... Did you enable the extension for this site?", "title": "We couldn't find that" } }, diff --git a/src/components/utils/Lightbar.tsx b/src/components/utils/Lightbar.tsx index 6366581a..2d008b2b 100644 --- a/src/components/utils/Lightbar.tsx +++ b/src/components/utils/Lightbar.tsx @@ -52,7 +52,7 @@ class Particle { this.radius = 1 + Math.floor(Math.random() * 0.5); this.direction = (Math.random() * Math.PI) / 2 + Math.PI / 4; - this.speed = 0.02 + Math.random() * 0.08; + this.speed = 0.02 + Math.random() * 0.085; const second = 60; this.lifetime = second * 3 + Math.random() * (second * 30); @@ -107,8 +107,14 @@ class Particle { ctx.translate(this.x, this.y); const w = this.size; const h = (this.image.naturalWidth / this.image.naturalHeight) * w; - ctx.rotate(this.direction - Math.PI); - ctx.drawImage(this.image, -w / 2, h, h, w); + if (this.image.src.includes("shark")) { + const flip = this.direction === Math.PI ? 1 : -1; + ctx.scale(flip, 1); + ctx.drawImage(this.image, (-w / 2) * flip, -h / 2, w, h); + } else { + ctx.rotate(this.direction - Math.PI); + ctx.drawImage(this.image, -w / 2, h, h, w); + } } else { ctx.ellipse( this.x, @@ -138,7 +144,7 @@ function ParticlesCanvas() { canvas.height = canvas.scrollHeight; // Basic particle config - const particleCount = 25; + const particleCount = Math.floor(Math.random() * (30 - 25 + 1)) + 25; let imageParticleCount = particleCount; // Holiday overrides @@ -160,36 +166,43 @@ function ParticlesCanvas() { } // Fish easter egg - const shouldShowFishie = Math.floor(Math.random() * 75) > 69; + const shouldShowFishie = Math.floor(Math.random() * 73) > 69; if (shouldShowFishie) { imageOverride = [ { image: "/lightbar-images/fishie.png", sizeRange: [10, 13] as [number, number], }, + { + image: "/lightbar-images/shark.png", + sizeRange: [48, 56] as [number, number], + }, ]; - imageParticleCount = particleCount / 2; + imageParticleCount = particleCount * 0.9; // Adjusting the count to display significantly more fish than sharks } // Weed easter egg - const shouldShowZa = Math.floor(Math.random() * 435) > 420; + const month2 = date.getMonth() + 1; + const day2 = date.getDate(); + const shouldShowZa = + (month2 === 4 && day2 === 20) || Math.floor(Math.random() * 425) > 420; if (shouldShowZa) { imageOverride = [ { image: "/lightbar-images/weed.png", - sizeRange: [23, 28] as [number, number], + sizeRange: [25, 28] as [number, number], }, ]; imageParticleCount = particleCount / 2; } // Kitty easter egg - const shouldShowCat = Math.floor(Math.random() * 83) > 50; + const shouldShowCat = Math.floor(Math.random() * 50) > 45; if (shouldShowCat) { imageOverride = [ { image: "/lightbar-images/cat.png", - sizeRange: [26, 30] as [number, number], + sizeRange: [27, 32] as [number, number], }, ]; imageParticleCount = particleCount / 2; @@ -203,7 +216,7 @@ function ParticlesCanvas() { const src = imageOverride[randomImageIndex]?.image; const particle = new Particle(canvas, { imgSrc: isImageParticle ? src : undefined, - horizontalMotion: src?.includes("fishie"), + horizontalMotion: src?.includes("fishie") || src?.includes("shark"), sizeRange, }); particles.push(particle); diff --git a/src/pages/parts/player/ScrapeErrorPart.tsx b/src/pages/parts/player/ScrapeErrorPart.tsx index 127a69a6..a29e652d 100644 --- a/src/pages/parts/player/ScrapeErrorPart.tsx +++ b/src/pages/parts/player/ScrapeErrorPart.tsx @@ -1,5 +1,5 @@ import { useMemo } from "react"; -import { useTranslation } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; import { useLocation } from "react-router-dom"; import { Button } from "@/components/buttons/Button"; @@ -49,7 +49,19 @@ export function ScrapeErrorPart(props: ScrapeErrorPartProps) { {t("player.scraping.notFound.badge")} {t("player.scraping.notFound.title")} - {t("player.scraping.notFound.text")} + + + ), + }} + /> +