The branch, frodo has been updated
       via  102f2f62dfb74d92fbc466efea3a81f3ada90c1a (commit)
      from  ef6bf5124f6e0ec1239b6f0ff076f92445b1c597 (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=102f2f62dfb74d92fbc466efea3a81f3ada90c1a

commit 102f2f62dfb74d92fbc466efea3a81f3ada90c1a
Author: Martijn Kaijser <[email protected]>
Date:   Thu Sep 19 20:48:15 2013 +0200

    [script.module.buggalo] 1.1.5

diff --git a/script.module.buggalo/README.md b/script.module.buggalo/README.md
index 2a16a8f..02e3ff0 100644
--- a/script.module.buggalo/README.md
+++ b/script.module.buggalo/README.md
@@ -5,7 +5,8 @@ exception in a Python script as well as information about the
 users system, such as XBMC and Python versions.
 
 The collected information is then posted to the internet at a
-predefined URL where the addon author can investigate the exception.
+predefined URL or Gmail account where the addon author can
+investigate the exception.
 
 The script is somewhat similar to posting the xbmc.log to pastebin,
 but is more specialised and doesn't contain superfluous information.
@@ -15,13 +16,22 @@ has to decide if they want to submit the bug report or not.
 The user will see a dialog as seen in this screenshot:
 http://forum.xbmc.org/showthread.php?tid=121925&pid=1137307#pid1137307
 
+
 HOW TO USE
 ==========
 To use this script you must do these things besides importing it.
 
-1.  Set buggalo.SUBMIT_URL to a full URL where the collected data is submitted.
+1.  Choose whether to submit the collected data to a Gmail account or
+    a private website containing buggalo-web.
+
+    *  To use a Gmail account set the buggalo.GMAIL_RECIPIENT to the full
+       gmail.com address of the recipient.
 
-2.  Surround the code you want to be covered by this script in a try..except 
block, such as:
+    *  To use a website set buggalo.SUBMIT_URL to a full URL where the
+       collected data is submitted.
+
+2.  Surround the code you want to be covered by this script in a
+    try..except block, such as:
 
     ```python
     try
@@ -40,8 +50,9 @@ To use this script you must do these things besides importing 
it.
     See this link for an example:
     https://github.com/twinther/script.tvguide/blob/master/gui.py#L140
 
-    Optionally, instead of writing the try..except block yourself, you can 
decorate the function
-    with @buggalo_try_except(). Function specific may be provide in the 
decorator:
+    Optionally, instead of writing the try..except block yourself, you
+    can decorate the function with @buggalo_try_except(). Function
+    specific extra data may be provide in the decorator:
 
     ```python
     @buggalo_try_except({'class' : 'MyWindowXML', 'method' : 'onInit', 
'other_key' : 'other_value'})
@@ -49,17 +60,25 @@ To use this script you must do these things besides 
importing it.
         pass
     ```
 
-3.  Finally you must setup the website where the error report is submitted.
-    A good starting point is my buggalo-web module on github:
+3.  If you chose to use a private website in step 1, now is the time to 
configure that
+    - otherwise there is no step 3...
+
+    A good starting point for the website is my buggalo-web module on github:
     https://github.com/twinther/buggalo-web
     If you want to roll your own custom setup then take a look at the 
submit.php
     file which store the error report in the database.
     https://github.com/twinther/buggalo-web/blob/master/submit.php
 
-    If you don't want to or can't setup your own website you can use the 
shared site at:
-    http://buggalo.xbmc.info/
-    In this case buggalo.SUBMIT_URL must be set to:
-    http://buggalo.xbmc.info/submit.php
+
+NOTES ABOUT GMAIL RECIPIENT
+===========================
+Gmail has pretty good spam filtering, but there's a good change the error 
reports
+will end up in your spam folder. You will have to tweak your spam settings if 
that
+is the case.
+
+Furthermore all emails are prefixed with [Buggalo] and [addon.id] in the 
subject,
+so you can use that for making filters.
+
 
 WHAT IS COLLECTED
 =================
@@ -78,9 +97,11 @@ such as date and time.
    Type of exception, message and full stack trace
 *  User flow information
    For plugin-type addons each request is recorded with parameters and 
timestamp
-   For script-type addons the author must record relevant information by 
invoking the trackUserFlow() method
+   For script-type addons the author must record relevant information by 
invoking
+   the trackUserFlow() method
+
+For further details take a look at the code in buggalo_client.py
 
-For further details take a look at the code in buggalo.py
 
 TRACKING USER FLOW
 ==================
@@ -109,4 +130,4 @@ The module is named after a creature in my favorite 
animated show:
 http://theinfosphere.org/Where_the_Buggalo_Roam
 
 ---------------------------------------------------------------------
-2012.09.19 - twinther
+2012.09.26 - twinther
diff --git a/script.module.buggalo/addon.xml b/script.module.buggalo/addon.xml
index 5d5ff1d..ef8f6ad 100644
--- a/script.module.buggalo/addon.xml
+++ b/script.module.buggalo/addon.xml
@@ -1,14 +1,55 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.module.buggalo" name="Buggalo Exception Collector" 
version="1.1.2" provider-name="twinther [[email protected]]">
+<addon id="script.module.buggalo" name="Buggalo Exception Collector" 
version="1.1.5" provider-name="twinther">
     <requires>
-        <import addon="xbmc.python" version="2.0"/>
+        <import addon="xbmc.python" version="2.1.0"/>
         <import addon="script.module.simplejson" version="2.0.10"/>
     </requires>
     <extension point="xbmc.python.module" library="lib"/>
     <extension point="xbmc.addon.metadata">
-        <summary>Automatic exception collector</summary>
-        <description>This module can collect various information about an 
exception and the users system such as XBMC and Python versions, etc. and 
submit it to a url.</description>
+        <summary lang="be">Automatic exception collector</summary>
+        <summary lang="da">Automatisk indsamling af fejl</summary>
+        <summary lang="de">Automatische Fehlerberichterstattung</summary>
+        <summary lang="el">Αυτόματος συλλέκτης 
εξαιρέσεων</summary>
+        <summary lang="en">Automatic exception collector</summary>
+        <summary lang="es">Capturador automático de excepciones</summary>
+        <summary lang="es_MX">Recogedor de excepcion automatica</summary>
+        <summary lang="fr">Collecteur automatique d'exceptions</summary>
+        <summary lang="gl">Recolector automático de excepcións</summary>
+        <summary lang="he">אוסף חריגות אוטומטי</summary>
+        <summary lang="hu">Automatikus kivételgyűjtő</summary>
+        <summary lang="it">Raccoglitore automatico di eccezioni</summary>
+        <summary lang="nl">Automatische uitzondering verzamelaar</summary>
+        <summary lang="pl">Automatyczny kolekcjoner wyjątków.</summary>
+        <summary lang="pt">Recolector automático de excepções</summary>
+        <summary lang="pt_BR">Coletor exceção automática</summary>
+        <summary lang="sk">Automatický zberateľ výnimiek</summary>
+        <summary lang="sv">Automatisk undantagsfelsinsamlare</summary>
+        <summary lang="zh">异常自动收集器</summary>
+        <description lang="be">This module can collect various information 
about an exception and the users system such as XBMC and Python versions, etc. 
and submit it to a url.</description>
+        <description lang="da">Dette modul kan indsamle forskellige 
informationer om en fejl og brugerens system såsom XBMC- og Pythonversioner 
osv. og sende det til en webadresse.</description>
+        <description lang="de">Dieses Modul kann diverse Informationen über 
einen Programm-Fehler sowie die Umgebung (XBMC- und Python-Versionen) sammeln 
und zu einer URL senden.</description>
+        <description lang="el">Αυτό το εργαλείο μπορεί 
να συλλέγει διάφορες πληροφορίες σχετικά 
με μία εξαίρεση καθώς και τις XBMC και Python 
εκδόσεις του συστήματος του χρήστη, κτλ., 
και να τις υποβάλλει σε μία διεύθυνση 
url.</description>
+        <description lang="en">This module can collect various information 
about an exception and the users system such as XBMC and Python versions, etc. 
and submit it to a url.</description>
+        <description lang="es">Este módulo recopila información acerca de 
una excepción y el sistema de los usuarios (por ejemplo las versiones de XBMC 
y Python, etc) y la envía a una URL.</description>
+        <description lang="es_MX">Este modulo puede recoger varia 
informacionacerca de una excepcion y usuarios del sistema como XBMC y versiones 
Python, etc. y enviarlo a una url.</description>
+        <description lang="fr">Ce module peut collecter différentes 
informations sur une exception et le système comme les versions d'XBMC et de 
Python, etc. et les soumettre sur une URL.</description>
+        <description lang="gl">Este módulo pode recoller diversa información 
sobre unha excepción e o sistema dos usuarios , como o XBMC e as versións de 
Python, etc, e envialo a un url.</description>
+        <description lang="he">מודול זה יכול לאסוף מידע 
מגוון על חריגה ומערכת המשתמש כמו גרסאות XBMC, 
פייתון וכדו'. ולשלוח זאת לכתובת.</description>
+        <description lang="hu">Ez a modul információkat szolgáltat a 
kiváltott kivételekről és a felhasználó rendszeréről(, mint pl. az XBMC 
vagy Phyton verzió) és egy URL-be helyezi.</description>
+        <description lang="it">Questo modulo può raccogliere varie 
informazioni circa un'eccezione ed il i sistemi degli utenti come le versioni 
di XBMC e di Pyton, ecc.... ed inviarle ad un url</description>
+        <description lang="nl">Deze module kan diverse informatie verzamelen 
over uitzonderingen en van het systeem van de gebruiker zoals XBMC en Python 
versie, enz. en deze versturen naar een URL.</description>
+        <description lang="pl">Modół ten potrafi zbierać różne informacje 
o wyjątkach, użytkownikach systemów takich jak XBMC oraz Python etc, i 
przesłać je na podany adres url.</description>
+        <description lang="pt">Este módulo pode recolher diversas 
informações sobre uma excepção  e sobre o sistema dos utilizadores, como o 
XBMC e as versões de Python, etc, e submetê-las para uma url.</description>
+        <description lang="pt_BR">Este módulo pode coletar diversas 
informações sobre uma exceção no sistema dos usuários, tais como o XBMC e 
versões de Python, etc, e submetê-lo para uma url</description>
+        <description lang="sk">Tento doplnok môže zbierať rôzne 
informácie o vzniknutých výnimkách, užívateľskom systéme ako je XBMC, o 
verzii Python a inom a odoslať ich na URL.</description>
+        <description lang="sv">Den här modulen kan samla in diverse 
information om undantagsfel och användarens system, såsom XBMC och 
Python-versioner, etc. och skicka in det till en url.</description>
+        <description 
lang="zh">此组件可以收集一个异常或用户系统相å…
³çš„多方面信息如XBMC和Python的版本等。并将此信息发送到一个网址</description>
         <license>GPLv2</license>
         <platform>all</platform>
+        <email>[email protected]</email>
+        <website>http://tommy.winther.nu</website>
+        <forum>http://forum.xbmc.org/showthread.php?tid=121925</forum>
+        <source>https://github.com/twinther/script.module.buggalo</source>
+        <language></language>
     </extension>
 </addon>
diff --git a/script.module.buggalo/changelog.txt 
b/script.module.buggalo/changelog.txt
index 6bb5216..c802185 100644
--- a/script.module.buggalo/changelog.txt
+++ b/script.module.buggalo/changelog.txt
@@ -1,3 +1,13 @@
+[B]Version 1.1.5 - 2013-09-16[/B]
+- Updated language files from Transifex
+
+[B]Version 1.1.4 - 2013-06-05[/B]
+- Improved logging in case of internal buggalo errors
+
+[B]Version 1.1.3 - 2013-05-18[/B]
+- Added support for sending error reports to a gmail account
+- Updated language files from Transifex
+
 [B]Version 1.1.2 - 2012-09-09[/B]
 - Improved UI compatibility with skins other than Confluence
 - Updated movie quotes
diff --git a/script.module.buggalo/lib/buggalo.py 
b/script.module.buggalo/lib/buggalo.py
index 49c65a9..450d3ae 100644
--- a/script.module.buggalo/lib/buggalo.py
+++ b/script.module.buggalo/lib/buggalo.py
@@ -1,5 +1,5 @@
 #
-#      Copyright (C) 2012 Tommy Winther
+#      Copyright (C) 2013 Tommy Winther
 #      http://tommy.winther.nu
 #
 #  This Program is free software; you can redistribute it and/or modify
@@ -29,18 +29,27 @@ import buggalo_client as client
 import buggalo_gui as gui
 import buggalo_userflow as userflow
 
-#   The full URL to where the gathered data should be posted.
+# You must provide either the SUBMIT_URL or GMAIL_RECIPIENT
+# via buggalo.SUBMIT_URL = '' or buggalo.GMAIL_RECIPIENT = ''
+
+# The full URL to where the gathered data should be posted.
 SUBMIT_URL = None
+# The email address where the gathered data should be sent.
+GMAIL_RECIPIENT = None
+
 EXTRA_DATA = dict()
+
 SCRIPT_ADDON = len(sys.argv) == 1
 
 if not SCRIPT_ADDON:
     # Automatically track userflow for plugin type addons
     userflow.trackUserFlow('%s%s' % (sys.argv[0], sys.argv[2]))
 
+
 def addExtraData(key, value):
     EXTRA_DATA[key] = value
 
+
 def trackUserFlow(value):
     """
     Registers an entry in the user's flow through the addon.
@@ -54,6 +63,7 @@ def trackUserFlow(value):
     """
     userflow.trackUserFlow(value)
 
+
 def getRandomHeading():
     """
     Get a random heading for use in dialogs, etc.
@@ -66,7 +76,7 @@ def getLocalizedString(id):
     """
     Same as Addon.getLocalizedString() but retrieves data from this module's 
strings.xml
     """
-    buggaloAddon = xbmcaddon.Addon(id = 'script.module.buggalo')
+    buggaloAddon = xbmcaddon.Addon(id='script.module.buggalo')
     return buggaloAddon.getLocalizedString(id)
 
 
@@ -80,13 +90,14 @@ def buggalo_try_except(extraData = None):
     def decorator(fn):
         def wrap_in_try_except(*args, **kwargs):
             try:
-                fn(*args, **kwargs)
+                return fn(*args, **kwargs)
             except Exception:
                 onExceptionRaised(extraData)
         return wrap_in_try_except
     return decorator
 
-def onExceptionRaised(extraData = None):
+
+def onExceptionRaised(extraData=None):
     """
     Invoke this method in an except clause to allow the user to submit
     a bug report with stacktrace, system information, etc.
@@ -97,8 +108,8 @@ def onExceptionRaised(extraData = None):
     @param extraData: str or dict
     """
     # start by logging the usual info to stderr
-    (type, value, traceback) = sys.exc_info()
-    tb.print_exception(type, value, traceback)
+    (etype, value, traceback) = sys.exc_info()
+    tb.print_exception(etype, value, traceback)
 
     if not SCRIPT_ADDON:
         try:
@@ -109,8 +120,8 @@ def onExceptionRaised(extraData = None):
             pass
 
     heading = getRandomHeading()
-    data = client.gatherData(type, value, traceback, extraData, EXTRA_DATA)
+    data = client.gatherData(etype, value, traceback, extraData, EXTRA_DATA)
 
-    d = gui.BuggaloDialog(SUBMIT_URL, heading, data)
+    d = gui.BuggaloDialog(SUBMIT_URL, GMAIL_RECIPIENT, heading, data)
     d.doModal()
     del d
diff --git a/script.module.buggalo/lib/buggalo_client.py 
b/script.module.buggalo/lib/buggalo_client.py
index 2edee6c..52d3bae 100644
--- a/script.module.buggalo/lib/buggalo_client.py
+++ b/script.module.buggalo/lib/buggalo_client.py
@@ -1,5 +1,5 @@
 #
-#      Copyright (C) 2012 Tommy Winther
+#      Copyright (C) 2013 Tommy Winther
 #      http://tommy.winther.nu
 #
 #  This Program is free software; you can redistribute it and/or modify
@@ -25,20 +25,22 @@ import simplejson
 import sys
 import traceback
 import urllib2
-
+import smtplib
+from email.mime.text import MIMEText
 import xbmc
 import xbmcaddon
 
 import buggalo_userflow as userflow
 
-def gatherData(type, value, tracebackInfo, extraData, globalExtraData):
+
+def gatherData(etype, value, tracebackInfo, extraData, globalExtraData):
     data = dict()
     data['version'] = 4
     data['timestamp'] = datetime.datetime.now().isoformat()
 
     exception = dict()
     exception['stacktrace'] = traceback.format_tb(tracebackInfo)
-    exception['type'] = str(type)
+    exception['type'] = str(etype)
     exception['value'] = str(value)
     data['exception'] = exception
 
@@ -106,8 +108,8 @@ def gatherData(type, value, tracebackInfo, extraData, 
globalExtraData):
         elif extraData is not None:
             extraDataInfo[''] = str(extraData)
     except Exception, ex:
-        (type, value, tb) = sys.exc_info()
-        traceback.print_exception(type, value, tb)
+        (etype, value, tb) = sys.exc_info()
+        traceback.print_exception(etype, value, tb)
         extraDataInfo['exception'] = str(ex)
     data['extraData'] = extraDataInfo
 
@@ -123,8 +125,49 @@ def submitData(serviceUrl, data):
             u = urllib2.urlopen(req)
             u.read()
             u.close()
-            break # success; no further attempts
+            break  # success; no further attempts
         except Exception:
             pass # probably timeout; retry
 
 
+def emailData(recipient, data):
+    """
+
+    @param recipient:
+    @param data:
+    @return:
+    """
+
+    # build html table with data
+    body = '<table border="1">'
+    for group in sorted(data.keys()):
+        values = data[group]
+        if type(values) == dict:
+            body += '<tr><td colspan="2"><h2>%s</h2></td></tr>' % 
group.capitalize()
+            keys = values.keys()
+            if group == 'userflow':
+                keys = sorted(keys)
+
+            for key in keys:
+                body += '<tr><td>%s</td>' % key
+                if key == 'stacktrace':
+                    body += '<td><pre>'
+                    for item in values[key]:
+                        body += item + '\n'
+                    body += '</pre></td>'
+                else:
+                    body += '<td>%s</td>' % str(values[key])
+                body += '</tr>'
+        else:
+            body += '<tr><td><h2>%s</h2></td><td>%s</td></tr>' % 
(group.capitalize(), str(values))
+    body += '</table>'
+
+    msg = MIMEText(body, 'html')
+    msg['Subject'] = '[Buggalo][%s] %s' % (data['addon']['id'], 
data['exception']['value'])
+    msg['From'] = 'Buggalo'
+    msg['To'] = recipient
+    msg['X-Mailer'] = 'Buggalo Exception Collector'
+
+    smtp = smtplib.SMTP('gmail-smtp-in.l.google.com')
+    smtp.sendmail(msg['From'], msg['To'], msg.as_string(9))
+    smtp.quit()
diff --git a/script.module.buggalo/lib/buggalo_gui.py 
b/script.module.buggalo/lib/buggalo_gui.py
index 819bc57..6a5797d 100644
--- a/script.module.buggalo/lib/buggalo_gui.py
+++ b/script.module.buggalo/lib/buggalo_gui.py
@@ -1,5 +1,5 @@
 #
-#      Copyright (C) 2012 Tommy Winther
+#      Copyright (C) 2013 Tommy Winther
 #      http://tommy.winther.nu
 #
 #  This Program is free software; you can redistribute it and/or modify
@@ -18,19 +18,23 @@
 #  http://www.gnu.org/copyleft/gpl.html
 #
 #
+import sys
+import traceback
+
 import buggalo_client as client
 
 import xbmc
 import xbmcaddon
 import xbmcgui
 
-buggaloAddon = xbmcaddon.Addon(id = 'script.module.buggalo')
+buggaloAddon = xbmcaddon.Addon(id='script.module.buggalo')
 
 ACTION_PARENT_DIR = 9
 ACTION_PREVIOUS_MENU = 10
 
+
 class BuggaloDialog(xbmcgui.WindowXMLDialog):
-    THANKS_YOU_VISIBLE_LABEL = 98
+    THANK_YOU_VISIBLE_LABEL = 98
     DETAILS_VISIBLE_LABEL = 99
     CLOSE_BUTTON = 100
     SUBMIT_BUTTON = 101
@@ -42,23 +46,24 @@ class BuggaloDialog(xbmcgui.WindowXMLDialog):
     ERROR_MESSAGE_GROUP = 200
     DETAILS_GROUP = 201
     THANK_YOU_GROUP = 202
+    THANK_YOU_LABEL = 203
 
-    def __new__(cls, serviceUrl, heading, data):
+    def __new__(cls, serviceUrl, gmailRecipient, heading, data):
         return super(BuggaloDialog, cls).__new__(cls, 'buggalo-dialog.xml', 
buggaloAddon.getAddonInfo('path'))
 
-    def __init__(self, serviceUrl, heading, data):
+    def __init__(self, serviceUrl, gmailRecipient, heading, data):
         super(BuggaloDialog, self).__init__()
         self.serviceUrl = serviceUrl
+        self.gmailRecipient = gmailRecipient
         self.heading = heading
         self.data = data
         self.detailsVisible = False
 
-
     def onInit(self):
         self.getControl(self.HEADING_LABEL).setLabel(self.heading)
         self.getControl(self.DETAILS_VISIBLE_LABEL).setVisible(not 
self.detailsVisible)
-        self.getControl(self.THANKS_YOU_VISIBLE_LABEL).setVisible(True)
-        
self.getControl(self.DETAILS_LINE1_LABEL).setLabel(buggaloAddon.getLocalizedString(91000)
 % self.data['addon']['name'])
+        self.getControl(self.THANK_YOU_VISIBLE_LABEL).setVisible(True)
+        
self.getControl(self.DETAILS_LINE1_LABEL).setLabel(buggaloAddon.getLocalizedString(91000)
 % self.data['addon']['name'].decode('utf-8', 'replace'))
         listControl = self.getControl(self.DETAILS_LIST)
 
         try:
@@ -72,18 +77,16 @@ class BuggaloDialog(xbmcgui.WindowXMLDialog):
                         keys = sorted(keys)
 
                     for key in keys:
-                            item = xbmcgui.ListItem(label = '    %s' % key, 
label2 = str(values[key]))
+                            item = xbmcgui.ListItem(label='    %s' % key, 
label2=str(values[key]))
                             listControl.addItem(item)
 
                 else:
-                    item = xbmcgui.ListItem(label = '[B]%s[/B]' % group, 
label2 = str(values))
+                    item = xbmcgui.ListItem(label='[B]%s[/B]' % group, 
label2=str(values))
                     listControl.addItem(item)
         except Exception:
-            item = xbmcgui.ListItem(label2 = 
buggaloAddon.getLocalizedString(91008))
+            item = 
xbmcgui.ListItem(label2=buggaloAddon.getLocalizedString(91008))
             listControl.addItem(item)
 
-
-
     def onAction(self, action):
         if action.getId() in [ACTION_PARENT_DIR, ACTION_PREVIOUS_MENU]:
             self.close()
@@ -94,9 +97,17 @@ class BuggaloDialog(xbmcgui.WindowXMLDialog):
 
         elif controlId == self.SUBMIT_BUTTON:
             self.getControl(self.DETAILS_VISIBLE_LABEL).setVisible(True)
-            self.getControl(self.THANKS_YOU_VISIBLE_LABEL).setVisible(False)
-
-            client.submitData(self.serviceUrl, self.data)
+            self.getControl(self.THANK_YOU_VISIBLE_LABEL).setVisible(False)
+
+            try:
+                if self.serviceUrl is not None:
+                    client.submitData(self.serviceUrl, self.data)
+                elif self.gmailRecipient is not None:
+                    client.emailData(self.gmailRecipient, self.data)
+            except Exception:
+                
self.getControl(self.THANK_YOU_LABEL).setLabel(buggaloAddon.getLocalizedString(91009))
+                (etype, value, tb) = sys.exc_info()
+                traceback.print_exception(etype, value, tb)
 
             xbmc.sleep(2000)
             self.close()
@@ -109,6 +120,5 @@ class BuggaloDialog(xbmcgui.WindowXMLDialog):
             else:
                 
self.getControl(self.DETAILS_BUTTON).setLabel(buggaloAddon.getLocalizedString(91006))
 
-
     def onFocus(self, control):
         pass
\ No newline at end of file
diff --git a/script.module.buggalo/lib/buggalo_userflow.py 
b/script.module.buggalo/lib/buggalo_userflow.py
index a22fe29..e195879 100644
--- a/script.module.buggalo/lib/buggalo_userflow.py
+++ b/script.module.buggalo/lib/buggalo_userflow.py
@@ -1,5 +1,5 @@
 #
-#      Copyright (C) 2012 Tommy Winther
+#      Copyright (C) 2013 Tommy Winther
 #      http://tommy.winther.nu
 #
 #  This Program is free software; you can redistribute it and/or modify
@@ -30,6 +30,7 @@ ADDON = xbmcaddon.Addon()
 
 # TODO always send userflow, ie. daily upload for usage statistics
 
+
 def trackUserFlow(value):
     """
     Registers an entry in the user's flow through the addon.
@@ -44,6 +45,7 @@ def trackUserFlow(value):
     userFlow[key] = value
     saveUserFlow(userFlow)
 
+
 def loadUserFlow():
     path = xbmc.translatePath(BUGGALO_ADDON.getAddonInfo('profile'))
     file = os.path.join(path, '%s.json' % ADDON.getAddonInfo('id'))
@@ -57,6 +59,7 @@ def loadUserFlow():
         userFlow = dict()
     return userFlow
 
+
 def saveUserFlow(userFlow):
     path = xbmc.translatePath(BUGGALO_ADDON.getAddonInfo('profile'))
     if not os.path.exists(path):
@@ -64,7 +67,7 @@ def saveUserFlow(userFlow):
             os.makedirs(path)
         except OSError:
             print "unable to create directory for saving userflow; userflow 
will not be saveds"
-            return # ignore
+            return  # ignore
 
     try:
         file = os.path.join(path, '%s.json' % ADDON.getAddonInfo('id'))
@@ -73,7 +76,7 @@ def saveUserFlow(userFlow):
         # we compare strings rather the datetimes (a little hackish though)
         # but datetime.datetime.strptime() often fail for no apparent reason
         # see http://forum.xbmc.org/showthread.php?tid=112916
-        oneDayAgo = datetime.datetime.now() - datetime.timedelta(days = 1)
+        oneDayAgo = datetime.datetime.now() - datetime.timedelta(days=1)
         oneDayAgoStr = oneDayAgo.isoformat()
         for dateStr in userFlow.keys():
             if dateStr < oneDayAgoStr:
diff --git a/script.module.buggalo/resources/language/Danish/strings.xml 
b/script.module.buggalo/resources/language/Danish/strings.xml
index ae41c51..ad5479d 100644
--- a/script.module.buggalo/resources/language/Danish/strings.xml
+++ b/script.module.buggalo/resources/language/Danish/strings.xml
@@ -1,7 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Translated using Transifex web application. For support, or if you would 
like to to help out, please visit your language team! -->
+<!-- Danish language-Team URL: 
http://www.transifex.com/projects/p/xbmc-addons/language/da/ -->
+<!-- Report language file syntax bugs at: [email protected] -->
+
 <strings>
-    <string id="91000">Der er desværre opstået en fejl i [B]%s[/B] 
addon'en.</string>
-    <string id="91001">Du kan hjælpe med at løse fejlen ved at indsende en 
fejlrapport.</string>
+    <string id="90000">[B]That's it man, game over man, [I]Game over![/I][/B] 
~ Aliens (1986)</string>
+    <string id="90001">[B]You can't handle the truth![/B] ~ A Few Good Men 
(1992)</string>
+    <string id="90002">[B]Danger Will Robinson[/B] ~ Lost in Space 
(1998)</string>
+    <string id="90003">[B]Why does it cry, Sméagol?[/B] ~ The Two Towers 
(2002)</string>
+    <string id="90004">[B]Houston, we have a problem...[/B] ~ Apollo 13 
(1995)</string>
+    <string id="90005">[B]E.T. phone home[/B] ~ E.T. (1982)</string>
+    <string id="90006">[B]Frankly, my dear, I don't give a damn[/B] ~ Gone 
with the Wind (1939)</string>
+    <string id="90007">[B]Go ahead, make my day[/B] ~ Sudden Impact 
(1983)</string>
+    <string id="90008">[B]May the Force be with you[/B] ~ Star Wars 
(1977)</string>
+    <string id="90009">[B]You talkin' to me?[/B] ~ Taxi Driver (1976)</string>
+    <string id="90010">[B]Round up the usual suspects[/B] ~ Casablanca 
(1942)</string>
+    <string id="90011">[B]You're gonna need a bigger boat[/B] ~ Jaws 
(1975)</string>
+    <string id="91000">Der er desværre opstået en fejl i [B]%s[/B] 
addon.</string>
+    <string id="91001">Du kan hjælpe med at løse fejlen ved at indsende en 
fejlrapport. </string>
     <string id="91002">Klik [I]Vis fejlrapport[/I] for detaljer. Der sendes 
ikke personlige oplysninger.</string>
     <string id="91003">Indsend fejlrapport</string>
     <string id="91004">Indsend ikke</string>
@@ -9,4 +25,5 @@
     <string id="91006">Vis fejlrapport</string>
     <string id="91007">Skjul fejlrapport</string>
     <string id="91008">Der opstod desværre et problem med at vise 
detaljerne...</string>
+    <string id="91009">Fejlrapporten kunne desværre ikke sendes!</string>
 </strings>
diff --git a/script.module.buggalo/resources/language/English/strings.xml 
b/script.module.buggalo/resources/language/English/strings.xml
index 04cd3e0..bda27b0 100644
--- a/script.module.buggalo/resources/language/English/strings.xml
+++ b/script.module.buggalo/resources/language/English/strings.xml
@@ -1,4 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Translated using Transifex web application. For support, or if you would 
like to to help out, please visit your language team! -->
+<!-- English language-Team URL: 
http://www.transifex.com/projects/p/xbmc-addons/language/en/ -->
+<!-- Report language file syntax bugs at: [email protected] -->
+
 <strings>
     <string id="90000">[B]That's it man, game over man, [I]Game over![/I][/B] 
~ Aliens (1986)</string>
     <string id="90001">[B]You can't handle the truth![/B] ~ A Few Good Men 
(1992)</string>
@@ -12,7 +16,6 @@
     <string id="90009">[B]You talkin' to me?[/B] ~ Taxi Driver (1976)</string>
     <string id="90010">[B]Round up the usual suspects[/B] ~ Casablanca 
(1942)</string>
     <string id="90011">[B]You're gonna need a bigger boat[/B] ~ Jaws 
(1975)</string>
-
     <string id="91000">Unfortunately an error occurred in the [B]%s[/B] 
addon.</string>
     <string id="91001">You can help with fixing the problem by submitting an 
error report. </string>
     <string id="91002">Click [I]Show error report[/I] for details. No personal 
information is sent.</string>
@@ -22,5 +25,5 @@
     <string id="91006">Show error report</string>
     <string id="91007">Hide error report</string>
     <string id="91008">Unfortunately a problem occurred while showing the 
details...</string>
-
+    <string id="91009">Unable to send error report!</string>
 </strings>
diff --git a/script.module.buggalo/resources/language/French/strings.xml 
b/script.module.buggalo/resources/language/French/strings.xml
index 573f740..69a66e5 100644
--- a/script.module.buggalo/resources/language/French/strings.xml
+++ b/script.module.buggalo/resources/language/French/strings.xml
@@ -1,9 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Translated using Transifex web application. For support, or if you would 
like to to help out, please visit your language team! -->
+<!-- French language-Team URL: 
http://www.transifex.com/projects/p/xbmc-addons/language/fr/ -->
+<!-- Report language file syntax bugs at: [email protected] -->
+
 <strings>
-    <string id="91000">Une erreur s'est produite. Vous pouvez aider à 
corriger</string>
+    <string id="90000">[B]That's it man, game over man, [I]Game over![/I][/B] 
~ Alien (1986)</string>
+    <string id="90001">[B]Vous ne pouvez pas détenir la vérité ![/B] ~ Des 
hommes d'honneur (1992)</string>
+    <string id="90002">[B]Danger Will Robinson[/B] ~ Perdu dans l'espace 
(1998)</string>
+    <string id="90003">[B]Qui l'a fait pleuré, Sméagol ?[/B] ~ Les deux 
tours (2002)</string>
+    <string id="90004">[B]Houston, on a un problème ...[/B] ~ Apollo 13 
(1995)</string>
+    <string id="90005">[B]E.T. téléphone maison[/B] ~ E.T. (1982)</string>
+    <string id="90006">[B]Franchement, mon cher, j'en ai rien à foutre[/B] ~ 
Autant en emporte le vent (1939)</string>
+    <string id="90007">[B]Vas-y, fais moi plaisir[/B] ~ Le Retour de 
l'inspecteur Harry (1983)</string>
+    <string id="90008">[B]Que la Force vois avec toi[/B] ~ Star wars 
(1977)</string>
+    <string id="90009">[C'est à moi qu'tu parles ?[/B] ~ Taxi driver 
(1976)</string>
+    <string id="90010">[B]Ramassez les suspects habituels[/B] ~ Casablanca 
(1942)</string>
+    <string id="90011">[B]Vous aurez besoin d'un plus gros bateau[/B] ~ Les 
dents de la mer (1975)</string>
+    <string id="91000">Malheureusement une erreur est survenue dans l'addon 
[B]%s[/B].</string>
     <string id="91001">le problème en envoyant un rapport d'erreur.</string>
     <string id="91002">Aucune information personnel n'est transmise.</string>
     <string id="91003">Envoyer un rapport</string>
     <string id="91004">Ne pas envoyer</string>
     <string id="91005">Merci!</string>
-</strings>
\ No newline at end of file
+    <string id="91006">Afficher le rapport d'erreur</string>
+    <string id="91007">Cacher le rapport d'erreur</string>
+    <string id="91008">Malheureusement un problème est survenu durant 
l'affichage des détails...</string>
+    <string id="91009">Impossible t'envoyer le rapport d'erreur !</string>
+</strings>
diff --git a/script.module.buggalo/resources/language/German/strings.xml 
b/script.module.buggalo/resources/language/German/strings.xml
index fd9ac46..dbf2f3c 100644
--- a/script.module.buggalo/resources/language/German/strings.xml
+++ b/script.module.buggalo/resources/language/German/strings.xml
@@ -1,9 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Translated using Transifex web application. For support, or if you would 
like to to help out, please visit your language team! -->
+<!-- German language-Team URL: 
http://www.transifex.com/projects/p/xbmc-addons/language/de/ -->
+<!-- Report language file syntax bugs at: [email protected] -->
+
 <strings>
-    <string id="91000">Es ist leider ein Fehler im Addon aufgetreten.</string>
+    <string id="90000">[B]Die Show ist gelaufen, das Spiel ist aus, Freunde! 
[I]Das Spiel ist aus![/I][/B] ~ Aliens (1986)</string>
+    <string id="90001">[B]Sie können die Wahrheit doch gar nicht 
vertragen![/B] ~ Eine Frage der Ehre (1992)</string>
+    <string id="90002">[B]Danger Will Robinson[/B] ~ Lost in Space 
(1998)</string>
+    <string id="90003">[B]Sméagol, warum weint Sméagol?[/B] ~ Die Zwei 
Türme (2002)</string>
+    <string id="90004">[B]Houston, wir haben ein Problem...[/B] ~ Apollo 13 
(1995)</string>
+    <string id="90005">[B]E.T. nach Hause telefonieren[/B] ~ E.T. 
(1982)</string>
+    <string id="90006">[B]Ehrlich gesagt, meine Liebe, das ist mir egal[/B] ~ 
Vom Winde verweht (1939)</string>
+    <string id="90007">[B]Mach schon, make my day[/B] ~ Dirty Harry kommt 
zurück (1983)</string>
+    <string id="90008">[B]Möge die Macht mit dir sein[/B] ~ Krieg der Sterne 
(1977)</string>
+    <string id="90009">[B]Redest du mit mir?[/B] ~ Taxi Driver (1976)</string>
+    <string id="90010">[B]Verhaftet die üblichen Verdächtigen[/B] ~ 
Casablanca (1942)</string>
+    <string id="90011">[B]Sie werden ein größeres Boot brauchen[/B] ~ Der 
weiße Hai (1975)</string>
+    <string id="91000">Es ist ein Fehler in der Erweiterung [B]%s[/B] 
aufgetreten.</string>
     <string id="91001">Du kannst helfen indem du einen Report sendest.</string>
-    <string id="91002">Keine Persönlichen Informationen werden 
gesendet!</string>
+    <string id="91002">Klicke auf [I]Fehlerbericht anzeigen[/I] für Details. 
Keine Persönlichen Informationen werden gesendet.</string>
     <string id="91003">Report senden</string>
     <string id="91004">Nicht senden</string>
     <string id="91005">Danke für die Mithilfe!</string>
+    <string id="91006">Fehlerbericht anzeigen</string>
+    <string id="91007">Fehlerbericht ausblenden</string>
+    <string id="91008">Leider ist ein Problem beim Anzeigen der Details 
aufgetreten...</string>
+    <string id="91009">Der Fehlerbericht konnte nicht gesendet werden!</string>
 </strings>
diff --git 
a/script.module.buggalo/resources/skins/Default/720p/buggalo-dialog.xml 
b/script.module.buggalo/resources/skins/Default/720p/buggalo-dialog.xml
index fa3cd77..cfaa037 100644
--- a/script.module.buggalo/resources/skins/Default/720p/buggalo-dialog.xml
+++ b/script.module.buggalo/resources/skins/Default/720p/buggalo-dialog.xml
@@ -195,6 +195,7 @@
                     <height>40</height>
                     <font>font13</font>
                     <textcolor>ffffffff</textcolor>
+                    <focusedcolor>ffffffff</focusedcolor>
                     <label>$ADDON[script.module.buggalo 91004]</label>
                     <align>center</align>
                     <aligny>center</aligny>
@@ -210,6 +211,7 @@
                     <height>40</height>
                     <font>font13</font>
                     <textcolor>ffffffff</textcolor>
+                    <focusedcolor>ffffffff</focusedcolor>
                     <label>$ADDON[script.module.buggalo 91003]</label>
                     <align>center</align>
                     <texturefocus>buggalo-button-focus.png</texturefocus>
@@ -226,6 +228,7 @@
                     <height>40</height>
                     <font>font13</font>
                     <textcolor>ffffffff</textcolor>
+                    <focusedcolor>ffffffff</focusedcolor>
                     <label>$ADDON[script.module.buggalo 91006]</label>
                     <align>center</align>
                     <aligny>center</aligny>
@@ -245,7 +248,7 @@
                 <visible>!Control.IsVisible(98)</visible>
                 <animation effect="fade" start="0" end="100" 
time="500">Visible</animation>
 
-                <control type="label">
+                <control type="label" id="203">
                     <posx>0</posx>
                     <posy>76</posy>
                     <width>740</width>

-----------------------------------------------------------------------

Summary of changes:
 script.module.buggalo/README.md                    |   49 ++++++++++++-----
 script.module.buggalo/addon.xml                    |   49 +++++++++++++++--
 script.module.buggalo/changelog.txt                |   10 ++++
 script.module.buggalo/lib/buggalo.py               |   29 +++++++---
 script.module.buggalo/lib/buggalo_client.py        |   57 +++++++++++++++++---
 script.module.buggalo/lib/buggalo_gui.py           |   44 +++++++++------
 script.module.buggalo/lib/buggalo_userflow.py      |    9 ++-
 .../resources/language/Belarusian/strings.xml      |   29 ++++++++++
 .../resources/language/Catalan/strings.xml         |   11 ++++
 .../language/Chinese (Simple)/strings.xml          |   29 ++++++++++
 .../resources/language/Danish/strings.xml          |   23 +++++++-
 .../resources/language/Dutch/strings.xml           |   29 ++++++++++
 .../resources/language/English/strings.xml         |    9 ++-
 .../resources/language/French/strings.xml          |   26 ++++++++-
 .../resources/language/Galician/strings.xml        |   29 ++++++++++
 .../resources/language/German/strings.xml          |   26 ++++++++-
 .../resources/language/Greek/strings.xml           |   29 ++++++++++
 .../resources/language/Hebrew/strings.xml          |   29 ++++++++++
 .../resources/language/Hungarian/strings.xml       |   18 ++++++
 .../resources/language/Italian/strings.xml         |   29 ++++++++++
 .../resources/language/Polish/strings.xml          |   29 ++++++++++
 .../language/Portuguese (Brazil)/strings.xml       |   29 ++++++++++
 .../resources/language/Portuguese/strings.xml      |   29 ++++++++++
 .../resources/language/Slovak/strings.xml          |   29 ++++++++++
 .../resources/language/Spanish/strings.xml         |   29 ++++++++++
 .../resources/language/Swedish/strings.xml         |   29 ++++++++++
 .../skins/Default/720p/buggalo-dialog.xml          |    5 ++-
 27 files changed, 675 insertions(+), 67 deletions(-)
 create mode 100644 
script.module.buggalo/resources/language/Belarusian/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Catalan/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Chinese 
(Simple)/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Dutch/strings.xml
 create mode 100644 
script.module.buggalo/resources/language/Galician/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Greek/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Hebrew/strings.xml
 create mode 100644 
script.module.buggalo/resources/language/Hungarian/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Italian/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Polish/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Portuguese 
(Brazil)/strings.xml
 create mode 100644 
script.module.buggalo/resources/language/Portuguese/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Slovak/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Spanish/strings.xml
 create mode 100644 script.module.buggalo/resources/language/Swedish/strings.xml


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to