1
0
Fork 0
mirror of https://github.com/sussy-code/smov.git synced 2024-12-29 16:07:40 +01:00

Fix le code

This commit is contained in:
Cooper Ransom 2024-03-31 17:06:07 -04:00
commit 8df715a13b
9 changed files with 143 additions and 72 deletions

View file

@ -1,6 +1,6 @@
{
"name": "sudo-flix",
"version": "4.6.3",
"version": "4.6.4",
"private": true,
"homepage": "https://sudo-flix.lol",
"scripts": {
@ -29,7 +29,7 @@
"@formkit/auto-animate": "^0.8.1",
"@headlessui/react": "^1.7.17",
"@ladjs/country-language": "^1.0.3",
"@movie-web/providers": "^2.2.5",
"@movie-web/providers": "^2.2.6",
"@noble/hashes": "^1.3.3",
"@plasmohq/messaging": "^0.6.1",
"@react-spring/web": "^9.7.3",

View file

@ -22,7 +22,7 @@ dependencies:
specifier: ^1.0.3
version: 1.0.3
'@movie-web/providers':
specifier: ^2.2.5
specifier: ^2.2.6
version: 2.2.6
'@noble/hashes':
specifier: ^1.3.3
@ -452,7 +452,6 @@ packages:
/@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3):
resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
'@babel/core': 7.24.3
@ -885,7 +884,6 @@ packages:
/@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3):
resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
@ -946,7 +944,6 @@ packages:
/@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3):
resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
@ -1644,7 +1641,6 @@ packages:
/@esbuild/linux-arm@0.20.2:
resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
@ -2666,7 +2662,6 @@ packages:
/array-includes@3.1.8:
resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.7
define-properties: 1.2.1
@ -5144,18 +5139,18 @@ packages:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
dev: true
/node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
/node-fetch-native@1.4.0:
resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==}
dev: false
/node-fetch-native@1.6.4:
resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
dev: false
/node-fetch@3.3.2:
resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
/node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
dependencies:
data-uri-to-buffer: 4.0.1
fetch-blob: 3.2.0
@ -5830,7 +5825,6 @@ packages:
/regenerate-unicode-properties@10.1.1:
resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
engines: {node: '>=4'}
dependencies:
regenerate: 1.4.2
dev: true

View file

@ -386,7 +386,7 @@
"badge": "اکستنشن غیر فعال شد",
"enableExtension": "اکستنشن را فعال کنید",
"homeButton": "خانه",
"text": "شما اکستنشن مووی-وب را نصب کردید. برای شروع استفاده از ان، شما نیاز به فعال کردن آن دارید",
"text": "شما اکستنشن مووی-وب را نصب کردید. برای شروع استفاده از ان، نیاز به فعال کردن آن دارید",
"title": "لطفا اکستنشن را فعال کنید"
},
"items": {

View file

@ -4,7 +4,7 @@
"faqTitle": "Pertanyaan umum",
"q1": {
"body": "sudo-flix tidak menyimpan berkas media apapun. Ketika anda mengklik sesuatu untuk ditonton, aplikasi akan mencari berkas media di internet (saat media dimuat dan pada tab 'sumber media' anda dapat melihat sumber mana yang digunakan). sudo-flix tidak pernah mengunggah media apapun, semua media didapat melalui mekanisme pencarian di internet.",
"title": "Dari mana konten media di sini berasal?"
"title": "Dari mana konten berasal?"
},
"q2": {
"body": "Kami tidak menerima permintaan penambahan serial televisi atau film, sudo-flix tidak mengelola konten apapun. Semua konten ditonton melalui sumber-sumber dari internet.",
@ -26,24 +26,24 @@
"deviceNamePlaceholder": "Perangkat personal",
"generate": {
"description": "Kombinasi kata ini berfungsi sebagai nama pengguna sekaligus kata sandi anda. Pastikan untuk menyimpannya dengan aman karena anda memerlukannya untuk masuk ke akun anda",
"next": "Saya sudah menyimpan kombinasi kata di atas",
"next": "Saya sudah menyimpan kombinasi kata",
"passphraseFrameLabel": "Kombinasi kata",
"title": "Kombinasi kata anda"
"title": "Kombinasi kata Anda"
},
"hasAccount": "Sudah memiliki akun? <0>Masuk disini.</0>",
"login": {
"description": "Mohon masukkan kombinasi kata anda untuk masuk ke akun anda",
"description": "Mohon masukkan kombinasi kata anda untuk masuk ke akun Anda",
"deviceLengthError": "Mohon masukkan nama perangkat",
"passphraseLabel": "12 kombinasi kata unik",
"passphrasePlaceholder": "Kombinasi kata",
"submit": "Masuk",
"title": "Masuk ke akun anda",
"validationError": "Kombinasi kata unik salah"
"title": "Masuk ke akun Anda",
"validationError": "Kombinasi kata salah atau tidak lengkap"
},
"register": {
"information": {
"color1": "Gradasi warna profil pertama",
"color2": "Gradasi warna profil kedua",
"color1": "Warna profil pertama",
"color2": "Warna profil kedua",
"header": "Masukkan nama perangkat anda lalu pilih warna latar belakang dan ikon pengguna yang ingin anda gunakan",
"icon": "Ikon pengguna",
"next": "Berikutnya",
@ -52,29 +52,31 @@
},
"trust": {
"failed": {
"text": "Apakah anda mengkonfigurasi server dengan benar?",
"text": "Apakah Anda mengkonfigurasi server dengan benar?",
"title": "Gagal terhubung dengan server"
},
"host": "Anda ingin terhubung ke <0>{{hostname}}</0> - mohon konfirmasi anda mempercayai server ini sebelum anda membuat akun",
"host": "Anda ingin terhubung ke <0>{{hostname}}</0> - mohon konfirmasi Anda mempercayai server ini sebelum Anda membuat akun",
"no": "Kembali",
"title": "Apakah anda mempercayai server ini?",
"yes": "Saya percaya"
"noHost": "Server belum dikonfigurasi, maka dari itu Anda tidak dapat membuat akun",
"noHostTitle": "Server belum dikonfigurasi!",
"title": "Apakah Anda mempercayai server ini?",
"yes": "Saya percaya server ini"
},
"verify": {
"description": "Mohon masukkan kombinasi kata pribadi anda sebelumnya untuk mengonfirmasi bahwa anda telah menyimpannya untuk melanjutkan proses pembuatan akun",
"description": "Mohon masukkan kombinasi kata pribadi Anda sebelumnya untuk mengonfirmasi bahwa Anda telah menyimpannya untuk melanjutkan proses pembuatan akun",
"invalidData": "Data tidak valid",
"noMatch": "Kombinasi kata tidak cocok",
"passphraseLabel": "12 kombinasi kata pribadi anda",
"passphraseLabel": "12 kombinasi kata Anda",
"recaptchaFailed": "Validasi reCaptcha gagal",
"register": "Buat akun",
"title": "Konfirmasi kombinasi kata pribadi anda"
"title": "Konfirmasi kombinasi kata Anda"
}
},
"errors": {
"badge": "Terjadi masalah",
"details": "Detail eror",
"details": "Rincian kesalahan",
"reloadPage": "Muat ulang halaman",
"showError": "Lihat detail eror",
"showError": "Lihat rincian kesalahan",
"title": "Kami mengalami galat!"
},
"footer": {
@ -87,7 +89,7 @@
"dmca": "DMCA",
"github": "GitHub"
},
"tagline": "Tonton serial televisi dan film favorit anda dengan aplikasi streaming open source ini."
"tagline": "Tonton serial televisi dan film favorit anda dengan aplikasi streaming sumber terbuka ini."
},
"global": {
"name": "sudo-flix",
@ -109,7 +111,7 @@
"sectionTitle": "Lanjut menonton"
},
"mediaList": {
"stopEditing": "Berhenti mengubah"
"stopEditing": "Berhenti menyunting"
},
"search": {
"allResults": "Hanya itu yang kami punya!",
@ -131,7 +133,7 @@
"day": {
"default": "Apa yang ingin anda tonton sore ini?",
"extra": [
"Lagi pengen nonton genre Adventure? Jurassic Park mungkin cocok buat anda."
"Merasa suka bertualang? Jurassic Park mungkin pilihan cocok untuk Anda."
]
},
"morning": {
@ -139,8 +141,8 @@
"extra": ["Kayaknya film Before Sunrise bagus deh"]
},
"night": {
"default": "Apa yang ingin anda tonton malam ini?",
"extra": ["Capek? Katanya The Exocist rekomended."]
"default": "Apa yang ingin Anda tonton malam ini?",
"extra": ["Capek? Saya dengar The Exocist bagus."]
}
}
},
@ -149,11 +151,12 @@
"types": {
"movie": "Film",
"show": "Serial TV"
}
},
"unreleased": "Belum dirilis"
},
"navigation": {
"banner": {
"offline": "Periksa koneksi internet anda"
"offline": "Periksa koneksi internet Anda"
},
"menu": {
"about": "Tentang kami",
@ -167,17 +170,67 @@
"notFound": {
"badge": "Tidak ditemukan",
"goHome": "Kembali",
"message": "Kami sudah mencari dimana-mana: di bawah tempat sampah, di lemari, di belakang server proxy, tapi tetap gagal menemukan halaman yang anda cari.",
"message": "Kami sudah mencari dimana-mana: di bawah tempat sampah, di lemari, di belakang server proxy, tetapi tidak dapat menemukan halaman yang Anda cari.",
"title": "Gagal menemukan halaman"
},
"onboarding": {
"defaultConfirm": {
"cancel": "Batal",
"title": "Apa kamu yakin?"
"confirm": "Gunakan pengaturan bawaan",
"description": "Pengaturan bawaan tidak memiliki streaming terbaik dan bisa menjadi sangat lambat.",
"title": "Apa Anda yakin?"
},
"extension": {
"back": "Kembali",
"explainerIos": "Sayangnya, ekstensi browser tidak didukung di iOS, Tekan <bold>Kembali<bold> untuk memilih opsi lain."
"explainer": "Menggunakan ekstensi browser, Anda dapat mendapatkan streaming terbaik yang kami tawarkan. Dengan instalasi sederhana.",
"explainerIos": "Sayangnya, ekstensi browser tidak didukung di iOS, Tekan <bold>Kembali<bold> untuk memilih opsi lain.",
"extensionHelp": "Jika Anda telah menginstal ekstensi tetapi tidak terdeteksi, <bold>buka ekstensi melalui menu ekstensi browser Anda</bold> dan ikuti instruksi di layar.",
"linkChrome": "Instal ekstensi Chrome",
"linkFirefox": "Instal ekstensi Firefox",
"notDetecting": "Terinstal di Chrome tetapi situs tidak mendeteksinya? Coba muat ulang halaman!",
"notDetectingAction": "Muat ulang halaman",
"status": {
"disallowed": "Ekstensi tidak diaktifkan untuk halaman ini",
"disallowedAction": "Aktifkan ekstensi",
"failed": "Gagal meminta status",
"loading": "Menunggu Anda menginstal ekstensi",
"outdated": "Versi ekstensi terlalu tua",
"success": "Ekstensi berkerja sesuai harapan!"
},
"submit": "Lanjutkan",
"title": "Mari mulai dengan ekstensi"
},
"proxy": {
"back": "Kembali",
"explainer": "Menggunakan metode proxy, Anda dapat mendapatkan streaming berkualitas baik dengan membuat layanan proxy mandiri.",
"input": {
"errorConnection": "Tidak dapat terhubung ke proxy",
"errorInvalidUrl": "URL tidak valid",
"errorNotProxy": "Mengharapkan proxy tapi menerima situs",
"label": "URL proxy",
"placeholder": "https://"
},
"link": "Belajar cara membuat proxy",
"title": "Mari buat proxy baru"
},
"start": {
"explainer": "Untuk mendapatkan streaming terbaik, Anda perlu memilih metode streaming yang Anda ingin gunakan.",
"options": {
"default": {
"text": "Saya tidak menginginkan streaming kualitas baik, <0 /> <1>gunakan pengaturan bawaan</1>"
},
"extension": {
"action": "Instal ekstensi",
"description": "Instal ekstensi browser dan dapatkan akses ke sumber terbaik.",
"quality": "Kualitas terbaik",
"title": "Ekstensi browser"
},
"proxy": {
"action": "Atur proxy",
"description": "Atur proxy dalam hanya 5 menit dan dapatkan akses ke sumber terbaik.",
"quality": "Kualitas baik"
}
}
}
},
"overlays": {
@ -193,12 +246,13 @@
},
"menus": {
"downloads": {
"copyHlsPlaylist": "Salin tautan daftar putar HLS",
"disclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan.",
"downloadSubtitle": "Unduh subtitle",
"downloadSubtitle": "Unduh subtitle saat ini",
"downloadVideo": "Unduh media",
"hlsDisclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan. Harap diperhatikan, anda akan mengunduh HLS playlist, media ini hanya ditunjukan bagi pengguna tingkat lanjut.",
"hlsDisclaimer": "Unduhan didapatkan langsung dari penyedia. sudo-flix tidak memiliki kendali bagaimana unduan disediakan.<br /><br />Harap diperhatikan bahwa Anda mengunduh daftar putar HLS, <bold>ini tidak direkomendasikan untuk diunduh jika Anda tidak terbiasa dengan format streaming tingkat lanjut</bold>Coba sumber berbeda untuk format berbeda.",
"onAndroid": {
"1": "Untuk mengunduh di Android, klik tombol unduh, lalu di halaman baru <bold>klik dan tahan</bold> pada video, lalu pilih <bold>save</bold>.",
"1": "Untuk mengunduh di Android, klik tombol unduh, lalu di halaman baru <bold>klik dan tahan</bold> pada video, lalu pilih <bold>simpan</bold>.",
"shortTitle": "Unduh / Android",
"title": "Unduh di Android"
},
@ -216,11 +270,12 @@
},
"episodes": {
"button": "Episode",
"emptyState": "Tidak ada episode di season ini, check lagi nanti!",
"emptyState": "Tidak ada episode di season ini, periksa kembali nanti!",
"episodeBadge": "E{{episode}}",
"loadingError": "Eror memuat season",
"loadingError": "Gagal memuat season",
"loadingList": "Memuat...",
"loadingTitle": "Memuat..."
"loadingTitle": "Memuat...",
"unairedEpisodes": "Satu atau lebih episode dalam season ini telah dinonaktifkan karena mereka belum ditayangkan."
},
"playback": {
"speedLabel": "Kecepatan pemutar",
@ -228,13 +283,13 @@
},
"quality": {
"automaticLabel": "Otomatis",
"hint": "Anda dapat mencoba <0>mengganti sumber media</0> untuk mendapatkan opsi kualitas yang berbeda.",
"iosNoQuality": "Karena keterbatasan dari Apple, opsi kualitas pada sumber ini tidak tersedia untuk iOS. Anda dapat mencoba <0>mengganti sumber media</0> untuk mendapatkan opsi kualitas yang berbeda.",
"hint": "Anda dapat mencoba <0>mengganti sumber</0> untuk mendapatkan opsi kualitas yang berbeda.",
"iosNoQuality": "Karena keterbatasan dari Apple, opsi kualitas pada sumber ini tidak tersedia untuk iOS. Anda dapat mencoba <0>mengganti sumber</0> untuk mendapatkan opsi kualitas yang berbeda.",
"title": "Kualitas"
},
"settings": {
"downloadItem": "Unduh",
"enableSubtitles": "Hidupkan subtitle",
"enableSubtitles": "Aktifkan subtitle",
"experienceSection": "Pengaturan tambahan",
"playbackItem": "Pengaturan pemutar",
"qualityItem": "Kualitas",
@ -244,22 +299,22 @@
},
"sources": {
"failed": {
"text": "Terjadi galat saat mencoba mencari media, mohon pilih sumber yang lain.",
"text": "Terjadi galat saat mencoba mencari media, mohon pilih sumber lain.",
"title": "Gagal memuat data"
},
"noEmbeds": {
"text": "Kami tidak dapat menemukan tautan, mohon pilih sumber yang lain.",
"text": "Kami tidak dapat menemukan tautan, mohon pilih sumber lain.",
"title": "Tautan tidak ditemukan"
},
"noStream": {
"text": "Sumber ini tidak memiliki media untuk film atau seri yang anda cari.",
"text": "Sumber ini tidak memiliki media untuk film atau seri yang Anda cari.",
"title": "Tidak ada media"
},
"title": "Sumber",
"unknownOption": "Tidak diketahui"
},
"subtitles": {
"customChoice": "Pilih subtitle dari file",
"customChoice": "Jatuhkan atau unggah berkas",
"customizeLabel": "Sesuaikan",
"offChoice": "Matikan",
"settings": {

View file

@ -138,15 +138,11 @@
},
"morning": {
"default": "O que você gostaria de assistir esta manhã?",
"extra": [
"Ouvi dizer que Antes do Amanhecer é bom"
]
"extra": ["Ouvi dizer que Antes do Amanhecer é bom"]
},
"night": {
"default": "O que você gostaria de assistir esta noite?",
"extra": [
"Cansado? Ouvi dizer que O Exorcista é bom."
]
"extra": ["Cansado? Ouvi dizer que O Exorcista é bom."]
}
}
},
@ -155,7 +151,8 @@
"types": {
"movie": "Filme",
"show": "Série"
}
},
"unreleased": "Não lançado"
},
"navigation": {
"banner": {
@ -381,6 +378,13 @@
"title": "Falha ao reproduzir o vídeo!"
},
"scraping": {
"extensionFailure": {
"badge": "Extensão desativada",
"enableExtension": "Ativar extensão",
"homeButton": "Ir para o início",
"text": "Você instalou a extensão sudo-flix. Para começar a usá-la, você precisa ativar a extensão neste site.",
"title": "Por favor, ative a extensão"
},
"items": {
"failure": "Ocorreu um erro",
"notFound": "Não tem o vídeo",

View file

@ -320,7 +320,7 @@
"unknownOption": "Неизвестный"
},
"subtitles": {
"customChoice": "Перетащите или загрузите файл",
"customChoice": "Перетащите файл или нажмите для загрузки",
"customizeLabel": "Настроить",
"dropSubtitleFile": "Перетащите файл субтитров",
"offChoice": "Выключить",

View file

@ -9,6 +9,7 @@ import { ExtensionMakeRequestResponse } from "@/backend/extension/plasmo";
export const RULE_IDS = {
PREPARE_STREAM: 1,
SET_DOMAINS_HLS: 2,
SET_DOMAINS_HLS_AUDIO: 3,
};
// for some reason, about 500 ms is needed after

View file

@ -135,13 +135,15 @@ export async function getLegacyMetaFromId(
throw err;
}
let imdbId = data.external_ids.find((v) => v.provider === "imdb_latest")
?.external_id;
let imdbId = data.external_ids.find(
(v) => v.provider === "imdb_latest",
)?.external_id;
if (!imdbId)
imdbId = data.external_ids.find((v) => v.provider === "imdb")?.external_id;
let tmdbId = data.external_ids.find((v) => v.provider === "tmdb_latest")
?.external_id;
let tmdbId = data.external_ids.find(
(v) => v.provider === "tmdb_latest",
)?.external_id;
if (!tmdbId)
tmdbId = data.external_ids.find((v) => v.provider === "tmdb")?.external_id;

View file

@ -191,6 +191,21 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
},
});
});
hls.on(Hls.Events.AUDIO_TRACK_LOADED, async (_, data) => {
const chunkUrlsDomains = data.details.fragments.map(
(v) => new URL(v.url).hostname,
);
const chunkUrls = [...new Set(chunkUrlsDomains)];
await setDomainRule({
ruleId: RULE_IDS.SET_DOMAINS_HLS_AUDIO,
targetDomains: chunkUrls,
requestHeaders: {
...src.preferredHeaders,
...src.headers,
},
});
});
}
});
hls.on(Hls.Events.LEVEL_SWITCHED, () => {