110 lines
3.0 KiB
Plaintext
110 lines
3.0 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import os\n",
|
|
"from datetime import datetime\n",
|
|
"import random\n",
|
|
"from pprint import pprint"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Total: 445582\n",
|
|
"Total Populated: 442034 (99.20%)\n",
|
|
"Total New: 130411 (29.27%)\n",
|
|
"{'conn_country': 'GB',\n",
|
|
" 'episode_name': None,\n",
|
|
" 'episode_show_name': None,\n",
|
|
" 'incognito_mode': False,\n",
|
|
" 'ip_addr_decrypted': '82.132.244.90',\n",
|
|
" 'master_metadata_album_album_name': 'Tales Told By Dead Friends',\n",
|
|
" 'master_metadata_album_artist_name': 'Mayday Parade',\n",
|
|
" 'master_metadata_track_name': 'Three Cheers For Five Years',\n",
|
|
" 'ms_played': 33274,\n",
|
|
" 'offline': False,\n",
|
|
" 'offline_timestamp': 0,\n",
|
|
" 'platform': 'iOS 9.2.1 (iPhone7,1)',\n",
|
|
" 'reason_end': 'fwdbtn',\n",
|
|
" 'reason_start': 'fwdbtn',\n",
|
|
" 'shuffle': True,\n",
|
|
" 'skipped': True,\n",
|
|
" 'spotify_episode_uri': None,\n",
|
|
" 'spotify_track_uri': 'spotify:track:1aw8gphDUzqalHEi9Z8M38',\n",
|
|
" 'ts': '2016-02-11T08:13:55Z',\n",
|
|
" 'user_agent_decrypted': 'unknown',\n",
|
|
" 'username': 'sarsoo'}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"data = []\n",
|
|
"data_with_names = []\n",
|
|
"new_data = []\n",
|
|
"\n",
|
|
"folder = '/Users/andy/lab/backups/spotify-2022-03-07'\n",
|
|
"\n",
|
|
"for i in os.listdir(folder):\n",
|
|
" if i.startswith('endsong_'):\n",
|
|
" with open(f'{folder}/{i}') as f:\n",
|
|
" data += json.loads(f.read())\n",
|
|
"\n",
|
|
"data.sort(key = lambda a: a['ts'])\n",
|
|
"data_with_names = [i for i in data if i['master_metadata_track_name'] is not None]\n",
|
|
"new_data = [i for i in data_with_names if datetime.fromisoformat(i['ts'].split('T')[0]) < datetime(2017, 11, 3)]\n",
|
|
"\n",
|
|
"print(f'Total: {len(data)}')\n",
|
|
"print(f'Total Populated: {len(data_with_names)} ({len(data_with_names)/len(data)*100:.2f}%)')\n",
|
|
"print(f'Total New: {len(new_data)} ({len(new_data)/len(data)*100:.2f}%)')\n",
|
|
"\n",
|
|
"pprint(random.choice(new_data))\n",
|
|
"# print(min(i[0] for i in data))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"interpreter": {
|
|
"hash": "a0a5145e6c304e2a9afaf5b930a2955b950bd4b81fe94f7c42930f43f42762eb"
|
|
},
|
|
"kernelspec": {
|
|
"display_name": "Python 3.10.7 64-bit",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.10.4"
|
|
},
|
|
"orig_nbformat": 4
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|