import 'dart:convert'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:flutter/material.dart'; import 'package:notube/constants.dart'; import 'package:notube/models/video.dart'; import 'package:notube/services/download.dart'; part 'dl_form_state.dart'; class DlFormCubit extends Cubit { DlFormCubit() : super(DlFormInitial()); late DLServices dlService; void setFormat(Format newFormat) { emit(state.copyWith( format: newFormat, )); print(newFormat); } void setUrl(String newUrl) { emit(state.copyWith( url: newUrl, )); } void parseUrl() async { dlService = await DLServices.init(); var shellStream = await dlService.analyseUrl(state.url); shellStream.listen((line) { if (line[0] == '{') { var dataInfos = jsonDecode(line); var extractor = dataInfos['extractor_key']; var isPlaylist = dataInfos['_type'] == 'playlist'; var videos =