KissKh: add decrypt subtitle

This commit is contained in:
kodjomoustapha
2024-05-09 15:54:12 +01:00
parent 3ea7ace01e
commit a27d409abb
2 changed files with 39 additions and 12 deletions

View File

@@ -18,7 +18,7 @@ class KissKh extends MProvider {
List<MManga> animeList = []; List<MManga> animeList = [];
for (var data in datas) { for (var data in datas) {
MManga anime = MManga(); var anime = MManga();
anime.name = data["title"]; anime.name = data["title"];
anime.imageUrl = data["thumbnail"] ?? ""; anime.imageUrl = data["thumbnail"] ?? "";
anime.link = anime.link =
@@ -42,7 +42,7 @@ class KissKh extends MProvider {
List<MManga> animeList = []; List<MManga> animeList = [];
for (var data in datas) { for (var data in datas) {
MManga anime = MManga(); var anime = MManga();
anime.name = data["title"]; anime.name = data["title"];
anime.imageUrl = data["thumbnail"] ?? ""; anime.imageUrl = data["thumbnail"] ?? "";
anime.link = anime.link =
@@ -63,7 +63,7 @@ class KissKh extends MProvider {
final jsonRes = json.decode(res); final jsonRes = json.decode(res);
List<MManga> animeList = []; List<MManga> animeList = [];
for (var data in jsonRes) { for (var data in jsonRes) {
MManga anime = MManga(); var anime = MManga();
anime.name = data["title"]; anime.name = data["title"];
anime.imageUrl = data["thumbnail"] ?? ""; anime.imageUrl = data["thumbnail"] ?? "";
anime.link = anime.link =
@@ -79,7 +79,7 @@ class KissKh extends MProvider {
{"Ongoing": 0, "Completed": 1} {"Ongoing": 0, "Completed": 1}
]; ];
final res = (await client.get(Uri.parse(url))).body; final res = (await client.get(Uri.parse(url))).body;
MManga anime = MManga(); var anime = MManga();
final jsonRes = json.decode(res); final jsonRes = json.decode(res);
final status = jsonRes["status"] ?? ""; final status = jsonRes["status"] ?? "";
anime.description = jsonRes["description"]; anime.description = jsonRes["description"];
@@ -123,22 +123,24 @@ class KissKh extends MProvider {
final subRes = final subRes =
(await client.get(Uri.parse("${source.baseUrl}/api/Sub/$id"))).body; (await client.get(Uri.parse("${source.baseUrl}/api/Sub/$id"))).body;
var jsonSubRes = json.decode(subRes); var jsonSubRes = json.decode(subRes);
List<MTrack> subtitles = []; List<MTrack> subtitles = [];
for (var sub in jsonSubRes) { for (var sub in jsonSubRes) {
try { final subUrl = sub["src"] as String;
final subUrl = sub["src"]; final label = sub["label"];
final label = sub["label"]; if (subUrl.endsWith("txt")) {
MTrack subtitle = MTrack(); var subtitle = await getSubtitle(subUrl, label);
subtitles.add(subtitle);
} else {
var subtitle = MTrack();
subtitle subtitle
..label = label ..label = label
..file = subUrl; ..file = subUrl;
subtitles.add(subtitle); subtitles.add(subtitle);
} catch (_) {} }
} }
final videoUrl = jsonRes["Video"]; final videoUrl = jsonRes["Video"];
MVideo video = MVideo(); var video = MVideo();
video video
..url = videoUrl ..url = videoUrl
..originalUrl = videoUrl ..originalUrl = videoUrl
@@ -150,6 +152,31 @@ class KissKh extends MProvider {
}; };
return [video]; return [video];
} }
Future<MTrack> getSubtitle(String subUrl, String subLang) async {
final response = await client.get(Uri.parse(subUrl), headers: {
"referer": "https://kisskh.me/",
"origin": "https://kisskh.me"
});
final subtitleData = response.body;
String decrypted = "\n";
for (String line in subtitleData.split('\n')) {
decrypted += "${decrypt(line.trim())}\n";
}
var subtitle = MTrack();
subtitle
..label = subLang
..file = decrypted;
return subtitle;
}
String decrypt(String data) {
final key = utf8.decode(
[56, 48, 53, 54, 52, 56, 51, 54, 52, 54, 51, 50, 56, 55, 54, 51]);
final iv = utf8.decode(
[54, 56, 53, 50, 54, 49, 50, 51, 55, 48, 49, 56, 53, 50, 55, 51]);
return cryptoHandler(data, iv, key, false);
}
} }
KissKh main(MSource source) { KissKh main(MSource source) {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart'; import '../../../../../model/source.dart';
Source get kisskhSource => _kisskhSource; Source get kisskhSource => _kisskhSource;
const _kisskhVersion = "0.0.55"; const _kisskhVersion = "0.0.6";
const _kisskhSourceCodeUrl = const _kisskhSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/kisskh/kisskh.dart"; "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/kisskh/kisskh.dart";
Source _kisskhSource = Source( Source _kisskhSource = Source(