Menu

25 juli 2013

Safari: De leeslijst url’s exporteren

Leeslijst iosLeeslijst is een hele handige functie in OS X 10.7 en hoger om een bepaalde webpagine op een later (of beter) tijdstip nog eens te bekijken. Bijkomend voordeel van deze functie is dat de website na het toevoegen aan de leeslijst automatisch door Safari wordt gedownload en lokaal wordt opgeslagen. De webpagina is hierdoor ook beschikbaar op het moment dat er geen internet verbinding beschikbaar is.

Mocht je de functie vaak gebruiken en een overzicht willen hebben welke URL’s er allemaal in de leeslijst aanwezig zijn dan kun je onderstaand script gebruiken. Het script exporteert alle url’s welke zich in de leeslijst bevinden naar het scherm. Door gebruik te maken van een ‘redirection’ kun je de output bewaren als txt bestand.

Het Python script:

#!/usr/bin/env python
import plistlib
from shutil import copy
import subprocess
import os
from tempfile import gettempdir
import sys
import atexit
 
BOOKMARKS_PLIST = '~/Library/Safari/Bookmarks.plist'
bookmarksFile = os.path.expanduser(BOOKMARKS_PLIST)
 
# Make a copy of the bookmarks and convert it from a binary plist to text
tempDirectory = gettempdir()
copy(bookmarksFile, tempDirectory)
bookmarksFileCopy = os.path.join(tempDirectory, os.path.basename(bookmarksFile))
 
def removeTempFile():
    os.remove(bookmarksFileCopy)
 
atexit.register(removeTempFile) # Delete the temp file when the script finishes
 
converted = subprocess.call(['plutil', '-convert', 'xml1', bookmarksFileCopy])
 
if converted != 0:
    print "Couldn't convert bookmarks plist from xml format"
    sys.exit(converted)
 
plist = plistlib.readPlist(bookmarksFileCopy)
 # There should only be one Reading List item, so take the first one
readingList = [item for item in plist['Children'] if 'Title' in item and item['Title'] == 'com.apple.ReadingList'][0]
 
if 'Children' in readingList:
    for item in readingList['Children']:
        print item['URLString']

Kopieer het bovenstaande pythons script naar editor (bijvoorbeeld Tetxtwrangler) en bewaar deze op je harddisk met als naam leeslijst.py

Geef hierna het script execute rechten met het commando:

chmod +x leeslijst.py

Hierna kun je het leeslijst script starten vanuit de map waarin het script zich bevindt met:

./leeslijst.py

Na het uitvoeren zullen url’s welke aanwezig zijn in je leeslijst verschijnen op het scherm, wil je deze bewaren als text bestand dan is dat mogelijk met:

Schermafbeelding 2013-07-22 om 15.43.20

./leeslijst.py > mijnleeslijst.txt

Alle urls worden nu geëxporteerd naar het bestand mijnleeslijst.txt.

Via: Stackexchange

Meer over Safari kun je hier terugvinden.




Gerelateerde tips:




Reacties


  • JP Hermans 25 juli 2013 om 12:35

    Heel goede tip. Nu zie ik pas wat er allemaal in mijn leeslijst staat.
    Bedankt voor deze.

Een reactie toevoegen: