Falsches Lesezeichen-Icon in Firefox?

Mit dem kleinen Python-Skript von Forcing Firefox to refresh a favicon from its cache lässt sich Firefox dazu überreden, das für eine Website zwischengespeicherte Icon „zu vergessen“ und beim nächsten Aufruf der Site erneut abzurufen.

So klappte es bei mir unter Linux Mint 22:

  1. Aus dem o. g. Beitrag beim Satz „Otherwise, you can download this nifty delfavicon Python script“ das Skript herunterladen
  2. Firefox beenden
  3. Sicherheitskopie der eigenen favicons.sqlite-Datei anlegen (Benutzerprofile)
  4. Pfad zur eigenen favicons.sqlite in Zeile 10 Skripts eintragen
  5. Terminal im Ordner mit dem Skript starten
  6. Befehl eingeben (Beispiel): python3 delfavicon https://werschreibt.de.cool (python3 delfavicon https://werschreibt.x10.network)
  7. Kontrollieren, ob das Skript die richtigen URLs vorschlägt und dann das Löschen mit y bestätigen
  8. Firefox wieder starten und gewünschte Website abrufen

Das Icon für das Lesezeichen sollte sich nun aktualisiert haben.

Da das Internet manchmal eben doch „vergesslich“ ist, hier eine Kopie des Skripts.

#!/usr/bin/python3

# Written by Alex Tseng, 2018

if __name__ == "__main__":
    import sqlite3
    import sys

    # REPLACE THIS WITH THE PATH TO YOUR OWN favicons.sqlite
    favicon_db_path = "/home/me/.mozilla/firefox/abcd1234.default/favicons.sqlite"

    if len(sys.argv) != 2:
        print("Usage: delfavicon url")
        print("Deletes pages and favicons in Mozilla Firefox's favicon database.")
        print("Provide a substring of a URL, and this tool will delete its favicons.")
        print("You will have a chance to review which sites get deleted before proceeding.")
        print("Example usages: `delfavicon example.com`, `delfavicon example`")
        sys.exit(1)

    domain = sys.argv[1]

    conn = sqlite3.connect(favicon_db_path)
    c = conn.cursor()

    comm = "SELECT id, page_url from moz_pages_w_icons WHERE page_url LIKE '%{}%'".format(domain)
    moz_pages_w_icons_rows = [row for row in c.execute(comm)]
    page_urls = sorted(list(set(row[1] for row in moz_pages_w_icons_rows)))

    if not page_urls:
        print("No sites found matching domain: {}".format(domain))
        sys.exit(1)

    print("Deleting following favicons...")
    for page_url in page_urls:
        print(page_url)

    resp = input("Continue? [y/N]: ")
    if not resp or resp[0].lower() != "y":
        print("Aborted")
        sys.exit(0)

    page_ids = list(set(row[0] for row in moz_pages_w_icons_rows))
    icon_ids = set()
    for page_id in page_ids:
        comm = "SELECT icon_id FROM moz_icons_to_pages WHERE page_id == {}".format(page_id)
        icon_ids.update([row[0] for row in c.execute(comm)])
    icon_ids = list(icon_ids)

    for page_id in page_ids:
        comm = "DELETE FROM moz_pages_w_icons WHERE id == {}".format(page_id)
        c.execute(comm)
    for icon_id in icon_ids:
        comm = "DELETE FROM moz_icons WHERE id == {}".format(icon_id)
        c.execute(comm)
        comm = "DELETE FROM moz_icons_to_pages WHERE icon_id == {}".format(icon_id)
        c.execute(comm)

    conn.commit()
    conn.close()

    print("Done")

Kommentare: 0

Interesse an einer Diskussion? Schreibe einen Kommentar.

Image




0 / 5000

Die E-Mail-Adresse wird nicht veröffentlicht noch an Dritte weitergegeben. In deinem Text kannst du *Kursivschrift*, **Fettschrift** und [Links](http://example.org) verwenden. Der Kommentar wird moderiert und so bald wie möglich freigeschaltet.