| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import 'dart:io';
- import 'dart:typed_data';
- import 'package:f_cache/manager.dart';
- import 'package:http/http.dart' as http;
- import '../utils.dart';
- import '../pb.dart' as pb;
- class MNetImage{
- String url = '';
- Uint8List md5 = Uint8List(0);
- Uint8List? data;
- int? timestamp;
- var ext = '';
- Uint8List nonce = Uint8List(0);
- String? get md5Hex {
- if(md5.isEmpty){
- return null;
- }else{
- return md5.toHexString();
- }
- }
- Future<Reader> readerBuilder()async{
- final url = Uri.parse(this.url);
- var request = http.Request('GET', url);
- var response = await request.send();
- if (response.statusCode != 200) {
- throw HttpException('state: ${response.statusCode}', uri: url);
- }
- final length = response.contentLength ?? 0;
- return Reader(response.stream, length);
- }
- Future<void> preload()async{
- await CacheManager().getCached(id: md5Hex ?? '', readerBuilder: readerBuilder);
- }
- }
- extension PbNetImageExtension on pb.NetImage{
- MNetImage toModel(){
- return MNetImage()
- ..url = url
- ..md5 = Uint8List.fromList(md5);
- }
- }
|