In unregelmäßigen Abständen beschreibe ich in der Kategorie “FlexiLog” meine Siege über die Technik, Computer und die Matrix.
Die Lösungen und Gedanken möchte ich für mich – aber auch für alle anderen – dokumentieren.
Ich hoffe, es hilft jemandem! Ich freue mich aber auch über Kommentare oder Tipps.
Calibre Magazin/Website Autodownload (The Evil Methode)
Calibre ist ein eBook Verwaltungs Programm das durch seine zahlreichen “Grabber Recipies” auch den Download von Webseiten insbesondere von News Magazinen bekannt ist.
Bis vor kurzem habe ich das Grabben der Webseiten noch manuell in Calibre angestoßen, noch dazu musst ich mein Kindle per USB anschließen und so das konvertierte Mobi File übertragen. Viel zu umständlich, soll sich doch mein Homeserver darum kümmern:
Erste Voraussetzung ist die Installation des Calibre Severs, die Binary Version reicht hierfür völlig aus.
Per Cron starte ich nun in der Nacht den Download, das konvertieren und das hinzufügen zur Calibre Datenbank:
#Spiegel_online /home/thilo/calibre/calibredb list -s 'authors:=SPON' --with-library /home/thilo/calibre_library/ > ids.txt /home/thilo/scripts/clean.py /home/thilo/calibre/calibredb remove $(cat del_id.txt) --with-library /home/thilo/calibre_library /home/thilo/calibre/ebook-convert /home/thilo/scripts/calibre_recipes/Spiegel_Online.recipe /home/thilo/scripts/calibre_output/Spiegel_Online.mobi --output-profile kind le --authors "SPON" --title "Spiegel Online" --tags "autodownload" /home/thilo/calibre/calibredb add -d --with-library /home/thilo/calibre_library /home/thilo/calibre_output/Spiegel_Online.mobi
Die erste Zeile durchsucht die Library nach dem authors = SPON und schreibt die ID des Eintrags in die Datei ids.txt. Eigentlich wollte ich die ganze Prozedur so einfach wie möglich nur per Linux Shell abfackeln, es ist jedoch ein Python Script nötig, jedenfalls mit meinem Know-How (Verbesserungen sind gern willkommen, awk?):
#!/usr/bin/python
f = open("ids.txt","r")
text = f.readlines()[1].split(" ")
w = open("del_id.txt","w")
w.write(text[0])
w.close
Das Python Script extrahiert aus der ids.txt das zu löschende File und schreibt es in die del_id.txt. Der Cron-Befehl des in Zeile 3 kann nun die veraltete Ausgabe löschen. In Zeile 4 wird nun das Spiegel Online Recipe gestartet, welches die Webseite nach Artikeln durchsucht und absaugt. Als Output entsteht eine Spiegel_Online.mobi. Zeile 5 fügt dieses File der Calibre Datenbank hinzu.
Um vom Kindle auf meine Library zugreifen zu können habe ich mir den Calibre-PHP Content Server installiert, per Webbrowser lade ich mir so die neusten Ausgaben direkt auf mein Kindle.
Die Calibre Recipes kann man sich aus dem Programm selber holen. Über das Recipe Forum kommt man oft auch an neuere Versionen. Ich kann folgende Seiten empfehlen:
- Spiegel Online
- Telepolis
- The Economist
- Brand_Eins
- Wired_Magazine
One more thing:
In Zuge der Calibre Server Installation habe ich meine schon existierende Libary auf meinen Homeserver kopiert und greife nun per Samba Freigabe drauf zu. Der so installierte Calibre Server und mein Calibre Client auf dem Mac nutzen so eine gemeinsame Library.
Tunneln von SSH durch HTTPS
Viele größere Unternehmen setzen Proxys und Firewall ein um brave Entwickler zu ärgern
Alles außer die Webports 80 und 443 sind gesperrt.
Um trotzdem an z.B. GitHub teilnehmen zu können, benötigt man unter Linux Corkscrew sowie diese Eintragung in der “.ssh/config”:
Host github.com User git HostName ssh.github.com Port 443 ProxyCommand /path/to/corkscrew proxy.host proxy.port %h %p IdentityFile path/to/the/ocrrect/ssh.key
Quellen:
Access GitHub repositories from work (take that, firewall!)
Corkscrew: So tunnelt man SSH durch HTTP-Proxies
AES encryption mit Python und PyCrypto
Vor Kurzem beschäftigte ich mich mit der Verschlüsselung von Strings in Python, anbei einige Links und Bemerkungen:
Gute Dokumentationen war schwer zu finden:
PKCS7 padding code Methode:
(Füllt ein String auf damit er ein vielfaches der Block Größe ist)
Using Encrypted Data Between Python and Silverlight
Umfangreiche Erklärungen und Beispiel Code:
AES encryption of files in Python with PyCrypto
Kompaktere Anleitung mit Code:
AES Encryption in Python Using PyCrypto
Mein Code:
link = <Some String> iv = ''.join(chr(random.randint(0, 0xFF)) for i in range(16)) encoder = PKCS7Encoder() # pad the plain text according to PKCS7 pad_text = encoder.encode(link) aes = AES.new(secstring, AES.MODE_CBC, iv ) ciphertext = aes.encrypt(pad_text) sec_link = " bgbw" + iv + ciphertext b64encoded = base64.b64encode(sec_link) urlencoded = urllib.quote(b64encoded)


