mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 10:51:17 +00:00
extension(autoembed): Added pref to split stream quality or not
This commit is contained in:
@@ -7,7 +7,7 @@ const mangayomiSources = [{
|
|||||||
"typeSource": "multi",
|
"typeSource": "multi",
|
||||||
"isManga": false,
|
"isManga": false,
|
||||||
"itemType": 1,
|
"itemType": 1,
|
||||||
"version": "1.2.3",
|
"version": "1.2.4",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
"pkgPath": "anime/src/all/autoembed.js"
|
"pkgPath": "anime/src/all/autoembed.js"
|
||||||
@@ -156,15 +156,20 @@ class DefaultExtension extends MProvider {
|
|||||||
|
|
||||||
// Extracts the streams url for different resolutions from a hls stream.
|
// Extracts the streams url for different resolutions from a hls stream.
|
||||||
async extractStreams(url, lang = "", hdr = {}) {
|
async extractStreams(url, lang = "", hdr = {}) {
|
||||||
const response = await new Client().get(url);
|
|
||||||
const body = response.body;
|
|
||||||
const lines = body.split('\n');
|
|
||||||
var streams = [{
|
var streams = [{
|
||||||
url: url,
|
url: url,
|
||||||
originalUrl: url,
|
originalUrl: url,
|
||||||
quality: "auto",
|
quality: `${lang} - Auto`,
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
var pref = this.getPreference("autoembed_split_stream_quality");
|
||||||
|
if(!pref) return streams
|
||||||
|
|
||||||
|
|
||||||
|
const response = await new Client().get(url);
|
||||||
|
const body = response.body;
|
||||||
|
const lines = body.split('\n');
|
||||||
|
|
||||||
for (let i = 0; i < lines.length; i++) {
|
for (let i = 0; i < lines.length; i++) {
|
||||||
if (lines[i].startsWith('#EXT-X-STREAM-INF:')) {
|
if (lines[i].startsWith('#EXT-X-STREAM-INF:')) {
|
||||||
var resolution = lines[i].match(/RESOLUTION=(\d+x\d+)/)[1];
|
var resolution = lines[i].match(/RESOLUTION=(\d+x\d+)/)[1];
|
||||||
@@ -185,8 +190,18 @@ class DefaultExtension extends MProvider {
|
|||||||
|
|
||||||
// For some streams, we can form stream url using a default template.
|
// For some streams, we can form stream url using a default template.
|
||||||
async splitStreams(url, lang = "", hdr = {}) {
|
async splitStreams(url, lang = "", hdr = {}) {
|
||||||
var streams = [];
|
var streams = [{
|
||||||
var quality = ["auto", "360", "480", "720", "1080"]
|
url: url,
|
||||||
|
originalUrl: url,
|
||||||
|
quality: `${lang} - Auto`,
|
||||||
|
headers: hdr
|
||||||
|
}];
|
||||||
|
|
||||||
|
var pref = this.getPreference("autoembed_split_stream_quality");
|
||||||
|
if(!pref) return streams
|
||||||
|
|
||||||
|
|
||||||
|
var quality = ["360", "480", "720", "1080"]
|
||||||
for (var q of quality) {
|
for (var q of quality) {
|
||||||
var link = url
|
var link = url
|
||||||
if (q != "auto") {
|
if (q != "auto") {
|
||||||
@@ -441,7 +456,7 @@ class DefaultExtension extends MProvider {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (var stream of availableStreams) {
|
for (var stream of availableStreams) {
|
||||||
var streamSplit = await this.splitStreams(stream.url, stream.label);
|
var streamSplit = await this.extractStreams(stream.url, stream.label);
|
||||||
streams = [...streams, ...streamSplit]
|
streams = [...streams, ...streamSplit]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -512,6 +527,14 @@ class DefaultExtension extends MProvider {
|
|||||||
entryValues: ["movies", "series"]
|
entryValues: ["movies", "series"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: 'autoembed_split_stream_quality',
|
||||||
|
"switchPreferenceCompat": {
|
||||||
|
'title': 'Split stream into different quality streams',
|
||||||
|
"summary": "Split stream Auto into 360p/720p/1080p",
|
||||||
|
"value": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
key: 'autoembed_stream_source_2',
|
key: 'autoembed_stream_source_2',
|
||||||
listPreference: {
|
listPreference: {
|
||||||
|
|||||||
Reference in New Issue
Block a user