haeki

Untitled

Nov 25th, 2020
624
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import json
  2.  
  3. def parse_verlauf():
  4.     with open("Wiedergabeverlauf.json", encoding='utf-8') as input_file:
  5.         verlauf = json.load(input_file)
  6.         videos = {}
  7.         channels = {}
  8.         entfernt_count = 0
  9.         for entry in verlauf:
  10.             if "titleUrl" in entry:
  11.                 if "subtitles" in entry:
  12.                     video_id = entry["titleUrl"].split("=")[-1]
  13.                     channel = entry["subtitles"][0]["name"]
  14.                     if channel in channels:
  15.                         channels[channel]["sum"] += 1
  16.                         if video_id not in videos:
  17.                             channels[channel]["unique"] += 1
  18.                     else:
  19.                         channels[channel] = {
  20.                             "sum": 1,
  21.                             "unique": 1
  22.                         }
  23.                 if video_id in videos:
  24.                     videos[video_id]["views"] += 1
  25.                 else:
  26.                     videos[video_id] = {
  27.                         "views": 1,
  28.                         "url": entry["titleUrl"],
  29.                         "title": entry["title"]
  30.                         }
  31.                 #else:
  32.                 #    print(entry)
  33.             else:
  34.                 if "entfernt" in entry["title"]:
  35.                     entfernt_count += 1
  36.                 #else:
  37.                 #    print(entry)
  38.         print(f"{entfernt_count} Entfernte Videos")
  39.         #sorted_videos= sorted([entry for entry in videos.values() if entry["views"] > 2], key=lambda entry: entry["views"], reverse=True)
  40.         #for video in sorted_videos:
  41.         #    print(video)
  42.         sorted_channels = sorted([(key, val["sum"], val["unique"], val["sum"]-val["unique"]) for key, val in channels.items() if val["sum"] > 4], key=lambda entry: entry[3], reverse=True)
  43.         for channel in sorted_channels:
  44.             print(f"{channel[0]}: {channel[1]} ({channel[2]}) {channel[3]}")
  45.  
  46. def parse_searches():
  47.     with open("Suchverlauf.json", encoding='utf-8') as input_file:
  48.         verlauf = json.load(input_file)
  49.         searches = {}
  50.         keyWords = {}
  51.         for entry in verlauf:
  52.             if "titleUrl" in entry:
  53.                 search_id = entry["titleUrl"].split("=")[-1]
  54.                 if search_id in searches:
  55.                     searches[search_id]["count"] += 1
  56.                 else:
  57.                     searches[search_id] = {
  58.                         "count": 1,
  59.                         "url": entry["titleUrl"],
  60.                         "title": entry["title"]
  61.                         }
  62.                 for keyWord in search_id.split("+"):
  63.                     if keyWord in keyWords:
  64.                         keyWords[keyWord] += 1
  65.                     else:
  66.                         keyWords[keyWord] = 1
  67.             else:
  68.                 print(entry)
  69.            
  70.         sorted_searches= sorted([entry for entry in searches.values() if entry["count"] > 2], key=lambda entry: entry["count"], reverse=True)
  71.         for search in sorted_searches:
  72.             print(search)
  73.         sorted_keyWords = sorted([(key, count) for key, count in keyWords.items() if count > 4], key=lambda entry: entry[1], reverse=True)
  74.         for keyWord in sorted_keyWords:
  75.             print(f"{keyWord[0]}: {keyWord[1]}")
  76.  
  77.  
  78. if __name__ == "__main__":
  79.     parse_verlauf()
  80.     #parse_searches()
RAW Paste Data