Montag, 27. Februar 2012

Dreambox-Blog PushService

The publication of the beta release have passed less than 24 hours and here is the very first review:
http://www.dreambox-blog.com/index.php/6576/pushservice-automatische-e-mail-benachrichtigung-bei-bestimmten-events

Dreambox PushService

PushService (kurz PS) hält euch immer auf dem aktuellen Stand was auf eurer Dreambox passiert.

Dazu wird PS in konfigurierbaren, regelmäßigen Abständen oder zu bestimmten Events ausgeführt, prüft Eure Dreambox nach Euren Vorgaben und benachrichtigt euch per eMail über Vorgänge/Unstimmigkeiten.

Hier ein Beispiel für eine EMail-Benachrichtigung:
Subject: DM8000 PushService: Free space warning
Free disk space limit has been reached:
Path:  /media/hdd/movie
Limit: 100 GB
Left:  88 GB
Provided by Dreambox Plugin PushService 0.1
C 2012 by betonme @ IHAD

Tastenbelegung im Setup:
  • Grün: Speichern und schließen
  • Rot/Exit: Beenden ohne zu speichern
  • Blau: Neues Plugin hinzufügen
  • Gelb: Plugin entfernen
  • Text: Aktuelle nicht gespeicherte eMail Konfiguration testen
  • Info: Testlauf ohne eine eMail zu versenden

Die Grundkonfiguration von PS wird in der E2 Config abgespeichert.
Alle Plugin-Einstellungen werden in einer XML-Datei abgelegt (Default = /etc/enigma2/pushservice.xml).

PS Grundkonfiguration:
  • Enable PushService = True
  • Dreambox name (Mail Subject) = Dreambox
  • Config file = /etc/enigma2/pushservice.xml
  • Start time (HH:MM) = 1:00 Uhr
  • Period in hours (0=disabled) = 24
  • Run on boot = True
  • SMTP Server = smtp.server.com
  • SMTP Port = 587
  • SMTP SSL = True
  • User name
  • Password
  • Mail from = [EMAIL]abc@provider.com[/EMAIL]
  • Mail to or leave empty

Aktuelle Plugins mit Beispielen und Optionen:
  • FreeSpace:
Ihr gebt einen Pfad vor und den gewünschten freien Speicher, liegt der ermittelte freie Speicherplatz darunter, bekommt Ihr eine eMail.
Kann mehrfach hinzugefügt werden, damit verschiedene Speicher geprüft werden können.
-Allow HDD wake up = False
-Where to check free space = /media/hdd/movie
-Free space limit in GB = 100GB
  • DeactivatedTimers:
Der AutoTimer trifft auf einen Timerkonflikt und kann eine Sendung nicht aufnehmen und erstellt deswegen einen deaktivierten Timer (muss aktiviert werden). PS würde euch in dem Fall direkt eine eMail mit dem betreffenden Timer zuschicken.
- Remove deactivated timer(s) after successful transmission = False (On False PS will tag them as DeactivatedTimerPushed)
  • CrashLog:
Angelehnt an die DMM Funktion. Ihr seid außer Haus und es tritt ein GS auf, die Dreambox startet automatisch neu und sendet euch eine Benachrichtigung mit dem CrashLog im Anhang.
-Delete crashlog(s) after successful transmission = False (On False PS will rename them to .pushed)
  • RecordSummary:
Eine Liste aller getätigten Aufnahmen wird euch zugeschickt.
-Remove finished timer(s) only after = False  (On False PS will tag them as FinishedTimerPushed)
  • RecordNotification:
Ihr bekommt eine sofortige Benachrichtigung, wenn eine Aufnahme startet oder beendet wird.
-Send notification on record start = False
-Send notification on record end = True
  • IPKGUpdateNotification:
Wenn Updates bereitstehen bekommt Ihr eine Liste aller Plugins mit der aktuell installierter Version und der Version des Updates.
-Start update check if not done yet = False

Weitere Plugin-Module können sehr einfach zur Laufzeit ohne Neustart hinzugefügt werden.
Wenn das Setup geöffnet wird, werden die Einstellungen und Module neu eingelesen.
Jedes Modul kann weitere Einstellungen bereitstellen, die dann automatisch in der Config eingebunden werden.
(Erklärung für Entwickler folgt)

Roadmap:
Konfiguration / Optionen übersetzen
Öffentlicher Beta-Test
Schwerkraft GIT -> Feed
Lokalisierung ist vorbereitet, somit kann jeder dazu beisteuern.

Installation:
Zip entpacken und nach /usr/lib/enigma2/python/Plugins/Extensions/PushService kopieren

Dependancies:
  • python-twisted-core
  • python-twisted-mail
  • python-twisted-names
  • python-twisted-protocols
  • python-twisted-web  
  • python-pyopenssl
Anleitung zum Erstellen eines Plugin-Moduls:
Es gibt ein Paar Rahmenbedingungen für die Module:
  • Die py-Datei und der class-Namen müssen übereinstimmen
  • Die class muss eine subclass der PluginBase sein
Alles weitere ist optional und hängt von Eurem Modul ab:
  • init: Sollte die Optionen behinhalten (self.setOptions ...) Das Speichern/Laden/Setup-Eintrag wird alles von der PluginBase erledigt.
  • run: Führt eure Prüfungen durch und gebt Subject, Body(optional), Attachments(optional) zurück. Wenn ihr None, False oder "" zurückgebt, wird keine eMail versendet.
  • success: Callback bei erfolgreichem Versand
  • error: Callback wenn ein Fehler beim Versenden auftritt
  • begin: Wird aufgerufen, wenn PS gestartet wird
  • end: Wird aufgerufen, wenn PS gestoppt wird
Die Bedingungen werden Beim Laden der Module auch geprüft, Fehler werden auf der Konsole ausgegeben.

Link

Donnerstag, 16. Februar 2012

Google Apps Script: GMail CleanUp

I wrote a small script, which can automatically clean Your GMail Inbox.


Update is now available via Scriptgalerie.


Description:

Select the label(s) You want to be cleaned regularily. All mails / threads which are older then the configured age are moved automatically to Your trash.

1. Installation:
Open a new new Google Spreadsheet: Google Docs and go to Tools and Scriptgalerie.
Search for GMail Cleanup, install it and grant authorization.

2. Configuration:
Opent the Scriptmanager via the Tools.
Select the onOpen function and click execute, the config screen should appear.

Set Your options, click Submit and Close.

3. Trigger:

Go to the Scripteditor, Triggers menu and choose "current scripts triggers". Click the link to set up a new trigger, choosing the "moveToTrash" function, a "time-driven" event, "day timer," and then for example "midnight to 1am." Click save and you are done.

You can also setup an email alert if something goes wrong.

Run manually:
Via Scriptmanager, execute the function moveToTrash.

Source-Code:
You can view and edit the code, if You installed it.
To view it,open Your spreadsheet and go to Tools and select Scripteditor.
A new Tab with the script source will be opened.


Deinstallation: 
You can deinstall it via the Scripteditor.
Select on the left side the top level GMail Cleanup Script and choose Menu, delete.


Dienstag, 14. Februar 2012

IMDBPHP2 Ticket: Undefined property in pilotsearch.class.php

I'm actually using the IMDBPHP2 for a new project and found a small problem:

For example search for "Alien", it will echo:
Notice: Undefined property: stdClass::$imdb in imdbphp2\pilotsearch.class.php on line 123
Just encapsule the lines with follwing if statement:
if (isset($movie→alternative_identifiers→imdb)) {
and the problem is solved.

Ticket: Undefined property in pilotsearch.class.php
http://projects.izzysoft.de/trac/imdbphp/ticket/288

Update from Author:
Thanx! I set an additional layer on top just to make sure (in case alternate_identifiers itself is not defined). So consider it fixed at r504