Skip to content

Commit

Permalink
vidsrcto restrore
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrii Pyvovarov committed Aug 20, 2024
1 parent bc99d19 commit 8fecd86
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 66 deletions.
9 changes: 8 additions & 1 deletion lib/content_suppliers/extrators/source/multi_api_keys.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,17 @@ part 'multi_api_keys.g.dart';
class ApiKeys {
final List<String>? chillx;
final List<KeyOps>? vidplay;
final List<KeyOps>? vidsrcto;
final List<KeyOps>? aniwave;
final List<KeyOps>? cinezone;

ApiKeys({this.chillx, this.vidplay, this.aniwave, this.cinezone});
ApiKeys({
this.chillx,
this.vidplay,
this.vidsrcto,
this.aniwave,
this.cinezone,
});

factory ApiKeys.fromJson(Map<String, dynamic> json) =>
_$ApiKeysFromJson(json);
Expand Down
3 changes: 3 additions & 0 deletions lib/content_suppliers/extrators/source/multi_api_keys.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 29 additions & 14 deletions lib/content_suppliers/extrators/source/vidsrcto.dart
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
import 'package:cloud_hook/content_suppliers/extrators/source/filemoon.dart';
import 'package:cloud_hook/content_suppliers/extrators/source/mp4upload.dart';
import 'package:cloud_hook/content_suppliers/extrators/source/multi_api_keys.dart';
import 'package:cloud_hook/content_suppliers/extrators/source/vidplay.dart';
import 'package:cloud_hook/content_suppliers/extrators/source/vidsrcto_api_keys.dart';
import 'package:cloud_hook/content_suppliers/model.dart';
import 'package:cloud_hook/content_suppliers/scrapper/scrapper.dart';
import 'package:cloud_hook/content_suppliers/scrapper/selectors.dart';
import 'package:cloud_hook/content_suppliers/utils.dart';
import 'package:cloud_hook/utils/logger.dart';
import 'package:dio/dio.dart';
import 'package:simple_rc4/simple_rc4.dart';

class VidSrcToSourceLoader
with VidSrcToServerMixin
implements ContentMediaItemSourceLoader {
final host = "vidsrc.to";
final host = "vidsrc2.to";
final String imdb;
final int? episode;
final int? season;
Expand All @@ -35,7 +34,7 @@ class VidSrcToSourceLoader
url = "$baseUrl/embed/tv/$imdb/$season/$episode";
}

final keys = await VidsrcToApiKeys.fetch();
final keys = await MultiApiKeys.fetch();

final mediaId = await Scrapper(
uri: Uri.parse(url),
Expand All @@ -48,7 +47,8 @@ class VidSrcToSourceLoader
}

final sourcesRes = await dio.get(
"$baseUrl/ajax/embed/episode/$mediaId/sources?token=${_encryptToken(mediaId, keys)}",
"$baseUrl/ajax/embed/episode/$mediaId/sources?token="
"${_encrypt(mediaId, keys.vidsrcto!)}",
options: Options(
headers: {...defaultHeaders},
),
Expand All @@ -74,10 +74,11 @@ class VidSrcToSourceLoader

@override
Future<String?> loadSource(String id) async {
final keys = await VidsrcToApiKeys.fetch();
final keys = await MultiApiKeys.fetch();

final sourceRes = await dio.get(
"$baseUrl/ajax/embed/source/$id?token=${_encryptToken(id, keys)}",
"$baseUrl/ajax/embed/source/$id?token="
"${_encrypt(id, keys.vidsrcto!)}",
options: Options(
headers: {
...defaultHeaders,
Expand All @@ -91,21 +92,32 @@ class VidSrcToSourceLoader
return null;
}

final rc4 = RC4(keys.decrypt[0]);
return Uri.decodeComponent(rc4.decodeString(encUrl));
return _decode(encUrl, keys.vidsrcto!);
}

@override
String toString() {
return "VidSrcToSourceLoader(imdb: $imdb, episode: $episode, season: $season)";
}

String _encryptToken(String id, ApiKeys keys) {
final chipher = RC4(keys.encrypt[0]);
String _encrypt(String data, List<KeyOps> ops) {
String out = data;

final encoded = chipher.encodeString(id);
for (var op in ops) {
out = op.encrypt(out);
}

return out;
}

String _decode(String data, List<KeyOps> ops) {
String out = data;

for (var op in ops.reversed) {
out = op.decrypt(out);
}

return encoded.replaceAll("/", "_");
return Uri.decodeComponent(out);
}
}

Expand All @@ -117,11 +129,14 @@ mixin VidSrcToServerMixin {
[String? descriptionPrefix]) async {
try {
return switch (serverName.toLowerCase()) {
"server 1" ||
"vidplay" ||
"vidstream" ||
"megaf" ||
"f2cloud" =>
"f2cloud" ||
"server 1" =>
await _extractVidplay(serverId, descriptionPrefix),
"server 2" ||
"filemoon" ||
"moonf" =>
await _extractFilemoon(serverId, referer, descriptionPrefix),
Expand Down
36 changes: 0 additions & 36 deletions lib/content_suppliers/extrators/source/vidsrcto_api_keys.dart

This file was deleted.

14 changes: 0 additions & 14 deletions lib/content_suppliers/extrators/source/vidsrcto_api_keys.g.dart

This file was deleted.

2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: cloud_hook
description: "Cloud Hooks"
publish_to: 'none'
version: 1.3.3
version: 1.3.4

isar_version: &isar_version 3.1.7
media_kit_version: &media_kit_version 50c510d
Expand Down

0 comments on commit 8fecd86

Please sign in to comment.