Add visitor count logic
This commit is contained in:
parent
9d678a2e7d
commit
63181a656a
44
main.rb
44
main.rb
|
@ -1,6 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require 'date'
|
require 'date'
|
||||||
|
require 'set'
|
||||||
|
|
||||||
logfile = File.open("teambuilder.pt.log")
|
logfile = File.open("teambuilder.pt.log")
|
||||||
data = logfile.read
|
data = logfile.read
|
||||||
|
@ -41,14 +42,45 @@ def times_appeared_single(ips, ip_to_check)
|
||||||
counter += 1
|
counter += 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
[counter]
|
counter
|
||||||
end
|
end
|
||||||
|
|
||||||
ips = []
|
def sort_unique_ip(ips)
|
||||||
|
|
||||||
|
# Hash para rastrear IPs únicos
|
||||||
|
seen_ips = {}
|
||||||
|
|
||||||
|
# Array para armazenar IPs únicos
|
||||||
|
unique_ips = []
|
||||||
|
|
||||||
|
# Itera sobre cada IP no array
|
||||||
|
ips.each do |ip|
|
||||||
|
# Verifica se o IP não está no hash
|
||||||
|
unless seen_ips[ip]
|
||||||
|
# Adiciona o IP ao array de IPs únicos
|
||||||
|
unique_ips << ip
|
||||||
|
# Marca o IP como visto no hash
|
||||||
|
seen_ips[ip] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
unique_ips
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
visit_counter = {}
|
||||||
|
|
||||||
|
all_ips = []
|
||||||
lines.each do | line |
|
lines.each do | line |
|
||||||
previous_ip = ""
|
all_ips << get_line_ip(line)
|
||||||
ips << get_line_ip(line)
|
|
||||||
|
|
||||||
puts get_line_ua(line)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
unique_ips = sort_unique_ip(all_ips)
|
||||||
|
|
||||||
|
puts("Houve um total de #{unique_ips.length} visitas registas ao nosso site.")
|
||||||
|
|
||||||
|
unique_ips.each do |ip|
|
||||||
|
visit_counter[ip] = times_appeared_single(all_ips, ip)
|
||||||
|
|
||||||
|
puts("O IP #{ip} contactou o nosso site #{times_appeared_single(all_ips, ip)} vezes.")
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue