private void AddFeed(string uri, string title) { // TODO replace autodownload w/ actual default preference FeedsManager.Instance.FeedManager.CreateFeed(uri, title, FeedAutoDownload.None, 0); source.NotifyUser(); source.UpdateFeedMessages(); }
private void OnCommandLineArgument(string uri, object value, bool isFile) { if (!isFile || String.IsNullOrEmpty(uri)) { return; } // Handle OPML files if (uri.Contains("opml") || uri.EndsWith(".miro") || uri.EndsWith(".democracy")) { try { OpmlParser opml_parser = new OpmlParser(uri, true); foreach (string feed in opml_parser.Feeds) { ServiceManager.Get <DBusCommandService> ().PushFile(feed); } } catch (Exception e) { Log.Exception(e); } } else if (uri.Contains("xml") || uri.Contains("rss") || uri.Contains("feed") || uri.StartsWith("itpc") || uri.StartsWith("pcast")) { if (uri.StartsWith("feed://") || uri.StartsWith("itpc://")) { uri = String.Format("http://{0}", uri.Substring(7)); } else if (uri.StartsWith("pcast://")) { uri = String.Format("http://{0}", uri.Substring(8)); } // TODO replace autodownload w/ actual default preference FeedsManager.Instance.FeedManager.CreateFeed(uri, FeedAutoDownload.None); source.NotifyUser(); } else if (uri.StartsWith("itms://")) { System.Threading.ThreadPool.QueueUserWorkItem(delegate { try { string feed_url = new ItmsPodcast(uri).FeedUrl; if (feed_url != null) { ThreadAssist.ProxyToMain(delegate { FeedsManager.Instance.FeedManager.CreateFeed(feed_url, FeedAutoDownload.None); source.NotifyUser(); }); } } catch (Exception e) { Hyena.Log.Exception(e); } }); } }