From 2a2e158226e0776c9b45193e0aa3d3b0ab62f540 Mon Sep 17 00:00:00 2001 From: Liliesh Date: Thu, 10 Jul 2025 22:02:52 +0200 Subject: [PATCH] Added firefox history summary --- .gitignore | 2 ++ firefox-history-summary/main.py | 43 +++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 .gitignore create mode 100644 firefox-history-summary/main.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7e130f0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.csv +*.json \ No newline at end of file diff --git a/firefox-history-summary/main.py b/firefox-history-summary/main.py new file mode 100644 index 0000000..ad8591e --- /dev/null +++ b/firefox-history-summary/main.py @@ -0,0 +1,43 @@ +import json +from urllib.parse import urlparse + +def sort_and_save_results(pages, fileName): + sortedpages = sorted(pages.items(), key=lambda x:x[1], reverse=True) + sorteddict = dict(sortedpages) + with open(f"{fileName}.csv", "w") as f: + f.write("page;visits\n") + for page, visits in sorteddict.items(): + f.write(f"{page};{str(visits)}\n") + +def get_results_by_url(history): + pages = {} + for i, hentry in enumerate(history): + pages[hentry["url"]] = hentry["vcount"] + sort_and_save_results(pages, "by-url") + +def get_results_by_domain(history): + pages = {} + for i, hentry in enumerate(history): + domain = urlparse(hentry["url"]).netloc + if domain not in pages: + pages[domain] = hentry["vcount"] + else: + pages[domain] = pages[domain] + hentry["vcount"] + + sort_and_save_results(pages, "by-domain") + +def main(): + with open('history.json', 'r') as file: + data = json.load(file) + + history = [] + + for entry in data: + history.append({"url": entry["url"], "title": entry["title"],"lvt": entry["lastVisitTime"],"vcount": entry["visitCount"]}) + + get_results_by_domain(history) + get_results_by_url(history) + + +if __name__ == "__main__": + main() \ No newline at end of file