Last active
January 18, 2020 04:20
-
-
Save tovask/f8ccd573a950fc47e3aaa311a8f012b9 to your computer and use it in GitHub Desktop.
Analyze block lists changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Analyze lists changes from [PyFunceble](https://github.com/funilrys/PyFunceble)'s repo's git history" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"> ### Jupyter help:\n", | |
"> \n", | |
"> Outline of some basics:\n", | |
"> \n", | |
"> * [Notebook Basics](https://nbviewer.jupyter.org/github/ipython/ipython-in-depth/blob/master/examples/Notebook/Notebook%20Basics.ipynb)\n", | |
"> * [IPython - beyond plain python](https://nbviewer.jupyter.org/github/ipython/ipython-in-depth/blob/master/examples/IPython%20Kernel/Beyond%20Plain%20Python.ipynb)\n", | |
"> * [Markdown Cells](https://nbviewer.jupyter.org/github/ipython/ipython-in-depth/blob/master/examples/Notebook/Working%20With%20Markdown%20Cells.ipynb)\n", | |
"> * [Rich Display System](https://nbviewer.jupyter.org/github/ipython/ipython-in-depth/blob/master/examples/IPython%20Kernel/Rich%20Output.ipynb)\n", | |
"> * [Custom Display logic](https://nbviewer.jupyter.org/github/ipython/ipython-in-depth/blob/master/examples/IPython%20Kernel/Custom%20Display%20Logic.ipynb)\n", | |
"> * [Running a Secure Public Notebook Server](https://nbviewer.jupyter.org/github/ipython/ipython-in-depth/blob/master/examples/Notebook/Running%20the%20Notebook%20Server.ipynb#Securing-the-notebook-server)\n", | |
"> * [How Jupyter works](https://nbviewer.jupyter.org/github/ipython/ipython-in-depth/blob/master/examples/Notebook/Multiple%20Languages%2C%20Frontends.ipynb) to run code in different languages." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Sources:\n", | |
"### [Ultimate Hosts Blacklist](https://github.com/Ultimate-Hosts-Blacklist)\n", | |
"Repositories for testing lists\n", | |
"\n", | |
"### [Dead Host](https://github.com/dead-hosts)\n", | |
"Repositories for testing [PyFunceble](https://github.com/funilrys/PyFunceble)\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Define whitch list (repo) will be analyzed (e.g. [Ads_Disconnect.me](https://github.com/Ultimate-Hosts-Blacklist/Ads_Disconnect.me))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"repo_url = \"https://github.com/Ultimate-Hosts-Blacklist/yoyo.org_domains\"\n", | |
"repo_dir = repo_url.split('/')[-1]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Download the latest version" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Fetching origin\n", | |
"HEAD is now at 4616264b [Results] Testing for Ultimate Hosts Blacklist [ci skip]\n" | |
] | |
} | |
], | |
"source": [ | |
"import os\n", | |
"if not os.path.exists(repo_dir):\n", | |
" !git clone $repo_url $repo_dir\n", | |
" os.chdir(repo_dir)\n", | |
"else:\n", | |
" os.chdir(repo_dir)\n", | |
" #!git pull origin master\n", | |
" !git fetch --all\n", | |
" !git reset --hard origin/master" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Get the interesting commits\n", | |
"(Not only final results commited, the state is autosaved periodically (every 15 minutes), see: [PyFunceble/auto_save.py](https://github.com/funilrys/PyFunceble/blob/master/PyFunceble/auto_save.py))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"git_log_format_param = \"--format=format:\\\"%H %T %at\\\"\"\n", | |
"def get_git_commits(git_log_command):\n", | |
" !git reset --hard origin/master\n", | |
" git_log = !{git_log_command}\n", | |
" return [{'commit_hash':commit[0],'tree_hash':commit[1],'timestamp':commit[2]} for commit in [ line.split(' ') for line in git_log] ]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"HEAD is now at 4616264b [Results] Testing for Ultimate Hosts Blacklist [ci skip]\r\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"190" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"result_commits = get_git_commits(\"git log --grep=\\\" \\\\[ci skip\\\\]\\\" \"+git_log_format_param)\n", | |
"len(result_commits)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Go back to the interesting commits, and get the status there" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Check if the process finished \n", | |
"[continue.json](https://github.com/Ultimate-Hosts-Blacklist/repository-structure/blob/master/output/continue.json)\n", | |
"[info.json](https://github.com/Ultimate-Hosts-Blacklist/repository-structure/blob/master/info.json)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import json\n", | |
"\n", | |
"def check_not_in_continue():\n", | |
" with open('output/continue.json') as fd:\n", | |
" for list_file,status in json.load(fd).items():\n", | |
" if sum([count for s,count in status.items()]) != 0:\n", | |
" print('Warning: continue status not 0!',list_file,status)\n", | |
" !git log -n 1\n", | |
"\n", | |
"def check_test_finished():\n", | |
" with open('info.json') as fd:\n", | |
" for key,value in json.load(fd).items():\n", | |
" if key == \"currently_under_test\":\n", | |
" if value=='0':\n", | |
" return True\n", | |
" else:\n", | |
" print(\"Warning! Test not finished! \"+value)\n", | |
" !git log -n 1\n", | |
" return False\n", | |
" print(\"Warning! 'currently_under_test' not found in 'info.json'\")\n", | |
" return False" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"helper for parse [percentage.txt](https://github.com/Ultimate-Hosts-Blacklist/repository-structure/blob/master/output/logs/percentage/percentage.txt)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import re\n", | |
"def parse_percentage():\n", | |
" percentage = {}\n", | |
" with open('output/logs/percentage/percentage.txt') as fd:\n", | |
" for line in fd:\n", | |
" m = re.search(r'(?P<status>ACTIVE|INACTIVE|INVALID)\\s*(?P<percentage>\\d*)%\\s*(?P<numbers>\\d*)',line)\n", | |
" if not m:\n", | |
" continue\n", | |
" #percentage[ m.group('status') ] = m.groupdict()\n", | |
" percentage[ m.group('status') ] = {}\n", | |
" percentage[ m.group('status') ]['percentage'] = int(m.group('percentage'))\n", | |
" percentage[ m.group('status') ]['numbers'] = int(m.group('numbers'))\n", | |
" percentage['SUM_NUMBERS'] = sum([values['numbers'] for status,values in percentage.items()])\n", | |
" return percentage\n", | |
"# parse_percentage()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"loop throught the commits" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
".............................................................................................................................................................................................." | |
] | |
} | |
], | |
"source": [ | |
"percentages = {}\n", | |
"for commit in result_commits:\n", | |
" print('.', end='', flush=True)\n", | |
" !git checkout -q {commit['commit_hash']} # bring back the repo to that commit\n", | |
" #check_not_in_continue() # safety, but how cares\n", | |
" #check_test_finished() # safety, but how cares\n", | |
" percentages[ commit['timestamp'] ] = parse_percentage()\n", | |
"# print(percentages)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'ACTIVE': {'percentage': 86, 'numbers': 4267},\n", | |
" 'INACTIVE': {'percentage': 13, 'numbers': 642},\n", | |
" 'INVALID': {'percentage': 0, 'numbers': 19},\n", | |
" 'SUM_NUMBERS': 4928}" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"percentages[list(percentages.keys())[0]]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"#### Get the original lists changes" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"HEAD is now at 4616264b [Results] Testing for Ultimate Hosts Blacklist [ci skip]\r\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"80" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"domains_change_commits = get_git_commits(\"git log \"+git_log_format_param+\" domains.list\")\n", | |
"len(domains_change_commits)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"................................................................................" | |
] | |
} | |
], | |
"source": [ | |
"domains_counts = {}\n", | |
"for commit in domains_change_commits:\n", | |
" print('.', end='', flush=True)\n", | |
" !git checkout -q {commit['commit_hash']} # bring back the repo to that commit\n", | |
" domains_counts[ commit['timestamp'] ] = sum(1 for line in open('domains.list'))\n", | |
"# print(domains_counts)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"#### Prepare the datas for plotting" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import datetime\n", | |
"percentage_dates = [datetime.datetime.fromtimestamp(int(timestamp)) for timestamp,values in percentages.items() ]\n", | |
"active_percentage = [ value['ACTIVE']['percentage'] for timestamp,value in percentages.items() ]\n", | |
"active_numbers = [ value['ACTIVE']['numbers'] for timestamp,value in percentages.items() ]\n", | |
"inactive_percentage = [ value['INACTIVE']['percentage'] for timestamp,value in percentages.items() ]\n", | |
"inactive_numbers = [ value['INACTIVE']['numbers'] for timestamp,value in percentages.items() ]\n", | |
"invalid_percentage = [ value['INVALID']['percentage'] for timestamp,value in percentages.items() ]\n", | |
"invalid_numbers = [ value['INVALID']['numbers'] for timestamp,value in percentages.items() ]\n", | |
"sum_numbers = [ value['SUM_NUMBERS'] for timestamp,value in percentages.items() ]\n", | |
"\n", | |
"domain_count_dates = [datetime.datetime.fromtimestamp(int(timestamp)) for timestamp,value in domains_counts.items() ]\n", | |
"domain_count_values = [value for timestamp,value in domains_counts.items() ]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"try:\n", | |
" import matplotlib.pyplot as plt\n", | |
"except ImportError:\n", | |
" !pip install matplotlib\n", | |
" import matplotlib.pyplot as plt\n", | |
"import numpy as np\n", | |
"import matplotlib.dates as mdates\n", | |
"import matplotlib.ticker as ticker" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 1332x756 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%matplotlib inline\n", | |
"# or interactive:\n", | |
"# %matplotlib notebook\n", | |
"\n", | |
"# https://matplotlib.org/api/markers_api.html\n", | |
"# https://matplotlib.org/gallery/lines_bars_and_markers/line_styles_reference.html\n", | |
"\n", | |
"plt.plot( percentage_dates, active_numbers, label=\"active\" )\n", | |
"plt.plot( percentage_dates, inactive_numbers, label=\"inactive\" )\n", | |
"plt.plot( percentage_dates, invalid_numbers, label=\"invalid\" )\n", | |
"plt.plot( percentage_dates, sum_numbers, label=\"sum\" )\n", | |
"\n", | |
"plt.plot( domain_count_dates, domain_count_values, label=\"domains number (changes)\", linestyle=':', marker='s' )\n", | |
"\n", | |
"plt.title(repo_dir)\n", | |
"\n", | |
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y.%m.%d'))\n", | |
"plt.gca().xaxis.set_major_locator(ticker.MaxNLocator(20))\n", | |
"plt.xticks( rotation=45 )\n", | |
"\n", | |
"# plt.xlabel(\"Date\")\n", | |
"plt.ylabel(\"Count\")\n", | |
"\n", | |
"plt.legend()\n", | |
"\n", | |
"plt.gcf().set_size_inches(18.5, 10.5, forward=True)\n", | |
"plt.gcf().savefig('../'+repo_dir+'.png', dpi=100)" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"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.7.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment