table.insert(row, {})
end
- local flatten_urls = function(...)
- return fun.totable(fun.map(function(k,_) return k end, ...))
+ local flatten_urls = function(f, ...)
+ return fun.totable(fun.map(function(k,v) return f(k,v) end, ...))
end
-- Urls step
- local urls_tlds = {}
local urls_urls = {}
if task:has_urls(false) then
for _,u in ipairs(task:get_urls(false)) do
- urls_tlds[u:get_tld()] = true
if settings['full_urls'] then
- urls_urls[u:get_text()] = true
+ urls_urls[u:get_text()] = u
else
- urls_urls[u:get_host()] = true
+ urls_urls[u:get_host()] = u
end
end
- table.insert(row, flatten_urls(urls_tlds))
- table.insert(row, flatten_urls(urls_urls))
+ -- Get tlds
+ table.insert(row, flatten_urls(function(_,u) return u:get_tld() end, urls_urls))
+ -- Get hosts/full urls
+ table.insert(row, flatten_urls(function(k, _) return k end, urls_urls))
else
table.insert(row, {})
table.insert(row, {})
-- Emails step
if task:has_urls(true) then
- table.insert(row, flatten_urls(fun.map(function(u)
- return string.format('%s@%s', u:get_user(), u:get_host()),true
- end, task:get_emails())))
+ table.insert(row, flatten_urls(function(k, _) return k end,
+ fun.map(function(u)
+ return string.format('%s@%s', u:get_user(), u:get_host()),true
+ end, task:get_emails())))
else
table.insert(row, {})
end