added switch endpoint fix

This commit is contained in:
stratuma 2024-05-22 11:28:15 +02:00
parent a22f70a017
commit b749f22ae9

View File

@ -16,6 +16,17 @@ const crErrors = [
// Crunchyroll Login Handler
export async function crunchyLogin(user: string, passw: string, geo: string) {
var endpoint = await settings.get('CREndpoint')
const drmL3blob = await settings.get('l3blob')
const drmL3key = await settings.get('l3key')
if (!drmL3blob || !drmL3key) {
await settings.set('CREndpoint', 1)
endpoint = 1
}
const cachedData:
| {
access_token: string
@ -27,7 +38,7 @@ export async function crunchyLogin(user: string, passw: string, geo: string) {
account_id: string
profile_id: string
}
| undefined = server.CacheController.get(`crtoken-${geo}`)
| undefined = server.CacheController.get(`crtoken-${geo}-${endpoint}`)
if (!cachedData) {
if (geo === 'LOCAL') {
@ -35,7 +46,7 @@ export async function crunchyLogin(user: string, passw: string, geo: string) {
if (!data) return
server.CacheController.set(`crtoken-${geo}`, data, data.expires_in - 30)
server.CacheController.set(`crtoken-${geo}-${endpoint}`, data, data.expires_in - 30)
return data
}
@ -45,7 +56,7 @@ export async function crunchyLogin(user: string, passw: string, geo: string) {
if (!data) return
server.CacheController.set(`crtoken-${geo}`, data, data.expires_in - 30)
server.CacheController.set(`crtoken-${geo}-${endpoint}`, data, data.expires_in - 30)
return data
}
@ -114,6 +125,23 @@ async function crunchyLoginFetchProxy(user: string, passw: string, geo: string)
}
}
if (endpoint === 1) {
headers = {
Authorization: 'Basic dC1rZGdwMmg4YzNqdWI4Zm4wZnE6eWZMRGZNZnJZdktYaDRKWFMxTEVJMmNDcXUxdjVXYW4=',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27'
}
body = {
username: user,
password: passw,
grant_type: 'password',
scope: 'offline_access',
device_name: 'RMX2170',
device_type: 'realme RMX2170'
}
}
if (!headers || !body) return
try {
@ -183,6 +211,23 @@ async function crunchyLoginFetch(user: string, passw: string) {
}
}
if (endpoint === 1) {
headers = {
Authorization: 'Basic dC1rZGdwMmg4YzNqdWI4Zm4wZnE6eWZMRGZNZnJZdktYaDRKWFMxTEVJMmNDcXUxdjVXYW4=',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27'
}
body = {
username: user,
password: passw,
grant_type: 'password',
scope: 'offline_access',
device_name: 'RMX2170',
device_type: 'realme RMX2170'
}
}
if (!headers || !body) return
try {
@ -328,7 +373,8 @@ export async function crunchyGetPlaylist(q: string, geo: string | undefined) {
const headersLoc = {
Authorization: `Bearer ${login.access_token}`,
'X-Cr-Disable-Drm': 'true'
'X-Cr-Disable-Drm': 'true',
'User-Agent': 'Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27',
}
var playlist: VideoPlaylist
@ -379,7 +425,8 @@ export async function crunchyGetPlaylist(q: string, geo: string | undefined) {
const headers = {
Authorization: `Bearer ${logindata.access_token}`,
'X-Cr-Disable-Drm': 'true'
'X-Cr-Disable-Drm': 'true',
'User-Agent': 'Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27',
}
const response = await fetch(
@ -434,7 +481,8 @@ export async function deleteVideoToken(content: string, token: string) {
if (!login) return
const headers = {
Authorization: `Bearer ${login.access_token}`
Authorization: `Bearer ${login.access_token}`,
'User-Agent': 'Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27',
}
try {
@ -473,7 +521,8 @@ export async function crunchyGetPlaylistMPD(q: string, geo: string | undefined)
if (!login) return
const headers = {
Authorization: `Bearer ${login.access_token}`
Authorization: `Bearer ${login.access_token}`,
'User-Agent': 'Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27',
}
try {