mirror of https://github.com/Zelo72/rpi
64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
# 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()
|