Local Timezone
This commit is contained in:
+1
-1
@@ -7,7 +7,7 @@ RUN apt-get update \
|
|||||||
ca-certificates \
|
ca-certificates \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN echo "memory_limit=512M" \
|
RUN printf "memory_limit=512M\ndate.timezone=Europe/Vienna\n" \
|
||||||
> /usr/local/etc/php/conf.d/tvguide.ini
|
> /usr/local/etc/php/conf.d/tvguide.ini
|
||||||
|
|
||||||
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||||
|
|||||||
@@ -93,6 +93,36 @@ function getTimestamp(programme, type) {
|
|||||||
return Math.floor(parsedDate.getTime() / 1000);
|
return Math.floor(parsedDate.getTime() / 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function formatLocalTime(timestamp) {
|
||||||
|
const value = Number(timestamp) || 0;
|
||||||
|
|
||||||
|
if (!value) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Date(value * 1000).toLocaleTimeString("de-AT", {
|
||||||
|
hour: "2-digit",
|
||||||
|
minute: "2-digit",
|
||||||
|
hour12: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatLocalDate(timestamp) {
|
||||||
|
const value = Number(timestamp) || 0;
|
||||||
|
|
||||||
|
if (!value) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
const date = new Date(value * 1000);
|
||||||
|
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, "0");
|
||||||
|
const day = String(date.getDate()).padStart(2, "0");
|
||||||
|
|
||||||
|
return `${year}-${month}-${day}`;
|
||||||
|
}
|
||||||
|
|
||||||
function normalizeProgramme(programme) {
|
function normalizeProgramme(programme) {
|
||||||
const startTimestamp =
|
const startTimestamp =
|
||||||
getTimestamp(programme, "start");
|
getTimestamp(programme, "start");
|
||||||
@@ -106,6 +136,7 @@ function normalizeProgramme(programme) {
|
|||||||
"";
|
"";
|
||||||
|
|
||||||
const startTime =
|
const startTime =
|
||||||
|
formatLocalTime(startTimestamp) ||
|
||||||
programme.start_time ||
|
programme.start_time ||
|
||||||
(
|
(
|
||||||
typeof programme.start === "string"
|
typeof programme.start === "string"
|
||||||
@@ -114,6 +145,7 @@ function normalizeProgramme(programme) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const stopTime =
|
const stopTime =
|
||||||
|
formatLocalTime(stopTimestamp) ||
|
||||||
programme.stop_time ||
|
programme.stop_time ||
|
||||||
(
|
(
|
||||||
typeof programme.stop === "string"
|
typeof programme.stop === "string"
|
||||||
@@ -148,7 +180,10 @@ function normalizeProgramme(programme) {
|
|||||||
rating: programme.rating || "",
|
rating: programme.rating || "",
|
||||||
country: programme.country || "",
|
country: programme.country || "",
|
||||||
|
|
||||||
date: programme.date || "",
|
date:
|
||||||
|
formatLocalDate(startTimestamp) ||
|
||||||
|
programme.date ||
|
||||||
|
"",
|
||||||
|
|
||||||
start: startTime,
|
start: startTime,
|
||||||
stop: stopTime,
|
stop: stopTime,
|
||||||
@@ -202,7 +237,10 @@ function cleanupExpiredItems() {
|
|||||||
function getItems() {
|
function getItems() {
|
||||||
cleanupExpiredItems();
|
cleanupExpiredItems();
|
||||||
|
|
||||||
return readItems().sort((a, b) => {
|
return readItems()
|
||||||
|
.map((item) => normalizeProgramme(item))
|
||||||
|
.sort((a, b) => {
|
||||||
|
|
||||||
const startA =
|
const startA =
|
||||||
Number(a.start_timestamp) ||
|
Number(a.start_timestamp) ||
|
||||||
Number.MAX_SAFE_INTEGER;
|
Number.MAX_SAFE_INTEGER;
|
||||||
|
|||||||
@@ -7,6 +7,10 @@ $config = new Config(
|
|||||||
'/var/www/config/channels.json'
|
'/var/www/config/channels.json'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
date_default_timezone_set(
|
||||||
|
$config->get('timezone', 'Europe/Vienna')
|
||||||
|
);
|
||||||
|
|
||||||
$xmltv = new XmlTv(
|
$xmltv = new XmlTv(
|
||||||
'/var/www/epg/guide.xml',
|
'/var/www/epg/guide.xml',
|
||||||
$config->get('timezone', 'Europe/Vienna')
|
$config->get('timezone', 'Europe/Vienna')
|
||||||
|
|||||||
Reference in New Issue
Block a user