12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/fetch_util/regulatory/orchestration.rb', line 12
def call(url)
requested_uri = parse_http_uri(url)
origin_query = origin_query?(requested_uri)
query_target = request_target(requested_uri)
effective_query_target = query_target
selected_sources = resolve_sources(@source_tokens)
result = {}
policy_refs = []
if needs_tdmrep_fetch?(selected_sources)
record = tdmrep_record(requested_uri)
if selected_sources.include?("tdmrep")
add_source_payload(result, "tdmrep", scoped_signals(record["signals"], origin_query: origin_query, query_target: query_target))
end
policy_refs.concat(record["policies"])
end
if selected_sources.include?("trusttxt")
record = trusttxt_record(requested_uri)
add_source_payload(result, "trusttxt", scoped_signals(record["signals"], origin_query: origin_query, query_target: query_target))
end
if needs_robots_fetch?(selected_sources)
record = robots_record(requested_uri)
%w[robotstxt contentsignal contentusagerobots].each do |source|
next unless selected_sources.include?(source)
add_source_payload(
result,
source,
scoped_signals(record.dig("signals", source), origin_query: origin_query, query_target: query_target)
)
end
end
if needs_page_fetch?(selected_sources)
record = page_record(requested_uri)
effective_query_target = page_query_target(record, fallback: query_target)
%w[xrobotstag metarobots tdmheaders tdmmeta contentusageheader human].each do |source|
next unless selected_sources.include?(source)
add_source_payload(
result,
source,
scoped_signals(record.dig("signals", source), origin_query: origin_query, query_target: effective_query_target)
)
end
policy_refs.concat(record["policies"])
end
if selected_sources.include?("tdmpolicy")
add_source_payload(
result,
"tdmpolicy",
scoped_signals(expanded_tdm_policy_signals(policy_refs), origin_query: origin_query, query_target: effective_query_target)
)
end
result
end
|