Compare commits

...

42 Commits
0.6.0 ... 0.6.2

Author SHA1 Message Date
ShyPike
6b0580c3fd NZB paths on the command line should be made absolute before being sent to the running instance. 2011-05-23 23:37:15 +02:00
ShyPike
1feaf775d4 Update text files for 0.6.2 Final. 2011-05-23 23:05:06 +02:00
ShyPike
322436a9b9 Update translations. 2011-05-23 20:00:18 +02:00
ShyPike
2d633daf06 Correct headers for "disk full" email. 2011-05-22 23:17:07 +02:00
ShyPike
03fc8da459 Make email date header RFC2822 compliant.
(So, don't use a localized string).
2011-05-22 22:47:42 +02:00
ShyPike
8134dd0d32 Cleanup comment. 2011-05-21 15:15:15 +02:00
ShyPike
45f6418163 Add missing translatable text. 2011-05-17 23:05:19 +02:00
ShyPike
bfe4fe0a6d Fix failing NZB-extension association on Windows 7 and Vista when using an HTTPS-only configuration.
The cause is that Python 2.5 on Windows doesn't properly implement urllib2.urlopen for htps calls to ipv6 addresses
(like localhost in Windows 7).
The work-around is to use an external CURL program to handle the API calls to the running SABnzbd instance.
2011-05-17 21:46:23 +02:00
ShyPike
6efbe4563c Fixed more untranslatable texts in Plush. 2011-05-15 22:08:11 +02:00
ShyPike
c1c27c1c69 Add "Exit" button to first Wizard page. 2011-05-15 21:49:12 +02:00
ShyPike
befe9141fc Add Romanian flag to the Wizard skin. 2011-05-15 21:22:47 +02:00
ShyPike
234c85e70c Update text files for 0.6.1 Final. 2011-05-15 10:43:20 +02:00
ShyPike
2ae316bf9c Fix handling of nzb.gz files as command line parameter. 2011-05-15 10:31:10 +02:00
ShyPike
cfcb404794 Fix failing compare of versions of running and new instance of SABnzbd.
This made NZB association fail.
2011-05-15 10:07:10 +02:00
ShyPike
05e0abbd5e Fix NZB upload. Don't send api part when launching UI for running instance. 2011-05-14 16:26:50 +02:00
ShyPike
f064dd9e6e Update text files for 0.6.1 RC1 2011-05-12 20:42:43 +02:00
ShyPike
4eb6f6c26a Update translations. 2011-05-12 20:42:11 +02:00
ShyPike
68c65f8568 Remove debug statement from make_mo.py. 2011-05-11 23:18:42 +02:00
ShyPike
7381d1a25e Add Romanian translation.
Romanian requires characters outside the Latin-1 set, so some characters will be transposed to characters within Latin-1.
The Romanian PO files are archived as PX file, so that they don't disturb the Launchpad Translation database.
The transposed files are PO files and are not under version control.
Fix missing #encoding header fror some email templates.
2011-05-11 23:16:57 +02:00
ShyPike
d9ab79992d Some OSX-Growl messages were not translatable yet. 2011-05-11 19:57:07 +02:00
ShyPike
606f246b95 When preparing error/warning list, just use Unicode instead of ASCII with HTML-encoding. 2011-05-11 19:41:00 +02:00
ShyPike
64d97cd7e1 Do proper latin1 conversion for filenames in errors/warning on UTF filesystems (OSX, some Linuxes).
Don't attempt Unicode normalisation for now.
2011-05-11 19:36:18 +02:00
ShyPike
f274a4e34b Ensure proper encoding of filenames in error and warning messages. 2011-05-10 23:03:23 +02:00
ShyPike
f669b28a67 Update text files for 0.6.1 RC1 2011-05-10 22:10:21 +02:00
ShyPike
3dc6b9171e Update translations. 2011-05-10 21:46:56 +02:00
ShyPike
79795b8c62 Adjust category support for nzbmatrix RSS feeds, just use the whole "Description" attribute. 2011-05-10 21:39:56 +02:00
ShyPike
7c5344e4e8 Pause downloader on any disk error in the Assembler. 2011-05-10 20:22:40 +02:00
ShyPike
d340b2cd0b Support ~ in user paths only for non-Windows and only support "~/name" and not "~name". 2011-05-10 19:56:48 +02:00
ShyPike
388aa7f92d When evaluating RSS results, do not set explicit attributes based on the default category when no category is read from the feed.
This will defeat the category read at NZB retrieval time.
2011-05-10 19:50:46 +02:00
ShyPike
baefba5956 Update POT files. 2011-05-08 21:23:37 +02:00
ShyPike
4d65782f79 Plush: Queue and History header for French should not be uppercased, because it won't fit in Firefox on Linux. 2011-05-08 09:58:00 +02:00
ShyPike
d2396f5505 Plush: replaced hard-coded button text "Upload" with translation call. 2011-05-08 09:10:05 +02:00
ShyPike
5dc49683ba Fix for weird incompatibilty between CherryPy and Firefox-4 on OSX,
resulting in job names with &#xxx; codes.
2011-05-07 22:38:13 +02:00
ShyPike
5b8e2d7a6d "duplicate/encrypted/too large" prefixes used in the queue must be encoded conform filenames.
Otherwise the translated prefixes will not show properly on systems with UTF8 file systems (like OSX).
2011-05-07 20:36:52 +02:00
ShyPike
847378dcfe Fix incorrect character encoding of errors/warnings in Status window. 2011-05-07 15:40:51 +02:00
ShyPike
d73ea0b8f6 Plush: Warning popup in main page didn't handle backslash characters properly. 2011-05-07 11:41:59 +02:00
ShyPike
123cc3bbf9 Implement PID file support for non-Windows systems.
Triggered by command line parameter:
--pid <full-path>
2011-05-06 22:30:13 +02:00
ShyPike
992c3a1288 Win32: add some more info to the Windows Software panel. 2011-05-05 21:09:15 +02:00
ShyPike
208a0cf482 Win32: provide more info for Windows Installed Software panel (add version, support location etc.) 2011-05-05 20:39:34 +02:00
ShyPike
aefdcd7cd6 Win32: Fix registration of SABnzbd url in the user registry. This made the NZB association go wrong. 2011-05-05 20:00:33 +02:00
ShyPike
f95ce2bc80 Update text for duplicate detection option. 2011-05-04 20:53:32 +02:00
ShyPike
f519888bd1 Fix the panic_old_queue message given when upgrading from 0.4.x 2011-05-04 20:38:32 +02:00
51 changed files with 9969 additions and 5073 deletions

View File

@@ -1,3 +1,29 @@
-------------------------------------------------------------------------------
0.6.2Final by The SABnzbd-Team
-------------------------------------------------------------------------------
- Fixed association of NZB files with SABnzbd, when using HTTPS-only on Windows Vista/7
(resulted in multiple running copies of SABnzbd instead of an NZB upload)
- Fixed incorrect email date header when using other language than English
-------------------------------------------------------------------------------
0.6.1Final by The SABnzbd-Team
-------------------------------------------------------------------------------
- Fixed association of NZB files with SABnzbd (for real this time).
(resulted in multiple running copies of SABnzbd instead of an NZB upload)
-------------------------------------------------------------------------------
0.6.1RC1 by The SABnzbd-Team
-------------------------------------------------------------------------------
- Fixed association of NZB files with SABnzbd
(resulted in multiple running copies of SABnzbd instead of an NZB upload)
- Fixed display of warning when upgrading from 0.4.x
- Fixed problem when entering NZB files with names containing accented characters
(happened only on OSX with Firefox 4)
- Fixed several textual issues
- Add PID file support for OSX/Unix (--pid <path>)
- Fix attribute error caused by missing category field in nzbmatrix RSS feeds
- Fix nzbmatrix category support by just reading the whole "Description" field.
- Pause downloader when downloaded file cannot be written to disk.
- Fix "~/" (home-dir) support for Unix/OSX and disable for Windows
- Add Romanian translation
-------------------------------------------------------------------------------
0.6.0Final by The SABnzbd-Team
-------------------------------------------------------------------------------

View File

@@ -1,4 +1,4 @@
SABnzbd 0.6.0
SABnzbd 0.6.1
-------------------------------------------------------------------------------
0) LICENSE
@@ -47,11 +47,12 @@ Use the "Help" button in the web-interface to be directed to the Help Wiki.
You need to have Python installed and some modules.
Unix/Linux/OSX
Python-2.5 or 2.6 http://www.python.org
Python-2.5, 2.6 or 2.7 http://www.python.org
Windows
Python-2.5.latest http://www.activestate.com
Python-2.6.latest
Python-2.7.latest
Essential modules
cheetah-2.0.1+ http://www.cheetahtemplate.org/
@@ -70,7 +71,7 @@ Optional modules Windows
(Binaries, including the OpenSSL libraries)
Optional modules Unix/Linux/OSX
pyopenssl >= 0.7 http://pypi.python.org/pypi/pyOpenSSL
pyopenssl >= 0.10 http://pypi.python.org/pypi/pyOpenSSL
openssl => v0.9.8g+ http://www.openssl.org/
Make sure the OpenSSL libraries match with PyOpenSSL

View File

@@ -112,6 +112,7 @@ InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\SABnzbd" ""
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "NORWEGIAN"
!insertmacro MUI_LANGUAGE "Romanian"
;--------------------------------
@@ -158,9 +159,18 @@ File /r "dist\*"
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\SABnzbd" "" "$INSTDIR"
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "DisplayName" "SABnzbd (remove only)"
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "DisplayName" "SABnzbd ${SAB_VERSION}"
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "UninstallString" '"$INSTDIR\uninstall.exe"'
;WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "DisplayIcon" '"$INSTDIR\need-a-.ico"'
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "DisplayVersion" '${SAB_VERSION}'
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "Publisher" 'The SABnzbd Team'
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "HelpLink" 'http://forums.sabnzbd.org/'
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "URLInfoAbout" 'http://wiki.sabnzbd.org/'
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "URLUpdateInfo" 'http://sabnzbd.org/'
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "Comments" 'The automated Usenet download tool'
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "DisplayIcon" '$INSTDIR\interfaces\Classic\templates\static\images\favicon.ico'
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "EstimatedSize" 18400
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "NoRepair" -1
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "NoModify" -1
; write out uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
@@ -341,6 +351,7 @@ SectionEnd
LangString MsgStartSab ${LANG_FRENCH} "D<EFBFBD>marrer SABnzbd (cach<63>)"
LangString MsgStartSab ${LANG_NORWEGIAN} "Start SABnzbd (hidden)"
LangString MsgStartSab ${LANG_DUTCH} "Start SABnzbd (verborgen)"
LangString MsgStartSab ${LANG_ROMANIAN} "Porneste SABnzbd (ascuns)"
LangString MsgStartSab ${LANG_SWEDISH} "Starta SABnzbd (dold)"
LangString MsgShowRelNote ${LANG_ENGLISH} "Show Release Notes"
@@ -348,7 +359,8 @@ SectionEnd
LangString MsgShowRelNote ${LANG_GERMAN} "Versionshinweise anzeigen"
LangString MsgShowRelNote ${LANG_FRENCH} "Afficher les notes de version"
LangString MsgShowRelNote ${LANG_NORWEGIAN} "Show Release Notes"
LangString MsgShowRelNote ${LANG_DUTCH} "Toon Vrijgave Bericht (Engels)"
LangString MsgShowRelNote ${LANG_DUTCH} "Toon vrijgave bericht"
LangString MsgShowRelNote ${LANG_ROMANIAN} "Arat<EFBFBD> Notele de Publicare"
LangString MsgShowRelNote ${LANG_SWEDISH} "Visa release noteringar"
LangString MsgSupportUs ${LANG_ENGLISH} "Support the project, Donate!"
@@ -357,6 +369,7 @@ SectionEnd
LangString MsgSupportUs ${LANG_FRENCH} "Supportez le projet, faites un don !"
LangString MsgSupportUs ${LANG_NORWEGIAN} "Support the project, Donate!"
LangString MsgSupportUs ${LANG_DUTCH} "Steun het project, Doneer!"
LangString MsgSupportUs ${LANG_ROMANIAN} "Sustine proiectul, Doneaz<61>!"
LangString MsgSupportUs ${LANG_SWEDISH} "Donera och st<73>d detta projekt!"
LangString MsgCloseSab ${LANG_ENGLISH} "Please close $\"SABnzbd.exe$\" first"
@@ -365,15 +378,17 @@ SectionEnd
LangString MsgCloseSab ${LANG_FRENCH} "Quittez $\"SABnzbd.exe$\" avant l'installation, SVP"
LangString MsgCloseSab ${LANG_NORWEGIAN} "Please close $\"SABnzbd.exe$\" first"
LangString MsgCloseSab ${LANG_DUTCH} "Sluit $\"SABnzbd.exe$\" eerst af"
LangString MsgCloseSab ${LANG_ROMANIAN} "<EFBFBD>nchideti mai <20>nt<6E>i $\"SABnzbd.exe$\""
LangString MsgCloseSab ${LANG_SWEDISH} "Var v<>nlig st<73>ng $\"SABnzbd.exe$\" f<>rst"
LangString MsgOldQueue ${LANG_ENGLISH} " >>>> WARNING <<<<$\r$\n$\r$\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_DANISH} " >>>> WARNING <<<<$\r$\n$\r$\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_GERMAN} " >>>> WARNING <<<<$\r$\n$\r$\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_FRENCH} " >>>> WARNING <<<<$\r$\n$\r$\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_DANISH} " >>>> WARNING <<<<$\r$\n$\r$\nVenligst, kontroll<6C>r f<>rst udgivelsesnoter eller g<EFBFBD> til http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_GERMAN} " >>>> WARNUNG <<<<$\r$\n$\r$\nBitte zuerst die Versionsanmerkungen lesen oder $\"http://wiki.sabnzbd.org/introducing-0-6-0 besuchen!$\""
LangString MsgOldQueue ${LANG_FRENCH} " >>>> AVERTISSEMENT<<<<$\r$\n$\r$\nS'il vous pla<6C>t, v<>rifiez d'abord les notes de version ou visiter http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_NORWEGIAN} " >>>> WARNING <<<<$\r$\n$\r$\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_DUTCH} " >>>> WAARSCHUWING <<<<$\r$\n$\r$\nLees eerst het vrijgave bericht of ga naar http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_SWEDISH} " >>>> WARNING <<<<$\r$\n$\r$\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_DUTCH} " >>>> WAARSCHUWING <<<<$\r$\n$\r$\nLees eerst het vrijgave bericht of ga naar $\"http://wiki.sabnzbd.org/introducing-0-6-0 !$\""
LangString MsgOldQueue ${LANG_ROMANIAN} " >>>> ATENTIE <<<<$\r$\n$\r$\nV<EFBFBD> rug<75>m, verificati mai <20>nt<6E>i notele de publicare sau mergeti la http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgOldQueue ${LANG_SWEDISH} " >>>> VARNING <<<<$\r$\n$\r$\nVar v<>nlig och l<>s versions noteringarna eller g<> till http://wiki.sabnzbd.org/introducing-0-6-0 !"
LangString MsgUninstall ${LANG_ENGLISH} "This will uninstall SABnzbd from your system"
LangString MsgUninstall ${LANG_DANISH} "Dette vil afinstallere SABnzbd fra dit system"
@@ -381,6 +396,7 @@ SectionEnd
LangString MsgUninstall ${LANG_FRENCH} "Ceci d<>sinstallera SABnzbd de votre syst<73>me"
LangString MsgUninstall ${LANG_NORWEGIAN} "This will uninstall SABnzbd from your system"
LangString MsgUninstall ${LANG_DUTCH} "Dit verwijdert SABnzbd van je systeem"
LangString MsgUninstall ${LANG_ROMANIAN} "Acest lucru va dezinstala SABnzbd din sistem"
LangString MsgUninstall ${LANG_SWEDISH} "Detta kommer att avinstallera SABnzbd fr<66>n systemet"
LangString MsgRunAtStart ${LANG_ENGLISH} "Run at startup"
@@ -389,6 +405,7 @@ SectionEnd
LangString MsgRunAtStart ${LANG_FRENCH} "Lancer au d<>marrage"
LangString MsgRunAtStart ${LANG_NORWEGIAN} "Run at startup"
LangString MsgRunAtStart ${LANG_DUTCH} "Opstarten bij systeem start"
LangString MsgRunAtStart ${LANG_ROMANIAN} "Executare la pornire"
LangString MsgRunAtStart ${LANG_SWEDISH} "K<EFBFBD>r vid uppstart"
LangString MsgIcon ${LANG_ENGLISH} "Desktop Icon"
@@ -397,6 +414,7 @@ SectionEnd
LangString MsgIcon ${LANG_FRENCH} "Ic<EFBFBD>ne sur le Bureau"
LangString MsgIcon ${LANG_NORWEGIAN} "Desktop Icon"
LangString MsgIcon ${LANG_DUTCH} "Pictogram op bureaublad"
LangString MsgIcon ${LANG_ROMANIAN} "Icoan<EFBFBD> Desktop"
LangString MsgIcon ${LANG_SWEDISH} "Skrivbordsikon"
LangString MsgAssoc ${LANG_ENGLISH} "NZB File association"
@@ -405,6 +423,7 @@ SectionEnd
LangString MsgAssoc ${LANG_FRENCH} "Association des fichiers NZB"
LangString MsgAssoc ${LANG_NORWEGIAN} "NZB File association"
LangString MsgAssoc ${LANG_DUTCH} "NZB bestanden koppelen aan SABnzbd"
LangString MsgAssoc ${LANG_ROMANIAN} "Asociere cu Fisierele NZB"
LangString MsgAssoc ${LANG_SWEDISH} "NZB Filassosication"
LangString MsgDelProgram ${LANG_ENGLISH} "Delete Program"
@@ -413,6 +432,7 @@ SectionEnd
LangString MsgDelProgram ${LANG_FRENCH} "Supprimer le programme"
LangString MsgDelProgram ${LANG_NORWEGIAN} "Delete Program"
LangString MsgDelProgram ${LANG_DUTCH} "Verwijder programma"
LangString MsgDelProgram ${LANG_ROMANIAN} "Sterge Program"
LangString MsgDelProgram ${LANG_SWEDISH} "Ta bort programmet"
LangString MsgDelSettings ${LANG_ENGLISH} "Delete Settings"
@@ -421,6 +441,7 @@ SectionEnd
LangString MsgDelSettings ${LANG_FRENCH} "Supprimer les Param<61>tres"
LangString MsgDelSettings ${LANG_NORWEGIAN} "Delete Settings"
LangString MsgDelSettings ${LANG_DUTCH} "Verwijder instellingen"
LangString MsgDelSettings ${LANG_ROMANIAN} "Stergeti Set<65>ri"
LangString MsgDelSettings ${LANG_SWEDISH} "Ta bort inst<73>llningar"
LangString MsgDelLogs ${LANG_ENGLISH} "Delete Logs"
@@ -429,6 +450,7 @@ SectionEnd
LangString MsgDelLogs ${LANG_FRENCH} "Supprimer les logs"
LangString MsgDelLogs ${LANG_NORWEGIAN} "Delete Logs"
LangString MsgDelLogs ${LANG_DUTCH} "Verwijder logging"
LangString MsgDelLogs ${LANG_ROMANIAN} "Stergeti Activitate"
LangString MsgDelLogs ${LANG_SWEDISH} "Ta bort logg"
LangString MsgDelCache ${LANG_ENGLISH} "Delete Cache"
@@ -437,6 +459,7 @@ SectionEnd
LangString MsgDelCache ${LANG_FRENCH} "Supprimer le Cache"
LangString MsgDelCache ${LANG_NORWEGIAN} "Delete Cache"
LangString MsgDelCache ${LANG_DUTCH} "Verwijder Cache"
LangString MsgDelCache ${LANG_ROMANIAN} "Stergeti Cache"
LangString MsgDelCache ${LANG_SWEDISH} "Ta bort tempor<6F>r-mapp"
Function un.onInit

View File

@@ -1,7 +1,7 @@
Metadata-Version: 1.0
Name: SABnzbd
Version: 0.6.0
Summary: SABnzbd-0.6.0
Version: 0.6.2
Summary: SABnzbd-0.6.2
Home-page: http://sourceforge.net/projects/sabnzbdplus
Author: The SABnzbd Team
Author-email: team@sabnzbd.org

View File

@@ -4,7 +4,7 @@
\paperw11900\paperh16840\vieww16360\viewh15680\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0\b\fs48 \cf0 SABnzbd 0.6.0\
\f0\b\fs48 \cf0 SABnzbd 0.6.2\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\b0\fs26 \cf0 \
@@ -35,6 +35,13 @@ There is an extensive Wiki on the use of SABnzbd.\
\b0 \
\
\b\fs40 Upgrading from 0.6.x
\b0\fs26 \
Stop SABnzbd.\
Install new version\
Start SABnzbd.\
\
\b\fs40 Upgrading from 0.5.x
\b0\fs26 \
Stop SABnzbd.\

View File

@@ -1,5 +1,5 @@
*******************************************
*** This is SABnzbd 0.6.0 ***
*** This is SABnzbd 0.6.2 ***
*******************************************
SABnzbd is an open-source cross-platform binary newsreader.
It simplifies the process of downloading from Usenet dramatically,
@@ -18,6 +18,14 @@ http://wiki.sabnzbd.org/introducing-0-6-0
Please also read the file "ISSUES.txt"
*******************************************
*** Upgrading from 0.6.x ***
*******************************************
Stop SABnzbd.
Install new version
Start SABnzbd.
*******************************************
*** Upgrading from 0.5.x ***
*******************************************

View File

@@ -237,6 +237,7 @@ def print_help():
print " -d --daemon Use when run as a service"
else:
print " -d --daemon Fork daemon process"
print " --pid <path> Create a PID file in the listed folder (full path)"
print
print " --force Discard web-port timeout (see Wiki!)"
print " -h --help Print this message"
@@ -612,12 +613,10 @@ def get_webhost(cherryhost, cherryport, https_port):
def is_sabnzbd_running(url):
""" Return True when there's already a SABnzbd instance running.
"""
import urllib2
try:
url = '%s&mode=version' % (url)
s = urllib2.urlopen(url)
ver = s.read()
if ver and ver.strip() == sabnzbd.__version__:
ver = sabnzbd.newsunpack.get_from_url(url)
if ver and ver.strip(' \n\r\t') == sabnzbd.__version__:
return True
else:
return False
@@ -650,7 +649,8 @@ def check_for_sabnzbd(url, upload_nzbs):
upload_file(url, f)
else:
# Launch the web browser and quit since sabnzbd is already running
launch_a_browser(url.replace('api?', ''), force=True)
url = url[:url.rfind('/')+1]
launch_a_browser(url, force=True)
exit_sab(0)
return True
return False
@@ -760,7 +760,7 @@ def commandline_handler(frozen=True):
'weblogging=', 'server=', 'templates',
'template2', 'browser=', 'config-file=', 'force',
'version', 'https=', 'autorestarted', 'repair', 'repair-all',
'log-all', 'no-login',
'log-all', 'no-login', 'pid=',
# Below Win32 Service options
'password=', 'username=', 'startup=', 'perfmonini=', 'perfmondll=',
'interactive', 'wait=',
@@ -777,8 +777,8 @@ def commandline_handler(frozen=True):
if not service:
# Get and remove any NZB file names
for entry in args:
if get_ext(entry) in ('.nzb', '.zip','.rar', '.nzb.gz'):
upload_nzbs.append(entry)
if get_ext(entry) in ('.nzb', '.zip','.rar', '.gz'):
upload_nzbs.append(os.path.abspath(entry))
for opt, arg in opts:
if opt in ('password','username','startup','perfmonini', 'perfmondll', 'interactive', 'wait'):
@@ -830,6 +830,7 @@ def main():
api_url = None
no_login = False
re_argv = [sys.argv[0]]
pid_path = None
service, sab_opts, serv_opts, upload_nzbs = commandline_handler()
@@ -904,6 +905,10 @@ def main():
sabnzbd.LOG_ALL = True
elif opt in ('--no-login',):
no_login = True
elif opt in ('--pid',):
pid_path = arg
re_argv.append(opt)
re_argv.append(arg)
sabnzbd.MY_FULLNAME = os.path.normpath(os.path.abspath(sabnzbd.MY_FULLNAME))
sabnzbd.MY_NAME = os.path.basename(sabnzbd.MY_FULLNAME)
@@ -1004,6 +1009,9 @@ def main():
except:
Bail_Out(browserhost, cherryport, '49')
# Find external programs
sabnzbd.newsunpack.find_programs(sabnzbd.DIR_PROG)
# Windows instance is reachable through registry
url = None
if sabnzbd.WIN32:
@@ -1179,9 +1187,6 @@ def main():
else:
autobrowser = sabnzbd.cfg.autobrowser()
# Find external programs
sabnzbd.newsunpack.find_programs(sabnzbd.DIR_PROG)
if not sabnzbd.WIN_SERVICE and not getattr(sys, 'frozen', None) == 'macosx_app':
signal.signal(signal.SIGINT, sabnzbd.sig_handler)
signal.signal(signal.SIGTERM, sabnzbd.sig_handler)
@@ -1289,7 +1294,7 @@ def main():
'request.show_tracebacks': True,
'checker.check_localhost' : bool(consoleLogging),
'error_page.401': sabnzbd.misc.error_page_401
})
})
static = {'tools.staticdir.on': True, 'tools.staticdir.dir': os.path.join(web_dir, 'static')}
@@ -1382,14 +1387,17 @@ def main():
mail = None
else:
# Write URL directly to registry
set_connection_info(url)
set_connection_info(api_url)
if pid_path:
sabnzbd.pid_file(pid_path, cherryport)
# Have to keep this running, otherwise logging will terminate
timer = 0
while not sabnzbd.SABSTOP:
if sabnzbd.WIN_SERVICE:
rc = win32event.WaitForMultipleObjects((sabnzbd.WIN_SERVICE.hWaitStop,
sabnzbd.WIN_SERVICE.overlapped.hEvent), 0, 3000)
sabnzbd.WIN_SERVICE.overlapped.hEvent), 0, 3000)
if rc == win32event.WAIT_OBJECT_0:
if mail:
mail.send('stop')
@@ -1477,6 +1485,7 @@ def main():
logging.info('Leaving SABnzbd')
sys.stderr.flush()
sys.stdout.flush()
sabnzbd.pid_file()
if getattr(sys, 'frozen', None) == 'macosx_app':
AppHelper.stopEventLoop()
else:
@@ -1499,9 +1508,9 @@ if sabnzbd.WIN32:
_svc_display_name_ = 'SABnzbd Binary Newsreader'
_svc_deps_ = ["EventLog", "Tcpip", "SABHelper"]
_svc_description_ = 'Automated downloading from Usenet. ' \
'Set to "automatic" to start the service at system startup. ' \
'You may need to login with a real user account when you need ' \
'access to network shares.'
'Set to "automatic" to start the service at system startup. ' \
'You may need to login with a real user account when you need ' \
'access to network shares.'
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
@@ -1639,4 +1648,3 @@ if __name__ == '__main__':
else:
main()

View File

@@ -60,7 +60,7 @@ $T('Plush-containerWidth'):
<input type="hidden" name="apikey" value="$session" />
<input type="hidden" name="mode" value="addfile" />
<input type="file" id="uploadNZBFile" name="name" size="12" style="width:180px;" />
<input type="submit" value="Upload" class="juiButton" />
<input type="submit" value="$T('Plush-upload')" class="juiButton" />
<span id="uploadingSpinner" class="loading" style="display:none">&nbsp;</span>
<br/><i>$T('Plush-uploadTip')</i>
<div id="add_nzb_hr"><hr></div>

View File

@@ -5,9 +5,6 @@
<div id="config-components">
<div id="core-component-group1" class="component-group clearfix">
<div class="component-group-desc">
<h3>SABnzbd Config</h3>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label class="nocheck clearfix">

View File

@@ -5,7 +5,7 @@
<div id="page-wrap" class="tiley_sprite_container sprite_tile_queue_wrap">
<div id="hdr-queue" class="tilex_sprite_container sprite_tile_qh">
<div class="logo main_sprite_container sprite_topleft_queue"><h1><!--#if $active_lang=='de' then $T('menu-queue') else $T('menu-queue').upper()#--></h1></div>
<div class="logo main_sprite_container sprite_topleft_queue"><h1><!--#if $active_lang in ('de', 'fr') then $T('menu-queue') else $T('menu-queue').upper()#--></h1></div>
<div class="queue-buttons queue-buttons-pause lang-$active_lang main_sprite_container sprite_topright_queue">
<ul>
<li class="main_sprite_container <!--#if $paused then 'sprite_q_pause_on' else 'sprite_q_pause'#-->" title="$T('link-pause') &frasl; $T('link-resume')" id="pause_resume"></li>
@@ -182,7 +182,7 @@
<!-- History Menu/Banner -->
<div id="hdr-history" class="box_banner_history tilex_sprite_container sprite_tile_qhistory">
<h1><!--#if $active_lang=='de' then $T('menu-history') else $T('menu-history').upper()#--> </h1>
<h1><!--#if $active_lang in ('de', 'fr') then $T('menu-history') else $T('menu-history').upper()#--> </h1>
<div class="box_banner_r">
<ul class="box_banner_menu">
<li class="main_sprite_container sprite_h_purge show" id="hist_purge" title="$T('purgeHist')"></li>

View File

@@ -9,7 +9,7 @@
$.plush.queuenoofslots = $noofslots;
$.plush.SetQueueSpeedLimit('$speedlimit');
$.plush.SetQueueFinishAction('$finishaction');
$.plush.SetWarnings($have_warnings,"<!--#echo $last_warning.replace("\n"," ").replace('"',"'") #-->");
$.plush.SetWarnings($have_warnings,"<!--#echo $last_warning.replace("\n"," ").replace('"',"'").replace('\\','\\\\') #-->");
$.plush.SetQueuePauseInfo(<!--#if $paused#-->true<!--#else#-->false<!--#end if#-->,'$pause_int');
$.plush.SetQueueETAStats("<!--#if float($kbpersec) > 1023 #-->$speed<!--#else#--><!--#echo "%.0f" % float($kbpersec)#--> K<!--#end if#-->",<!--#echo "%.0f" % float($kbpersec)#-->,'$timeleft','$T('eta'): $eta');

View File

@@ -28,6 +28,7 @@ Please choose your prefered language<br /><br />
<div class="full-width">
<table class="full-width">
<tr>
<td class="align-center"><input class="bigbutton" type="button" onclick="document.location ='./exit'" value="Exit SABnzbd" /></td>
<td class="align-center"><input class="bigbutton" type="submit" value="Start Wizard" /></td>
</tr>
</table>

View File

@@ -20,7 +20,7 @@ $T('wizard-explain-server')
<div id="host-error" class="error-text hidden">$T('wizard-server-required')</div>
<br class="clear" />
<label class="label">$T('srv-port')</label><input id="port" class="text-input-thin" type="text" size="2" name="port" value="$port">
<div id="port-tip" class="tips">E.g. 119 or 563 for SSL</div>
<div id="port-tip" class="tips">$T('wizard-port-eg')</div>
<div id="port-error" class="error-text hidden">$T('wizard-server-number')</div>
<br class="clear" /><br class="clear" />
<label class="label">$T('srv-username')</label><input class="validate-text clearinput text-input" type="text" size="12" name="username" value="$username">
@@ -28,7 +28,7 @@ $T('wizard-explain-server')
<label class="label">$T('srv-password')</label><input class="validate-text text-input" type="password" size="12" name="password" value="$password">
<br class="clear" /><br class="clear" />
<label class="label">$T('srv-connections')<span class="required-star">*</span></label><input id="connections" class="text-input-thin" type="text" size="2" name="connections" value="$connections">
<div id="connections-tip" class="tips">$T('wizard-server-con-explain') E.g. 8 or 20</div>
<div id="connections-tip" class="tips">$T('wizard-server-con-explain') $T('wizard-server-con-eg')</div>
<div id="connections-error" class="error-text hidden">$T('wizard-server-number')</div>
<br class="clear" />
<label><span class="label">$T('srv-ssl')</span>

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,77 @@
The CURL binaries have been downloaded from:
http://www.paehl.com/open_source/?CURL_7.21.6
License info:
=================================================================================
COPYRIGHT AND PERMISSION NOTICE
Copyright (c) 1996 - 2011, Daniel Stenberg, <daniel@haxx.se>.
All rights reserved.
Permission to use, copy, modify, and distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright
notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not
be used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization of the copyright holder.
=================================================================================
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
README
Curl is a command line tool for transferring data specified with URL
syntax. Find out how to use curl by reading the curl.1 man page or the
MANUAL document. Find out how to install Curl by reading the INSTALL
document.
libcurl is the library curl is using to do its job. It is readily
available to be used by your software. Read the libcurl.3 man page to
learn how!
You find answers to the most frequent questions we get in the FAQ document.
Study the COPYING file for distribution terms and similar. If you distribute
curl binaries or other binaries that involve libcurl, you might enjoy the
LICENSE-MIXING document.
CONTACT
If you have problems, questions, ideas or suggestions, please contact us
by posting to a suitable mailing list. See http://curl.haxx.se/mail/
All contributors to the project are listed in the THANKS document.
WEB SITE
Visit the curl web site for the latest news and downloads:
http://curl.haxx.se/
GIT
To download the very latest source off the GIT server do this:
git clone git://github.com/bagder/curl.git
(you'll get a directory named curl created, filled with the source code)
NOTICE
Curl contains pieces of source code that is Copyright (c) 1998, 1999
Kungliga Tekniska H<>gskolan. This notice is included here to comply with the
distribution terms.

View File

@@ -523,12 +523,16 @@ elif target in ('binary', 'installer'):
setup(**options)
rename_file('dist', Win32HelperName, Win32ServiceHelpName)
############################
# Copy curl files
shutil.copy2(r'win\curl\curl.exe', r'dist\lib')
shutil.copy2(r'win\curl\libssh2.dll', r'dist\lib')
############################
if target == 'installer':
os.system('makensis.exe /v3 /DSAB_PRODUCT=%s /DSAB_FILE=%s NSIS_Installer.nsi' % \
(prod, fileIns))
os.system('makensis.exe /v3 /DSAB_PRODUCT=%s /DSAB_VERSION=%s /DSAB_FILE=%s NSIS_Installer.nsi' % \
(prod, release, fileIns))
DeleteFiles(fileBin)

164
po/email/ro.px Normal file
View File

@@ -0,0 +1,164 @@
# Romanian translation for sabnzbd
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the sabnzbd package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-15 19:19+0000\n"
"PO-Revision-Date: 2011-05-11 20:22+0000\n"
"Last-Translator: shypike <Unknown>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-05-12 05:09+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#: email/email.tmpl:1
msgid ""
"##\n"
"## Default Email template for SABnzbd\n"
"## This a Cheetah template\n"
"## Documentation: http://sabnzbd.wikidot.com/email-templates\n"
"##\n"
"## Newlines and whitespace are significant!\n"
"##\n"
"## These are the email headers\n"
"To: $to\n"
"From: $from\n"
"Date: $date\n"
"Subject: SABnzbd has <!--#if $status then \"completed\" else \"failed\" #--> "
"job $name\n"
"X-priority: 5\n"
"X-MS-priority: 5\n"
"## After this comes the body, the empty line is required!\n"
"\n"
"Hi,\n"
"<!--#if $status #-->\n"
"SABnzbd has downloaded \"$name\" <!--#if $msgid==\"\" then \"\" else "
"\"(newzbin #\" + $msgid + \")\"#-->\n"
"<!--#else#-->\n"
"SABnzbd has failed to download \"$name\" <!--#if $msgid==\"\" then \"\" else "
"\"(newzbin #\" + $msgid + \")\"#-->\n"
"<!--#end if#-->\n"
"Finished at $end_time\n"
"Downloaded $size\n"
"\n"
"Results of the job:\n"
"<!--#for $stage in $stages #-->\n"
"Stage $stage <!--#slurp#-->\n"
"<!--#for $result in $stages[$stage]#-->\n"
" $result <!--#slurp#-->\n"
"<!--#end for#-->\n"
"<!--#end for#-->\n"
"<!--#if $script!=\"\" #-->\n"
"Output from user script \"$script\" (Exit code = $script_ret):\n"
"$script_output\n"
"<!--#end if#-->\n"
"<!--#if $status #-->\n"
"Enjoy!\n"
"<!--#else#-->\n"
"Sorry!\n"
"<!--#end if#-->\n"
msgstr ""
"##\n"
"## Șablon Email Original pentru SABnzbd\n"
"## Acesta este un Șablon Cheetah\n"
"## Documentație: http://sabnzbd.wikidot.com/email-templates\n"
"##\n"
"##Rândurile noi și caracterele spațiu sunt importante!\n"
"##\n"
"## Acestea sunt antetele email\n"
"To: $to\n"
"From: $from\n"
"Date: $date\n"
"Subject: SABnzbd <!--#if $status then \"a terminat\" else \"nu a reuşit\" #--"
"> sarcina $name\n"
"X-priority: 5\n"
"X-MS-priority: 5\n"
"## După acesta urmează conţinutul, este necesar o linie goală!\n"
"\n"
"Salut,\n"
"<!--#if $status #-->\n"
"SABnzbd a descărcat \"$name\" <!--#if $msgid==\"\" then \"\" else \"(newzbin "
"#\" + $msgid + \")\"#-->\n"
"<!--#else#-->\n"
"SABnzbd nu a reuşit să descarce \"$name\" <!--#if $msgid==\"\" then \"\" "
"else \"(newzbin #\" + $msgid + \")\"#-->\n"
"<!--#end if#-->\n"
"Terminat la $end_time\n"
"Mărime $size\n"
"\n"
"Rezultatele sarcinii:\n"
"<!--#for $stage in $stages #-->\n"
"Stagiu $stage <!--#slurp#-->\n"
"<!--#for $result in $stages[$stage]#-->\n"
" $result <!--#slurp#-->\n"
"<!--#end for#-->\n"
"<!--#end for#-->\n"
"<!--#if $script!=\"\" #-->\n"
"Rezultatul script-ului utilizatorului \"$script\" (Exit code = "
"$script_ret):\n"
"$script_output\n"
"<!--#end if#-->\n"
"<!--#if $status #-->\n"
"Bucuraţi-vă!\n"
"<!--#else#-->\n"
"Ne pare rau!\n"
"<!--#end if#-->\n"
#: email/rss.tmpl:1
msgid ""
"##\n"
"## RSS Email template for SABnzbd\n"
"## This a Cheetah template\n"
"## Documentation: http://sabnzbd.wikidot.com/email-templates\n"
"##\n"
"## Newlines and whitespace are significant!\n"
"##\n"
"## These are the email headers\n"
"To: $to\n"
"From: $from\n"
"Date: $date\n"
"Subject: SABnzbd has added $amount jobs to the queue\n"
"X-priority: 5\n"
"X-MS-priority: 5\n"
"## After this comes the body, the empty line is required!\n"
"\n"
"Hi,\n"
"\n"
"SABnzbd has added $amount job(s) to the queue.\n"
"They are from RSS feed \"$feed\".\n"
"<!--#for $job in $jobs#-->\n"
" $job <!--#slurp#-->\n"
"<!--#end for#-->\n"
"\n"
"Bye\n"
msgstr ""
"## Şablon Email RSS pentru SABnzbd\n"
"## Acesta este un şablon Cheetah \n"
"## Documentaţie: http://sabnzbd.wikidot.com/email-templates\n"
"##\n"
"## Rândurile noi și caracterele spațiu sunt importante!\n"
"##\n"
"## Acestea sunt antetele email\n"
"To: $to\n"
"From: $from\n"
"Date: $date\n"
"Subject: SABnzbd a adăugat $amount sarcini în coadă\n"
"X-priority: 5\n"
"X-MS-priority: 5\n"
"## După acesta urmează conţinutul, este necesar o linie goală!\n"
"\n"
"Salut,\n"
"\n"
"SABnzbd a adăugat $amount sarcină(e) în coadă.\n"
"Ele sunt din fluxuri RSS \"$feed\".\n"
"<!--#for $job in $jobs#-->\n"
" $job <!--#slurp#-->\n"
"<!--#end for#-->\n"
"\n"
"La revedere !\n"

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

3987
po/main/ro.px Normal file
View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,67 +1,67 @@
#
# SABnzbd Translation Template file NSIS
# Copyright (C) 2011 by the SABnzbd Team
# team@sabnzbd.org
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.6.x\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: shypike@sabnzbd.org\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 7bit\n"
#: NSIS_Installer.nsi:338
msgid "Start SABnzbd (hidden)"
msgstr ""
#: NSIS_Installer.nsi:346
msgid "Show Release Notes"
msgstr ""
#: NSIS_Installer.nsi:354
msgid "Support the project, Donate!"
msgstr ""
#: NSIS_Installer.nsi:362
msgid "Please close \"SABnzbd.exe\" first"
msgstr ""
#: NSIS_Installer.nsi:370
msgid " >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
msgstr ""
#: NSIS_Installer.nsi:378
msgid "This will uninstall SABnzbd from your system"
msgstr ""
#: NSIS_Installer.nsi:386
msgid "Run at startup"
msgstr ""
#: NSIS_Installer.nsi:394
msgid "Desktop Icon"
msgstr ""
#: NSIS_Installer.nsi:402
msgid "NZB File association"
msgstr ""
#: NSIS_Installer.nsi:410
msgid "Delete Program"
msgstr ""
#: NSIS_Installer.nsi:418
msgid "Delete Settings"
msgstr ""
#: NSIS_Installer.nsi:426
msgid "Delete Logs"
msgstr ""
#: NSIS_Installer.nsi:434
msgid "Delete Cache"
msgstr ""
#
# SABnzbd Translation Template file NSIS
# Copyright (C) 2011 by the SABnzbd Team
# team@sabnzbd.org
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.6.x\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: shypike@sabnzbd.org\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 7bit\n"
#: NSIS_Installer.nsi:347
msgid "Start SABnzbd (hidden)"
msgstr ""
#: NSIS_Installer.nsi:355
msgid "Show Release Notes"
msgstr ""
#: NSIS_Installer.nsi:363
msgid "Support the project, Donate!"
msgstr ""
#: NSIS_Installer.nsi:371
msgid "Please close \"SABnzbd.exe\" first"
msgstr ""
#: NSIS_Installer.nsi:379
msgid " >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
msgstr ""
#: NSIS_Installer.nsi:387
msgid "This will uninstall SABnzbd from your system"
msgstr ""
#: NSIS_Installer.nsi:395
msgid "Run at startup"
msgstr ""
#: NSIS_Installer.nsi:403
msgid "Desktop Icon"
msgstr ""
#: NSIS_Installer.nsi:411
msgid "NZB File association"
msgstr ""
#: NSIS_Installer.nsi:419
msgid "Delete Program"
msgstr ""
#: NSIS_Installer.nsi:427
msgid "Delete Settings"
msgstr ""
#: NSIS_Installer.nsi:435
msgid "Delete Logs"
msgstr ""
#: NSIS_Installer.nsi:443
msgid "Delete Cache"
msgstr ""

View File

@@ -7,34 +7,34 @@ msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.6.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-10 16:12+0000\n"
"POT-Creation-Date: 2011-05-08 19:32+0000\n"
"PO-Revision-Date: 2011-03-11 15:27+0000\n"
"Last-Translator: Rene <Unknown>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-03-12 05:17+0000\n"
"X-Generator: Launchpad (build 12559)\n"
"X-Launchpad-Export-Date: 2011-05-09 04:50+0000\n"
"X-Generator: Launchpad (build 12959)\n"
"Language: da\n"
#: NSIS_Installer.nsi:338
#: NSIS_Installer.nsi:347
msgid "Start SABnzbd (hidden)"
msgstr "Start SABnzbd"
#: NSIS_Installer.nsi:346
#: NSIS_Installer.nsi:355
msgid "Show Release Notes"
msgstr "Vis udgivelsesbemærkninger"
#: NSIS_Installer.nsi:354
#: NSIS_Installer.nsi:363
msgid "Support the project, Donate!"
msgstr "Støtte projektet, donere!"
#: NSIS_Installer.nsi:362
#: NSIS_Installer.nsi:371
msgid "Please close \"SABnzbd.exe\" first"
msgstr "Luk 'SABnzbd.exe' først"
#: NSIS_Installer.nsi:370
#: NSIS_Installer.nsi:379
msgid ""
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
"release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
@@ -42,35 +42,35 @@ msgstr ""
" >>>> WARNING <<<<\\r\\n\\r\\nVenligst, kontrollér først "
"udgivelsesnoter eller gå til http://wiki.sabnzbd.org/introducing-0-6-0 !"
#: NSIS_Installer.nsi:378
#: NSIS_Installer.nsi:387
msgid "This will uninstall SABnzbd from your system"
msgstr "Dette vil afinstallere SABnzbd fra dit system"
#: NSIS_Installer.nsi:386
#: NSIS_Installer.nsi:395
msgid "Run at startup"
msgstr "Kør ved opstart"
#: NSIS_Installer.nsi:394
#: NSIS_Installer.nsi:403
msgid "Desktop Icon"
msgstr "Skrivebords ikon"
#: NSIS_Installer.nsi:402
#: NSIS_Installer.nsi:411
msgid "NZB File association"
msgstr "NZB filtilknytning"
#: NSIS_Installer.nsi:410
#: NSIS_Installer.nsi:419
msgid "Delete Program"
msgstr "Slet program"
#: NSIS_Installer.nsi:418
#: NSIS_Installer.nsi:427
msgid "Delete Settings"
msgstr "Slet instillinger"
#: NSIS_Installer.nsi:426
#: NSIS_Installer.nsi:435
msgid "Delete Logs"
msgstr "Slet logs"
#: NSIS_Installer.nsi:434
#: NSIS_Installer.nsi:443
msgid "Delete Cache"
msgstr "Slet hukommelse"

View File

@@ -7,34 +7,34 @@ msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.6.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-10 16:12+0000\n"
"POT-Creation-Date: 2011-05-08 19:32+0000\n"
"PO-Revision-Date: 2011-03-12 09:03+0000\n"
"Last-Translator: shypike <Unknown>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-03-13 05:09+0000\n"
"X-Generator: Launchpad (build 12559)\n"
"X-Launchpad-Export-Date: 2011-05-09 04:50+0000\n"
"X-Generator: Launchpad (build 12959)\n"
"Language: de\n"
#: NSIS_Installer.nsi:338
#: NSIS_Installer.nsi:347
msgid "Start SABnzbd (hidden)"
msgstr "SABnzbd starten (unsichtbar)"
#: NSIS_Installer.nsi:346
#: NSIS_Installer.nsi:355
msgid "Show Release Notes"
msgstr "Versionshinweise anzeigen"
#: NSIS_Installer.nsi:354
#: NSIS_Installer.nsi:363
msgid "Support the project, Donate!"
msgstr "Bitte unterstützen Sie das Projekt durch eine Spende!"
#: NSIS_Installer.nsi:362
#: NSIS_Installer.nsi:371
msgid "Please close \"SABnzbd.exe\" first"
msgstr "Schliessen Sie bitte zuerst \"SABnzbd.exe\"."
#: NSIS_Installer.nsi:370
#: NSIS_Installer.nsi:379
msgid ""
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
"release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
@@ -43,35 +43,35 @@ msgstr ""
"Versionsanmerkungen lesen oder \"http://wiki.sabnzbd.org/introducing-0-6-0 "
"besuchen!\""
#: NSIS_Installer.nsi:378
#: NSIS_Installer.nsi:387
msgid "This will uninstall SABnzbd from your system"
msgstr "Dies entfernt SABnzbd von Ihrem System"
#: NSIS_Installer.nsi:386
#: NSIS_Installer.nsi:395
msgid "Run at startup"
msgstr "Beim Systemstart ausführen"
#: NSIS_Installer.nsi:394
#: NSIS_Installer.nsi:403
msgid "Desktop Icon"
msgstr "Desktop-Symbol"
#: NSIS_Installer.nsi:402
#: NSIS_Installer.nsi:411
msgid "NZB File association"
msgstr "Mit NZB-Dateien verknüpfen"
#: NSIS_Installer.nsi:410
#: NSIS_Installer.nsi:419
msgid "Delete Program"
msgstr "Programm löschen"
#: NSIS_Installer.nsi:418
#: NSIS_Installer.nsi:427
msgid "Delete Settings"
msgstr "Einstellungen löschen"
#: NSIS_Installer.nsi:426
#: NSIS_Installer.nsi:435
msgid "Delete Logs"
msgstr "Protokoll löschen"
#: NSIS_Installer.nsi:434
#: NSIS_Installer.nsi:443
msgid "Delete Cache"
msgstr "Cache löschen"

View File

@@ -7,34 +7,34 @@ msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.6.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-10 16:12+0000\n"
"POT-Creation-Date: 2011-05-08 19:32+0000\n"
"PO-Revision-Date: 2011-03-10 21:33+0000\n"
"Last-Translator: Fox Ace <Unknown>\n"
"Language-Team: FRANCAIS <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-03-11 05:05+0000\n"
"X-Generator: Launchpad (build 12559)\n"
"X-Launchpad-Export-Date: 2011-05-09 04:50+0000\n"
"X-Generator: Launchpad (build 12959)\n"
"Language: fr\n"
#: NSIS_Installer.nsi:338
#: NSIS_Installer.nsi:347
msgid "Start SABnzbd (hidden)"
msgstr "Démarrer SABnzbd (caché)"
#: NSIS_Installer.nsi:346
#: NSIS_Installer.nsi:355
msgid "Show Release Notes"
msgstr "Afficher les notes de version"
#: NSIS_Installer.nsi:354
#: NSIS_Installer.nsi:363
msgid "Support the project, Donate!"
msgstr "Supportez le projet, faites un don !"
#: NSIS_Installer.nsi:362
#: NSIS_Installer.nsi:371
msgid "Please close \"SABnzbd.exe\" first"
msgstr "Quittez \"SABnzbd.exe\" avant l'installation, SVP"
#: NSIS_Installer.nsi:370
#: NSIS_Installer.nsi:379
msgid ""
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
"release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
@@ -43,35 +43,35 @@ msgstr ""
"vérifiez d'abord les notes de version ou visiter "
"http://wiki.sabnzbd.org/introducing-0-6-0 !"
#: NSIS_Installer.nsi:378
#: NSIS_Installer.nsi:387
msgid "This will uninstall SABnzbd from your system"
msgstr "Ceci désinstallera SABnzbd de votre système"
#: NSIS_Installer.nsi:386
#: NSIS_Installer.nsi:395
msgid "Run at startup"
msgstr "Lancer au démarrage"
#: NSIS_Installer.nsi:394
#: NSIS_Installer.nsi:403
msgid "Desktop Icon"
msgstr "Icône sur le Bureau"
#: NSIS_Installer.nsi:402
#: NSIS_Installer.nsi:411
msgid "NZB File association"
msgstr "Association des fichiers NZB"
#: NSIS_Installer.nsi:410
#: NSIS_Installer.nsi:419
msgid "Delete Program"
msgstr "Supprimer le programme"
#: NSIS_Installer.nsi:418
#: NSIS_Installer.nsi:427
msgid "Delete Settings"
msgstr "Supprimer les Paramètres"
#: NSIS_Installer.nsi:426
#: NSIS_Installer.nsi:435
msgid "Delete Logs"
msgstr "Supprimer les logs"
#: NSIS_Installer.nsi:434
#: NSIS_Installer.nsi:443
msgid "Delete Cache"
msgstr "Supprimer le Cache"

View File

@@ -7,67 +7,67 @@ msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.6.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-10 16:12+0000\n"
"POT-Creation-Date: 2011-05-08 19:32+0000\n"
"PO-Revision-Date: 2010-10-06 21:37+0000\n"
"Last-Translator: shypike@sabnzbd.org\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-03-11 05:05+0000\n"
"X-Generator: Launchpad (build 12559)\n"
"X-Launchpad-Export-Date: 2011-05-09 04:50+0000\n"
"X-Generator: Launchpad (build 12959)\n"
"Language: no\n"
#: NSIS_Installer.nsi:338
#: NSIS_Installer.nsi:347
msgid "Start SABnzbd (hidden)"
msgstr ""
#: NSIS_Installer.nsi:346
#: NSIS_Installer.nsi:355
msgid "Show Release Notes"
msgstr ""
#: NSIS_Installer.nsi:354
#: NSIS_Installer.nsi:363
msgid "Support the project, Donate!"
msgstr ""
#: NSIS_Installer.nsi:362
#: NSIS_Installer.nsi:371
msgid "Please close \"SABnzbd.exe\" first"
msgstr ""
#: NSIS_Installer.nsi:370
#: NSIS_Installer.nsi:379
msgid ""
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
"release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
msgstr ""
#: NSIS_Installer.nsi:378
#: NSIS_Installer.nsi:387
msgid "This will uninstall SABnzbd from your system"
msgstr ""
#: NSIS_Installer.nsi:386
#: NSIS_Installer.nsi:395
msgid "Run at startup"
msgstr ""
#: NSIS_Installer.nsi:394
#: NSIS_Installer.nsi:403
msgid "Desktop Icon"
msgstr ""
#: NSIS_Installer.nsi:402
#: NSIS_Installer.nsi:411
msgid "NZB File association"
msgstr ""
#: NSIS_Installer.nsi:410
#: NSIS_Installer.nsi:419
msgid "Delete Program"
msgstr ""
#: NSIS_Installer.nsi:418
#: NSIS_Installer.nsi:427
msgid "Delete Settings"
msgstr ""
#: NSIS_Installer.nsi:426
#: NSIS_Installer.nsi:435
msgid "Delete Logs"
msgstr ""
#: NSIS_Installer.nsi:434
#: NSIS_Installer.nsi:443
msgid "Delete Cache"
msgstr ""

View File

@@ -7,34 +7,34 @@ msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.6.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-10 16:12+0000\n"
"POT-Creation-Date: 2011-05-08 19:32+0000\n"
"PO-Revision-Date: 2011-03-10 17:18+0000\n"
"Last-Translator: shypike <Unknown>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-03-11 05:05+0000\n"
"X-Generator: Launchpad (build 12559)\n"
"X-Launchpad-Export-Date: 2011-05-09 04:50+0000\n"
"X-Generator: Launchpad (build 12959)\n"
"Language: nl\n"
#: NSIS_Installer.nsi:338
#: NSIS_Installer.nsi:347
msgid "Start SABnzbd (hidden)"
msgstr "Start SABnzbd (verborgen)"
#: NSIS_Installer.nsi:346
#: NSIS_Installer.nsi:355
msgid "Show Release Notes"
msgstr "Toon vrijgave bericht"
#: NSIS_Installer.nsi:354
#: NSIS_Installer.nsi:363
msgid "Support the project, Donate!"
msgstr "Steun het project, Doneer!"
#: NSIS_Installer.nsi:362
#: NSIS_Installer.nsi:371
msgid "Please close \"SABnzbd.exe\" first"
msgstr "Sluit \"SABnzbd.exe\" eerst af"
#: NSIS_Installer.nsi:370
#: NSIS_Installer.nsi:379
msgid ""
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
"release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
@@ -42,35 +42,35 @@ msgstr ""
" >>>> WAARSCHUWING <<<<\\r\\n\\r\\nLees eerst het vrijgave "
"bericht of ga naar \"http://wiki.sabnzbd.org/introducing-0-6-0 !\""
#: NSIS_Installer.nsi:378
#: NSIS_Installer.nsi:387
msgid "This will uninstall SABnzbd from your system"
msgstr "Dit verwijdert SABnzbd van je systeem"
#: NSIS_Installer.nsi:386
#: NSIS_Installer.nsi:395
msgid "Run at startup"
msgstr "Opstarten bij systeem start"
#: NSIS_Installer.nsi:394
#: NSIS_Installer.nsi:403
msgid "Desktop Icon"
msgstr "Pictogram op bureaublad"
#: NSIS_Installer.nsi:402
#: NSIS_Installer.nsi:411
msgid "NZB File association"
msgstr "NZB bestanden koppelen aan SABnzbd"
#: NSIS_Installer.nsi:410
#: NSIS_Installer.nsi:419
msgid "Delete Program"
msgstr "Verwijder programma"
#: NSIS_Installer.nsi:418
#: NSIS_Installer.nsi:427
msgid "Delete Settings"
msgstr "Verwijder instellingen"
#: NSIS_Installer.nsi:426
#: NSIS_Installer.nsi:435
msgid "Delete Logs"
msgstr "Verwijder logging"
#: NSIS_Installer.nsi:434
#: NSIS_Installer.nsi:443
msgid "Delete Cache"
msgstr "Verwijder Cache"

75
po/nsis/ro.px Normal file
View File

@@ -0,0 +1,75 @@
# Romanian translation for sabnzbd
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the sabnzbd package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-05-08 19:32+0000\n"
"PO-Revision-Date: 2011-05-07 04:50+0000\n"
"Last-Translator: nicusor <Unknown>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-05-09 04:50+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#: NSIS_Installer.nsi:347
msgid "Start SABnzbd (hidden)"
msgstr "Porneşte SABnzbd (ascuns)"
#: NSIS_Installer.nsi:355
msgid "Show Release Notes"
msgstr "Arată Notele de Publicare"
#: NSIS_Installer.nsi:363
msgid "Support the project, Donate!"
msgstr "Susţine proiectul, Donează!"
#: NSIS_Installer.nsi:371
msgid "Please close \"SABnzbd.exe\" first"
msgstr "Închideţi mai întâi \"SABnzbd.exe\""
#: NSIS_Installer.nsi:379
msgid ""
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
"release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
msgstr ""
" >>>> ATENŢIE <<<<\\r\\n\\r\\nVă rugăm, verificaţi mai "
"întâi notele de publicare sau mergeţi la http://wiki.sabnzbd.org/introducing-"
"0-6-0 !"
#: NSIS_Installer.nsi:387
msgid "This will uninstall SABnzbd from your system"
msgstr "Acest lucru va dezinstala SABnzbd din sistem"
#: NSIS_Installer.nsi:395
msgid "Run at startup"
msgstr "Executare la pornire"
#: NSIS_Installer.nsi:403
msgid "Desktop Icon"
msgstr "Icoană Desktop"
#: NSIS_Installer.nsi:411
msgid "NZB File association"
msgstr "Asociere cu Fişierele NZB"
#: NSIS_Installer.nsi:419
msgid "Delete Program"
msgstr "Şterge Program"
#: NSIS_Installer.nsi:427
msgid "Delete Settings"
msgstr "Ştergeţi Setări"
#: NSIS_Installer.nsi:435
msgid "Delete Logs"
msgstr "Ştergeţi Activitate"
#: NSIS_Installer.nsi:443
msgid "Delete Cache"
msgstr "Ştergeţi Cache"

View File

@@ -7,68 +7,70 @@ msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.6.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-10 16:12+0000\n"
"PO-Revision-Date: 2010-09-27 18:50+0000\n"
"Last-Translator: shypike <Unknown>\n"
"POT-Creation-Date: 2011-05-08 19:32+0000\n"
"PO-Revision-Date: 2011-05-09 12:25+0000\n"
"Last-Translator: Jerry Malmström <Unknown>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-03-11 05:05+0000\n"
"X-Generator: Launchpad (build 12559)\n"
"X-Launchpad-Export-Date: 2011-05-10 05:44+0000\n"
"X-Generator: Launchpad (build 12959)\n"
"Language: sv\n"
#: NSIS_Installer.nsi:338
#: NSIS_Installer.nsi:347
msgid "Start SABnzbd (hidden)"
msgstr "Starta SABnzbd (dold)"
#: NSIS_Installer.nsi:346
#: NSIS_Installer.nsi:355
msgid "Show Release Notes"
msgstr "Visa release noteringar"
#: NSIS_Installer.nsi:354
#: NSIS_Installer.nsi:363
msgid "Support the project, Donate!"
msgstr "Donera och stöd detta projekt!"
#: NSIS_Installer.nsi:362
#: NSIS_Installer.nsi:371
msgid "Please close \"SABnzbd.exe\" first"
msgstr "Var vänlig stäng \"SABnzbd.exe\" först"
#: NSIS_Installer.nsi:370
#: NSIS_Installer.nsi:379
msgid ""
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
"release notes or go to http://wiki.sabnzbd.org/introducing-0-6-0 !"
msgstr ""
" >>>> VARNING <<<<\\r\\n\\r\\nVar vänlig och läs versions "
"noteringarna eller gå till http://wiki.sabnzbd.org/introducing-0-6-0 !"
#: NSIS_Installer.nsi:378
#: NSIS_Installer.nsi:387
msgid "This will uninstall SABnzbd from your system"
msgstr "Detta kommer att avinstallera SABnzbd från systemet"
#: NSIS_Installer.nsi:386
#: NSIS_Installer.nsi:395
msgid "Run at startup"
msgstr "Kör vid uppstart"
#: NSIS_Installer.nsi:394
#: NSIS_Installer.nsi:403
msgid "Desktop Icon"
msgstr "Skrivbordsikon"
#: NSIS_Installer.nsi:402
#: NSIS_Installer.nsi:411
msgid "NZB File association"
msgstr "NZB Filassosication"
#: NSIS_Installer.nsi:410
#: NSIS_Installer.nsi:419
msgid "Delete Program"
msgstr "Ta bort programmet"
#: NSIS_Installer.nsi:418
#: NSIS_Installer.nsi:427
msgid "Delete Settings"
msgstr "Ta bort inställningar"
#: NSIS_Installer.nsi:426
#: NSIS_Installer.nsi:435
msgid "Delete Logs"
msgstr "Ta bort logg"
#: NSIS_Installer.nsi:434
#: NSIS_Installer.nsi:443
msgid "Delete Cache"
msgstr "Ta bort temporär-mapp"

View File

@@ -98,6 +98,7 @@ DIR_LCLDATA = None
DIR_PROG = None
DIR_INTERFACES = None
DIR_LANGUAGE = None
DIR_PID = None
QUEUECOMPLETE = None #stores the nice name of the action
QUEUECOMPLETEACTION = None #stores the name of the function to be called
@@ -160,6 +161,8 @@ def sig_handler(signum = None, frame = None):
if sabnzbd.WIN32:
from util.apireg import del_connection_info
del_connection_info()
else:
pid_file()
SABSTOP = True
os._exit(0)
@@ -963,6 +966,26 @@ def check_all_tasks():
return True
def pid_file(pid_path=None, port=0):
""" Create or remove pid file
"""
global DIR_PID
if not sabnzbd.WIN32 and pid_path and pid_path.startswith('/'):
DIR_PID = os.path.join(pid_path, 'sabnzbd-%s.pid' % port)
if DIR_PID:
try:
if port:
f = open(DIR_PID, 'w')
f.write('%d\n' % os.getpid())
f.close()
else:
os.remove(DIR_PID)
except:
logging.warning('Cannot access PID file %s', DIR_PID)
# Required wrapper because nzbstuff.py cannot import downloader.py
def active_primaries():
return sabnzbd.downloader.Downloader.do.active_primaries()

View File

@@ -309,10 +309,10 @@ def _api_addlocalfile(name, output, kwargs):
priority = kwargs.get('priority')
nzbname = kwargs.get('nzbname')
if get_ext(name) in ('.zip', '.rar', '.gz'):
if get_ext(name) in ('.zip', '.rar'):
sabnzbd.dirscanner.ProcessArchiveFile(\
fn, name, pp=pp, script=script, cat=cat, priority=priority, keep=True)
elif get_ext(name) in ('.nzb'):
elif get_ext(name) in ('.nzb', '.gz'):
sabnzbd.dirscanner.ProcessSingleFile(\
fn, name, pp=pp, script=script, cat=cat, priority=priority, keep=True, nzbname=nzbname)
else:

View File

@@ -40,6 +40,7 @@ from sabnzbd.articlecache import ArticleCache
from sabnzbd.postproc import PostProcessor
import sabnzbd.downloader
from sabnzbd.utils.rarfile import RarFile, is_rarfile
from sabnzbd.encoding import latin1
#------------------------------------------------------------------------------
@@ -87,9 +88,9 @@ class Assembler(Thread):
# 28 == disk full => pause downloader
if errno == 28:
logging.error(Ta('Disk full! Forcing Pause'))
sabnzbd.downloader.pause_downloader()
else:
logging.error(Ta('Disk error on creating file %s'), filepath)
logging.error(Ta('Disk error on creating file %s'), latin1(filepath))
sabnzbd.downloader.pause_downloader()
except:
logging.error('Fatal error in Assembler', exc_info = True)
break
@@ -102,7 +103,7 @@ class Assembler(Thread):
logging.debug('Got md5pack for set %s', setname)
if check_encrypted_rar(nzo, filepath):
logging.warning(Ta('WARNING: Paused job "%s" because of encrypted RAR file'), nzo.final_name)
logging.warning(Ta('WARNING: Paused job "%s" because of encrypted RAR file'), latin1(nzo.final_name))
nzo.pause()
else:
PostProcessor.do.process(nzo)

View File

@@ -124,6 +124,13 @@ def send(message, recipient):
return T('Email succeeded')
def get_email_date():
""" Return un-localized date string for the Date: field
"""
# Get locale indepedant date/time string: "Sun May 22 20:15:12 2011"
day, month, dayno, hms, year = time.asctime(time.gmtime()).split()
return '%s, %s %s %s %s +0000' % (day, dayno, month, year, hms)
################################################################################
# email_endjob
@@ -136,7 +143,7 @@ def send_with_template(prefix, parm):
""" Send an email using template """
parm['from'] = cfg.email_from()
parm['date'] = time.strftime(time_format('%a, %d %b %Y %H:%M:%S +0000'), time.gmtime())
parm['date'] = get_email_date()
lst = []
path = cfg.email_dir.get_path()
@@ -212,16 +219,17 @@ def diskfull():
""" Send email about disk full, no templates """
if cfg.email_full():
return send(T('''to: %s
from: %s
subject: SABnzbd reports Disk Full
return send(T('''To: %s
From: %s
Date: %s
Subject: SABnzbd reports Disk Full
Hi,
SABnzbd has stopped downloading, because the disk is almost full.
Please make room and resume SABnzbd manually.
''') % (cfg.email_to.get_string(), cfg.email_from()), cfg.email_to())
''') % (cfg.email_to.get_string(), cfg.email_from(), get_email_date()), cfg.email_to())
else:
return ""

View File

@@ -22,6 +22,7 @@ sabnzbd.encoding - Unicoded filename support
import locale
from xml.sax.saxutils import escape
from Cheetah.Filters import Filter
#import unicodedata
import sabnzbd
@@ -88,6 +89,8 @@ def special_fixer(p):
try:
# First see if it isn't just UTF-8
p.decode('utf-8')
if sabnzbd.DARWIN and '&#' in p:
p = fixup_ff4(p)
return p
except:
# Now assume it's latin-1
@@ -140,9 +143,12 @@ def xml_name(p, keep_escape=False, encoding=None):
def latin1(txt):
""" When Unicode, convert to Latin-1 """
""" When Unicode or UTF-8, convert to Latin-1 """
if isinstance(txt, unicode):
return txt.encode('latin-1', 'replace').replace('?', '_')
elif txt and gUTF:
#return unicodedata.normalize('NFC', txt.decode('utf-8')).encode('latin-1', 'replace').replace('?', '_')
return txt.decode('utf-8').encode('latin-1', 'replace').replace('?', '_')
else:
return txt
@@ -257,3 +263,34 @@ def UNTRANS(p):
return p.translate(gTABLE_LATIN_850)
else:
return p
def fixup_ff4(p):
""" Fix incompatibility between CherryPy and Firefox-4 on OSX,
where a filename contains &#xx; encodings
"""
name = []
start = amp = False
for ch in p:
if start:
if ch.isdigit():
num += ch
elif ch == ';':
name.append(unichr(int(num)).encode('utf8'))
start = False
else:
name.append('&#%s%s' % (num, ch))
start = False
elif ch == '&':
amp = True
elif amp:
amp = False
if ch == '#':
start = True
num = ''
else:
name.append('&' + ch)
else:
name.append(ch)
return ''.join(name)

View File

@@ -40,7 +40,8 @@ from sabnzbd.misc import real_path, to_units, \
from sabnzbd.newswrapper import GetServerParms
from sabnzbd.newzbin import Bookmarks
from sabnzbd.bpsmeter import BPSMeter
from sabnzbd.encoding import TRANS, xml_name, LatinFilter, unicoder, special_fixer, platform_encode, latin1
from sabnzbd.encoding import TRANS, xml_name, LatinFilter, unicoder, special_fixer, \
platform_encode, latin1, encode_for_xml
import sabnzbd.config as config
import sabnzbd.cfg as cfg
import sabnzbd.newsunpack
@@ -2166,7 +2167,7 @@ class ConnectionInfo(object):
wlist = []
for w in sabnzbd.GUIHANDLER.content():
w = w.replace('WARNING', Ta('WARNING:')).replace('ERROR', Ta('ERROR:'))
wlist.insert(0, xml_name(w))
wlist.insert(0, unicoder(w))
header['warnings'] = wlist
template = Template(file=os.path.join(self.__web_dir, 'connection_info.tmpl'),

View File

@@ -313,8 +313,8 @@ def real_path(loc, path):
else:
path = ''
if path:
if path.startswith('~'):
path = path.replace('~', sabnzbd.DIR_HOME+'/', 1)
if not sabnzbd.WIN32 and path.startswith('~/'):
path = path.replace('~', sabnzbd.DIR_HOME, 1)
if sabnzbd.WIN32:
if path[0] not in '/\\' and not (len(path) > 1 and path[0].isalpha() and path[1] == ':'):
path = os.path.join(loc, path)
@@ -672,8 +672,8 @@ def panic_sqlite(name):
launch_a_browser(panic_message(PANIC_SQLITE, name, 0))
def panic_old_queue():
msg = MSG_OLD_QUEUE
return MSG_BAD_NEWS % (sabnzbd.MY_NAME, sabnzbd.__version__, sabnzbd.MY_NAME, sabnzbd.__version__, msg, '')
msg = MSG_OLD_QUEUE()
return MSG_BAD_NEWS() % (sabnzbd.MY_NAME, sabnzbd.__version__, sabnzbd.MY_NAME, sabnzbd.__version__, msg, '')
def panic(reason, remedy=""):
print "\n%s:\n %s\n%s" % (Ta('Fatal error'), reason, remedy)

View File

@@ -28,7 +28,7 @@ from time import time
import binascii
import sabnzbd
from sabnzbd.encoding import TRANS, UNTRANS, unicode2local, name_fixer, reliable_unpack_names, unicoder
from sabnzbd.encoding import TRANS, UNTRANS, unicode2local, name_fixer, reliable_unpack_names, unicoder, latin1
from sabnzbd.utils.rarfile import RarFile, is_rarfile
from sabnzbd.misc import format_time_string, find_on_path, make_script_path
from sabnzbd.tvsort import SeriesSorter
@@ -69,6 +69,8 @@ NICE_COMMAND = None
ZIP_COMMAND = None
IONICE_COMMAND = None
RAR_PROBLEM = False
CURL_COMMAND = None
def find_programs(curdir):
"""Find external programs
@@ -103,6 +105,7 @@ def find_programs(curdir):
sabnzbd.newsunpack.RAR_COMMAND = check(curdir, 'win/unrar/UnRAR.exe')
sabnzbd.newsunpack.PAR2C_COMMAND = check(curdir, 'win/par2/par2-classic.exe')
sabnzbd.newsunpack.ZIP_COMMAND = check(curdir, 'win/unzip/unzip.exe')
sabnzbd.newsunpack.CURL_COMMAND = check(curdir, 'lib/curl.exe')
else:
if not sabnzbd.newsunpack.PAR2_COMMAND:
sabnzbd.newsunpack.PAR2_COMMAND = find_on_path('par2')
@@ -161,7 +164,7 @@ def unpack_magic(nzo, workdir, workdir_complete, dele, joinables, zips, rars, ts
""" Do a recursive unpack from all archives in 'workdir' to 'workdir_complete'
"""
if depth > 5:
logging.warning('Unpack nesting too deep [%s]', nzo.final_name)
logging.warning('Unpack nesting too deep [%s]', latin1(nzo.final_name))
return False, []
depth += 1
@@ -290,7 +293,7 @@ def file_join(nzo, workdir, workdir_complete, delete, joinables):
msg = T('Expected size did not equal actual size')
nzo.fail_msg = T('File join of %s failed') % msg
nzo.set_unpack_info('Filejoin', T('[%s] Error "%s" while joining files') % (unicoder(joinable_set), msg))
logging.error(Ta('Error "%s" while running file_join on %s'), msg, nzo.final_name)
logging.error(Ta('Error "%s" while running file_join on %s'), msg, latin1(nzo.final_name))
else:
joinable_sets[joinable_set].sort()
filename = joinable_set
@@ -347,7 +350,7 @@ def file_join(nzo, workdir, workdir_complete, delete, joinables):
msg = sys.exc_info()[1]
nzo.fail_msg = T('File join of %s failed') % msg
nzo.set_unpack_info('Filejoin', T('[%s] Error "%s" while joining files') % (unicoder(joinable_set), msg))
logging.error(Ta('Error "%s" while running file_join on %s'), msg, nzo.final_name)
logging.error(Ta('Error "%s" while running file_join on %s'), msg, latin1(nzo.final_name))
return True, []
return False, newfiles
@@ -355,7 +358,7 @@ def file_join(nzo, workdir, workdir_complete, delete, joinables):
msg = sys.exc_info()[1]
nzo.fail_msg = T('File join of %s failed') % msg
nzo.set_unpack_info('Filejoin', T('[%s] Error "%s" while joining files') % (unicoder(joinable_set), msg))
logging.error(Ta('Error "%s" while running file_join on %s'), msg, nzo.final_name)
logging.error(Ta('Error "%s" while running file_join on %s'), msg, latin1(nzo.final_name))
return True, []
@@ -405,7 +408,7 @@ def rar_unpack(nzo, workdir, workdir_complete, delete, rars):
setname = nzo.final_name
nzo.set_unpack_info('Unpack', T('[%s] Error "%s" while unpacking RAR files') % (unicoder(setname), msg))
logging.error(Ta('Error "%s" while running rar_unpack on %s'), msg, setname)
logging.error(Ta('Error "%s" while running rar_unpack on %s'), msg, latin1(setname))
logging.debug("Traceback: ", exc_info = True)
if success:
@@ -420,7 +423,7 @@ def rar_unpack(nzo, workdir, workdir_complete, delete, rars):
try:
os.remove(rar)
except OSError:
logging.warning(Ta('Deleting %s failed!'), rar)
logging.warning(Ta('Deleting %s failed!'), latin1(rar))
brokenrar = '%s.1' % (rar)
@@ -429,7 +432,7 @@ def rar_unpack(nzo, workdir, workdir_complete, delete, rars):
try:
os.remove(brokenrar)
except OSError:
logging.warning(Ta('Deleting %s failed!'), brokenrar)
logging.warning(Ta('Deleting %s failed!'), latin1(brokenrar))
return not success, extracted_files
@@ -549,17 +552,17 @@ def rar_extract_core(rarfile, numrars, nzo, setname, extraction_path, password):
elif line.startswith('Cannot find volume'):
filename = os.path.basename(TRANS(line[19:]))
nzo.fail_msg = T('Unpacking failed, unable to find %s') % unicoder(filename)
msg = ('[%s] '+Ta('Unpacking failed, unable to find %s')) % (setname, filename)
msg = ('[%s] '+Ta('Unpacking failed, unable to find %s')) % (setname, latin1(filename))
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
logging.warning(Ta('ERROR: unable to find "%s"'), filename)
logging.warning(Ta('ERROR: unable to find "%s"'), latin1(filename))
fail = 1
elif line.endswith('- CRC failed'):
filename = TRANS(line[:-12].strip())
nzo.fail_msg = T('Unpacking failed, CRC error')
msg = ('[%s] '+Ta('ERROR: CRC failed in "%s"')) % (setname, filename)
msg = ('[%s] '+Ta('ERROR: CRC failed in "%s"')) % (setname, latin1(filename))
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
logging.warning(Ta('ERROR: CRC failed in "%s"'), setname)
logging.warning(Ta('ERROR: CRC failed in "%s"'), latin1(setname))
fail = 1
elif line.startswith('Write error'):
@@ -572,16 +575,16 @@ def rar_extract_core(rarfile, numrars, nzo, setname, extraction_path, password):
elif line.startswith('ERROR: '):
nzo.fail_msg = T('Unpacking failed, see log')
logging.warning(Ta('ERROR: %s'), (line[7:]))
msg = ('[%s] '+Ta('ERROR: %s')) % (setname, line[7:])
msg = ('[%s] '+Ta('ERROR: %s')) % (latin1(setname), line[7:])
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
fail = 1
elif line.startswith('Encrypted file: CRC failed'):
filename = TRANS(line[31:-23].strip())
nzo.fail_msg = T('Unpacking failed, archive requires a password')
msg = ('[%s][%s] '+Ta('Unpacking failed, archive requires a password')) % (setname, filename)
msg = ('[%s][%s] '+Ta('Unpacking failed, archive requires a password')) % (setname, latin1(filename))
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
logging.error('%s (%s)', Ta('Unpacking failed, archive requires a password'), filename)
logging.error('%s (%s)', Ta('Unpacking failed, archive requires a password'), latin1(filename))
fail = 2
else:
@@ -608,14 +611,14 @@ def rar_extract_core(rarfile, numrars, nzo, setname, extraction_path, password):
for path in expected_files:
path = unicode2local(path)
fullpath = os.path.join(extraction_path, path)
logging.debug("Checking existance of %s", fullpath)
logging.debug("Checking existance of %s", latin1(fullpath))
if path.endswith('/'):
# Folder
continue
if not os.path.exists(fullpath):
# There was a missing file, show a warning
missing.append(path)
logging.info(Ta('Missing expected file: %s => unrar error?'), path)
logging.info(Ta('Missing expected file: %s => unrar error?'), latin1(path))
if missing:
nzo.fail_msg = T('Unpacking failed, an expected file was not unpacked')
@@ -674,7 +677,7 @@ def unzip(nzo, workdir, workdir_complete, delete, zips):
os.remove(_zip)
i += 1
except OSError:
logging.warning(Ta('Deleting %s failed!'), _zip)
logging.warning(Ta('Deleting %s failed!'), latin1(_zip))
brokenzip = '%s.1' % (_zip)
@@ -684,13 +687,13 @@ def unzip(nzo, workdir, workdir_complete, delete, zips):
os.remove(brokenzip)
i += 1
except OSError:
logging.warning(Ta('Deleting %s failed!'), brokenzip)
logging.warning(Ta('Deleting %s failed!'), latin1(brokenzip))
return unzip_failed
except:
msg = sys.exc_info()[1]
nzo.fail_msg = T('Unpacking failed, %s') % msg
logging.error(Ta('Error "%s" while running unzip() on %s'), msg, nzo.final_name)
logging.error(Ta('Error "%s" while running unzip() on %s'), msg, latin1(nzo.final_name))
return True
def ZIP_Extract(zipfile, extraction_path):
@@ -766,7 +769,7 @@ def par2_repair(parfile_nzf, nzo, workdir, setname):
except:
msg = sys.exc_info()[1]
nzo.fail_msg = T('Repairing failed, %s') % msg
logging.error(Ta('Error %s while running par2_repair on set %s'), msg, setname)
logging.error(Ta('Error %s while running par2_repair on set %s'), msg, latin1(setname))
logging.info("Traceback: ", exc_info = True)
return readd, result
@@ -782,7 +785,7 @@ def par2_repair(parfile_nzf, nzo, workdir, setname):
logging.info("Deleting %s", path)
os.remove(path)
except:
logging.warning(Ta('Deleting %s failed!'), path)
logging.warning(Ta('Deleting %s failed!'), latin1(path))
path = os.path.join(workdir, setname + '.par2')
path2 = os.path.join(workdir, setname + '.PAR2')
@@ -792,21 +795,21 @@ def par2_repair(parfile_nzf, nzo, workdir, setname):
logging.info("Deleting %s", path)
os.remove(path)
except:
logging.warning(Ta('Deleting %s failed!'), path)
logging.warning(Ta('Deleting %s failed!'), latin1(path))
if os.path.exists(path2):
try:
logging.info("Deleting %s", path2)
os.remove(path2)
except:
logging.warning(Ta('Deleting %s failed!'), path2)
logging.warning(Ta('Deleting %s failed!'), latin1(path2))
if os.path.exists(parfile):
try:
logging.info("Deleting %s", parfile)
os.remove(parfile)
except OSError:
logging.warning(Ta('Deleting %s failed!'), parfile)
logging.warning(Ta('Deleting %s failed!'), latin1(parfile))
deletables = []
for f in pars:
@@ -821,11 +824,11 @@ def par2_repair(parfile_nzf, nzo, workdir, setname):
try:
os.remove(filepath)
except OSError:
logging.warning(Ta('Deleting %s failed!'), filepath)
logging.warning(Ta('Deleting %s failed!'), latin1(filepath))
except:
msg = sys.exc_info()[1]
nzo.fail_msg = T('Repairing failed, %s') % msg
logging.error(Ta('Error "%s" while running par2_repair on set %s'), msg, setname)
logging.error(Ta('Error "%s" while running par2_repair on set %s'), msg, latin1(setname))
return readd, result
@@ -1307,10 +1310,10 @@ def sfv_check(sfv_path):
if crc_check(path, checksum):
logging.debug('File %s passed SFV check', path)
else:
logging.warning('File %s did not pass SFV check', path)
logging.warning('File %s did not pass SFV check', latin1(path))
status = False
else:
logging.warning('File %s mssing in SFV check', path)
logging.warning('File %s mssing in SFV check', latin1(path))
fp.close()
return status
@@ -1403,3 +1406,23 @@ def list2cmdline(lst):
else:
nlst.append(arg)
return ' '.join(nlst)
#------------------------------------------------------------------------------
# Work-around for the failure of Python2.5 on Windows to support IPV6 with HTTPS
def get_from_url(url):
if sabnzbd.WIN32 and ' 2.5.' in sys.version and sabnzbd.newsunpack.CURL_COMMAND:
command = [sabnzbd.newsunpack.CURL_COMMAND, "-k", url]
stup, need_shell, command, creationflags = build_command(command)
p = subprocess.Popen(command, shell=need_shell, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
startupinfo=stup, creationflags=creationflags)
output = p.stdout.read()
p.wait()
else:
import urllib2
s = urllib2.urlopen(url)
output = s.read()
return output

View File

@@ -42,7 +42,7 @@ from sabnzbd.misc import to_units, cat_to_opts, cat_convert, sanitize_foldername
sanitize_filename, globber, sanitize_foldername, int_conv
import sabnzbd.cfg as cfg
from sabnzbd.trylist import TryList
from sabnzbd.encoding import unicoder, platform_encode, latin1
from sabnzbd.encoding import unicoder, platform_encode, latin1, name_fixer
__all__ = ['Article', 'NzbFile', 'NzbObject']
@@ -633,7 +633,7 @@ class NzbObject(TryList):
if nzb and '<nzb' in nzb:
if 'A&A)' in nzb:
# Fix needed to compensate for the idiocy at newzbin.com
# Fix needed to compensate for some dumb NZB posters
nzb = nzb.replace('A&A)', 'A&amp;A)')
handler = NzbParser(self)
parser = xml.sax.make_parser()
@@ -907,9 +907,9 @@ class NzbObject(TryList):
if self.oversized and self.status == 'Paused':
prefix += Ta('TOO LARGE') + ' / ' #: Queue indicator for oversized job
if self.password:
return '%s%s / %s' % (prefix, self.final_name, self.password)
return '%s%s / %s' % (name_fixer(prefix), self.final_name, self.password)
else:
return '%s%s' % (prefix, self.final_name)
return '%s%s' % (name_fixer(prefix), self.final_name)
@property
def final_name_pw_clean(self):

View File

@@ -398,10 +398,10 @@ def process_job(nzo):
## Show final status in history
if all_ok:
osx.sendGrowlMsg("Download Completed", filename, osx.NOTIFICATION['complete'])
osx.sendGrowlMsg(T('Download Completed'), filename, osx.NOTIFICATION['complete'])
nzo.status = 'Completed'
else:
osx.sendGrowlMsg("Download Failed", filename, osx.NOTIFICATION['complete'])
osx.sendGrowlMsg(T('Download Failed'), filename, osx.NOTIFICATION['complete'])
nzo.status = 'Failed'
except:
@@ -410,7 +410,7 @@ def process_job(nzo):
logging.info("Traceback: ", exc_info = True)
crash_msg = T('see logfile')
nzo.fail_msg = T('PostProcessing was aborted (%s)') % unicoder(crash_msg)
osx.sendGrowlMsg("Download Failed", filename, osx.NOTIFICATION['complete'])
osx.sendGrowlMsg(T('Download Failed'), filename, osx.NOTIFICATION['complete'])
nzo.status = 'Failed'
par_error = True
all_ok = False
@@ -460,7 +460,7 @@ def parring(nzo, workdir):
""" Perform par processing. Returns: (par_error, re_add)
"""
filename = nzo.final_name
osx.sendGrowlMsg("Post-processing", nzo.final_name, osx.NOTIFICATION['pp'])
osx.sendGrowlMsg(T('Post-processing'), nzo.final_name, osx.NOTIFICATION['pp'])
logging.info('Par2 check starting on %s', filename)
## Collect the par files

View File

@@ -352,7 +352,10 @@ class RSSQueue(object):
myCat = reCats[n]
elif category and not defCat:
myCat = cat_convert(category)
myCat, catPP, catScript, catPrio = cat_to_opts(myCat)
if myCat:
myCat, catPP, catScript, catPrio = cat_to_opts(myCat)
else:
myCat = catPP = catScript = catPrio = None
if notdefault(rePPs[n]):
myPP = rePPs[n]
elif not (reCats[n] or category):
@@ -578,7 +581,10 @@ def _get_link(uri, entry):
try: # nzb.su
category = entry.tags[0]['term']
except:
category = ''
try: # nzbmatrix.com
category = entry.description
except:
category = ''
return link, category
else:
logging.warning(Ta('Empty RSS entry found (%s)'), link)

View File

@@ -241,6 +241,7 @@ SKIN_TEXT = {
# Configuration
'configuration' : TT('Configuration'),
'confgFile' : TT('Config File'),
'cache' : TT('Used cache'), #: Main config page, how much cache is in use
'explain-Restart' : TT('This will restart SABnzbd.<br />Use it when you think the program has a stability problem.<br />Downloading will be paused before the restart and resume afterwards.'),
'button-restart' : TT('Restart'),
'explain-orphans' : TT('There are orphaned jobs in the download folder.<br />You can choose to delete them (including files) or send them back to the queue.'),
@@ -358,7 +359,7 @@ SKIN_TEXT = {
'opt-pause_on_pwrar' : TT('Pause job when encrypted RAR is downloaded'),
'explain-pause_on_pwrar' : TT('You\'ll need to set a password and resume the job.'),
'opt-no_dupes' : TT('Detect Duplicate Downloads'),
'explain-no_dupes' : TT('Detect identically named NZB files and duplicate titles across RSS feeds.'),
'explain-no_dupes' : TT('Detect identically named NZB files (requires NZB backup option) and duplicate titles across RSS feeds.'),
'nodupes-off' : TT('Off'), #: Three way switch for duplicates
'nodupes-ignore' : TT('Discard'), #: Three way switch for duplicates
'nodupes-pause' : TT('Pause'), #: Three way switch for duplicates
@@ -478,6 +479,7 @@ SKIN_TEXT = {
'tableFeeds' : TT('Feeds'), #: Tab title for Config->Feeds
'button-rssNow' : TT('Read All Feeds Now'), #: Config->RSS button
'feedSettings' : TT('Settings'), #: Tab title for Config->Feeds
'filters' : TT('Filters'), #: Tab title for Config->Feeds
# Config->Email
'configEmail' : TT('Email Notification'),
@@ -698,7 +700,8 @@ SKIN_TEXT = {
'Plush-confirmDeleteHistory' : TT('Confirm History Deletions'),
'Plush-explain-blockRefresh' : TT('This will prevent refreshing content when your mouse cursor is hovering over the queue.'),
'Plush-blockRefresh' : TT('Block Refreshes on Hover'),
'Plush-fetch' : TT('Fetch'),
'Plush-fetch' : TT('Fetch'), #: Fetch from URL button in "Add NZB" dialog box
'Plush-upload' : TT('Upload'), #: Upload button in "Add NZB" dialog box
'Plush-uploadTip' : TT('Upload: .nzb .rar .zip .gz'),
'Plush-addnzb-filename' : TT('Optionally specify a filename'),
'Plush-progress' : TT('Progress'),
@@ -772,6 +775,7 @@ SKIN_TEXT = {
'wizard-server-help1' : TT('In order to download from usenet you will require access to a provider. Your ISP may provide you with access, however a premium provider is recommended.'),
'wizard-server-help2' : TT('Don\'t have a usenet provider? We recommend trying %s.'),
'wizard-server-con-explain' : TT('The number of connections allowed by your provider'),
'wizard-server-con-eg' : TT('E.g. 8 or 20'), #: Wizard: examples of amount of connections
'wizard-server-ssl-explain' : TT('Select only if your provider allows SSL connections.'),
'wizard-server-text' : TT('Click to test the entered details.'),
'wizard-server-required' : TT('This field is required.'),
@@ -794,6 +798,7 @@ SKIN_TEXT = {
'wizard-step-three' : TT('Step Three'), #: Wizard step
'wizard-step-four' : TT('Step Four'), #: Wizard step
'wizard-step-five' : TT('Step Five'), #: Wizard step
'wizard-port-eg' : TT('E.g. 119 or 563 for SSL'), #: Wizard port number examples
#Special
'yourRights' : TT('''

View File

@@ -25,6 +25,7 @@ import logging
import os
import sabnzbd.cfg as cfg
from sabnzbd.misc import get_ext, get_filename
import sabnzbd.newsunpack
from sabnzbd.dirscanner import ProcessArchiveFile, ProcessSingleFile
@@ -37,13 +38,13 @@ def upload_file(url, fp):
apikey = cfg.api_key()
if apikey and 'apikey' not in url:
url = '%s&apikey=%s' % (url, apikey)
else:
if 'apikey' not in url:
# Use alternative login method
username = cfg.username()
password = cfg.password()
if username and password:
url = '%s&ma_username=%s&ma_password=%s' % (url, username, password)
urllib2.urlopen(url)
sabnzbd.newsunpack.get_from_url(url)
except:
logging.error("Failed to upload file: %s", fp)
logging.info("Traceback: ", exc_info = True)
@@ -54,9 +55,9 @@ def add_local(f):
if os.path.exists(f):
fn = get_filename(f)
if fn:
if get_ext(fn) in ('.zip', '.rar', '.gz'):
if get_ext(fn) in ('.zip', '.rar'):
ProcessArchiveFile(fn, f, keep=True)
elif get_ext(fn) in ('.nzb'):
elif get_ext(fn) in ('.nzb', '.gz'):
ProcessSingleFile(fn, f, keep=True)
else:
logging.error("Filename not found: %s", f)

View File

@@ -62,6 +62,15 @@ class Wizard(object):
searchList=[info], compilerSettings=sabnzbd.interface.DIRECTIVES)
return template.respond()
@cherrypy.expose
def exit(self, **kwargs):
""" Stop SABnzbd """
yield "Initiating shutdown..."
sabnzbd.halt()
yield "<br>SABnzbd-%s shutdown finished" % sabnzbd.__version__
cherrypy.engine.exit()
sabnzbd.SABSTOP = True
@cherrypy.expose
def one(self, **kwargs):
""" Accept language and show server page """

View File

@@ -166,29 +166,70 @@ def make_templates():
os.makedirs('email')
for path in glob.glob(os.path.join(MO_DIR, '*')):
lng = os.path.split(path)[1]
print 'Create email template for %s' % lng
trans = gettext.translation(DOMAIN_E, MO_DIR, [lng], fallback=False, codeset='latin-1')
# The unicode flag will make _() return Unicode
trans.install(unicode=True, names=['lgettext'])
if lng != 'en':
print 'Create email template for %s' % lng
trans = gettext.translation(DOMAIN_E, MO_DIR, [lng], fallback=False, codeset='latin-1')
# The unicode flag will make _() return Unicode
trans.install(unicode=True, names=['lgettext'])
src = open(EMAIL_DIR + '/email-en.tmpl', 'r')
data = src.read().decode('utf-8')
src.close()
data = _(data).encode('utf-8')
fp = open('email/email-%s.tmpl' % lng, 'wb')
fp.write(data)
fp.close()
src = open(EMAIL_DIR + '/email-en.tmpl', 'r')
data = src.read().decode('utf-8')
src.close()
data = _(data).encode('utf-8')
fp = open('email/email-%s.tmpl' % lng, 'wb')
if not (-1 < data.find('UTF-8') < 30):
fp.write('#encoding UTF-8\n')
fp.write(data)
fp.close()
src = open(EMAIL_DIR + '/rss-en.tmpl', 'r')
data = src.read().decode('utf-8')
src.close()
data = _(data).encode('utf-8')
fp = open('email/rss-%s.tmpl' % lng, 'wb')
fp.write(data)
fp.close()
mo_path = os.path.normpath('%s/%s%s/%s.mo' % (MO_DIR, path, MO_LOCALE, DOMAIN_E))
if os.path.exists(mo_path):
os.remove(mo_path)
src = open(EMAIL_DIR + '/rss-en.tmpl', 'r')
data = src.read().decode('utf-8')
src.close()
data = _(data).encode('utf-8')
fp = open('email/rss-%s.tmpl' % lng, 'wb')
if not (-1 < data.find('UTF-8') < 30):
fp.write('#encoding UTF-8\n')
fp.write(data)
fp.close()
mo_path = os.path.normpath('%s/%s%s/%s.mo' % (MO_DIR, path, MO_LOCALE, DOMAIN_E))
if os.path.exists(mo_path):
os.remove(mo_path)
# Convert Romanian PX files to Latin1 PO files
table = {
u"\u015f" : u"s", # ș
u"\u015e" : u"S", # Ș
u"\u0163" : u"t", # ț
u"\u0162" : u"T", # Ț
u"\u0103" : u"ã", # ă
u"\u0102" : u"Ã", # Ă
u'\u021b' : u"t", # ț
u'\u0218' : u"s", # Ș
u'\u0219' : u"s" # ș
}
def fix_ro():
""" Convert ro.px files to ro.po files with only Latin1
"""
for section in ('main', 'email', 'nsis'):
f = open('po/%s/ro.px' % section, 'rb')
data = f.read().decode('utf-8')
f.close()
for ch in table:
data = data.replace(ch, table[ch])
f = open('po/%s/ro.po' % section, 'wb')
f.write(data.encode('utf-8'))
f.close()
try:
for line in data.split('\n'):
line.encode('latin-1')
except:
print line.encode('utf-8')
print 'WARNING: file po/%s/ro.po is not Latin-1' % section
exit(1)
def patch_nsis():
@@ -239,6 +280,9 @@ tl = os.path.abspath(os.path.normpath(os.path.join(path, 'msgfmt.py')))
if os.path.exists(tl):
TOOL = tl
# Fix up Romanian texts
fix_ro()
if len(sys.argv) > 1 and sys.argv[1] == 'all':
print 'NSIS MO file'
process_po_folder(DOMAIN_N, PON_DIR)

View File

@@ -68,6 +68,10 @@ def set_connection_info(url, user=True):
section, keypath = reg_info(user)
try:
hive = _winreg.ConnectRegistry(None, section)
try:
key = _winreg.CreateKey(hive, keypath)
except:
pass
key = _winreg.OpenKey(hive, keypath)
mykey = _winreg.CreateKey(key, 'api')
_winreg.SetValueEx(mykey, 'url', None, _winreg.REG_SZ, url)

BIN
win/curl/curl.exe Normal file
View File

Binary file not shown.

BIN
win/curl/libssh2.dll Normal file
View File

Binary file not shown.