mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
74 lines
1.5 KiB
Dart
74 lines
1.5 KiB
Dart
import 'package:hive/hive.dart';
|
|
import 'package:youtube_explode_dart/youtube_explode_dart.dart';
|
|
|
|
part 'CacheTrack.g.dart';
|
|
|
|
@HiveType(typeId: 2)
|
|
class CacheTrackEngagement {
|
|
@HiveField(0)
|
|
late int viewCount;
|
|
|
|
@HiveField(1)
|
|
late int? likeCount;
|
|
|
|
@HiveField(2)
|
|
late int? dislikeCount;
|
|
|
|
CacheTrackEngagement();
|
|
|
|
CacheTrackEngagement.fromEngagement(Engagement engagement)
|
|
: viewCount = engagement.viewCount,
|
|
likeCount = engagement.likeCount,
|
|
dislikeCount = engagement.dislikeCount;
|
|
}
|
|
|
|
@HiveType(typeId: 1)
|
|
class CacheTrack extends HiveObject {
|
|
@HiveField(0)
|
|
late String id;
|
|
|
|
@HiveField(1)
|
|
late String title;
|
|
|
|
@HiveField(2)
|
|
late String channelId;
|
|
|
|
@HiveField(3)
|
|
late String? uploadDate;
|
|
|
|
@HiveField(4)
|
|
late String? publishDate;
|
|
|
|
@HiveField(5)
|
|
late String description;
|
|
|
|
@HiveField(6)
|
|
late String? duration;
|
|
|
|
@HiveField(7)
|
|
late List<String>? keywords;
|
|
|
|
@HiveField(8)
|
|
late CacheTrackEngagement engagement;
|
|
|
|
@HiveField(9)
|
|
late String mode;
|
|
|
|
@HiveField(10)
|
|
late String author;
|
|
|
|
CacheTrack();
|
|
|
|
CacheTrack.fromVideo(Video video, this.mode)
|
|
: id = video.id.value,
|
|
title = video.title,
|
|
author = video.author,
|
|
channelId = video.channelId.value,
|
|
uploadDate = video.uploadDate.toString(),
|
|
publishDate = video.publishDate.toString(),
|
|
description = video.description,
|
|
duration = video.duration.toString(),
|
|
keywords = video.keywords,
|
|
engagement = CacheTrackEngagement.fromEngagement(video.engagement);
|
|
}
|