fix: resolve video misclassification when filename contains 'audio' and remove legacy Kemono/Coomer providers
This commit is contained in:
@@ -111,5 +111,28 @@ void main() {
|
||||
expect(MediaUrlSelector.isAudio(photoPost), isFalse);
|
||||
expect(MediaUrlSelector.isVideo(photoPost), isFalse);
|
||||
});
|
||||
|
||||
test('MediaUrlSelector classifies mp4 containing "audio" in query parameter as video and not audio', () {
|
||||
final trickyVideoPost = Post(
|
||||
id: 'patreon:123:456:3',
|
||||
providerId: 'pawchive',
|
||||
providerName: 'Pawchive',
|
||||
previewUrl: '',
|
||||
sampleUrl: '',
|
||||
fileUrl:
|
||||
'https://file.pawchive.pw/data/b4/65/b465cb03ab7b26c0a677db3ae43500d1ef71e3e25151f160cda244c1fb40cfae.mp4?f=nsfw%202%20-%20audio%20spicy.mp4',
|
||||
tags: const ['patreon', 'artist', 'nsfw 2 - audio spicy'],
|
||||
rating: 'unknown',
|
||||
width: 1920,
|
||||
height: 1080,
|
||||
createdAt: DateTime.now(),
|
||||
fileType: 'video',
|
||||
score: 0,
|
||||
);
|
||||
|
||||
expect(MediaUrlSelector.isVideo(trickyVideoPost), isTrue);
|
||||
expect(MediaUrlSelector.isAudio(trickyVideoPost), isFalse);
|
||||
expect(MediaUrlSelector.video(trickyVideoPost), contains(trickyVideoPost.fileUrl));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import 'package:gel_rule_app/backend/mappers/moebooru_mapper.dart';
|
||||
import 'package:gel_rule_app/backend/mappers/rule34_mapper.dart';
|
||||
import 'package:gel_rule_app/backend/models/content_provider_config.dart';
|
||||
import 'package:gel_rule_app/backend/providers/custom_provider.dart';
|
||||
import 'package:gel_rule_app/backend/providers/kemono_provider.dart';
|
||||
import 'package:gel_rule_app/backend/providers/provider_factory.dart';
|
||||
import 'package:gel_rule_app/backend/providers/realbooru_html_provider.dart';
|
||||
import 'package:gel_rule_app/backend/repositories/provider_repository.dart';
|
||||
@@ -307,7 +306,7 @@ void main() {
|
||||
expect(provider, isA<RealbooruHtmlProvider>());
|
||||
});
|
||||
|
||||
test('provider factory creates Kemono and Coomer artist providers', () {
|
||||
test('provider factory treats removed Kemono and Coomer as unsupported', () {
|
||||
final now = DateTime(2026);
|
||||
for (final apiType in ['kemono', 'coomer']) {
|
||||
final provider = ProviderFactory().create(ContentProviderConfig(
|
||||
@@ -323,7 +322,7 @@ void main() {
|
||||
updatedAt: now,
|
||||
));
|
||||
|
||||
expect(provider, isA<KemonoProvider>());
|
||||
expect(provider, isA<UnsupportedCustomProvider>());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user