Merge pull request #1542 from Materialious/update/1.16.15
Update/1.16.15
This commit is contained in:
@@ -23,6 +23,10 @@ A clear and concise description of what you expected to happen.
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Materialious (please complete the following information):**
|
||||
- Version: [e.g. 1.16.15]
|
||||
- Backend: [e.g. Invidious, YouTube, Both]
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
|
||||
@@ -7,8 +7,8 @@ android {
|
||||
applicationId "us.materialio.app"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 231
|
||||
versionName "1.16.14"
|
||||
versionCode 232
|
||||
versionName "1.16.15"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
aaptOptions {
|
||||
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
||||
|
||||
@@ -73,7 +73,11 @@
|
||||
|
||||
|
||||
|
||||
<release version="1.16.14" date="2026-3-08">
|
||||
|
||||
<release version="1.16.15" date="2026-3-08">
|
||||
<url>https://github.com/Materialious/Materialious/releases/tag/1.16.15</url>
|
||||
</release>
|
||||
<release version="1.16.14" date="2026-3-08">
|
||||
<url>https://github.com/Materialious/Materialious/releases/tag/1.16.14</url>
|
||||
</release>
|
||||
<release version="1.16.13" date="2026-3-07">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Materialious",
|
||||
"version": "1.16.14",
|
||||
"version": "1.16.15",
|
||||
"description": "Modern material design for YouTube and Invidious.",
|
||||
"author": {
|
||||
"name": "Ward Pearce",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "materialious",
|
||||
"version": "1.16.14",
|
||||
"version": "1.16.15",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "npm run patch:github && vite dev",
|
||||
|
||||
@@ -16,8 +16,6 @@ export async function getChannelYTjs(channelId: string): Promise<ChannelPage> {
|
||||
|
||||
const innerResults = await innertube.getChannel(channelId);
|
||||
|
||||
const authorId = innerResults.metadata.url?.split('/')[4] ?? '';
|
||||
|
||||
let authorBanners: Image[] = [];
|
||||
if (
|
||||
innerResults.header?.is(YTNodes.PageHeader) &&
|
||||
@@ -38,12 +36,12 @@ export async function getChannelYTjs(channelId: string): Promise<ChannelPage> {
|
||||
isFamilyFriendly: true,
|
||||
author: innerResults.metadata.title ?? '',
|
||||
authorThumbnails: innerResults.metadata.avatar ?? [],
|
||||
authorId: authorId,
|
||||
authorId: channelId,
|
||||
authorBanners,
|
||||
joined: 0,
|
||||
authorVerified: true,
|
||||
totalViews: 0,
|
||||
authorUrl: `/channel/${authorId}`,
|
||||
authorUrl: `/channel/${channelId}`,
|
||||
subCount: 0,
|
||||
autoGenerated: false,
|
||||
description,
|
||||
@@ -53,7 +51,8 @@ export async function getChannelYTjs(channelId: string): Promise<ChannelPage> {
|
||||
|
||||
export function invidiousChannelContentSchema(
|
||||
innerResults: YT.Channel | YT.ChannelListContinuation,
|
||||
author: string
|
||||
author: string,
|
||||
authorId: string
|
||||
) {
|
||||
const videos: Video[] = [];
|
||||
|
||||
@@ -77,6 +76,7 @@ export function invidiousChannelContentSchema(
|
||||
const invidiousSchema = invidiousItemSchema(item.content);
|
||||
if (invidiousSchema?.type === 'video') {
|
||||
invidiousSchema.author = author;
|
||||
invidiousSchema.authorId = authorId;
|
||||
videos.push(invidiousSchema);
|
||||
}
|
||||
}
|
||||
@@ -87,30 +87,33 @@ export function invidiousChannelContentSchema(
|
||||
|
||||
function fetchChannelContentVideosWithContinuation(
|
||||
innerResults: YT.ChannelListContinuation,
|
||||
author: string
|
||||
author: string,
|
||||
authorId: string
|
||||
): () => Promise<ChannelContentVideos> {
|
||||
return async () => {
|
||||
const continuation = await innerResults.getContinuation();
|
||||
return {
|
||||
videos: invidiousChannelContentSchema(continuation, author),
|
||||
getContinuation: fetchChannelContentVideosWithContinuation(continuation, author)
|
||||
videos: invidiousChannelContentSchema(continuation, author, authorId),
|
||||
getContinuation: fetchChannelContentVideosWithContinuation(continuation, author, authorId)
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
async function fetchChannelContentWithContinuation(
|
||||
innerResults: YT.Channel | YT.ChannelListContinuation,
|
||||
author: string
|
||||
author: string,
|
||||
authorId: string
|
||||
): Promise<ChannelContent> {
|
||||
const channelContent: ChannelContent = {
|
||||
continuation: innerResults.has_continuation ? 'logicalPlaceholder' : undefined,
|
||||
videos: invidiousChannelContentSchema(innerResults, author)
|
||||
videos: invidiousChannelContentSchema(innerResults, author, authorId)
|
||||
};
|
||||
|
||||
if (channelContent.continuation) {
|
||||
channelContent.getContinuation = fetchChannelContentVideosWithContinuation(
|
||||
innerResults,
|
||||
author
|
||||
author,
|
||||
authorId
|
||||
);
|
||||
}
|
||||
|
||||
@@ -138,5 +141,5 @@ export async function getChannelContentYTjs(
|
||||
innerResults = await channel.getLiveStreams();
|
||||
}
|
||||
|
||||
return fetchChannelContentWithContinuation(innerResults, author);
|
||||
return fetchChannelContentWithContinuation(innerResults, author, channelId);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import { Helpers, YTNodes } from 'youtubei.js';
|
||||
export function invidiousItemSchema(item: Helpers.YTNode): Video | Channel | Playlist | undefined {
|
||||
if (item.is(YTNodes.Video)) {
|
||||
const views = extractNumber(item.view_count?.toString() || '');
|
||||
console.log(item);
|
||||
return {
|
||||
type: 'video',
|
||||
title: item.title.toString(),
|
||||
|
||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -3,7 +3,7 @@ import os
|
||||
import re
|
||||
from datetime import datetime
|
||||
|
||||
LATEST_VERSION = "1.16.14"
|
||||
LATEST_VERSION = "1.16.15"
|
||||
RELEASE_DATE = datetime.now().strftime("%Y-%-m-%d") # Format: YYYY-M-D
|
||||
|
||||
WORKING_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "materialious")
|
||||
|
||||
Reference in New Issue
Block a user