mirror of
https://github.com/gethomepage/homepage.git
synced 2026-01-07 16:02:10 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5fc266ed81 | ||
|
|
38356c31b0 | ||
|
|
2703cfb81e |
@@ -17,7 +17,7 @@
|
|||||||
- Automatic service discovery (via labels)
|
- Automatic service discovery (via labels)
|
||||||
- Service Integration
|
- Service Integration
|
||||||
- Sonarr, Radarr, Readarr, Prowlarr, Bazarr, Lidarr, Emby, Jellyfin, Tautulli (Plex)
|
- Sonarr, Radarr, Readarr, Prowlarr, Bazarr, Lidarr, Emby, Jellyfin, Tautulli (Plex)
|
||||||
- Ombi, Overseerr, Jellyseerr, Jackett, NZBGet, SABnzbd, ruTorrent, Transmission
|
- Ombi, Overseerr, Jellyseerr, Jackett, NZBGet, SABnzbd, ruTorrent, Transmission, qBittorrent
|
||||||
- Portainer, Traefik, Speedtest Tracker, PiHole, AdGuard Home, Nginx Proxy Manager, Gotify
|
- Portainer, Traefik, Speedtest Tracker, PiHole, AdGuard Home, Nginx Proxy Manager, Gotify
|
||||||
- Information Providers
|
- Information Providers
|
||||||
- Coin Market Cap
|
- Coin Market Cap
|
||||||
@@ -127,7 +127,7 @@ Huge thanks to the all the contributors who have helped make this project what i
|
|||||||
- [ilusi0n](https://github.com/benphelps/homepage/commits?author=ilusi0n) - Jellyseerr Integration
|
- [ilusi0n](https://github.com/benphelps/homepage/commits?author=ilusi0n) - Jellyseerr Integration
|
||||||
- [ItsJustMeChris](https://github.com/benphelps/homepage/commits?author=ItsJustMeChris) - Coin Market Cap Widget
|
- [ItsJustMeChris](https://github.com/benphelps/homepage/commits?author=ItsJustMeChris) - Coin Market Cap Widget
|
||||||
- [jackblk](https://github.com/benphelps/homepage/commits?author=jackblk) - Vietnamese Translation
|
- [jackblk](https://github.com/benphelps/homepage/commits?author=jackblk) - Vietnamese Translation
|
||||||
- [JazzFisch](https://github.com/benphelps/homepage/commits?author=JazzFisch) - Readarr, Bazarr, Lidarr, SABnzbd & Transmission Integrations
|
- [JazzFisch](https://github.com/benphelps/homepage/commits?author=JazzFisch) - Readarr, Bazarr, Lidarr, SABnzbd, Transmission & qBittorrent Integrations
|
||||||
- [juanmanuelbc](https://github.com/benphelps/homepage/commits?author=juanmanuelbc) - Spanish and Catalan Translations
|
- [juanmanuelbc](https://github.com/benphelps/homepage/commits?author=juanmanuelbc) - Spanish and Catalan Translations
|
||||||
- [modem7](https://github.com/benphelps/homepage/commits?author=modem7) - Impvoed Docker Image
|
- [modem7](https://github.com/benphelps/homepage/commits?author=modem7) - Impvoed Docker Image
|
||||||
- [nicedc](https://github.com/benphelps/homepage/commits?author=nicedc) - Chinese Translation
|
- [nicedc](https://github.com/benphelps/homepage/commits?author=nicedc) - Chinese Translation
|
||||||
@@ -138,3 +138,4 @@ Huge thanks to the all the contributors who have helped make this project what i
|
|||||||
- [schklom](https://github.com/benphelps/homepage/commits?author=schklom) - ARM64, ARMv7 and ARMv6
|
- [schklom](https://github.com/benphelps/homepage/commits?author=schklom) - ARM64, ARMv7 and ARMv6
|
||||||
- [SuperDOS](https://github.com/benphelps/homepage/commits?author=SuperDOS) - Swedish Translation
|
- [SuperDOS](https://github.com/benphelps/homepage/commits?author=SuperDOS) - Swedish Translation
|
||||||
- [xicopitz](https://github.com/benphelps/homepage/commits?author=xicopitz) - Gotify & Prowlarr Integration
|
- [xicopitz](https://github.com/benphelps/homepage/commits?author=xicopitz) - Gotify & Prowlarr Integration
|
||||||
|
- [andrii-kryvoviaz](https://github.com/benphelps/homepage/commits?author=andrii-kryvoviaz) - Background opacity option
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { BsFillPlayFill, BsPauseFill, BsCpu, BsFillCpuFill } from "react-icons/bs";
|
import { BsFillPlayFill, BsPauseFill, BsCpu, BsFillCpuFill } from "react-icons/bs";
|
||||||
import { MdOutlineSmartDisplay } from "react-icons/md";
|
import { MdOutlineSmartDisplay, MdSmartDisplay } from "react-icons/md";
|
||||||
|
|
||||||
import Widget from "../widget";
|
import Widget from "../widget";
|
||||||
|
|
||||||
@@ -37,9 +37,16 @@ function SingleSessionEntry({ session }) {
|
|||||||
<div className="absolute w-full whitespace-nowrap text-ellipsis overflow-hidden">{full_title}</div>
|
<div className="absolute w-full whitespace-nowrap text-ellipsis overflow-hidden">{full_title}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="self-center text-xs flex justify-end mr-1.5 pl-1">
|
<div className="self-center text-xs flex justify-end mr-1.5 pl-1">
|
||||||
|
{video_decision === "direct play" && audio_decision === "direct play" && (
|
||||||
|
<MdSmartDisplay className="opacity-50" />
|
||||||
|
)}
|
||||||
{video_decision === "copy" && audio_decision === "copy" && <MdOutlineSmartDisplay className="opacity-50" />}
|
{video_decision === "copy" && audio_decision === "copy" && <MdOutlineSmartDisplay className="opacity-50" />}
|
||||||
{video_decision !== "copy" && audio_decision !== "copy" && <BsFillCpuFill className="opacity-50" />}
|
{video_decision !== "copy" &&
|
||||||
{video_decision === "copy" && audio_decision !== "copy" && <BsCpu className="opacity-50" />}
|
video_decision !== "direct play" &&
|
||||||
|
(audio_decision !== "copy" || audio_decision !== "direct play") && <BsFillCpuFill className="opacity-50" />}
|
||||||
|
{(video_decision === "copy" || video_decision === "direct play") &&
|
||||||
|
audio_decision !== "copy" &&
|
||||||
|
audio_decision !== "direct play" && <BsCpu className="opacity-50" />}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -92,9 +99,16 @@ function SessionEntry({ session }) {
|
|||||||
<div className="absolute w-full whitespace-nowrap text-ellipsis overflow-hidden">{full_title}</div>
|
<div className="absolute w-full whitespace-nowrap text-ellipsis overflow-hidden">{full_title}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="self-center text-xs flex justify-end mr-1.5 pl-1 z-10">
|
<div className="self-center text-xs flex justify-end mr-1.5 pl-1 z-10">
|
||||||
|
{video_decision === "direct play" && audio_decision === "direct play" && (
|
||||||
|
<MdSmartDisplay className="opacity-50" />
|
||||||
|
)}
|
||||||
{video_decision === "copy" && audio_decision === "copy" && <MdOutlineSmartDisplay className="opacity-50" />}
|
{video_decision === "copy" && audio_decision === "copy" && <MdOutlineSmartDisplay className="opacity-50" />}
|
||||||
{video_decision !== "copy" && audio_decision !== "copy" && <BsFillCpuFill className="opacity-50" />}
|
{video_decision !== "copy" &&
|
||||||
{video_decision === "copy" && audio_decision !== "copy" && <BsCpu className="opacity-50" />}
|
video_decision !== "direct play" &&
|
||||||
|
(audio_decision !== "copy" || audio_decision !== "direct play") && <BsFillCpuFill className="opacity-50" />}
|
||||||
|
{(video_decision === "copy" || video_decision === "direct play") &&
|
||||||
|
audio_decision !== "copy" &&
|
||||||
|
audio_decision !== "direct play" && <BsCpu className="opacity-50" />}
|
||||||
</div>
|
</div>
|
||||||
<div className="self-center text-xs flex justify-end mr-2 z-10">{millisecondsToString(view_offset)}</div>
|
<div className="self-center text-xs flex justify-end mr-2 z-10">{millisecondsToString(view_offset)}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ function jsonArrayTransform(data, transform) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function jsonArrayFilter(data, filter) {
|
function jsonArrayFilter(data, filter) {
|
||||||
return jsonArrayTransform(data, items => items.filter(filter));
|
return jsonArrayTransform(data, (items) => items.filter(filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
const serviceProxyHandlers = {
|
const serviceProxyHandlers = {
|
||||||
@@ -36,8 +36,8 @@ const serviceProxyHandlers = {
|
|||||||
maps: {
|
maps: {
|
||||||
movie: (data) => ({
|
movie: (data) => ({
|
||||||
wanted: jsonArrayFilter(data, (item) => item.isAvailable === false).length,
|
wanted: jsonArrayFilter(data, (item) => item.isAvailable === false).length,
|
||||||
have: jsonArrayFilter(data, (item) => item.isAvailable === true).length
|
have: jsonArrayFilter(data, (item) => item.isAvailable === true).length,
|
||||||
})
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
sonarr: {
|
sonarr: {
|
||||||
@@ -52,7 +52,7 @@ const serviceProxyHandlers = {
|
|||||||
proxy: genericProxyHandler,
|
proxy: genericProxyHandler,
|
||||||
maps: {
|
maps: {
|
||||||
album: (data) => ({
|
album: (data) => ({
|
||||||
have: jsonArrayFilter(data, (item) => item.statistics.percentOfTracks === 100).length,
|
have: jsonArrayFilter(data, (item) => item?.statistics?.percentOfTracks === 100).length,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -60,7 +60,7 @@ const serviceProxyHandlers = {
|
|||||||
proxy: genericProxyHandler,
|
proxy: genericProxyHandler,
|
||||||
maps: {
|
maps: {
|
||||||
book: (data) => ({
|
book: (data) => ({
|
||||||
have: jsonArrayFilter(data, (item) => item.statistics.bookFileCount > 0).length,
|
have: jsonArrayFilter(data, (item) => item?.statistics?.bookFileCount > 0).length,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user