public string GetUrl(string id, string contentTypeId) { var contentType = ContentTypeProvider.Get(contentTypeId); var content = ContainerSpecificContentGetter.Get <IContent>(id, null, contentType.Container); return(UrlProvider.Get(content)); }
public async Task InvokeAsync(string url, string html) { var uri = UrlProvider.Get(url); if (uri == null) { Logger?.Error("没有获取到网址"); return; } var rules = RuleProvider.Get(url); if (rules == null || rules.Count < 1) { Logger?.Error("没有获取到规则"); return; } UrlProvider.UpdateItem(uri, UriStatus.DOING); var success = true; Paused = false; PausedChanged?.Invoke(Paused); foreach (var item in rules) { var con = GetContainer(uri, PluginLoader.Render(item.Rules)); con.Data = new RuleString(html); try { await con.NextAsync(); } catch (Exception ex) { success = false; Logger?.Error(ex.Message); } } UrlProvider.UpdateItem(uri, success ? UriStatus.DONE : UriStatus.ERROR); Paused = true; PausedChanged?.Invoke(Paused); }