Compare commits

..

No commits in common. "5d76411416b1c1d9052c7aac45a073108efc812a" and "53ab55bb0993e1dc2cdb0046fdd4873d8565138d" have entirely different histories.

10 changed files with 68 additions and 93 deletions

View File

@ -89,7 +89,6 @@ class VideoList extends React.Component<VideoListProps, VideoListState> {
duration,
fileName,
title,
slug,
sourceVideoStart,
sourceVideoEnd,
},
@ -101,7 +100,6 @@ class VideoList extends React.Component<VideoListProps, VideoListState> {
id={id}
thumbnailServerURL={thumbnailServerURL}
fileName={fileName}
slug={slug}
title={title}
sourceVideoStart={sourceVideoStart}
sourceVideoEnd={sourceVideoEnd}

View File

@ -39,7 +39,6 @@ export default function VideoListItem({
duration,
id,
fileName,
slug,
title,
sourceVideoStart,
sourceVideoEnd,
@ -48,7 +47,6 @@ export default function VideoListItem({
duration: number | string,
id: string,
fileName: string,
slug: string,
title: string,
sourceVideoStart: number | string,
sourceVideoEnd: number | string,
@ -79,6 +77,7 @@ export default function VideoListItem({
}
displayDuration = videoEnd - videoStart;
}
const titleUrlSlug = sanitizeTitle(title);
const listGroupItem = (
<ListGroup.Item action>
<Media>
@ -132,7 +131,7 @@ export default function VideoListItem({
);
if (fileName) {
return (
<Link passHref href="/[id]/[vslug]" as={`/${id}/${slug}`}>
<Link passHref href="/[id]/[vslug]" as={`/${id}/${titleUrlSlug}`}>
{listGroupItem}
</Link>
);

View File

@ -23,7 +23,7 @@
"defaultMessage": "Greife sofort auf deine Lieblings-Runs von GDQ zu!"
},
"Home.introText2": {
"defaultMessage": "Diese Website sammelt Clips der Runs von Games Done Quick."
"defaultMessage": "Diese Website sammelt Icedreams Clips der Runs von Games Done Quick."
},
"LocaleSwitcher.screenReaderText": {
"defaultMessage": "Sprache ändern",

View File

@ -39,7 +39,7 @@
"defaultMessage": "Type something to search here…"
},
"VideoListPage.updatedLastAgo": {
"defaultMessage": "Last updated {time}",
"defaultMessage": "Updated last {time}",
"description": "Text below the video list on the video list page that says in relative time when the list was last updated"
},
"VideoPlayerPage.tab.mirrorPlayer": {

View File

@ -115,7 +115,7 @@ const getProps = withSession(async (req, _res, { id, vslug }: VideoPlayerPagePar
redirect: true,
id,
video,
vslug: video.slug,
vslug: sanitizeTitle(video.title),
},
};
}
@ -132,13 +132,13 @@ const getProps = withSession(async (req, _res, { id, vslug }: VideoPlayerPagePar
redirect: true,
id,
video: realVIndex,
vslug: video.slug,
vslug: sanitizeTitle(video.title),
},
};
}
// Check if we can find any video with matching vslug
const video = videos.find(({ slug }: VideoEntry) => slug === vslug);
const video = videos.find(({ title }: { title: string }) => sanitizeTitle(title) === vslug);
if (!video) {
return { props: {} };
}

View File

@ -19,45 +19,45 @@
* BOOTSTRAP
*/
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";
@import "~@forevolve/bootstrap-dark/scss/dark-mixins";
@import '~bootstrap/scss/functions';
@import '~bootstrap/scss/variables';
@import '~bootstrap/scss/mixins';
@import '~@forevolve/bootstrap-dark/scss/dark-mixins';
html:not([data-enable-dark="true"]) {
@import "~bootstrap/scss/root";
@import "~bootstrap/scss/reboot";
@import "~bootstrap/scss/type";
@import "~bootstrap/scss/images";
html:not([data-enable-dark='true']) {
@import '~bootstrap/scss/root';
@import '~bootstrap/scss/reboot';
@import '~bootstrap/scss/type';
@import '~bootstrap/scss/images';
// @import '~bootstrap/scss/code';
@import "~bootstrap/scss/grid";
@import '~bootstrap/scss/grid';
// @import '~bootstrap/scss/tables';
@import "~bootstrap/scss/forms";
@import "~bootstrap/scss/buttons";
@import "~bootstrap/scss/transitions";
@import "~bootstrap/scss/dropdown";
@import "~bootstrap/scss/button-group";
@import "~bootstrap/scss/input-group";
@import '~bootstrap/scss/forms';
@import '~bootstrap/scss/buttons';
@import '~bootstrap/scss/transitions';
@import '~bootstrap/scss/dropdown';
@import '~bootstrap/scss/button-group';
@import '~bootstrap/scss/input-group';
// @import '~bootstrap/scss/custom-forms';
@import "~bootstrap/scss/nav";
@import "~bootstrap/scss/navbar";
@import '~bootstrap/scss/nav';
@import '~bootstrap/scss/navbar';
// @import '~bootstrap/scss/card';
@import "~bootstrap/scss/breadcrumb";
@import '~bootstrap/scss/breadcrumb';
// @import '~bootstrap/scss/pagination';
// @import '~bootstrap/scss/badge';
// @import '~bootstrap/scss/jumbotron';
// @import '~bootstrap/scss/alert';
// @import '~bootstrap/scss/progress';
@import "~bootstrap/scss/media";
@import "~bootstrap/scss/list-group";
@import "~bootstrap/scss/close";
@import '~bootstrap/scss/media';
@import '~bootstrap/scss/list-group';
@import '~bootstrap/scss/close';
// @import '~bootstrap/scss/toasts';
// @import '~bootstrap/scss/modal';
@import "~bootstrap/scss/tooltip";
@import "~bootstrap/scss/popover";
@import '~bootstrap/scss/tooltip';
@import '~bootstrap/scss/popover';
// @import '~bootstrap/scss/carousel';
@import "~bootstrap/scss/spinners";
@import "~bootstrap/scss/utilities";
@import '~bootstrap/scss/spinners';
@import '~bootstrap/scss/utilities';
// @import '~bootstrap/scss/print';
}
@ -65,45 +65,45 @@ html:not([data-enable-dark="true"]) {
* BOOTSTRAP DARK
*/
html[data-enable-dark="true"] {
@import "~@forevolve/bootstrap-dark/scss/dark-variables";
@import "~bootstrap/scss/root";
@import "~bootstrap/scss/reboot";
@import "~bootstrap/scss/type";
@import "~bootstrap/scss/images";
html[data-enable-dark='true'] {
@import '~@forevolve/bootstrap-dark/scss/dark-variables';
@import '~bootstrap/scss/root';
@import '~bootstrap/scss/reboot';
@import '~bootstrap/scss/type';
@import '~bootstrap/scss/images';
// @import '~bootstrap/scss/code';
@import "~bootstrap/scss/grid";
@import '~bootstrap/scss/grid';
// @import '~bootstrap/scss/tables';
// @import '~@forevolve/bootstrap-dark/scss/dark-tables';
@import "~bootstrap/scss/forms";
@import "~bootstrap/scss/buttons";
@import "~bootstrap/scss/transitions";
@import "~bootstrap/scss/dropdown";
@import "~bootstrap/scss/button-group";
@import "~bootstrap/scss/input-group";
@import "~@forevolve/bootstrap-dark/scss/dark-input-group";
@import '~bootstrap/scss/forms';
@import '~bootstrap/scss/buttons';
@import '~bootstrap/scss/transitions';
@import '~bootstrap/scss/dropdown';
@import '~bootstrap/scss/button-group';
@import '~bootstrap/scss/input-group';
@import '~@forevolve/bootstrap-dark/scss/dark-input-group';
// @import '~bootstrap/scss/custom-forms';
@import "~bootstrap/scss/nav";
@import "~bootstrap/scss/navbar";
@import '~bootstrap/scss/nav';
@import '~bootstrap/scss/navbar';
// @import '~bootstrap/scss/card';
@import "~bootstrap/scss/breadcrumb";
@import '~bootstrap/scss/breadcrumb';
// @import '~bootstrap/scss/pagination';
// @import '~bootstrap/scss/badge';
// @import '~bootstrap/scss/jumbotron';
// @import '~bootstrap/scss/alert';
// @import '~bootstrap/scss/progress';
@import "~bootstrap/scss/media";
@import "~bootstrap/scss/list-group";
@import "~bootstrap/scss/close";
@import '~bootstrap/scss/media';
@import '~bootstrap/scss/list-group';
@import '~bootstrap/scss/close';
// @import '~bootstrap/scss/toasts';
// @import '~bootstrap/scss/modal';
@import "~bootstrap/scss/tooltip";
@import "~bootstrap/scss/popover";
@import '~bootstrap/scss/tooltip';
@import '~bootstrap/scss/popover';
// @import '~bootstrap/scss/carousel';
@import "~bootstrap/scss/spinners";
@import "~bootstrap/scss/utilities";
@import '~bootstrap/scss/spinners';
@import '~bootstrap/scss/utilities';
// @import '~bootstrap/scss/print';
@import "~@forevolve/bootstrap-dark/scss/dark-styles";
@import '~@forevolve/bootstrap-dark/scss/dark-styles';
}
.breadcrumb {

View File

@ -15,13 +15,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@import "~video.js/src/css/video-js";
@import "bootstrap";
@import '~video.js/src/css/video-js';
@import 'bootstrap';
$colorTransitionFunction: ease-out;
$colorTransitionDuration: 1s;
html[data-toggled-dark="true"] * {
html[data-toggled-dark='true'] * {
transition: background-color $colorTransitionDuration $colorTransitionFunction,
color $colorTransitionDuration $colorTransitionFunction,
border-color $colorTransitionDuration $colorTransitionFunction !important;

View File

@ -15,9 +15,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import { VideoEntry, VideoList } from './datatypes/VideoList';
import { VideoList } from './datatypes/VideoList';
import { VideoOnDemandIndex } from './datatypes/VideoOnDemandIdentifier';
import sanitizeTitle from './sanitizeTitle';
const upstreamURL = process.env.UPSTREAM_URL;
const upstreamDirectURL = process.env.UPSTREAM_DIRECT_URL || upstreamURL;
@ -74,26 +73,7 @@ export async function getIndex(): Promise<VideoOnDemandIndex> {
}
export async function getVideos(id: string): Promise<VideoList> {
const result: VideoList = await getDirect(`videos/${id}.json`);
result.videos = result.videos.reduce((all: Array<VideoEntry>, {
slug,
title,
...video
}: VideoEntry) => [
...all,
{
...video,
title,
slug: typeof slug === 'string'
? slug
: sanitizeTitle(title + (
all.find(v => v.title === title)
? ` ${all.filter(v => v.title === title).length + 1}`
: ''
)),
},
], [])
return result;
return getDirect(`videos/${id}.json`);
}
export function getDownloadURL(id: string, fileName: string): string {

View File

@ -19,7 +19,6 @@ export interface VideoEntry {
fileName:string
title: string
duration?: number | string,
slug: string,
sourceVideoURL: string
sourceVideoStart: number | string
sourceVideoEnd: number | string

View File

@ -1,6 +1,4 @@
ARG NGINX_VERSION=1.20.1
FROM icedream/nginx as icedream-nginx
ARG NGINX_VERSION=1.19.2
FROM nginx:${NGINX_VERSION}-alpine AS ffmpeg-build
@ -48,11 +46,12 @@ FROM nginx:${NGINX_VERSION}-alpine
RUN \
export DEBIAN_FRONTEND=noninteractive &&\
if command -v apk >/dev/null 2>/dev/null; then apk add --no-cache gnupg; else apt-get update && apt-get install -y gnupg wget ca-certificates && apt-get clean; fi
COPY --from=icedream-nginx /usr/local/bin/docker-* /usr/local/bin/
COPY nginx/rootfs/ /
RUN chmod +x /usr/local/bin/*
COPY --from=module-source /usr/src/ /usr/src/nginx-modules/
COPY --from=ffmpeg-build /usr/src/packages/ /packages/
COPY --from=ffmpeg-build /etc/apk/keys/ /etc/apk/keys/
COPY --from=0 /usr/src/packages/ /packages/
COPY --from=0 /etc/apk/keys/ /etc/apk/keys/
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN sed -i '1s#^#/packages/community\n#' /etc/apk/repositories
RUN cat /etc/apk/repositories