Skip to content

Commit

Permalink
Merge pull request #3 from kristal374/multi_video_link
Browse files Browse the repository at this point in the history
Multi video link
  • Loading branch information
kristal374 authored Feb 13, 2024
2 parents 12f9fc1 + c2df637 commit 19e183b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 19 deletions.
4 changes: 2 additions & 2 deletions manifest.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "HDrezka Grabber",
"description": "__MSG_manifest_description__",
"version": "0.2",
"version_name": "0.2 beta",
"version": "0.3",
"version_name": "0.3 beta",
"default_locale": "en",
"manifest_version": 3,
"icons": {
Expand Down
22 changes: 14 additions & 8 deletions src/js/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,13 @@ async function startLoadVideo(tab_ID) {
async function initLoadVideo(tab_ID, settingsVideo) {
const targetTab = {tabId: tab_ID, allFrames: false};

let url = await chrome.scripting.executeScript({
let urls = await chrome.scripting.executeScript({
target: targetTab,
func: injectLoader,
args: [settingsVideo],
})
url = url[0].result.url
if (!url) {
let url_list = urls[0].result.url
if (!url_list) {
sendUserMessage({"message": "Error", "content": chrome.i18n.getMessage("message_noDataVideo")})
flagLoader = false;
return false
Expand All @@ -148,11 +148,16 @@ async function initLoadVideo(tab_ID, settingsVideo) {
} else {
filename = filename + "_S" + settingsVideo.season_id + "E" + settingsVideo.episode_id + ".mp4"
}
await chrome.scripting.executeScript({
target: targetTab,
func: loadVideo,
args: [url, filename]
})
for (const url of url_list) {
let success = await chrome.scripting.executeScript({
target: targetTab,
func: loadVideo,
args: [url, filename]
});
if (success) break
console.log("success - false")
}

return true
}

Expand Down Expand Up @@ -188,6 +193,7 @@ function loadVideo(url, filename) {
.then(response => {
const totalSize = response.headers.get('content-length');
let loadedSize = 0;
if (!totalSize) throw new Error("Empty object");

const progressCallback = (event) => {
if (event.lengthComputable) {
Expand Down
19 changes: 10 additions & 9 deletions src/js/injection_scripts/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,28 @@ async function getVideoURL(dictionary) {
dictionary.season_id,
dictionary.episode_id,
dictionary.action)
let url = {};
let url_dict = {};
if (!response.success) {
return false
}
clearTrash(response.url).split(",").forEach(function (item) {
let data = item.match(/(\[.*])(\bhttps?:\/\/\S+\.mp4\b)/)
url[data[1]] = data[2]
let links_quality = item.match(/\[.*?]/)[0]
let urls_strings = item.slice(links_quality.length)
url_dict[links_quality] = urls_strings.split(/\sor\s/).filter(item => /https?:\/\/.*mp4$/.test(item))
})
let quality = `[${dictionary.quality}]`;
if (Object.keys(url).length === 0) {
if (Object.keys(url_dict).length === 0) {
return false
} else if (url[quality]) {
return url[quality]
} else if (url_dict[quality]) {
return url_dict[quality]
} else {
let keys = CDNPlayer.api('qualities').map((item) => item.match(/\d*p(\sUltra)?/)[0]);
let keys = CDNPlayer.api('qualities').map((item) => item.match(/\d*(?:(?:K)|(?:p(?:\sUltra)?))/)[0]);
let index = keys.indexOf(dictionary.quality)
while (index > 0 && !url[quality]) {
while (index > 0 && !url_dict[quality]) {
index -= 1;
quality = `[${keys[index]}]`
}
return url[quality]
return url_dict[quality]
}
}

Expand Down

0 comments on commit 19e183b

Please sign in to comment.