From 5c496f3751be512a48aef5bee6485b3c207b2869 Mon Sep 17 00:00:00 2001 From: Gerd Zelo Date: Sun, 24 May 2020 22:18:43 +0200 Subject: [PATCH] 2020.05.24-22:18:43 --- pihole/migratePiholeAdlists.py | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 pihole/migratePiholeAdlists.py diff --git a/pihole/migratePiholeAdlists.py b/pihole/migratePiholeAdlists.py new file mode 100644 index 00000000..84bed136 --- /dev/null +++ b/pihole/migratePiholeAdlists.py @@ -0,0 +1,63 @@ +# Python-Script: migratePiholeAdlists.py - https://github.com/Zelo72/rpi (/pihole/) +# +# Beschreibung: Migriert die Blocklisten-URLs aus adlists.list von Pihole 4 in die adlist +# Tabelle der gravity DB von von Pihole 5. +# URLs aus adlists.list werden nur hinzugefügt, wenn sie in der Tabelle +# adlist noch nicht vorhanden sind. +# +# Damit die Blocklisten migriert werden, müssen die zu migrierenen URLs in +# der Datei /etc/pihole/adlists.list gespeichert werden. +# +# Um z.B. die aktuellen Firebog Ticked Blocklisten nach Pihole 5 zu übernehmen, +# könnte man folgende Befehle nutzen: +# +# sudo wget -O /etc/pihole/adlists.list https://v.firebog.net/hosts/lists.php?type=tick +# sudo python3 migratePiholeAdlists.py +# sudo pihole -g +# +# Aufruf: sudo python3 migratePiholeAdlists.py +# +# Versionshistorie: +# Version 1.0.0 - [Zelo72] - initiale Version + +import sys +import sqlite3 +from pathlib import Path + +adlists = "/etc/pihole/adlists.list" +gravitydb = "/etc/pihole/gravity.db" + +if not Path(adlists).exists(): + print(adlists + " nicht gefunden!") + exit(1) + +if not Path(gravitydb).exists(): + print(gravitydb + " nicht gefunden!") + exit(1) + +try: + con = sqlite3.connect(gravitydb) + file = open(adlists) + cur = con.cursor() + + for url in file: + cur.execute( + 'select * from adlist where address = "{d}"'.format(d=str.strip(url))) + rec = cur.fetchall() + if len(rec) == 0: + s = """INSERT INTO adlist (address) VALUES ('{d}')""".format( + d=str.strip(url)) + cur.execute(s) + con.commit() + print("+++ " + str.strip(url) + " hinzugefügt.") + else: + print("=== " + str.strip(url) + " bereits vorhanden.") + +except: + print("Unerwarteter Fehler:", sys.exc_info()[0]) + raise + +finally: + file.close() + cur.close() + con.close()