flexiabler Titel Rotating Header Image

SSL

flexilog Oktober

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

Update 27.2.2012

SSH TimeOuts umgehen

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)