Bladeren bron

updated the localization files for English and German

Helmut Pozimski 10 jaren geleden
bovenliggende
commit
c23b42fc98
9 gewijzigde bestanden met toevoegingen van 461 en 764 verwijderingen
  1. 4 3
      TODO
  2. 1 1
      lib_stov/configuration.py
  3. 1 8
      lib_stov/database.py
  4. 8 8
      lib_stov/stov_exceptions.py
  5. BIN
      locale/de/LC_MESSAGES/stov.mo
  6. 222 387
      locale/de/LC_MESSAGES/stov.po
  7. BIN
      locale/en/LC_MESSAGES/stov.mo
  8. 172 337
      locale/en/LC_MESSAGES/stov.po
  9. 53 20
      stov

+ 4 - 3
TODO

@@ -1,5 +1,6 @@
 TODOs for 1.0:
 
-*Rework and correct strings
-*Restructure the whole code to avoid duplication and centralize database access
-*Switch to logger for output instead of print
+* Renew localization files
+* Reintroduce some of the removed debug output
+* Test the whole code again
+* Check and correct exit conditions in the main script

+ 1 - 1
lib_stov/configuration.py

@@ -61,7 +61,7 @@ class conf(object):
                              "saved"),
             "maxvideos": _("the maximum number of videos to retrieve for each "
                            "subscription"),
-            "mailhost": _("the host of your mail server"),
+            "mailhost": _("the host name of your mail server"),
             "mailto": _("the address used for notifications"),
             "mailfrom": _("the sender address of notification e-mails"),
             "smtpport": _("the port to use on your mail server"),

+ 1 - 8
lib_stov/database.py

@@ -78,8 +78,6 @@ class db(object):
             downloaded INT,
             failcnt INTEGER DEFAULT 0
             );""")
-        exit_message = _("Created initial database tables.")
-        return exit_message
 
     def Update(self):
         """Updates the database structure to match the current version"""
@@ -116,8 +114,6 @@ class db(object):
             self.__ExecuteStatement(deletevideos, (sub_id,))
             deletesubscription = "DELETE FROM subscriptions WHERE id=?"
             self.__ExecuteStatement(deletesubscription, (sub_id,))
-            message = "Subscription deleted successfully!"
-        return message
 
     def GetVideos(self, video_id):
         """Gets all videos of a given subscription id from the database and
@@ -151,8 +147,6 @@ class db(object):
         insert_data = (video.title, video.description, video.ytid,
                        subscription_id, 0)
         self.__ExecuteStatement(video_insert, insert_data)
-        message = "Video %s successfully inserted into database." % video.title
-        return message
 
     def InsertSubscription(self, data):
         """Inserts a subscription with the given data into the database"""
@@ -163,8 +157,7 @@ class db(object):
         subscription_getid = "SELECT id from subscriptions where title=?"
         query_cursor = self.__ExecuteStatement(subscription_getid, (data[0],))
         subscription_id = query_cursor.fetchone()[0]
-        message = "Subscription sucessfully inserted into database."
-        return (message, subscription_id)
+        return subscription_id
 
     def UpdateVideoDownloadStatus(self, video_id, status):
         """Updates the download status of a video in the database"""

+ 8 - 8
lib_stov/stov_exceptions.py

@@ -39,7 +39,7 @@ class DBWriteAccessFailedException(Exception):
     """
 
     def __init__(self):
-        self.__message = _("Write access to the database failed, please check"
+        self.__message = _("Write access to the database failed, please check "
                            "file permissions and the file system and try"
                            " again!")
 
@@ -80,7 +80,7 @@ class YoutubeAPITimeoutException(Exception):
 
     def __init__(self, title):
         self.__message = _("The API Request timed out for subscription %s,"
-                           "please try again later") % title
+                           "please try again later.") % title
 
     def __str__(self):
         return self.__message
@@ -93,8 +93,8 @@ class ConfigFileWriteErrorException(Exception):
     """
     def __init__(self):
         self.__message = _("The configuration could not be written, please"
-                           "check that the configuration direcroty exists"
-                           "and is writable.")
+                           " check that the configuration direcroty exists"
+                           " and is writable.")
 
     def __str__(self):
         return self.__message
@@ -121,7 +121,7 @@ class ConfigFileReadErrorException(Exception):
     def __init__(self):
         self.__message = _("The configuration could not be read, please check "
                            "that the configuration file exists and is "
-                           "readable")
+                           "readable.")
 
     def __str__(self):
         return self.__message
@@ -158,9 +158,9 @@ class DownloadDirectoryCreationFailedException(Exception):
 
     """
     def __init__(self):
-        self.__message = _("Download directory does not exist and can't be "
-                           "created. Please check your configuration and try "
-                           "again")
+        self.__message = _("The download directory does not exist and can't "
+                           "be created. Please check your configuration and "
+                           "try again.")
 
     def __str__(self):
         return self.__message

BIN
locale/de/LC_MESSAGES/stov.mo


+ 222 - 387
locale/de/LC_MESSAGES/stov.po

@@ -3,9 +3,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.4\n"
+"Project-Id-Version: 0.8\n"
 "POT-Creation-Date: 2012-12-27 22:18+CET\n"
-"PO-Revision-Date: 2014-04-15 19:19+CEST\n"
+"PO-Revision-Date: 2014-06-09 12:21+CEST\n"
 "Last-Translator: Helmut Pozimski <helmut@pozimski.eu>\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -14,373 +14,369 @@ msgstr ""
 "Generated-By: pygettext.py 1.5\n"
 
 
-#: configuration.py:56
+#: lib_stov/configuration.py:59
 msgid "the name of your database file"
 msgstr "den Namen deiner Datenbankdatei"
 
-#: configuration.py:57
+#: lib_stov/configuration.py:60
 msgid "the directory where downloaded videos are saved"
 msgstr "das Verzeichnis, in dem heruntergeladene Videos gespeichert werden"
 
-#: configuration.py:58
+#: lib_stov/configuration.py:62
 msgid "the maximum number of videos to retrieve for each subscription"
 msgstr "die maximale Anzahl an Videos, die für jedes Abonnement heruntergeladen werden"
 
-#: configuration.py:60
-msgid "the host of your mail server"
+#: lib_stov/configuration.py:64
+msgid "the host name of your mail server"
 msgstr "die Adresse deiner Mailservers"
 
-#: configuration.py:61
+#: lib_stov/configuration.py:65
 msgid "the address used for notifications"
 msgstr "die Empfängeradresse für Benachrichtigungs-Emails"
 
-#: configuration.py:62
+#: lib_stov/configuration.py:66
 msgid "the sender address of notification e-mails"
 msgstr "die Absenderadresse für Benachrichtigungs-Emails"
 
-#: configuration.py:63
+#: lib_stov/configuration.py:67
 msgid "the port to use on your mail server"
-msgstr "den Versandport deines Mailservers"
+msgstr "den SMTP-Port deines Mailservers"
 
-#: configuration.py:64
+#: lib_stov/configuration.py:68
 msgid "if your mail server requires authentication"
 msgstr "ob dein Mailserver eine Authentifizierung voraussetzt"
 
-#: configuration.py:65
+#: lib_stov/configuration.py:69
 msgid "the user name used to authenticate to your mail server"
 msgstr "den Benutzernamen für die Authentifizierung am Mailserver"
 
-#: configuration.py:66
+#: lib_stov/configuration.py:71
 msgid "the password used to authenticate to your mail server"
 msgstr "das für die Authentifizierung am Mailserver zu nutzende Passwort"
 
-#: configuration.py:67
+#: lib_stov/configuration.py:73
 msgid "the path to your youtube-dl installation"
-msgstr "der Pfad zu deiner youtube-dl-Installation"
+msgstr "den Pfad zu deiner youtube-dl-Installation"
 
-#: configuration.py:68
+#: lib_stov/configuration.py:74
 msgid "if you want to be notified via e-mail about new videos"
 msgstr "ob du über neue Videos per E-Mail benachrichtigt werden möchtest"
 
-#: configuration.py:69
+#: lib_stov/configuration.py:76
 msgid "which video codec you prefer (h264, webm or flv)"
 msgstr "welchen Video-Codec du bevorzugst (h264, webm oder flv)"
 
-#: configuration.py:70
+#: lib_stov/configuration.py:78
 msgid "which resolution you prefer (360p, 480p, 720p or 1080p)"
 msgstr "welche Auflösung du bevorzugst (360p, 480p, 720p oder 1080p)"
 
-#: configuration.py:73
+#: lib_stov/configuration.py:80
 msgid "if you want to compare the title of a video with the subscription search string"
 msgstr "ob der Titel jedes Videos mit dem Suchstring des entsprechenden Abonnements verglichen werden soll"
 
-#: configuration.py:83
-msgid "Opening configuration file"
-msgstr "Öffne die Konfigurationsdatei"
-
-#: configuration.py:87
-msgid "Configuration could not be written, please check that the configuration directory exists and is writable"
-msgstr "Die Konfigurationsdatei konnte nicht geschrieben werden. Bitte überprüfe, ob das Konfigurationsverzeichnis existiert und schreibbar ist."
-
-#: configuration.py:92
-msgid "Writing value for %s"
-msgstr "Schreibe Wert für %s"
-
-#: configuration.py:102
-msgid "The database could not be created, please check that the configuration directory exists and is writable"
-msgstr "Die Datenbank konnte nicht erstellt werden. Bitte überprüfe, ob das Konfigurationsverzeichnis existiert und schreibbar ist."
-
-#: configuration.py:107
-msgid "Creating table subscriptions"
-msgstr "Erstelle Tabelle subscriptions"
-
-#: configuration.py:117
-msgid "Creating table videos"
-msgstr "Erstelle Tabelle Videos"
-
-#: configuration.py:137
-msgid "Creating hidden directory in home for configuration and database"
-msgstr "Erstelle ein verstecktes Verzeichnis in home für die Konfiguration und die Datenbank"
-
-#: configuration.py:142
-msgid "Configuration directory could not be created, please check that your home directory exists and is writable"
-msgstr "Das Konfigurationsverzeichnis konnte nicht erstellt werden. Bitte überprüfe, dass dein Home-Verzeichnis existiert und schreibbar ist."
-
-#: configuration.py:146
-msgid "Looking for youtube-dl file"
-msgstr "Suche nach youtube-dl"
+#: lib_stov/configuration.py:216
+msgid ""
+"This assistant will help you to perform the initial configuration of stov. \n"
+"The default value will be displayed in brackets.\n"
+"Please specify now :\n"
+msgstr ""
+"Dieser Assistent wird dich dabei unterstützen, die initiale Konfiguration von stov vorzunehmen. \n"
+"Der jeweilige Standardwert wird in eckigen Klammern angegeben.\n"
+"Bitte spezifiziere jetzt :\n"
 
-#: configuration.py:159
-msgid "Opening config file for reading"
-msgstr "Öffne Konfigurationsdatei zum Lesen"
+#: lib_stov/stov_exceptions.py:28
+msgid "Could not access the database, please check path and permissions and try again!"
+msgstr "Konnte nicht auf die Datenbank zugreifen, überprüfe bitte den Pfad und die Dateiberechtigungen und versuche es erneut!"
 
-#: configuration.py:163
-msgid "Configuration could not be read, please check that the configuration file exists and is readable"
-msgstr "Die Konfiguration konnte nicht gelesen werden. Bitte überprüfe, dass die Konfigurationsdatei existiert und lesbar ist."
+#: lib_stov/stov_exceptions.py:42
+msgid "Write access to the database failed, please check file permissions and the file system and try again!"
+msgstr "Der Schreibzugriff auf die Datenbank ist fehlgeschlagen, bitte überprüfe die Datei und Ihre Berechtigungen und versuche es erneut!"
 
-#: configuration.py:167
-msgid "Reading line %s"
-msgstr "Lese Zeile %s"
+#: lib_stov/stov_exceptions.py:57
+msgid "The subscription you requested could not be found in the database, requested action aborted."
+msgstr "Das angeforderte Abonnement konnte nicht in der Datenbank gefunden werden, der Vorgang wurde abgebrochen."
 
-#: configuration.py:180
-msgid "Checking current and running configuration version"
-msgstr "Vergleiche aktuelle und momentan verwendete Konfigurationsversion"
+#: lib_stov/stov_exceptions.py:71
+msgid "The connection to the youtube API failed or no data was returned."
+msgstr "Der Zugriff auf die Youtube-API schlug fehl oder es wurden keine Daten zurückgegeben."
 
-#: configuration.py:185
-msgid "Invalid config version read"
-msgstr "Ungültige Konfigurationsversion gefunden"
+#: lib_stov/stov_exceptions.py:82
+msgid "The API Request timed out for subscription %s,please try again later."
+msgstr "Die API-Abfrage für das Abonnement %s hat eine Zeitüberschreitung verursacht, bitte versuche es später erneut."
 
-#: configuration.py:190
-msgid "Found running version: "
-msgstr "Momentan genutzte Version: "
+#: lib_stov/stov_exceptions.py:95
+msgid "The configuration could not be written, please check that the configuration direcroty exists and is writable."
+msgstr "Die Konfigurationsdatei konnte nicht geschrieben werden. Bitte überprüfe, dass das Konfigurationsverzeichnis existiert und schreibbar ist."
 
-#: configuration.py:191 configuration.py:215
-msgid "Current version: "
-msgstr "Aktuelle Version: "
+#: lib_stov/stov_exceptions.py:108
+msgid "The directory could not be created, please check that the parent directory exists and is writable"
+msgstr "Das Verzeichnis konnte nicht erstellt werden. Bitte überprüfe, ob das übergeordnete Verzeichnis existiert und schreibbar ist."
 
-#: configuration.py:210
-msgid "Checking current and running database version."
-msgstr "Vergleiche aktuelle und momentan verwendete Datenbankversion"
+#: lib_stov/stov_exceptions.py:122
+msgid "The configuration could not be read, please check that the configuration file exists and is readable."
+msgstr "Die Konfigurationsdatei konnte nicht gelesen werden. Bitte überprüfe, ob sie existiert und lesbar ist."
 
-#: configuration.py:214
-msgid "Found running database version: "
-msgstr "Momentan laufende Datenbankversion: "
+#: lib_stov/stov_exceptions.py:136
+msgid "Invalid config version read."
+msgstr "Es wurde eine unültige Konfigurationsversion gefunden."
 
-#: configuration.py:232
-msgid "The database could not be updated, please check that the configuration directory exists and is writable"
-msgstr "Der Datenbankinhalt konnte nicht aktualisiert werden. Bitte überprüfe, dass das Konfigurationsverzeichnis existiert und schreibbar ist."
+#: lib_stov/stov_exceptions.py:148
+msgid "The subscription %s is disabled, videos will not be downloaded."
+msgstr "Das Abonnement %s ist deaktiviert, Videos werden nicht heruntergeladen."
 
-#: configuration.py:252
-msgid "Trying to determine the itag value for youtube-dl from your quality and codec settings"
-msgstr "Versuche, den itag-Wert aus den Einstellungen für Qualität und Codec zu ermitteln"
+#: lib_stov/stov_exceptions.py:161
+msgid "The download directory does not exist and can't be created. Please check your configuration and try again."
+msgstr "Das Download-Verzeichnis existiert nicht und kann nicht erstellt werden. Bitte überprüfe die Konfiguration und versuche es erneut."
 
-#: configuration.py:283
-msgid "Found value: %s"
-msgstr "Folgender Wert wurde gefunden: %s"
+#: lib_stov/subscription.py:122
+msgid "   (pending)"
+msgstr "    (wartet)"
 
-#: configuration.py:290
-msgid ""
-"This assistant will help you to perform the initial configuration of stov. \n"
-"The default value will be displayed in brackets.\n"
-"Please specify now :\n"
-msgstr ""
-"Dieser Assistent wird dich dabei unterstützen, die initiale Konfiguration von stov vorzunehmen. \n"
-"Der jeweilige Standardwert wird in eckigen Klammern angegeben.\n"
-"Bitte spezifiziere jetzt :\n"
+#: lib_stov/subscription.py:124
+msgid "   (downloaded)"
+msgstr "    (heruntergeladen)"
 
-#: configuration.py:303
-msgid "Writing initial configuration according to your input, have fun!"
-msgstr "Schreibe die initiale Konfiguration anhand deiner Eingaben, viel Spaß!"
+#: lib_stov/subscription.py:126
+msgid "   (failed)"
+msgstr "    (fehlgeschlagen)"
 
-#: stov.py:51
-msgid "Translation files could not be found, localization won't be available"
+#: stov:68
+msgid "The translation files could not be found, localization won't be available"
 msgstr ""
 
-#: stov.py:65
+#: stov:81
 msgid "STRG+C has been pressed, quitting..."
 msgstr "STRG+C wurde gedrückt, beende..."
 
-#: stov.py:68
+#: stov:83
 msgid "Received SIGTERM, quitting..."
 msgstr "SIGTERM wurde empfangen, beende..."
 
-#: stov.py:66
+#: stov:100
 msgid "option %s requires an integer value"
 msgstr "die Option %s erfordert einen ganzzahligen Wert"
 
-#: stov.py:71
+#: stov:104
 msgid "option %s requires an argument"
 msgstr "die Option %s erfordert ein Argument"
 
-#: stov.py:75
+#: stov:108
 msgid "invalid option %s"
 msgstr "ungültige Option %s"
 
-#: stov.py:100
+#: stov:137
 msgid "Usage: %prog [options]"
 msgstr "%prog [Optionen]"
 
-#: stov.py:124
+#: stov:141
 msgid "show this help message and exit"
 msgstr "zeigt diese Nachricht an und beendet das Programm"
 
-#: stov.py:104
-msgid "Add a new subscription (requires either --search, --channel or --playlist)"
+#: stov:143
+msgid "Add a new subscription (requires either                   --search, --channel or --playlist)"
 msgstr "fügt ein neues Abonnement hinzu (erfordert entweder --search, --channel oder --playlist)"
 
-#: stov.py:107
+#: stov:146
 msgid "Add a new Playlist subscription (requires add)"
 msgstr "fügt ein neues Playlist-Abonnement hinzu"
 
-#: stov.py:109
+#: stov:148
 msgid "List the currently available subscriptions"
 msgstr "listet die momentan verfügbaren Abonnements"
 
-#: stov.py:111
+#: stov:150
 msgid "remove a subscription"
 msgstr "entfernt ein Abonnement"
 
-#: stov.py:113
+#: stov:152
 msgid "update the information about the available videos"
 msgstr "aktualisiert die Informationen über verfügbare Videos"
 
-#: stov.py:115
+#: stov:154
 msgid "download all available videos which haven't already been downloaded"
 msgstr "lädt alle nicht bereits zuvor heruntergaldenen Videos herunter"
 
-#: stov.py:117
+#: stov:157
 msgid "optionally add a search string to a new channel subscription or create a new search subscription (requires --add)"
 msgstr "erstellt ein neues Abonnement als Suche oder fügt einen Such-String zu einem neuen Kanal-Abonnement hinzu (setzt --add voraus)"
 
-#: stov.py:120
+#: stov:161
 msgid "Print all videos from a subscription"
 msgstr "gibt alle Videos eines Abonnements aus"
 
-#: stov.py:122
-msgid "Mark all videos from one channel as read (requires subscription-id as argument)"
+#: stov:163
+msgid "Mark all videos from one channel as read                   (requires subscription-id as argument)"
 msgstr "markiert alles Videos eines Abonnements als heruntergeladen (benötigt die ID des Abonnements als Argument)"
 
-#: stov.py:125
+#: stov:166
 msgid "specify a channel for a new subscription (requires --add)"
 msgstr "gibt einen Kanal für ein neues Abonnement an (setzt --add voraus)"
 
-#: stov.py:127
+#: stov:169
 msgid "show the license of the program"
 msgstr "zeigt die Lizenz dieses Programms an"
 
-#: stov.py:129
+#: stov:171
 msgid "show the current running version number"
 msgstr "zeigt die aktuell laufende Version an"
 
-#: stov.py:131
+#: stov:173
 msgid "Suppress all output"
 msgstr "unterdrückt jegliche Ausgabe"
 
-#: stov.py:133
+#: stov:175
 msgid "Be verbose and print also diagnostical messages"
 msgstr "gibt zusätzliche Diagnoseinformationen aus"
 
-#: stov.py:135
+#: stov:177
 msgid "Clean the database of entries no longer listed in the current API response"
 msgstr "löscht alle Videos aus der Datenbank, die in einer aktuellen API-Abfrage nicht mehr vorkommen"
 
-#: stov:172
+#: stov:181
 msgid "enables the subscription with the provided ID"
 msgstr "aktiviert das Abonnement mit der angegebenen ID"
 
-#: stov:174
+#: stov:183
 msgid "disables the subscription with the provided ID"
 msgstr "deaktiviert das Abonnement mit der angegebenen ID"
 
-#: stov.py:156
+#: stov:207
 msgid "--quiet and --verbose can't be defined at the same time, exiting."
 msgstr "--quiet und --verbose können nicht gleichzeitig verwendet werden, Programm wird beendet."
 
-#: stov.py:176
-msgid "Lock file could not be opened, please check that it exists and is readable, quitting now"
+#: stov:230
+msgid "The lock file could not be opened, please check that it exists and is readable, quitting now"
 msgstr "Die Lock-Datei konnte nicht geöffnet werden. Bitte überprüfe, dass sie existiert und lesbar ist, Programm wird beendet."
 
-#: stov.py:182
+#: stov:235
 msgid ""
-"The lock file already exists, probably anotherinstance of this program is already running\n"
+"The lock file already exists, probably another instance of this program is already running\n"
 "if you are sure this is not the case, delete it manually and try again!"
 msgstr ""
 "Die Lock-Datei existiert bereits, wahrscheinlich läuft ein anderer Prozess bereits.\n"
 "Wenn du dir sicher bist, dass das nicht der Fall ist, lösche sie manuell und versuche es erneut!"
 
-#: stov.py:193
-msgid "Old lock file could not be deleted!"
+#: stov:245
+msgid "The old lock file could not be deleted!"
 msgstr "Eine alte Lock-Datei konnte nicht gelöscht werden!"
 
-#: stov.py:200
-msgid "Lock file could not be created, please check that /tmp is writable and properly configured, quitting now"
+#: stov:251
+msgid "The lock file could not be created, please check that /tmp is writable and properly configured, quitting now."
 msgstr "Die Lock-Datei konnte nicht erstellt werden. Überprüfe, dass /tmp schreibbar und korrekt kondiguriert ist, Programm wird beendet."
 
-#: stov.py:210
+#: stov:260
 msgid "This seems to be the first time you run the programm, do you want to run the interactive assistant? (yes/no)"
 msgstr "Dies scheint die erste Ausführung des Programms zu sein, möchtest du den Konfigurationsassistenten aufrufen? (yes/no)"
 
-#: stov.py:218
-msgid "Writing initial configuration according to default values"
-msgstr "Schreibe die initiale Konfiguration anhand der Standardwerte"
+#: stov:275
+msgid "Writing initial configuration according to your input, have fun!"
+msgstr "Schreibe die initiale Konfiguration anhand der Standardwerte, viel Spaß damit!"
+
+#: stov:278
+msgid "Writing initial configuration according to default values."
+msgstr "Schreibe die initiale Konfiguration anhand der Standardwerte."
 
-#: stov.py:224
+#: stov:280
+msgid "Creating hidden directory in home for configuration and database."
+msgstr "Erstelle das versteckte Verzeichnis im Home-Verzeichnis für die Konfiguration und die Datenbank."
+
+#: stov:291
+msgid "Comparing current and running configuration version."
+msgstr "Vergleiche die aktuelle und die laufende Version der Konfiguration."
+
+#: stov:301
 msgid "Your configuration needs to be updated, performing update now."
 msgstr "Die Konfiguration muss aktualisiert werden, die Aktualisierung wird jetzt vorgenommen."
 
-#: stov.py:229
+#: stov:334
+msgid "Created initial database tables."
+msgstr "Die Datenbank-Struktur wurde erstellt."
+
+#: stov:337
+msgid "Comparing current and running database version."
+msgstr "Vergleiche die aktuelle mit der laufenden Version der Datenbank."
+
+#: stov:339
 msgid "Your database needs to be updated, performing update now."
-msgstr "Die Datenbank muss aktualisiert werden, die Aktualisierung wird jetzt vorgenommen."
+msgstr "Die Datenbank muss aktualisiert werden, das Update wird nun durchgeführt."
 
-#: stov.py:251
-msgid "Found youtube-dl, writing to configuration file."
-msgstr "youtube-dl gefunden, Pfad wird in die Konfigurationsdatei geschrieben."
+#: stov:369
+msgid "Found youtube-dl, writing it's path to the configuration file."
+msgstr "youtube-dl gefunden, der Pfad wird in die Konfigurationsdatei geschrieben."
 
-#: stov.py:255
+#: stov:378
 msgid "Could not find youtube-dl, it either does not exist, is not readable or not executable. Please note that youtube-dl is not needed for the program to run but is needed to use the download option which won't work otherwise. If youtube-dl isn't found automatically, you may also enter the path to it in the configuration file."
 msgstr "youtube-dl konnte nicht gefunden werden. Die Datei existiert entweder nicht oder ist nicht lesbar oder ausführbar. Bitte nehme zur Kenntnis, dass youtube-dl nicht zur Ausführung des Programms benötigt wird, aber für die Download-Funktion erforderlich ist, die sonst nicht funktioniert. Wenn youtube-dl nicht automatisch gefunden wird, kannst du auch den Pfad direkt in die Konfigurationsdatei eintragen."
 
-#: stov.py:280
+#: stov:404
 msgid "Search_"
 msgstr "Suche_"
 
-#: stov.py:283
-msgid "Playlists do not support searching, search option will be ignored!"
+#: stov:409
+msgid "Playlists do not support searching, the search option will be ignored!"
 msgstr "In Playlists kann nicht gesucht werden, der Suchparameter wird ignoriert!"
 
-#: stov.py:289
-msgid "No valid subscription options given, subscription could not be added"
+#: stov:415
+msgid "None or invalid subscription type given, please check the type option and try again."
 msgstr "Keine gültigen Optionen für das Abonnement angegeben, das Abonnement konnte nicht hinzugefügt werden!"
 
-#: stov.py:296
+#: stov:425
+msgid "Subscription sucessfully inserted into database."
+msgstr "Das Abonnement wurde erfolgreich in die Datenbank eingefügt."
+
+#: stov:441 stov:507
+msgid "Video %s successfully inserted into database."
+msgstr "Das Video %s wurde erfolgreich in die Datenbank eingefügt."
+
+#: stov:443
 msgid "New subscription "
 msgstr "Neues Abonnement "
 
-#: stov.py:297
+#: stov:444
 msgid " successfully added"
 msgstr " erfolgreich hinzugefügt"
 
-#: stov.py:304 stov.py:338 stov.py:479 stov.py:503 stov.py:521
-msgid "Could not access the database, please check path and permissions and try again!"
-msgstr "Konnte nicht auf die Datenbank zugreifen, überprüfe bitte den Pfad und die Dateiberechtigungen und versuche es erneut!"
-
-#: stov.py:312
+#: stov:450
 msgid "ID Title"
 msgstr "ID Titel"
 
-#: stov:342
-msgid "The subscription could not be added"
-msgstr "Das Abonnement konnte nicht hinzugefügt werden"
-
-#: stov:358
+#: stov:453
 msgid "enabled"
 msgstr "aktiviert"
 
-#: stov:360
+#: stov:455
 msgid "disabled"
 msgstr "deaktiviert"
 
-#: stov.py:319
+#: stov:460
 msgid "No subscriptions added yet, add one!"
 msgstr "Keine Abonnements vorhanden, füge doch eines hinzu!"
 
-#: stov.py:328
-msgid "Invalid Option, please use the ID of the subscriptionyou want to delete as parameter for the remove option"
-msgstr "Ungültige Option. Bitte benutze die ID des Abonnements, das du löschen möchtest, als Paramater für die remove-Option"
+#: stov:465
+msgid "Invalid option, please use the ID of the subscription you want to delete as parameter for the remove option."
+msgstr "ngültige Option. Bitte benutze die ID des Abonnements, das du löschen möchtest, als Paramater für die remove-Option."
 
-#: stov.py:358
-msgid "Could not access the database, please check pathand permissions and try again!"
-msgstr "Konnte nicht auf die Datenbank zugreifen, überprüfe bitte den Pfad und die Dateiberechtigungen und versuche es erneut!"
+#: stov:478
+msgid "Subscription deleted successfully!"
+msgstr "Das Abonnement wurde erfolgreich gelöscht!"
+
+#: stov:513
+msgid "Trying to determine the itag value for youtube-dl from your quality and codec settings."
+msgstr "Versuche, den itag-Wert aus den Einstellungen für Qualität und Codec zu ermitteln."
+
+#: stov:516
+msgid "Found value: %s."
+msgstr "Folgender Wert wurde ermittelt: %s"
 
-#: stov.py:367
-msgid "Codec and resolution could not be determined, using maximum possible value"
-msgstr "Codec und Auflösung konnten nicht ermittelt werden, der maximal mögliche Wert wird verwendet"
+#: stov:518
+msgid "Codec and resolution could not be determined, using maximum possible value."
+msgstr "Codec und Auflösung konnten nicht ermittelt werden, der maximal mögliche Wert wird verwendet."
 
-#: stov.py:388
+#: stov:556
 msgid "Downloaded %i new video"
 msgstr "%i neues Video heruntergeladen"
 
-#: stov.py:389
+#: stov:557
 msgid ""
 "The following episode has been downloaded by stov: \n"
 "\n"
@@ -388,11 +384,11 @@ msgstr ""
 "Das folgende Video wurde von stov heruntergeladen: \n"
 "\n"
 
-#: stov.py:391
+#: stov:560
 msgid "Downloaded %i new videos"
 msgstr "%i neue Videos heruntergeladen"
 
-#: stov.py:392
+#: stov:561
 msgid ""
 "The following episodes have been downloaded by stov: \n"
 "\n"
@@ -400,237 +396,76 @@ msgstr ""
 "Die folgenden Videos wurden von stov heruntergeladen: \n"
 "\n"
 
-#: stov.py:403
+#: stov:579
 msgid "Could not connect to the smtp server, please check your settings!"
 msgstr "Konnte keine Verbindung zum smtp-Server aufbauen, bitte überprüfe die Einstellungen!"
 
-#: stov.py:409
-msgid "TLS not available, proceeding unencrypted"
+#: stov:586
+msgid "TLS not available, proceeding unencrypted."
 msgstr "TLS ist nicht verfügbar, fahre ohne Verschlüsselung fort"
 
-#: stov.py:415
-msgid "Authentication failed, please check user nameand password!"
+#: stov:592
+msgid "Authentication failed, please check user name and password!"
 msgstr "Die Authentifizierung ist fehlgeschlagen, bitte überprüfe Benutzername und Passwort!"
 
-#: stov.py:419
+#: stov:595
 msgid "Could not authenticate, server probably does not support authentication!"
 msgstr "Die Authentifizierung ist fehlgeschlagen, wahrscheinlich unterstützt der Server keine Authentifizierung!"
 
-#: stov.py:426
-msgid "The server refused the recipient address, please check your settings"
-msgstr "Der Server hat die Empfängeradresse zurückgewiesen, bitte überprüfe die Einstellungen"
+#: stov:602
+msgid "The server refused the recipient address, please check your settings."
+msgstr "Der Server hat die Empfängeradresse zurückgewiesen, bitte überprüfe die Einstellungen."
 
-#: stov.py:430
-msgid "The server refused the sender address, please check your settings"
-msgstr "Der Server hat die Absenderadresse zurückgewiesen, bitte überprüfe die Einstellungen"
+#: stov:605
+msgid "The server refused the sender address, please check your settings."
+msgstr "Der Server hat die Absenderadresse zurückgewiesen, bitte überprüfe die Einstellungen."
 
-#: stov.py:436
-msgid "No videos to be downloaded."
+#: stov:610
+msgid "There are no videos to be downloaded."
 msgstr "Keine neuen Videos zum Download verügbar."
 
-#: stov.py:440
+#: stov:613
 msgid ""
 "The following videos have been downloaded:\n"
-msgstr ""
-"Die folgenden Videos wurden heruntergeladen:\n"
+msgstr "Die folgenden Videos wurden heruntergeladen:\n"
 
-#: stov.py:446
-msgid "Could not determine how you want to be informed about new videos, please check the notify parameter in your configuration"
-msgstr "Es konnte nicht ermittelt werden, wie du über neue Videos informiert werden möchtest, bitte überprüfe den notify-Parameter der Konfiguration"
+#: stov:618
+msgid "Could not determine how you want to be informed about new videos, please check the notify parameter in your configuration."
+msgstr "Es konnte nicht ermittelt werden, wie du über neue Videos informiert werden möchtest, bitte überprüfe den notify-Parameter der Konfiguration."
 
-#: stov.py:456
-msgid "Could not access the database, please checkpath and permissions and try again!"
-msgstr "Konnte nicht auf die Datenbank zugreifen, überprüfe bitte den Pfad und die Dateiberechtigungen und versuche es erneut!"
+#: stov:641
+msgid "Invalid subscription, please check the list and try again."
+msgstr "Ungültiges Abonnement, bitte überprüfe die Liste und versuche es erneut."
 
-#: stov.py:472
-msgid "Invalid subscription, please check the list and try again"
-msgstr "Ungültiges Abonnement, bitte überprüfe die Liste und versuche es erneut"
+#: stov:656
+msgid "The subscription could not be updated, please check if the ID given is correct."
+msgstr "Das Abonnement konnte nicht aktualisiert werden, bitte überprüfe, ob die angegebene ID korrekt ist."
 
-#: stov.py:492
-msgid "Subscription could not be updated, please check if the ID given is correct"
-msgstr "Das Abonnement konnte nicht aktualisiert werden, bitte überprüfe, ob die angegebene ID korrekt ist"
+#: stov:673
+msgid "Deleting video %s from database"
+msgstr "Lösche das video %s aus der Datenbank"
 
-#: stov:596
-msgid "Subscription ID %s is already enabled"
-msgstr "Das Abonnement mit ID %s ist bereits aktiviert"
+#: stov:689
+msgid "The subscription ID %s is already enabled."
+msgstr "Das Abonnement mit ID %s ist bereits aktiviert."
 
-#: stov:603
-msgid "Enabled subscription ID %s"
+#: stov:698
+msgid "Enabled subscription ID %s."
 msgstr "Abonnement mit ID %s aktiviert"
 
-#: stov:606 stov:633
-msgid "Could not find the subscription with ID %s, please check and try again"
-msgstr "Das Abonnement mit ID %s konnte nicht gefunden werden, bitte überprüfe die ID und versuche es erneut"
+#: stov:701 stov:719
+msgid "Could not find the subscription with ID %s, please check and try again."
+msgstr "Das Abonnement mit ID %s konnte nicht gefunden werden, bitte überprüfe die ID und versuche es erneut."
 
-#: stov:623
-msgid "Subscription ID %s is already disabled"
-msgstr "Das Abonnement mit ID %s ist bereits deaktiviert"
+#: stov:707
+msgid "Subscription ID %s is already disabled."
+msgstr "Das Abonnement mit ID %s ist bereits deaktiviert."
 
-#: stov:630
-msgid "Disabled subscription ID %s"
-msgstr "Abonnement mit ID %s deaktiviert"
+#: stov:716
+msgid "Disabled subscription ID %s."
+msgstr "Abonnement mit ID %s deaktiviert."
 
-#: stov.py:554
+#: stov:748
 msgid "Could not delete the lock file. Please check what went wrong and clean up manually!"
 msgstr "Die Lock-Datei konnte nicht gelöscht werden. Bitte überprüfe, was schiefgelaufen ist und entferne sie manuell!"
 
-#: subscription.py:58
-msgid "Could not write to database, subscription was NOT deleted. Please check permissions and try again."
-msgstr "Konnte nicht in die Datenbank schreiben, das Abonnement wurde NICHT gelöscht. Bitte überprüfe die Dateiberechtigungen und versuche es erneut."
-
-#: subscription.py:72
-msgid "The subscription could not be found and was therefore not deleted"
-msgstr "Das Abonnement wurde nicht gefunden und wurde daher nicht gelöscht"
-
-#: subscription.py:69
-msgid "Subscription deleted successfully!"
-msgstr "Das Abonnement wurde erfolgreich gelöscht!"
-
-#: subscription.py:84
-msgid "Could not write to database, new video was NOT added! Please check permissions and try again."
-msgstr "Konnte nicht in die Datenbank schreiben, das neue Abonnement wurde NICHT hinzugefügt. Bitte überprüfe die Dateiberechtigungen und versuche es erneut."
-
-#: subscription.py:89
-msgid "Checking if video \"%s\" exists in the database"
-msgstr "Überprüfe, ob video \"%s\" bereits in der Datenbank existiert"
-
-#: subscription.py:94
-msgid "You have requested title checking and the title of the video does not match with the search string, ignoring it"
-msgstr "Der Titel-Abgleich ist aktiviert und der Titel des Videos passt nicht zum Such-String, es wird ignoriert"
-
-#: subscription.py:96
-msgid "Video %s not found in database, inserting..."
-msgstr "Das Video %s wurde nicht in der Datenbank gefunden, füge es hinzu..."
-
-#: subscription.py:117
-msgid "Could not access database. Please check permissions and try again."
-msgstr "Konnte nicht auf die Datenbank zugreifen, bitte überprüfe die Dateiberechtigungen und versuche es erneut."
-
-#: subscription.py:121
-msgid "Getting all videos for subscription %s from database"
-msgstr "Hole alle videos für Abonnement %s aus der Datenbank"
-
-#: subscription.py:129
-msgid "Got video %s"
-msgstr "Hole video %s"
-
-#: subscription.py:135
-msgid "Subscription %s is disabled, it will not be updated"
-msgstr "Das Abonnement %s ist deaktiviert, es wird nicht aktualisiert"
-
-#: subscription.py:152
-msgid "Videos in subscription "
-msgstr "Videos in Abonnement"
-
-#: subscription.py:156
-msgid "   (pending)"
-msgstr "    (wartet)"
-
-#: subscription.py:159
-msgid "   (downloaded)"
-msgstr "    (heruntergeladen)"
-
-#: subscription.py:162
-msgid "   (failed)"
-msgstr "    (fehlgeschlagen)"
-
-#: subscription.py:171
-msgid "Could not write to database, new subscription was NOT added! Please check permissions and try again."
-msgstr "Konnte nicht in die Datenbank schreiben, das neue Abonnement wurde NICHT hinzugefügt. Bitte überprüfe die Dateiberechtigungen und versuche es erneut."
-
-#: subscription.py:177
-msgid "Found subscription title %s"
-msgstr "Titel %s für das Abonnement ermittelt"
-
-#: subscription.py:180
-msgid "Directory: %s"
-msgstr "Verzeichnis: %s"
-
-#: subscription.py:183
-msgid "Subscription %s is disabled, videos will not be downloaded"
-msgstr "Das Abonnement %s ist deaktiviert, Videos werden nicht heruntergeladen"
-
-#: subscription.py:186
-msgid "Writing subscription info into database..."
-msgstr "Füge das Abonnement zur Datenbank hinzu..."
-
-#: subscription.py:196
-msgid "Subscription got internal ID %s"
-msgstr "Das Abonnement hat die interne ID %s erhalten"
-
-#: subscription.py:206
-msgid "Connectiong to youtube API."
-msgstr "Verbinde zur Youtube API"
-
-#: subscription.py:209
-msgid "Connection established, reading data."
-msgstr "Verbindung hergestellt, lese die Daten."
-
-#: subscription.py:214
-msgid "Could not get API data, maybe the API is down or you have given wrong parameters, please check and try again!"
-msgstr "Konnte keine Daten von der API abrufen, vielleicht ist die API down oder es wurden falsche Parameter angegeben. Bitte überprüfe dies und versuche es erneut!"
-
-#: subscription.py:259
-msgid "The API Request timed out for subscription %s, please try again later"
-msgstr "Die API-Abfrage für das Abonnement %s hat eine Zeitüberschreitung verursacht, bitte versuche es später erneut"
-
-#: subscription.py:220
-msgid "Parsing youtube API response."
-msgstr "Parse die Daten von der API."
-
-#: subscription.py:228
-msgid "Updating subscription %s"
-msgstr "Aktualisiere Abonnement %s"
-
-#: subscription.py:243
-msgid "None or invalid subscription type given, please check the type option and try again"
-msgstr "Es wurde keiner oder ein ungültiger Abonnements-Typ angegeben. Bitte überprüfe die Optionen und versuche es again"
-
-#: subscription.py:246
-msgid "Constructed the following API URL: %s"
-msgstr "Die folgende API-URL wurde konstruiert: %s"
-
-#: subscription.py:262
-msgid "Video %s deleted from the database!"
-msgstr "Das Video %s wurde aus der Datenbank entfernt!"
-
-#: subscription.py:266
-msgid "Videos %s could not be deleted from the database"
-msgstr "Das Video %s konnte nicht aus der Datenbank entfernt werden"
-
-#: youtube.py:44
-msgid "Creating directory %s"
-msgstr "Erstelle Verzeichnis %s"
-
-#: youtube.py:48
-msgid "Download directory does not exist and can't be created. Please check your configuration and try again"
-msgstr "Das Download-Verzeichnis existiert nicht und kann nicht erstellt werden. Bitte überprüfe die Konfiguration und versuche es erneut"
-
-#: youtube.py:55
-msgid "Downloading video \"%s\""
-msgstr "Lade video \"%s\" herunter"
-
-#: youtube.py:72
-msgid "The Video \"%s\" has been downloaded but the status could not be updated in the database. Please check what went wrong and correct it"
-msgstr "Das Video \"%s\" wurde heruntergeladen, aber der Status konnte nicht in der Datenbank aktualisiert werden. Bitte überprüfe, was schiefgelaufen ist und korrigiere es"
-
-#: youtube.py:79
-msgid "Downloaded video \"%s\", updating database accordingly."
-msgstr "Video \"%s\" heruntergeladen, aktualisiere den Datenbankeintrag"
-
-#: youtube.py:88
-msgid "The video %s could not be downloaded due to some problem with youtube-dl. If this happens to more than one video, please check your youtube-dl version"
-msgstr "Das Video %s konnte aufgrund eines Fehlers in youtube-dl nicht heruntergeladen werden. Wenn dies bei mehr als einem Video passiert, überprüfe bitte deine youtube-dl-Version"
-
-#: youtube.py:95
-msgid "The Video \"%s\" has failed downloading but the status could not be updated in the database. Please check what went wrong and correct it"
-msgstr "Das Video \"%s\" konnte nicht heruntergalden werden, aber der Status konnte nicht in der Datenbank aktualisiert werden. Bitte überprüfe, was schiefgelaufen ist und korrigiere es"
-
-#: youtube.py:104
-msgid "The video \"%s\" has failed downloading too often, marking as failed"
-msgstr "Das Video \"%s\" konnte zu oft nicht heruntergeladen werden, es wird als fehlgeschlagen markiert"
-
-#: youtube.py:124
-msgid "Could not connect to the database, please check settings and permissions and try again"
-msgstr "Es konnte keine Verbindung zur Datenbank hergestellt werden, bitte überprüfe die Einstellungen und Berechtigungen und versuche es erneut"
-

BIN
locale/en/LC_MESSAGES/stov.mo


+ 172 - 337
locale/en/LC_MESSAGES/stov.po

@@ -3,9 +3,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.7\n"
+"Project-Id-Version: 0.8\n"
 "POT-Creation-Date: 2012-12-27 22:18+CET\n"
-"PO-Revision-Date: 2014-04-15 19:19+CEST\n"
+"PO-Revision-Date: 2014-06-09 12:21+CEST\n"
 "Last-Translator: Helmut Pozimski <helmut@pozimski.eu>\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -13,7 +13,6 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: pygettext.py 1.5\n"
 
-
 #: lib_stov/configuration.py:59
 msgid "the name of your database file"
 msgstr ""
@@ -22,605 +21,441 @@ msgstr ""
 msgid "the directory where downloaded videos are saved"
 msgstr ""
 
-#: lib_stov/configuration.py:61
+#: lib_stov/configuration.py:62
 msgid "the maximum number of videos to retrieve for each subscription"
 msgstr ""
 
-#: lib_stov/configuration.py:63
-msgid "the host of your mail server"
+#: lib_stov/configuration.py:64
+msgid "the host name of your mail server"
 msgstr ""
 
-#: lib_stov/configuration.py:64
+#: lib_stov/configuration.py:65
 msgid "the address used for notifications"
 msgstr ""
 
-#: lib_stov/configuration.py:65
+#: lib_stov/configuration.py:66
 msgid "the sender address of notification e-mails"
 msgstr ""
 
-#: lib_stov/configuration.py:66
+#: lib_stov/configuration.py:67
 msgid "the port to use on your mail server"
 msgstr ""
 
-#: lib_stov/configuration.py:67
+#: lib_stov/configuration.py:68
 msgid "if your mail server requires authentication"
 msgstr ""
 
-#: lib_stov/configuration.py:68
+#: lib_stov/configuration.py:69
 msgid "the user name used to authenticate to your mail server"
 msgstr ""
 
-#: lib_stov/configuration.py:69
+#: lib_stov/configuration.py:71
 msgid "the password used to authenticate to your mail server"
 msgstr ""
 
-#: lib_stov/configuration.py:70
+#: lib_stov/configuration.py:73
 msgid "the path to your youtube-dl installation"
 msgstr ""
 
-#: lib_stov/configuration.py:71
+#: lib_stov/configuration.py:74
 msgid "if you want to be notified via e-mail about new videos"
 msgstr ""
 
-#: lib_stov/configuration.py:72
+#: lib_stov/configuration.py:76
 msgid "which video codec you prefer (h264, webm or flv)"
 msgstr ""
 
-#: lib_stov/configuration.py:73
+#: lib_stov/configuration.py:78
 msgid "which resolution you prefer (360p, 480p, 720p or 1080p)"
 msgstr ""
 
-#: lib_stov/configuration.py:75
+#: lib_stov/configuration.py:80
 msgid "if you want to compare the title of a video with the subscription search string"
 msgstr ""
 
-#: lib_stov/configuration.py:88
-msgid "Opening configuration file"
-msgstr ""
-
-#: lib_stov/configuration.py:92
-msgid "Configuration could not be written, please check that the configuration directory exists and is writable"
-msgstr ""
-
-#: lib_stov/configuration.py:97
-msgid "Writing value for %s"
-msgstr ""
-
-#: lib_stov/configuration.py:107
-msgid "The database could not be created, please check that the configuration directory exists and is writable"
-msgstr ""
-
-#: lib_stov/configuration.py:112
-msgid "Creating table subscriptions"
-msgstr ""
-
-#: lib_stov/configuration.py:123
-msgid "Creating table videos"
-msgstr ""
-
-#: lib_stov/configuration.py:143
-msgid "Creating hidden directory in home for configuration and database"
-msgstr ""
-
-#: lib_stov/configuration.py:148
-msgid "Configuration directory could not be created, please check that your home directory exists and is writable"
-msgstr ""
-
-#: lib_stov/configuration.py:152
-msgid "Looking for youtube-dl file"
-msgstr ""
-
-#: lib_stov/configuration.py:165
-msgid "Opening config file for reading"
-msgstr ""
-
-#: lib_stov/configuration.py:169
-msgid "Configuration could not be read, please check that the configuration file exists and is readable"
-msgstr ""
-
-#: lib_stov/configuration.py:173
-msgid "Reading line %s"
-msgstr ""
-
-#: lib_stov/configuration.py:186
-msgid "Checking current and running configuration version"
-msgstr ""
-
-#: lib_stov/configuration.py:191
-msgid "Invalid config version read"
-msgstr ""
-
-#: lib_stov/configuration.py:196
-msgid "Found running version: "
-msgstr ""
-
-#: lib_stov/configuration.py:197 lib_stov/configuration.py:221
-msgid "Current version: "
-msgstr ""
-
 #: lib_stov/configuration.py:216
-msgid "Checking current and running database version."
-msgstr ""
-
-#: lib_stov/configuration.py:220
-msgid "Found running database version: "
-msgstr ""
-
-#: lib_stov/configuration.py:238
-msgid "The database could not be updated, please check that the configuration directory exists and is writable"
-msgstr ""
-
-#: lib_stov/configuration.py:267
-msgid "Trying to determine the itag value for youtube-dl from your quality and codec settings"
-msgstr ""
-
-#: lib_stov/configuration.py:298
-msgid "Found value: %s"
-msgstr ""
-
-#: lib_stov/configuration.py:305
 msgid ""
 "This assistant will help you to perform the initial configuration of stov. \n"
 "The default value will be displayed in brackets.\n"
 "Please specify now :\n"
 msgstr ""
 
-#: lib_stov/configuration.py:318
-msgid "Writing initial configuration according to your input, have fun!"
-msgstr ""
-
-#: lib_stov/subscription.py:69
-msgid "Could not write to database, subscription was NOT deleted. Please check permissions and try again."
-msgstr ""
-
-#: lib_stov/subscription.py:77
-msgid "The subscription could not be found and was therefore not deleted"
-msgstr ""
-
-#: lib_stov/subscription.py:89
-msgid "Subscription deleted successfully!"
+#: lib_stov/stov_exceptions.py:28
+msgid "Could not access the database, please check path and permissions and try again!"
 msgstr ""
 
-#: lib_stov/subscription.py:105
-msgid "Could not write to database, new video was NOT added! Please check permissions and try again."
+#: lib_stov/stov_exceptions.py:42
+msgid "Write access to the database failed, please check file permissions and the file system and try again!"
 msgstr ""
 
-#: lib_stov/subscription.py:110
-msgid "Checking if video \"%s\" exists in the database"
+#: lib_stov/stov_exceptions.py:57
+msgid "The subscription you requested could not be found in the database, requested action aborted."
 msgstr ""
 
-#: lib_stov/subscription.py:115
-msgid "You have requested title checking and the title of the video does not match with the search string, ignoring it"
+#: lib_stov/stov_exceptions.py:71
+msgid "The connection to the youtube API failed or no data was returned."
 msgstr ""
 
-#: lib_stov/subscription.py:124
-msgid "Video %s not found in database, inserting..."
+#: lib_stov/stov_exceptions.py:82
+msgid "The API Request timed out for subscription %s,please try again later."
 msgstr ""
 
-#: lib_stov/subscription.py:135
-msgid "Subscription %s is disabled, it will not be updated"
+#: lib_stov/stov_exceptions.py:95
+msgid "The configuration could not be written, please check that the configuration direcroty exists and is writable."
 msgstr ""
 
-#: lib_stov/subscription.py:149
-msgid "Could not access database. Please check permissions and try again."
+#: lib_stov/stov_exceptions.py:108
+msgid "The directory could not be created, please check that the parent directory exists and is writable"
 msgstr ""
 
-#: lib_stov/subscription.py:153
-msgid "Getting all videos for subscription %s from database"
+#: lib_stov/stov_exceptions.py:122
+msgid "The configuration could not be read, please check that the configuration file exists and is readable."
 msgstr ""
 
-#: lib_stov/subscription.py:161
-msgid "Got video %s"
+#: lib_stov/stov_exceptions.py:136
+msgid "Invalid config version read."
 msgstr ""
 
-#: lib_stov/subscription.py:183
-msgid "Subscription %s is disabled, videos will not be downloaded"
+#: lib_stov/stov_exceptions.py:148
+msgid "The subscription %s is disabled, videos will not be downloaded."
 msgstr ""
 
-#: lib_stov/subscription.py:189
-msgid "Videos in subscription "
+#: lib_stov/stov_exceptions.py:161
+msgid "The download directory does not exist and can't be created. Please check your configuration and try again."
 msgstr ""
 
-#: lib_stov/subscription.py:193
+#: lib_stov/subscription.py:122
 msgid "   (pending)"
 msgstr ""
 
-#: lib_stov/subscription.py:196
+#: lib_stov/subscription.py:124
 msgid "   (downloaded)"
 msgstr ""
 
-#: lib_stov/subscription.py:199
+#: lib_stov/subscription.py:126
 msgid "   (failed)"
 msgstr ""
 
-#: lib_stov/subscription.py:208
-msgid "Could not write to database, new subscription was NOT added! Please check permissions and try again."
-msgstr ""
-
-#: lib_stov/subscription.py:214
-msgid "Found subscription title %s"
-msgstr ""
-
-#: lib_stov/subscription.py:217
-msgid "Directory: %s"
-msgstr ""
-
-#: lib_stov/subscription.py:223
-msgid "Writing subscription info into database..."
-msgstr ""
-
-#: lib_stov/subscription.py:233
-msgid "Subscription got internal ID %s"
-msgstr ""
-
-#: lib_stov/subscription.py:243
-msgid "Updating subscription %s"
+#: stov:68
+msgid "The translation files could not be found, localization won't be available"
 msgstr ""
 
-#: lib_stov/subscription.py:245
-msgid "Connectiong to youtube API."
-msgstr ""
-
-#: lib_stov/subscription.py:248
-msgid "Connection established, reading data."
-msgstr ""
-
-#: lib_stov/subscription.py:253
-msgid "Could not get API data, maybe the API is down or you have given wrong parameters, please check and try again!"
-msgstr ""
-
-#: lib_stov/subscription.py:259
-msgid "The API Request timed out for subscription %s, please try again later"
-msgstr ""
-
-#: lib_stov/subscription.py:259
-msgid "Parsing youtube API response."
-msgstr ""
-
-#: lib_stov/subscription.py:282
-msgid "None or invalid subscription type given, please check the type option and try again"
-msgstr ""
-
-#: lib_stov/subscription.py:285
-msgid "Constructed the following API URL: %s"
-msgstr ""
-
-#: lib_stov/subscription.py:301
-msgid "Video %s deleted from the database!"
-msgstr ""
-
-#: lib_stov/subscription.py:305
-msgid "Videos %s could not be deleted from the database"
-msgstr ""
-
-#: lib_stov/youtube.py:46
-msgid "Creating directory %s"
-msgstr ""
-
-#: lib_stov/youtube.py:50
-msgid "Download directory does not exist and can't be created. Please check your configuration and try again"
-msgstr ""
-
-#: lib_stov/youtube.py:57
-msgid "Downloading video \"%s\""
-msgstr ""
-
-#: lib_stov/youtube.py:74
-msgid "The Video \"%s\" has been downloaded but the status could not be updated in the database. Please check what went wrong and correct it"
-msgstr ""
-
-#: lib_stov/youtube.py:81
-msgid "Downloaded video \"%s\", updating database accordingly."
-msgstr ""
-
-#: lib_stov/youtube.py:90
-msgid "The video %s could not be downloaded due to some problem with youtube-dl. If this happens to more than one video, please check your youtube-dl version"
-msgstr ""
-
-#: lib_stov/youtube.py:97
-msgid "The Video \"%s\" has failed downloading but the status could not be updated in the database. Please check what went wrong and correct it"
-msgstr ""
-
-#: lib_stov/youtube.py:106
-msgid "The video \"%s\" has failed downloading too often, marking as failed"
-msgstr ""
-
-#: lib_stov/youtube.py:126
-msgid "Could not connect to the database, please check settings and permissions and try again"
-msgstr ""
-
-#: stov:61
-msgid "Translation files could not be found, localization won't be available"
-msgstr ""
-
-#: stov:75
+#: stov:81
 msgid "STRG+C has been pressed, quitting..."
 msgstr ""
 
-#: stov:78
+#: stov:83
 msgid "Received SIGTERM, quitting..."
 msgstr ""
 
-#: stov:96
+#: stov:100
 msgid "option %s requires an integer value"
 msgstr ""
 
-#: stov:101
+#: stov:104
 msgid "option %s requires an argument"
 msgstr ""
 
-#: stov:105
+#: stov:108
 msgid "invalid option %s"
 msgstr ""
 
-#: stov:132
+#: stov:137
 msgid "Usage: %prog [options]"
 msgstr ""
 
-#: stov:136
+#: stov:141
 msgid "show this help message and exit"
 msgstr ""
 
-#: stov:138
-msgid "Add a new subscription (requires either --search, --channel or --playlist)"
+#: stov:143
+msgid "Add a new subscription (requires either                   --search, --channel or --playlist)"
 msgstr ""
 
-#: stov:141
+#: stov:146
 msgid "Add a new Playlist subscription (requires add)"
 msgstr ""
 
-#: stov:143
+#: stov:148
 msgid "List the currently available subscriptions"
 msgstr ""
 
-#: stov:145
+#: stov:150
 msgid "remove a subscription"
 msgstr ""
 
-#: stov:147
+#: stov:152
 msgid "update the information about the available videos"
 msgstr ""
 
-#: stov:149
+#: stov:154
 msgid "download all available videos which haven't already been downloaded"
 msgstr ""
 
-#: stov:151
+#: stov:157
 msgid "optionally add a search string to a new channel subscription or create a new search subscription (requires --add)"
 msgstr ""
 
-#: stov:154
+#: stov:161
 msgid "Print all videos from a subscription"
 msgstr ""
 
-#: stov:156
-msgid "Mark all videos from one channel as read (requires subscription-id as argument)"
+#: stov:163
+msgid "Mark all videos from one channel as read                   (requires subscription-id as argument)"
 msgstr ""
 
-#: stov:159
+#: stov:166
 msgid "specify a channel for a new subscription (requires --add)"
 msgstr ""
 
-#: stov:161
+#: stov:169
 msgid "show the license of the program"
 msgstr ""
 
-#: stov:163
+#: stov:171
 msgid "show the current running version number"
 msgstr ""
 
-#: stov:165
+#: stov:173
 msgid "Suppress all output"
 msgstr ""
 
-#: stov:167
+#: stov:175
 msgid "Be verbose and print also diagnostical messages"
 msgstr ""
 
-#: stov:169
+#: stov:177
 msgid "Clean the database of entries no longer listed in the current API response"
 msgstr ""
 
-#: stov:172
+#: stov:181
 msgid "enables the subscription with the provided ID"
 msgstr ""
 
-#: stov:174
+#: stov:183
 msgid "disables the subscription with the provided ID"
 msgstr ""
 
-#: stov:198
+#: stov:207
 msgid "--quiet and --verbose can't be defined at the same time, exiting."
 msgstr ""
 
-#: stov:218
-msgid "Lock file could not be opened, please check that it exists and is readable, quitting now"
+#: stov:230
+msgid "The lock file could not be opened, please check that it exists and is readable, quitting now"
 msgstr ""
 
-#: stov:224
+#: stov:235
 msgid ""
-"The lock file already exists, probably anotherinstance of this program is already running\n"
+"The lock file already exists, probably another instance of this program is already running\n"
 "if you are sure this is not the case, delete it manually and try again!"
 msgstr ""
 
-#: stov:235
-msgid "Old lock file could not be deleted!"
+#: stov:245
+msgid "The old lock file could not be deleted!"
 msgstr ""
 
-#: stov:242
-msgid "Lock file could not be created, please check that /tmp is writable and properly configured, quitting now"
+#: stov:251
+msgid "The lock file could not be created, please check that /tmp is writable and properly configured, quitting now."
 msgstr ""
 
-#: stov:252
+#: stov:260
 msgid "This seems to be the first time you run the programm, do you want to run the interactive assistant? (yes/no)"
 msgstr ""
 
-#: stov:260
-msgid "Writing initial configuration according to default values"
+#: stov:275
+msgid "Writing initial configuration according to your input, have fun!"
 msgstr ""
 
-#: stov:266
+#: stov:278
+msgid "Writing initial configuration according to default values."
+msgstr ""
+
+#: stov:280
+msgid "Creating hidden directory in home for configuration and database."
+msgstr ""
+
+#: stov:291
+msgid "Comparing current and running configuration version."
+msgstr ""
+
+#: stov:301
 msgid "Your configuration needs to be updated, performing update now."
 msgstr ""
 
-#: stov:271
+#: stov:334
+msgid "Created initial database tables."
+msgstr ""
+
+#: stov:337
+msgid "Comparing current and running database version."
+msgstr ""
+
+#: stov:339
 msgid "Your database needs to be updated, performing update now."
 msgstr ""
 
-#: stov:293
-msgid "Found youtube-dl, writing to configuration file."
+#: stov:369
+msgid "Found youtube-dl, writing it's path to the configuration file."
 msgstr ""
 
-#: stov:297
+#: stov:378
 msgid "Could not find youtube-dl, it either does not exist, is not readable or not executable. Please note that youtube-dl is not needed for the program to run but is needed to use the download option which won't work otherwise. If youtube-dl isn't found automatically, you may also enter the path to it in the configuration file."
 msgstr ""
 
-#: stov:322
+#: stov:404
 msgid "Search_"
 msgstr ""
 
-#: stov:325
-msgid "Playlists do not support searching, search option will be ignored!"
+#: stov:409
+msgid "Playlists do not support searching, the search option will be ignored!"
 msgstr ""
 
-#: stov:331
-msgid "No valid subscription options given, subscription could not be added"
+#: stov:415
+msgid "None or invalid subscription type given, please check the type option and try again."
 msgstr ""
 
-#: stov:338
-msgid "New subscription "
+#: stov:425
+msgid "Subscription sucessfully inserted into database."
 msgstr ""
 
-#: stov:339
-msgid " successfully added"
+#: stov:441 stov:507
+msgid "Video %s successfully inserted into database."
 msgstr ""
 
-#: stov:342
-msgid "The subscription could not be added"
+#: stov:443
+msgid "New subscription "
 msgstr ""
 
-#: stov:346 stov:384 stov:534 stov:558 stov:576
-msgid "Could not access the database, please check path and permissions and try again!"
+#: stov:444
+msgid " successfully added"
 msgstr ""
 
-#: stov:354
+#: stov:450
 msgid "ID Title"
 msgstr ""
 
-#: stov:358
+#: stov:453
 msgid "enabled"
 msgstr ""
 
-#: stov:360
+#: stov:455
 msgid "disabled"
 msgstr ""
 
-#: stov:365
+#: stov:460
 msgid "No subscriptions added yet, add one!"
 msgstr ""
 
-#: stov:374
-msgid "Invalid Option, please use the ID of the subscriptionyou want to delete as parameter for the remove option"
+#: stov:465
+msgid "Invalid option, please use the ID of the subscription you want to delete as parameter for the remove option."
 msgstr ""
 
-#: stov:404
-msgid "Could not access the database, please check pathand permissions and try again!"
+#: stov:478
+msgid "Subscription deleted successfully!"
+msgstr ""
+
+#: stov:513
+msgid "Trying to determine the itag value for youtube-dl from your quality and codec settings."
+msgstr ""
+
+#: stov:516
+msgid "Found value: %s."
 msgstr ""
 
-#: stov:413
-msgid "Codec and resolution could not be determined, using maximum possible value"
+#: stov:518
+msgid "Codec and resolution could not be determined, using maximum possible value."
 msgstr ""
 
-#: stov:434
+#: stov:556
 msgid "Downloaded %i new video"
 msgstr ""
 
-#: stov:435
+#: stov:557
 msgid ""
 "The following episode has been downloaded by stov: \n"
 "\n"
 msgstr ""
 
-#: stov:437
+#: stov:560
 msgid "Downloaded %i new videos"
 msgstr ""
 
-#: stov:438
+#: stov:561
 msgid ""
 "The following episodes have been downloaded by stov: \n"
 "\n"
 msgstr ""
 
-#: stov:454
+#: stov:579
 msgid "Could not connect to the smtp server, please check your settings!"
 msgstr ""
 
-#: stov:463
-msgid "TLS not available, proceeding unencrypted"
+#: stov:586
+msgid "TLS not available, proceeding unencrypted."
 msgstr ""
 
-#: stov:469
-msgid "Authentication failed, please check user nameand password!"
+#: stov:592
+msgid "Authentication failed, please check user name and password!"
 msgstr ""
 
-#: stov:473
+#: stov:595
 msgid "Could not authenticate, server probably does not support authentication!"
 msgstr ""
 
-#: stov:480
-msgid "The server refused the recipient address, please check your settings"
+#: stov:602
+msgid "The server refused the recipient address, please check your settings."
 msgstr ""
 
-#: stov:484
-msgid "The server refused the sender address, please check your settings"
+#: stov:605
+msgid "The server refused the sender address, please check your settings."
 msgstr ""
 
-#: stov:490
-msgid "No videos to be downloaded."
+#: stov:610
+msgid "There are no videos to be downloaded."
 msgstr ""
 
-#: stov:494
+#: stov:613
 msgid ""
 "The following videos have been downloaded:\n"
 msgstr ""
 
-#: stov:501
-msgid "Could not determine how you want to be informed about new videos, please check the notify parameter in your configuration"
+#: stov:618
+msgid "Could not determine how you want to be informed about new videos, please check the notify parameter in your configuration."
 msgstr ""
 
-#: stov:511 stov:587 stov:614
-msgid "Could not access the database, please checkpath and permissions and try again!"
+#: stov:641
+msgid "Invalid subscription, please check the list and try again."
 msgstr ""
 
-#: stov:527
-msgid "Invalid subscription, please check the list and try again"
+#: stov:656
+msgid "The subscription could not be updated, please check if the ID given is correct."
 msgstr ""
 
-#: stov:547
-msgid "Subscription could not be updated, please check if the ID given is correct"
+#: stov:673
+msgid "Deleting video %s from database"
 msgstr ""
 
-#: stov:596
-msgid "Subscription ID %s is already enabled"
+#: stov:689
+msgid "The subscription ID %s is already enabled."
 msgstr ""
 
-#: stov:603
-msgid "Enabled subscription ID %s"
+#: stov:698
+msgid "Enabled subscription ID %s."
 msgstr ""
 
-#: stov:606 stov:633
-msgid "Could not find the subscription with ID %s, please check and try again"
+#: stov:701 stov:719
+msgid "Could not find the subscription with ID %s, please check and try again."
 msgstr ""
 
-#: stov:623
-msgid "Subscription ID %s is already disabled"
+#: stov:707
+msgid "Subscription ID %s is already disabled."
 msgstr ""
 
-#: stov:630
+#: stov:716
 msgid "Disabled subscription ID %s"
 msgstr ""
 
-#: stov:665
+#: stov:748
 msgid "Could not delete the lock file. Please check what went wrong and clean up manually!"
 msgstr ""
 

+ 53 - 20
stov

@@ -232,7 +232,7 @@ if os.access("/tmp/stov.lock", os.F_OK):
         sys.exit(1)
     oldpid = lockfile.read().strip()
     if os.access("/proc/" + oldpid, os.F_OK):
-        logger.error(_("The lock file already exists, probably another"
+        logger.error(_("The lock file already exists, probably another "
                        "instance of this program is already running\n"
                        "if you are sure this is not the case, delete it"
                        " manually and try again!"))
@@ -276,9 +276,9 @@ if os.access(os.environ['HOME'] + "/.stov", os.F_OK & os.W_OK) is not True:
                           "input, have fun!"))
     else:
         logger.info(_("Writing initial configuration according to default"
-                      "values."))
+                      " values."))
         logger.debug(_("Creating hidden directory in home for configuration"
-                       "and database."))
+                       " and database."))
         try:
             conf.Initialize()
         except stov_exceptions.DirectoryCreationFailedException as e:
@@ -292,8 +292,10 @@ else:
         check_result = conf.CheckConfig()
     except stov_exceptions.ConfigFileReadErrorException as e:
         logger.error(e)
+        sys.exit(1)
     except stov_exceptions.InvalidConfigurationVersionException as e:
         logger.error(e)
+        sys.exit(1)
     else:
         if check_result is not True:
             logger.info(_("Your configuration needs to be updated, performing"
@@ -302,8 +304,10 @@ else:
                 conf.UpdateConfig()
             except stov_exceptions.ConfigFileReadErrorException as e:
                 logger.error(e)
+                sys.exit(1)
             except stov_exceptions.ConfigFileWriteErrorException as e:
                 logger.error(e)
+                sys.exit(1)
 
 
 """Create the initial connection to the database"""
@@ -326,6 +330,8 @@ else:
         except stov_exceptions.DBWriteAccessFailedException as e:
             logger.error(e)
             sys.exit(1)
+        else:
+            logger.debug(_("Created initial database tables."))
 
 try:
     logger.debug(_("Comparing current and running database version."))
@@ -341,6 +347,7 @@ try:
                     logger.error(e)
 except stov_exceptions.DBWriteAccessFailedException as e:
     logger.error(e)
+    sys.exit(1)
 
 """Check which outputlevel is defined and update the configuration object
 accordingly.
@@ -366,6 +373,7 @@ if conf.values["youtube-dl"] == "":
             conf.WriteConfig()
         except stov_exceptions.ConfigFileWriteErrorException as e:
             logger.error(e)
+            sys.exit(1)
     else:
         logger.error(_("Could not find youtube-dl, it either does not exist, "
                        "is not readable or not executable. Please note that "
@@ -408,10 +416,13 @@ if options.add is True:
                        "the type option and try again."))
         sys.exit(1)
     try:
-        message, id = db.InsertSubscription(NewSubscription.AddSub())
+        id = db.InsertSubscription(NewSubscription.AddSub())
         NewSubscription.SetID(id)
     except stov_exceptions.DBWriteAccessFailedException as e:
         logger.error(e)
+        sys.exit(1)
+    else:
+        logger.debug(_("Subscription sucessfully inserted into database."))
     try:
         NewSubscription.ParseAPIData()
     except stov_exceptions.YoutubeAPITimeoutException as e:
@@ -421,7 +432,14 @@ if options.add is True:
     for video in NewSubscription.parsed_response.videos:
         if not db.VideoInDatabase(video.ytid):
             if NewSubscription.CheckStringMatch(video):
-                db.InsertVideo(video, NewSubscription.GetId())
+                try:
+                    db.InsertVideo(video, NewSubscription.GetId())
+                except stov_exceptions.DBWriteAccessFailedException as e:
+                    logger.error(e)
+                    sys.exit(1)
+                else:
+                    logger.debug(_("Video %s successfully inserted into "
+                                      "database.") % video.title)
     logger.info(_("New subscription ") + NewSubscription.GetTitle()
                 + _(" successfully added"))
 
@@ -444,18 +462,20 @@ elif options.deleteid is not None:
     try:
         DeleteID = int(options.deleteid)
     except ValueError:
-        logger.error(_("Invalid Option, please use the ID of the subscription "
+        logger.error(_("Invalid option, please use the ID of the subscription "
                        "you want to delete as parameter for the remove "
-                       "option"))
+                       "option."))
     else:
         try:
-            deletemessage = db.DeleteSubscription(DeleteID)
+            db.DeleteSubscription(DeleteID)
         except stov_exceptions.SubscriptionNotFoundException as e:
             logger.error(e)
+            sys.exit(1)
         except stov_exceptions.DBWriteAccessFailedException as e:
             logger.error(e)
+            sys.exit(1)
         else:
-            logger.info(deletemessage)
+            logger.info(_("Subscription deleted successfully!"))
 elif options.update is True:
     listofsubscriptions = []
     subscriptions = db.GetSubscriptions()
@@ -478,18 +498,25 @@ elif options.update is True:
         for video in element.parsed_response.videos:
             if not db.VideoInDatabase(video.ytid):
                 if element.CheckStringMatch(video):
-                    db.InsertVideo(video, element.GetId())
+                    try:
+                        db.InsertVideo(video, element.GetId())
+                    except stov_exceptions.DBWriteAccessFailedException as e:
+                        logger.error(e)
+                        sys.exit(1)
+                    else:
+                        logger.debug(_("Video %s successfully inserted into "
+                                      "database.") % video.title)
 
 elif options.download is True:
     listofsubscriptions = []
     subscriptions = db.GetSubscriptions()
     logger.debug(_("Trying to determine the itag value for youtube-dl from"
-                   " your quality and codec settings"))
+                   " your quality and codec settings."))
     itag_value = conf.GetYoutubeParameter()
     logger.debug(_("Found value: %s.") % itag_value)
     if itag_value == 0:
         logger.debug(_("Codec and resolution could not be determined, using "
-                       "maximum possible value"))
+                       "maximum possible value."))
         itag_value = 38
     for element in subscriptions:
         listofsubscriptions.append(subscription.sub(id=element[0],
@@ -521,6 +548,7 @@ elif options.download is True:
                     db.DisableFailedVideo(video.GetID())
             except stov_exceptions.DBWriteAccessFailedException as e:
                 logger.error(e)
+                sys.exit(1)
     if videosdownloaded > 0 and conf.values["notify"] == "yes":
         MailText = ""
         msg = MIMEMultipart()
@@ -579,7 +607,7 @@ elif options.download is True:
             serverconnection.quit()
     elif videosdownloaded == 0 and videosfailed == 0:
         if conf.values["notify"] == "no":
-            logger.info(_("There No videos to be downloaded."))
+            logger.info(_("There are no videos to be downloaded."))
     elif conf.values["notify"] == "no":
         if videosfailed == 0:
             logger.info(_("The following videos have been downloaded:\n"))
@@ -589,7 +617,7 @@ elif options.download is True:
         if conf.values["notify"] != "yes":
             logger.error(_("Could not determine how you want to be informed "
                          "about new videos, please check the notify parameter "
-                         "in your configuration"))
+                         "in your configuration."))
 
 elif options.subscriptionid is not None:
     try:
@@ -611,12 +639,13 @@ elif options.subscriptionid is not None:
                 logger.info(video)
         else:
             logger.error(_("Invalid subscription, please check the list and "
-                           "try again"))
+                           "try again."))
 elif options.catchup is not None:
     try:
         sub_data = db.GetSubscriptionTitle(options.catchup)
     except stov_exceptions.DBWriteAccessFailedException as e:
         logger.error(e)
+        sys.exit(1)
     else:
         if sub_data != []:
             try:
@@ -647,44 +676,48 @@ elif options.cleanup is True:
                 db.DeleteVideo(delete_video.GetID())
             except stov_exceptions.DBWriteAccessFailedException as e:
                 logger.error(e)
+                sys.exit(1)
     try:
         db.Vacuum()
     except stov_exceptions.DBWriteAccessFailedException as e:
         logger.error(e)
+        sys.exit(1)
 elif options.enableid is not None:
         subscription_state = db.GetSubscription(options.enableid)
         try:
             if int(subscription_state[0][6]) == 0:
-                logger.error(_("The subscription ID %s is already enabled")
+                logger.error(_("The subscription ID %s is already enabled.")
                              % options.enableid)
             elif int(subscription_state[0][6]) == 1:
                 try:
                     db.ChangeSubscriptionState(options.enableid, 0)
                 except stov_exceptions.DBWriteAccessFailedException as e:
                     logger.error(e)
+                    sys.exit(1)
                 else:
-                    logger.info(_("Enabled subscription ID %s")
+                    logger.info(_("Enabled subscription ID %s.")
                                 % options.enableid)
         except IndexError:
             logger.error(_("Could not find the subscription with ID %s, "
-                           "please check and try again") % options.enableid)
+                           "please check and try again.") % options.enableid)
 elif options.disableid is not None:
         subscription_state = db.GetSubscription(options.disableid)
         try:
             if int(subscription_state[0][6]) == 1:
-                logger.error(_("Subscription ID %s is already disabled")
+                logger.error(_("Subscription ID %s is already disabled.")
                              % options.disableid)
             elif int(subscription_state[0][6]) == 0:
                 try:
                     db.ChangeSubscriptionState(options.disableid, 1)
                 except stov_exceptions.DBWriteAccessFailedException as e:
                     logger.error(e)
+                    sys.exit(1)
                 else:
                     logger.info(_("Disabled subscription ID %s")
                                 % options.disableid)
         except IndexError:
             logger.error(_("Could not find the subscription with ID %s, please"
-                           " check and try again") % options.disableid)
+                           " check and try again.") % options.disableid)
 elif options.license is True:
     logger.info("""
     stov is free software: you can redistribute it and/or modify