Beispiel #1
0
    public async Task Search(ConsumeContext <ISearchMetadataCommand> context, SearchEngineType where)
    {
        var md5 = context.Message.Md5;

        _logger.LogTrace("Searching for {Md5} in {SearchEngine}", md5, where);

        var sw = new Stopwatch();

        sw.Start();
        var searchResults = await _arachneSearchService.Search(new Image(md5), where);

        sw.Stop();

        LogSearchResults(@where, searchResults, md5, sw);

        await SendUpdateMetadataCommand(context, searchResults);

        await _meidoReporter.ReportSearchResultsToHeadMaid(context, searchResults);
    }
Beispiel #2
0
    private void LogSearchResults(SearchEngineType @where, SearchResult searchResults, string md5, Stopwatch sw)
    {
        switch (searchResults)
        {
        case Metadata metadata:
            _logger.LogInformation(
                "Search result {Md5} in {SearchEngine}: {IsFound} ({Ms} ms)",
                md5,
                @where,
                metadata.IsFound.ToString(),
                sw.ElapsedMilliseconds);
            break;

        case SearchError error:
            _logger.LogWarning(
                "Search result {Md5} in {SearchEngine}: {IsFound} {SearchErrorMessage} ({Ms} ms)",
                md5,
                @where,
                "SearchError",
                error.Error,
                sw.ElapsedMilliseconds);
            break;
        }
    }