Пример #1
0
        public JMMPluginResult <List <JMMPluginDownloadLink> > Search(string text, Guid pluginguid)
        {
            IJMMPluginSearch     se    = plugins.List.FirstOrDefault(a => a.Guid == pluginguid) as IJMMPluginSearch;
            JMMPluginPreferences prefs = Settings.Default.Preferences.First(a => a.Guid == pluginguid);

            if ((se == null) || (!prefs.Enabled))
            {
                return new JMMPluginResult <List <JMMPluginDownloadLink> > {
                           Error = "The search plugin asked is not active", Ok = false
                }
            }
            ;
            return(se.Search(text));
        }
Пример #2
0
        public JMMPluginResult <List <JMMPluginDownloadLink> > Search(string text, JMMPluginDownloadTypes type)
        {
            JMMPluginResult <List <JMMPluginDownloadLink> > res = new JMMPluginResult <List <JMMPluginDownloadLink> >();

            res.Result = new List <JMMPluginDownloadLink>();
            res.Ok     = true;
            Dictionary <Guid, int> d = pluginorder[JMMPluginTypes.Search].OrderBy(a => a.Value).ToDictionary(a => a.Key, a => a.Value);

            foreach (Guid g in d.Keys.ToList())
            {
                JMMPluginPreferences prefs = Settings.Default.Preferences.First(a => a.Guid == g);

                if (!prefs.Enabled)
                {
                    d.Remove(g);
                }
                IJMMPluginSearch se = plugins.List.FirstOrDefault(a => a.Guid == g) as IJMMPluginSearch;
                if ((se == null) || (se.SupportedDownloadTypes & type) == 0)
                {
                    d.Remove(g);
                }
            }
            if (d.Count == 0)
            {
                return new JMMPluginResult <List <JMMPluginDownloadLink> > {
                           Error = "There is no search plugins active or matching the download types", Ok = false
                }
            }
            ;
            foreach (Guid g in d.Keys)
            {
                IJMMPluginSearch se = plugins.List.FirstOrDefault(a => a.Guid == g) as IJMMPluginSearch;

                if (se != null)
                {
                    JMMPluginResult <List <JMMPluginDownloadLink> > m = se.Search(text);
                    if (!m.Ok)
                    {
                        return(m);
                    }
                    res.Result.AddRange(m.Result);
                }
            }
            return(res);
        }
    }