diff --git a/lib/home/home_menu.dart b/lib/home/home_menu.dart index b36f451..0613a8b 100644 --- a/lib/home/home_menu.dart +++ b/lib/home/home_menu.dart @@ -54,6 +54,7 @@ class _PopupMenuState extends State { void _saveOmpl(String path) async { var subscribeWorker = Provider.of(context, listen: false); + RegExp rssExp = RegExp(r'^(https?):\/\/(.*)'); final s = context.s; File file = File(path); try { @@ -63,9 +64,9 @@ class _PopupMenuState extends State { print(title); var list = entry.value.reversed; for (var rss in list) { - if (rss.xmlUrl != null) { - SubscribeItem item = - SubscribeItem(rss.xmlUrl, rss.text, group: title); + String rssLink = rssExp.stringMatch(rss.xmlUrl); + if (rssLink != null) { + SubscribeItem item = SubscribeItem(rssLink, rss.text, group: title); await subscribeWorker.setSubscribeItem(item); await Future.delayed(Duration(milliseconds: 200)); print(rss.text); diff --git a/lib/home/search_podcast.dart b/lib/home/search_podcast.dart index 531e918..247a874 100644 --- a/lib/home/search_podcast.dart +++ b/lib/home/search_podcast.dart @@ -76,7 +76,7 @@ class MyHomePageDelegate extends SearchDelegate { child: Container( padding: EdgeInsets.only(top: 400), child: Image( - image: Theme.of(context).brightness == Brightness.light + image: context.brightness == Brightness.light ? AssetImage('assets/listennotes.png') : AssetImage('assets/listennotes_light.png'), height: 20, diff --git a/lib/state/podcast_group.dart b/lib/state/podcast_group.dart index 4c04a48..51736b7 100644 --- a/lib/state/podcast_group.dart +++ b/lib/state/podcast_group.dart @@ -425,7 +425,7 @@ Future subIsolateEntryPoint(SendPort sendPort) async { var dbHelper = DBHelper(); String rss = item.url; sendPort.send([item.title, item.url, 1]); - BaseOptions options = new BaseOptions( + BaseOptions options = BaseOptions( connectTimeout: 20000, receiveTimeout: 20000, ); @@ -436,7 +436,7 @@ Future subIsolateEntryPoint(SendPort sendPort) async { RssFeed p; try { p = RssFeed.parse(response.data); - } on ArgumentError catch (e) { + } catch (e) { print(e); sendPort.send([item.title, item.url, 6]); await Future.delayed(Duration(seconds: 2)); @@ -460,16 +460,21 @@ Future subIsolateEntryPoint(SendPort sendPort) async { img.Image thumbnail; String imageUrl; try { - Response> imageResponse = await Dio().get>( - p.itunes.image.href, - options: Options(responseType: ResponseType.bytes)); + Response> imageResponse = + await Dio().get>(p.itunes.image.href, + options: Options( + responseType: ResponseType.bytes, + receiveTimeout: 60000, + )); imageUrl = p.itunes.image.href; img.Image image = img.decodeImage(imageResponse.data); thumbnail = img.copyResize(image, width: 300); } catch (e) { try { - Response> imageResponse = await Dio().get>( - item.imgUrl, + Response> imageResponse = await Dio(BaseOptions( + connectTimeout: 20000, + receiveTimeout: 60000, + )).get>(item.imgUrl, options: Options(responseType: ResponseType.bytes)); imageUrl = item.imgUrl; img.Image image = img.decodeImage(imageResponse.data); @@ -543,7 +548,7 @@ Future subIsolateEntryPoint(SendPort sendPort) async { } else sendPort.send("done"); } - } on DioError catch (e) { + } catch (e) { print(e); sendPort.send([item.title, item.url, 6]); await Future.delayed(Duration(seconds: 2));