Python Script zum Download der wöchentlichen Zeit.de Epub Ausgabe

Seit ich ein 7,8 Zoll PocketBook Inkpad 3 besitze, lese ich auch die Zeit auf diesem Ebook-Reader. Um das wöchentlich erscheinde Epub auf den Reader zu bekommen, habe ich mir ein Download Python Script geschrieben.

Es versucht die Downlaod URL zu generieren und die Datei runterzuladen, im Fehlerfall schickt es mir eine E-Mail. Damit (und mit Hilfe meines alten Bash Scripts) bekomme ich die Zeit per Send-to-PocketBook auf meinen Reader.

Meine jetzige Lösung nutzt leider noch Server von dritten (Email über Sent-to-Pocket). Vielleicht bau ich es noch aus, um die Syncronisation über meine Nextcloud laufen zu lassen. Möglich scheint es zu sein.

 

# -*- coding: utf-8 -*-
"""
"""
import datetime

from email.mime.text import MIMEText
import requests
import smtplib
import sys
import os.path

email = sys.argv[1]
password = sys.argv[2]

def send_mail_to_me():
        msg = MIMEText('nt')
        msg['Subject'] = 'Zeit.de epub url does not exist'
        msg['From'] = email
        msg['To'] = email
        s = smtplib.SMTP('localhost')
        s.sendmail(msg['From'], [msg['To']], msg.as_string())

def download_file(url):
    local_filename = url.split('/')[-1]
    # NOTE the stream=True parameter
    r = requests.get(url, auth=(email, password), stream=True)
    with open(local_filename, 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024):
            if chunk: # filter out keep-alive new chunks
                f.write(chunk)
    return local_filename


if __name__ == '__main__':
    now = datetime.datetime.now()
    wk = now.isocalendar()[1]
    url = 'https://premium.zeit.de/system/files/{}-{}/epub/die_zeit_2018_{}.epub'.format(now.year, wk, wk+1)
    local_filename = url.split('/')[-1]
    full_script_path = os.path.dirname(os.path.abspath(__file__))
    full_zeit_path = full_script_path + '/' + local_filename
    if not os.path.isfile(full_zeit_path):
        url_exits = requests.get(url, auth=(email, password))
        if url_exits.status_code not in [200, 201]:
            send_mail_to_me()
            sys.exit(1)
        else:
            name = download_file(url)
            print name


 

Github Gist Link

Ich habe Zeit verschenkt

Meine Zeit ist mir kostbar, ich überlege genau, womit und mit wem ich sie verbringe. Normalerweise sind meine Tage ziemlich durchgeplant, weil ich meistens dermaßen viel um die Ohren habe, dass ich gar nicht umhin komme, genau zu planen wann ich was mache. Aber manchmal kommt irgendwas unvorhergesehenes dazwischen. So letzte Woche. Ein paar Häuser ... The post Ich habe Zeit verschenkt appeared first on Christine Graf.