Compare commits

...

15 Commits

Author SHA1 Message Date
ShyPike
c3d0438250 Update texts for 0.7.1 RC2 2012-06-23 12:31:14 +02:00
ShyPike
2909d4636b Fix parameter bug in Swedish translation. 2012-06-23 12:28:57 +02:00
shypike
a1ee8b6af4 Update translations 2012-06-23 12:20:05 +02:00
ShyPike
cfe3b58f7f On Windows, the Python runtime starts the wrong browser when using http://::1:8080/sabnzbd. Convert URL to http://[::1]:8080/sabnzbd. 2012-06-23 12:05:38 +02:00
ShyPike
ff6b87ef5b Improve the INI file handling.
Simplify and make the save more robust.
Use the INI.BAK file when the INI file is missing or corrupt.
2012-06-21 21:46:14 +02:00
ShyPike
8fbcfd0d5a Update text files for 0.7.1RC1 2012-06-20 20:54:53 +02:00
shypike
347ba999b4 Reduce amount of info requested when updating Windows Tray icon and OSX top menu.
The Windows Tray icon queried for free diskspace, while it is never shown.
The OSX top menu should query for no more queue entries than it will show (10).
The OSX top menu queue didn't show accented characters properly.
2012-06-20 20:48:55 +02:00
ShyPike
503bcf64c9 Prevent problems on systems that don't bother to resolve "localhost". 2012-06-19 22:31:47 +02:00
ShyPike
2a667470a1 Add retries when creating "final folder" to allow for slow activation of mounted volumes. 2012-06-19 19:05:33 +02:00
ShyPike
c61165b840 Plush: fix Speedlimit, Pause and Options pulldown menus for Mobile Safari. 2012-06-18 22:17:09 +02:00
ShyPike
3672189bc8 Remove another unwanted Windows DLL when building on Windows 7. 2012-06-16 13:41:44 +02:00
ShyPike
5b38c772fb When the "uname -n" name of a system doesn't resolve to an IP, only use 0.0.0.0 as hostname when the user hadn't set "localhost", "127.0.0.1" or "::1" as the hostname.
Otherwise any such system will still listen on the external IP despite the fact that user didn't want this.
2012-06-16 12:18:12 +02:00
ShyPike
f28bc4dd9c Windows: the installer did not set an icon for NZB files (association). 2012-06-16 10:45:04 +02:00
ShyPike
e16cc49a17 Config-skin: "server" field in Config->Servers should have html5 tag "text" instead of "url". 2012-06-16 10:44:48 +02:00
ShyPike
f686cc94fd Modify server test to please very critical Usenet server. 2012-06-16 10:44:32 +02:00
25 changed files with 380 additions and 226 deletions

View File

@@ -1,5 +1,5 @@
*******************************************
*** This is SABnzbd 0.7.0 ***
*** This is SABnzbd 0.7.1 ***
*******************************************
SABnzbd is an open-source cross-platform binary newsreader.
It simplifies the process of downloading from Usenet dramatically,

View File

@@ -1,3 +1,20 @@
-------------------------------------------------------------------------------
0.7.1RC2 by The SABnzbd-Team
-------------------------------------------------------------------------------
- Improved backup of sabnzbd.ini file
Will use backup when original is gone or become corrupt
- Windows: Using ::1 as single webhost address would start IE instead of default browser
-------------------------------------------------------------------------------
0.7.1RC1 by The SABnzbd-Team
-------------------------------------------------------------------------------
- Plush skin: fix problems with pull-down menus in Mobile Safari
- On some Linux and OSX systems using localhost would still make SABnzbd
give access to other computers
- Windows: the installer did not set an icon when associating NZB files with SABnzbd
- Fix problem that the Opera browser had with Config->Servers
- Retry a few times when accessing a mounted drive to create the
final destination folder
- Reduce load caused by WinTray and OSX topmenu
-------------------------------------------------------------------------------
0.7.0Final by The SABnzbd-Team
-------------------------------------------------------------------------------

View File

@@ -1,4 +1,4 @@
SABnzbd 0.7.0
SABnzbd 0.7.1
-------------------------------------------------------------------------------
0) LICENSE

View File

@@ -349,7 +349,7 @@ Section $(MsgIcon) desktop
SectionEnd ; end of desktop icon section
Section /o $(MsgAssoc) assoc
${registerExtension} "$INSTDIR\nzb.ico" "$INSTDIR\SABnzbd.exe" ".nzb" "NZB File"
${registerExtension} "$INSTDIR\icons\nzb.ico" "$INSTDIR\SABnzbd.exe" ".nzb" "NZB File"
;${registerExtension} "$INSTDIR\SABnzbd.exe" ".nzb" "NZB File"
SectionEnd ; end of file association section

View File

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

View File

@@ -4,11 +4,25 @@
\paperw11900\paperh16840\vieww16360\viewh15680\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
\f0\b\fs48 \cf0 SABnzbd 0.7.0\
\f0\b\fs48 \cf0 SABnzbd 0.7.1RC2\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
\b0\fs26 \cf0 \
\b Fixes in 0.7.1
\b0 \
RC2\
- Improved backup of sabnzbd.ini file, now uses backup when original is gone or corrupt\
- Swedish translation is extended\
RC1\
- Plush skin: fix problems with pull-down menus in Mobile Safari\
- On some Linux and OSX systems using localhost would still make SABnzbd give access to other computers\
- Windows: the installer did not set an icon when associating NZB files with SABnzbd\
- Fix problem that the Opera browser had with Config->Servers\
- Retry a few times when accessing a mounted drive to create the final destination folder\
- Minor fixes in Window Tray icon and OSX top menu\
\
\b What's new
\b0 \
- Download quota management\
@@ -47,7 +61,7 @@ There is an extensive Wiki on the use of SABnzbd.\
\
\b IMPORTANT INFORMATION
\b0 about release 0.7.0:\
\b0 about release 0.7.1:\
{\field{\*\fldinst{HYPERLINK "http://wiki.sabnzbd.org/introducing-0-7-0"}}{\fldrslt http://wiki.sabnzbd.org/introducing-0-7-0}}\
\

View File

@@ -1,6 +1,21 @@
************************ SABnzbd 0.7.0 ************************
Release Notes - SABnzbd 0.7.1RC2
==================================
What's new:
## Fixes in 0.7.1
### RC2
- Improved backup of sabnzbd.ini file, now uses backup when original is gone or corrupt
- Swedish translation extended
### RC1
- Plush skin: fix problems with pull-down menus in Mobile Safari
- On some Linux and OSX systems using localhost would still make SABnzbd
give access to other computers
- Windows: the installer did not set an icon when associating NZB files with SABnzbd
- Fix problem that the Opera browser had with Config->Servers
- Retry a few times when accessing a mounted drive to create the
final destination folder
- Minor fixes in Window Tray icon and OSX top menu
## What's new in 0.7.0
- Download quota management
- Windows: simple system tray menu
@@ -21,7 +36,7 @@ What's new:
- Unified OSX DMG
About:
## About
SABnzbd is an open-source cross-platform binary newsreader.
It simplifies the process of downloading from Usenet dramatically,
thanks to its web-based user interface and advanced

View File

@@ -563,8 +563,13 @@ def get_webhost(cherryhost, cherryport, https_port):
info = socket.getaddrinfo(socket.gethostname(), None)
except:
# Hostname does not resolve, use 0.0.0.0
cherryhost = '0.0.0.0'
info = socket.getaddrinfo(localhost, None)
if cherryhost not in ('localhost', '127.0.0.1', '::1'):
cherryhost = '0.0.0.0'
try:
info = socket.getaddrinfo(localhost, None)
except:
info = socket.getaddrinfo('127.0.0.1', None)
localhost = '127.0.0.1'
for item in info:
ip = str(item[4][0])
if ip.startswith('169.254.'):
@@ -773,7 +778,7 @@ def evaluate_inipath(path):
inipath = os.path.join(path, DEF_INI_FILE)
if os.path.isdir(path):
return inipath
elif os.path.isfile(path):
elif os.path.isfile(path) or os.path.isfile(path + '.bak'):
return path
else:
dirpart, name = os.path.split(path)
@@ -1053,7 +1058,7 @@ def main():
GetProfileInfo(vista_plus)
# Find out where INI file is
inifile = os.path.abspath(sabnzbd.DIR_PROG + '/' + DEF_INI_FILE)
if not os.path.exists(inifile):
if not os.path.exists(inifile) and not os.path.exists(inifile + '.bak'):
inifile = os.path.abspath(sabnzbd.DIR_LCLDATA + '/' + DEF_INI_FILE)
if sabnzbd.DARWIN:
copy_old_files(sabnzbd.DIR_LCLDATA)
@@ -1065,7 +1070,7 @@ def main():
# All system data dirs are relative to the place we found the INI file
sabnzbd.DIR_LCLDATA = os.path.dirname(inifile)
if not os.path.exists(inifile) and not os.path.exists(sabnzbd.DIR_LCLDATA):
if not os.path.exists(inifile) and not os.path.exists(inifile + '.bak') and not os.path.exists(sabnzbd.DIR_LCLDATA):
try:
os.makedirs(sabnzbd.DIR_LCLDATA)
except IOError:

View File

@@ -23,7 +23,7 @@
</div>
<div class="field-pair">
<label class="config" for="host">$T('srv-host')</label>
<input type="url" name="host" id="host" size="40" />
<input type="text" name="host" id="host" size="40" />
</div>
<div class="field-pair alt">
<label class="config" for="port">$T('srv-port')</label>
@@ -106,7 +106,7 @@
</div>
<div class="field-pair">
<label class="config" for="host$cur">$T('srv-host')</label>
<input type="url" name="host" id="host$cur" value="$servers[$server]['host']" size="40" />
<input type="text" name="host" id="host$cur" value="$servers[$server]['host']" size="40" />
</div>
<div class="field-pair alt">
<label class="config" for="port$cur">$T('srv-port')</label>

View File

@@ -118,15 +118,19 @@ jQuery(function($){
// fix for touch devices -- toggle visibility
$('.sprite_q_menu_pausefor').bind('touchend', function(e) {
e.preventDefault();
if( $(this).hasClass('sprite_q_menu_pauseforsfHover') ) {
$(this).find("ul").toggle();
if (! $.browser.safari) {
e.preventDefault();
if( $(this).hasClass('sprite_q_menu_pauseforsfHover') ) {
$(this).find("ul").toggle();
}
}
});
$('.sprite_q_queue').bind('touchend', function(e) {
e.preventDefault();
if( $(this).hasClass('sprite_q_queuesfHover') ) {
$(this).find("ul").toggle();
if (! $.browser.safari) {
e.preventDefault();
if( $(this).hasClass('sprite_q_queuesfHover') ) {
$(this).find("ul").toggle();
}
}
});

View File

@@ -563,6 +563,7 @@ elif target in ('binary', 'installer'):
DeleteFiles(r'dist\lib\API-MS-Win-*.dll')
DeleteFiles(r'dist\lib\MSWSOCK.DLL')
DeleteFiles(r'dist\lib\POWRPROF.DLL')
DeleteFiles(r'dist\lib\KERNELBASE.dll')
############################
# Remove .git residue

View File

@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
"PO-Revision-Date: 2012-05-26 00:41+0000\n"
"Last-Translator: lrrosa <Unknown>\n"
"PO-Revision-Date: 2012-06-17 22:15+0000\n"
"Last-Translator: diegosps <diegosps@gmail.com>\n"
"Language-Team: Brazilian Portuguese <pt_BR@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: 2012-05-27 04:57+0000\n"
"X-Generator: Launchpad (build 15288)\n"
"X-Launchpad-Export-Date: 2012-06-18 05:39+0000\n"
"X-Generator: Launchpad (build 15419)\n"
#: SABnzbd.py:301 [Error message]
msgid "Failed to start web-interface"
@@ -653,7 +653,7 @@ msgstr "Unindo"
#: sabnzbd/newsunpack.py:359
msgid "Incomplete sequence of joinable files"
msgstr "Sequência incompleta de arquivos acopláveis."
msgstr "Sequência de arquivos multiparte incompleta"
#: sabnzbd/newsunpack.py:360 # sabnzbd/newsunpack.py:368
msgid "File join of %s failed"
@@ -751,7 +751,7 @@ msgstr "A descompactação falhou. Este(s) arquivo(s) estão faltando:"
#: sabnzbd/newsunpack.py:668
msgid "Unpacked %s files/folders in %s"
msgstr "Descompactando %s arquivos/pastas em %s"
msgstr "Descompactados %s arquivos/pastas em %s"
#: sabnzbd/newsunpack.py:702
msgid "%s files in %s"
@@ -1369,7 +1369,7 @@ msgstr "Alguns arquivos falharam na verificação de \"%s\""
#: sabnzbd/postproc.py:577
msgid "Verified successfully using SFV files"
msgstr "Verificado com sucesso usando arquivos SFV"
msgstr "Verificado com sucesso. Usando arquivos SFV."
#: sabnzbd/postproc.py:580
msgid "[%s] No par2 sets"
@@ -1466,7 +1466,7 @@ msgstr "Script"
#: sabnzbd/skintext.py:31 [PP Source of the NZB (path or URL)] # sabnzbd/skintext.py:101 [Where to find the SABnzbd sourcecode]
msgid "Source"
msgstr "Origem"
msgstr "Código fonte"
#: sabnzbd/skintext.py:32 [PP Failure message]
msgid "Failure"
@@ -1890,7 +1890,7 @@ msgstr "Ordenar pelo nome"
#: sabnzbd/skintext.py:181 [Queue page button]
msgid "Sort by age"
msgstr "Ordenar por data"
msgstr "Ordenar por idade"
#: sabnzbd/skintext.py:182 [Queue page button]
msgid "Sort by size"
@@ -1950,7 +1950,7 @@ msgstr "Estimado"
#: sabnzbd/skintext.py:197 [Queue page table column header, "age of the NZB"]
msgid "AGE"
msgstr "DATA"
msgstr "IDADE"
#: sabnzbd/skintext.py:198 [Queue page table, "Delete" button]
msgid "Del"
@@ -2793,11 +2793,11 @@ msgstr "Enviar comando do grupo antes de solicitar artigos."
#: sabnzbd/skintext.py:414
msgid "Sort by Age"
msgstr "Ordernar por Data"
msgstr "Ordernar por Idade"
#: sabnzbd/skintext.py:415
msgid "Automatically sort items by (average) age."
msgstr "Classificar automaticamente os itens por média de data."
msgstr "Classificar automaticamente os itens por (média de) idade."
#: sabnzbd/skintext.py:416
msgid "Check for New Release"
@@ -3655,7 +3655,7 @@ msgstr "Assunto"
#: sabnzbd/skintext.py:669 [Job details page, file age column header] # sabnzbd/skintext.py:817
msgid "Age"
msgstr "Data"
msgstr "Idade"
#: sabnzbd/skintext.py:670 [Job details page, section header]
msgid "Selection"
@@ -3748,11 +3748,11 @@ msgstr "Pausar por 24 horas"
#: sabnzbd/skintext.py:698
msgid "Sort by Age <small>Oldest&rarr;Newest</small>"
msgstr "Ordenar por Data <small>Mais antigo&rarr;Mais novo</small>"
msgstr "Ordenar por Idade <small>Mais antigo&rarr;Mais novo</small>"
#: sabnzbd/skintext.py:699
msgid "Sort by Age <small>Newest&rarr;Oldest</small>"
msgstr "Ordenar por Data <small>Mais novo&rarr;Mais antigo</small>"
msgstr "Ordenar por Idade <small>Mais novo&rarr;Mais antigo</small>"
#: sabnzbd/skintext.py:700
msgid "Sort by Name <small>A&rarr;Z</small>"
@@ -3800,7 +3800,7 @@ msgstr "Armazenamento"
#: sabnzbd/skintext.py:717
msgid "View Script Log"
msgstr "Exibir Log de Script"
msgstr "Exibir Log do Script"
#: sabnzbd/skintext.py:721
msgid "You must enable JavaScript for Plush to function!"
@@ -3840,11 +3840,11 @@ msgstr "Ao Concluir"
#: sabnzbd/skintext.py:739
msgid "Sort by Age <small>(Oldest&rarr;Newest)</small>"
msgstr "Ordenar por Data <small>(Mais antigo&rarr;Mais novo)</small>"
msgstr "Ordenar por Idade <small>(Mais antigo&rarr;Mais novo)</small>"
#: sabnzbd/skintext.py:740
msgid "Sort by Age <small>(Newest&rarr;Oldest)</small>"
msgstr "Ordenar por Data <small>(Mais novo&rarr;Mais antigo)</small>"
msgstr "Ordenar por Idade <small>(Mais novo&rarr;Mais antigo)</small>"
#: sabnzbd/skintext.py:741
msgid "Sort by Name <small>(A&rarr;Z)</small>"
@@ -4052,7 +4052,7 @@ msgstr "Obter Favoritos"
#: sabnzbd/skintext.py:809
msgid "Are you sure you want to restart SABnzbd?"
msgstr "Tem certeza que deseja reiniciar SABnzbd?"
msgstr "Tem certeza que deseja reiniciar o SABnzbd?"
#: sabnzbd/skintext.py:810
msgid "Refresh rate"
@@ -4097,11 +4097,11 @@ msgstr "Acesso"
#: sabnzbd/skintext.py:825
msgid "I want SABnzbd to be viewable by any pc on my network."
msgstr ""
"Quero que SABnzbd seja acessado de qualquer computador em minha rede."
"Quero que o SABnzbd seja acessado de qualquer computador em minha rede."
#: sabnzbd/skintext.py:826
msgid "I want SABnzbd to be viewable from my pc only."
msgstr "Quero que SABnzbd seja acessado somente pelo meu computador."
msgstr "Quero que o SABnzbd seja acessado somente pelo meu computador."
#: sabnzbd/skintext.py:827
msgid "Password protect access to SABnzbd (recommended)"
@@ -4199,23 +4199,23 @@ msgstr "SABnzbd agora será executado em segundo plano."
#: sabnzbd/skintext.py:850 [Wizard tip]
msgid "Closing any browser windows/tabs will NOT close SABnzbd."
msgstr "Fechar qualquer janela/aba do navegador NÃO vai fechar SABnzbd."
msgstr "Fechar qualquer janela/aba do navegador NÃO vai fechar o SABnzbd."
#: sabnzbd/skintext.py:851 [Wizard tip]
msgid ""
"After SABnzbd has finished restarting you will be able to access it at the "
"following location: %s"
msgstr ""
"Após SABnzbd ter reiniciado você será capaz de acessá-lo no seguinte local: "
"%s"
"Após o SABnzbd ter reiniciado você será capaz de acessá-lo no seguinte "
"local: %s"
#: sabnzbd/skintext.py:852 [Wizard tip]
msgid ""
"It is recommended you right click and bookmark this location and use this "
"bookmark to access SABnzbd when it is running in the background."
msgstr ""
"Recomenda-se que você adicione este local como favorito para acessar SABnzbd "
"quando ele estiver sendo executado em segundo plano."
"Recomenda-se que você adicione este local como favorito para acessar o "
"SABnzbd quando ele estiver sendo executado em segundo plano."
#: sabnzbd/skintext.py:853 [Will be appended with a wiki-link, adjust word order accordingly]
msgid "Further help can be found on our"
@@ -4223,7 +4223,7 @@ msgstr "Mais ajuda pode ser encontrada em nosso"
#: sabnzbd/skintext.py:854 [Wizard step]
msgid "Go to SABnzbd"
msgstr "Ir para SABnzbd"
msgstr "Ir para o SABnzbd"
#: sabnzbd/skintext.py:855 [Wizard step] # sabnzbd/wizard.py:86
msgid "Step One"

View File

@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
"PO-Revision-Date: 2012-05-15 20:07+0000\n"
"Last-Translator: Andreas Lindberg <andypandyswe@gmail.com>\n"
"PO-Revision-Date: 2012-06-21 12:41+0000\n"
"Last-Translator: Mattias Nordgren <oxidanter@gmail.com>\n"
"Language-Team: Swedish <sv@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: 2012-05-16 05:28+0000\n"
"X-Generator: Launchpad (build 15247)\n"
"X-Launchpad-Export-Date: 2012-06-22 05:08+0000\n"
"X-Generator: Launchpad (build 15461)\n"
#: SABnzbd.py:301 [Error message]
msgid "Failed to start web-interface"
@@ -1110,6 +1110,8 @@ msgstr ""
msgid ""
"If you get this error message again, please try a different number.<br>"
msgstr ""
"Om du får detta felmeddelande igen, var vänlig försök med en annan "
"siffra.<br>"
#: sabnzbd/panic.py:82
msgid ""
@@ -1121,6 +1123,15 @@ msgid ""
" <br>\n"
" Please restart SABnzbd with a different port number."
msgstr ""
"\n"
" SABnzbd behöver en tillgänglig tcp/ip port för dess interna web "
"server.<br>\n"
" Port %s på %s testades, men kontot som används för SABnzbd har inte "
"tillåtelse att använda den.<br>\n"
" På OSX och Linux-system måste normala användare använda portnummer 1023 "
"eller högre.<br>\n"
" <br>\n"
" Var vänlig starta om SABnzbd med ett annat portnummer."
#: sabnzbd/panic.py:96
msgid ""
@@ -1131,6 +1142,12 @@ msgid ""
" <br>\n"
" Please restart SABnzbd with a proper host address."
msgstr ""
"\n"
" SABnzbd behöver en giltig värdadress för dess interna webbserver.<br>\n"
" Du har specifierat en ogiltig adress.<br>\n"
" Säkra värdadresser är <b>localhost</b> och <b>0.0.0.0</b><br>\n"
" <br>\n"
" Var vänlig starta om SABnzbd med en giltig värdadress."
#: sabnzbd/panic.py:110
msgid ""
@@ -1142,6 +1159,14 @@ msgid ""
" This will erase the current queue and history!<br>\n"
" SABnzbd read the file \"%s\"."
msgstr ""
"\n"
" SABnzbd har upptäckt sparad data från en annan version av SABnzbd<br>\n"
" men kan inte återanvända datan från det andra programmet.<br><br>\n"
" Färdigställ dina nedladdningar med det andra programmet först.<br><br>\n"
" Därefter kan du starta det här programmet med alternativet \"--"
"clean\".<br>\n"
" Detta kommando kommer att ta bort din nuvarande kö och historik!<br>\n"
" SABnzbd read the file \"%s\"."
#: sabnzbd/panic.py:125
msgid ""
@@ -1150,10 +1175,14 @@ msgid ""
" Please install the program again.<br>\n"
" <br>\n"
msgstr ""
"\n"
" SABnzbd kan inte hitta webbgränssnittets filer i %s.<br>\n"
" Var vänlig installera om programmet.<br>\n"
" <br>\n"
#: sabnzbd/panic.py:132
msgid "SABnzbd detected a fatal error:"
msgstr ""
msgstr "SABnzbd upptäckte ett allvarligt fel:"
#: sabnzbd/panic.py:135
msgid ""
@@ -1165,10 +1194,17 @@ msgid ""
"program.<br><br>\n"
" Click OK to proceed to SABnzbd"
msgstr ""
"\n"
" SABnzbd upptäckte Kö and Historik från en äldre (0.4.x) "
"version.<br><br>\n"
" Både kö och historik kommer att ignoreras och kan försvinna!<br><br>\n"
" Du kan välja att stoppa SABnzbd och färdigställa nedladdningskön med den "
"äldre versionen.<br><br>\n"
" Klicka OK för att gå vidare till SABnzbd"
#: sabnzbd/panic.py:140
msgid "OK"
msgstr ""
msgstr "OK"
#: sabnzbd/panic.py:143
msgid ""
@@ -1179,22 +1215,29 @@ msgid ""
"to your virus-scanner vendor.<br>\n"
" <br>\n"
msgstr ""
"\n"
" SABnzbd upptäckte att filen sqlite3.dll saknas.<br><br>\n"
" Det händer att bristfälligt designade virusprogram tar bort denna "
"fil.<br>\n"
" Var vänlig kontrollera ditt virusprogram, försök installera om SABnzbd "
"och klaga till din återförsäljare.<br>\n"
" <br>\n"
#: sabnzbd/panic.py:154
msgid "Press Startkey+R and type the line (example):"
msgstr ""
msgstr "Tryck på Startknappen+R och skriv raden (exempel):"
#: sabnzbd/panic.py:157
msgid "Open a Terminal window and type the line (example):"
msgstr ""
msgstr "Öppna ett Terminal-fönster och skriv raden (exempel):"
#: sabnzbd/panic.py:177
msgid "It is likely that you are using ZoneAlarm on Vista.<br>"
msgstr ""
msgstr "Det är troligt att du använder ZoneAlarm på Vista.<br>"
#: sabnzbd/panic.py:188
msgid "Program did not start!"
msgstr ""
msgstr "Programmet startade inte!"
#: sabnzbd/panic.py:213 [Error message]
msgid "You have no permisson to use port %s"
@@ -1202,7 +1245,7 @@ msgstr "Du har ingen behörighet för att använda port %s"
#: sabnzbd/panic.py:229
msgid "Fatal error"
msgstr ""
msgstr "Allvarligt fel"
#: sabnzbd/panic.py:249 [Warning message]
msgid "Cannot launch the browser, probably not found"
@@ -1210,11 +1253,11 @@ msgstr "Kan inte starta webbläsaren, hittades troligtvis inte"
#: sabnzbd/panic.py:255
msgid "Access denied"
msgstr ""
msgstr "Åtkomst nekades"
#: sabnzbd/panic.py:256
msgid "Error %s: You need to provide a valid username and password."
msgstr ""
msgstr "Error %s: Du måste ange ett giltigt användarnamn och lösenord."
#: sabnzbd/postproc.py:97 [Warning message]
msgid ""
@@ -1230,6 +1273,7 @@ msgstr "Det gick inte att ta bort nzo från efterbehandlings kön (id)"
#: sabnzbd/postproc.py:260
msgid "Download might fail, only %s of required %s available"
msgstr ""
"Nerladdningen kan misslyckas, bara %s av krävda %s finns tillgängligt"
#: sabnzbd/postproc.py:262
msgid "Download failed - Out of your server's retention?"
@@ -1237,7 +1281,7 @@ msgstr "Hämtning misslyclades - Out of your server's retention?"
#: sabnzbd/postproc.py:316
msgid "Cannot create final folder %s"
msgstr ""
msgstr "Kan inte skapa slutgiltig mapp %s"
#: sabnzbd/postproc.py:338
msgid "No post-processing because of failed verification"
@@ -1257,7 +1301,7 @@ msgstr "Det gick inte att döpa om \"%s\" till \"%s\""
#: sabnzbd/postproc.py:407
msgid "Failed to move files"
msgstr ""
msgstr "Misslyckades med att flytta filer"
#: sabnzbd/postproc.py:415
msgid "Running script"
@@ -1281,11 +1325,11 @@ msgstr "Visa skriptutmatning"
#: sabnzbd/postproc.py:464
msgid "Download Completed"
msgstr ""
msgstr "Hämtningen slutfördes"
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
msgid "Download Failed"
msgstr ""
msgstr "Hämtning misslyckades"
#: sabnzbd/postproc.py:471 [Error message]
msgid "Post Processing Failed for %s (%s)"
@@ -1293,11 +1337,11 @@ msgstr "Efterbehandling misslyckades för %s (%s)"
#: sabnzbd/postproc.py:474
msgid "see logfile"
msgstr ""
msgstr "se loggfil"
#: sabnzbd/postproc.py:475
msgid "PostProcessing was aborted (%s)"
msgstr ""
msgstr "Efterbehandling avbröts (%s)"
#: sabnzbd/postproc.py:509 [Error message]
msgid "Cleanup of %s failed."
@@ -1309,11 +1353,11 @@ msgstr "Det gick inte att ta bort arbetsmapp (%s)"
#: sabnzbd/postproc.py:531
msgid "Post-processing"
msgstr ""
msgstr "Efterbehandling"
#: sabnzbd/postproc.py:571
msgid "Trying SFV verification"
msgstr ""
msgstr "Försöker verifiera SFV"
#: sabnzbd/postproc.py:574
msgid "Some files failed to verify against \"%s\""
@@ -1321,7 +1365,7 @@ msgstr "Some files failed to verify against \"%s\""
#: sabnzbd/postproc.py:577
msgid "Verified successfully using SFV files"
msgstr ""
msgstr "Verifieringen lyckades med SFV-filer"
#: sabnzbd/postproc.py:580
msgid "[%s] No par2 sets"
@@ -1333,7 +1377,7 @@ msgstr "Borttagning av %s misslyckades"
#: sabnzbd/powersup.py:39 [Error message]
msgid "Failed to hibernate system"
msgstr ""
msgstr "Kunde inte sätta systemet i vänteläge"
#: sabnzbd/powersup.py:50 [Error message] # sabnzbd/powersup.py:93 [Error message]
msgid "Failed to standby system"
@@ -1341,7 +1385,7 @@ msgstr "Det gick inte att sätta systemet i viloläge"
#: sabnzbd/powersup.py:81 [Error message]
msgid "Error while shutting down system"
msgstr ""
msgstr "Fel uppstod då systemet skulle stängas"
#: sabnzbd/rss.py:128 [Error message]
msgid "Could not compile regex: %s"
@@ -1357,15 +1401,15 @@ msgstr "Det gick inte att hämta RSS flödet från %s: %s"
#: sabnzbd/rss.py:334
msgid "Do not have valid authentication for feed %s"
msgstr ""
msgstr "Har inte giltig autentisering för flöde %s"
#: sabnzbd/rss.py:344
msgid "RSS Feed %s was empty"
msgstr ""
msgstr "RSS-flödet %s var tomt"
#: sabnzbd/rss.py:361 # sabnzbd/rss.py:363
msgid "Incompatible feed"
msgstr ""
msgstr "Inkompatibel feed"
#: sabnzbd/rss.py:649 [Warning message]
msgid "Empty RSS entry found (%s)"
@@ -1373,11 +1417,11 @@ msgstr "Tom RSS post hittades (%s)"
#: sabnzbd/sabtray.py:57
msgid "Show interface"
msgstr ""
msgstr "Visa gränssnitt"
#: sabnzbd/sabtray.py:58
msgid "Open complete folder"
msgstr ""
msgstr "Öppna färdig mapp"
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
@@ -1418,11 +1462,11 @@ msgstr "Skript"
#: sabnzbd/skintext.py:31 [PP Source of the NZB (path or URL)] # sabnzbd/skintext.py:101 [Where to find the SABnzbd sourcecode]
msgid "Source"
msgstr ""
msgstr "Källa"
#: sabnzbd/skintext.py:32 [PP Failure message]
msgid "Failure"
msgstr ""
msgstr "Misslyckades"
#: sabnzbd/skintext.py:34 [PP status] # sabnzbd/skintext.py:226 [History: job status]
msgid "Completed"
@@ -1434,7 +1478,7 @@ msgstr "Misslyckades"
#: sabnzbd/skintext.py:36 [Queue and PP status]
msgid "Waiting"
msgstr ""
msgstr "Väntar"
#: sabnzbd/skintext.py:38 [PP status]
msgid "Repairing..."
@@ -1470,11 +1514,11 @@ msgstr "Laddar ner"
#: sabnzbd/skintext.py:46 [Pseudo-PP status, in reality used for Grabbing status]
msgid "Get NZB"
msgstr ""
msgstr "Lägg till NZB"
#: sabnzbd/skintext.py:47 [PP status]
msgid "Checking"
msgstr ""
msgstr "Kontrollerar"
#: sabnzbd/skintext.py:49 [#: Config->Scheduler] # sabnzbd/skintext.py:485
msgid "Frequency"
@@ -1518,19 +1562,19 @@ msgstr "Återuppta efterbehandla"
#: sabnzbd/skintext.py:64 [#: Config->Scheduler]
msgid "Read RSS feeds"
msgstr ""
msgstr "Läs RSS-flöden"
#: sabnzbd/skintext.py:69 [Speed indicator kilobytes/sec]
msgid "KB/s"
msgstr ""
msgstr "KB/s"
#: sabnzbd/skintext.py:70 [Megabytes]
msgid "MB"
msgstr ""
msgstr "MB"
#: sabnzbd/skintext.py:71 [Gigabytes]
msgid "GB"
msgstr ""
msgstr "GB"
#: sabnzbd/skintext.py:72 [One hour]
msgid "hour"
@@ -1558,15 +1602,15 @@ msgstr "sekunder"
#: sabnzbd/skintext.py:78
msgid "day"
msgstr ""
msgstr "dag"
#: sabnzbd/skintext.py:79
msgid "days"
msgstr ""
msgstr "dagar"
#: sabnzbd/skintext.py:80
msgid "week"
msgstr ""
msgstr "vecka"
#: sabnzbd/skintext.py:81
msgid "Month"
@@ -1598,23 +1642,23 @@ msgstr "Totalt"
#: sabnzbd/skintext.py:96
msgid "on"
msgstr ""
msgstr "den"
#: sabnzbd/skintext.py:98 [Config: startup parameters of SABnzbd]
msgid "Parameters"
msgstr ""
msgstr "Parametrar"
#: sabnzbd/skintext.py:99
msgid "Python Version"
msgstr ""
msgstr "Python-version"
#: sabnzbd/skintext.py:100 [Home page of the SABnzbd project]
msgid "Home page"
msgstr ""
msgstr "Webbplats"
#: sabnzbd/skintext.py:102 [Used in "IRC or IRC-Webaccess"]
msgid "or"
msgstr ""
msgstr "eller"
#: sabnzbd/skintext.py:105 [SABnzbd's theme line]
msgid "The automatic usenet download tool"
@@ -1630,7 +1674,7 @@ msgstr "Köad"
#: sabnzbd/skintext.py:109 [Generic "Delete" button, short form] # sabnzbd/skintext.py:513 [Config->RSS button "Delete filter"] # sabnzbd/skintext.py:587
msgid "X"
msgstr ""
msgstr "X"
#: sabnzbd/skintext.py:110 [Used in confirmation popups] # sabnzbd/skintext.py:712
msgid "Are you sure?"
@@ -1638,7 +1682,7 @@ msgstr "Är du säker?"
#: sabnzbd/skintext.py:111 [Used in confirmation popups]
msgid "Delete all downloaded files?"
msgstr ""
msgstr "Ta bort alla nedladdade filer?"
#: sabnzbd/skintext.py:114 [Main menu item]
msgid "Home"
@@ -1650,7 +1694,7 @@ msgstr "Konfiguration"
#: sabnzbd/skintext.py:118 [Main menu item] # sabnzbd/skintext.py:228 [History table header]
msgid "Status"
msgstr ""
msgstr "Status"
#: sabnzbd/skintext.py:119 [Main menu item] # sabnzbd/skintext.py:833 [Wizard help link]
msgid "Help"
@@ -1658,15 +1702,15 @@ msgstr "Hjälp"
#: sabnzbd/skintext.py:120 [Main menu item]
msgid "Wiki"
msgstr ""
msgstr "Wiki"
#: sabnzbd/skintext.py:121 [Main menu item]
msgid "Forum"
msgstr ""
msgstr "Forum"
#: sabnzbd/skintext.py:122 [Main menu item]
msgid "IRC"
msgstr ""
msgstr "IRC"
#: sabnzbd/skintext.py:123 [Main menu item] # sabnzbd/skintext.py:437
msgid "General"
@@ -1690,11 +1734,11 @@ msgstr "Schemaläggare"
#: sabnzbd/skintext.py:128 [Main menu item]
msgid "RSS"
msgstr ""
msgstr "RSS"
#: sabnzbd/skintext.py:129 [Main menu item] # sabnzbd/skintext.py:523 [Main Config page] # sabnzbd/skintext.py:544 [Section header]
msgid "Notifications"
msgstr ""
msgstr "Meddelanden"
#: sabnzbd/skintext.py:130 [Main menu item]
msgid "Email"
@@ -1714,7 +1758,7 @@ msgstr "Sortering"
#: sabnzbd/skintext.py:134 [Main menu item]
msgid "Special"
msgstr ""
msgstr "Speciell"
#: sabnzbd/skintext.py:137
msgid "Download Dir"
@@ -1738,7 +1782,7 @@ msgstr "Sparat %s artiklar (%s)"
#: sabnzbd/skintext.py:143
msgid "Sysload"
msgstr ""
msgstr "Systembelastning"
#: sabnzbd/skintext.py:144
msgid "WARNINGS"
@@ -1794,11 +1838,11 @@ msgstr "+Ta bort"
#: sabnzbd/skintext.py:165
msgid "&nbsp;"
msgstr ""
msgstr "&nbsp;"
#: sabnzbd/skintext.py:166
msgid "R"
msgstr ""
msgstr "R"
#: sabnzbd/skintext.py:167
msgid "U"
@@ -1814,7 +1858,7 @@ msgstr "Tvinga"
#: sabnzbd/skintext.py:171
msgid "Normal"
msgstr ""
msgstr "Normal"
#: sabnzbd/skintext.py:172
msgid "High"
@@ -1826,7 +1870,7 @@ msgstr "Låg"
#: sabnzbd/skintext.py:175
msgid "Stop"
msgstr ""
msgstr "Stopp"
#: sabnzbd/skintext.py:176
msgid "Enter URL"
@@ -1898,7 +1942,7 @@ msgstr "Återstår/Totalt"
#: sabnzbd/skintext.py:196 [Queue page table column header, "estimated time of arrival"]
msgid "ETA"
msgstr ""
msgstr "Tid kvar"
#: sabnzbd/skintext.py:197 [Queue page table column header, "age of the NZB"]
msgid "AGE"
@@ -1910,15 +1954,15 @@ msgstr "Ta bort"
#: sabnzbd/skintext.py:201 [Queue page button]
msgid "Retry"
msgstr ""
msgstr "Försök igen"
#: sabnzbd/skintext.py:202 [Queue end-of-queue selection box] # sabnzbd/skintext.py:774
msgid "Actions"
msgstr ""
msgstr "Åtgärder"
#: sabnzbd/skintext.py:203 [Queue page table, script selection menu]
msgid "Scripts"
msgstr ""
msgstr "Skript"
#: sabnzbd/skintext.py:205 [Confirmation popup]
msgid "Delete all items from the queue?"
@@ -1926,51 +1970,51 @@ msgstr "Ta bort alla saker från kön?"
#: sabnzbd/skintext.py:206 [Queue page button]
msgid "Purge NZBs"
msgstr ""
msgstr "Rensa NZB:er"
#: sabnzbd/skintext.py:207 [Queue page button]
msgid "Purge NZBs & Delete Files"
msgstr ""
msgstr "Rensa NZB:er och ta bort filer"
#: sabnzbd/skintext.py:208 [Queue page button]
msgid "Remove NZB"
msgstr ""
msgstr "Ta bort NZB"
#: sabnzbd/skintext.py:209 [Queue page button]
msgid "Remove NZB & Delete Files"
msgstr ""
msgstr "Ta bort NZB och filer"
#: sabnzbd/skintext.py:210 [Queue page, as in "4G *of* 10G"]
msgid "of"
msgstr ""
msgstr "av"
#: sabnzbd/skintext.py:211 [Caption for missing articles in Queue]
msgid "Missing articles"
msgstr ""
msgstr "Saknade artiklar"
#: sabnzbd/skintext.py:212 [Remaining quota (displayed in Queue)]
msgid "Quota left"
msgstr ""
msgstr "Kvot kvar"
#: sabnzbd/skintext.py:213 [Manual reset of quota]
msgid "manual"
msgstr ""
msgstr "handbok"
#: sabnzbd/skintext.py:214
msgid "Reset Quota now"
msgstr ""
msgstr "Återställ Kvot nu"
#: sabnzbd/skintext.py:218 [History page button]
msgid "Purge Failed History"
msgstr ""
msgstr "Rensa Misslyckad Historik"
#: sabnzbd/skintext.py:219 [Confirmation popup]
msgid "Delete all completed items from History?"
msgstr ""
msgstr "Ta bort alla slutförda objekt från Historik?"
#: sabnzbd/skintext.py:220 [Confirmation popup]
msgid "Delete all failed items from History?"
msgstr ""
msgstr "Ta bort alla misslyckade objekt från Historik?"
#: sabnzbd/skintext.py:221 [Button/link hiding History job details]
msgid "Hide details"
@@ -1986,11 +2030,11 @@ msgstr "Historikstorlek"
#: sabnzbd/skintext.py:224 [Button or link showing only failed History jobs. DON'T MAKE THIS VERY LONG!]
msgid "Show Failed"
msgstr ""
msgstr "Visa Misslyckade"
#: sabnzbd/skintext.py:225 [Button or link showing all History jobs]
msgid "Show All"
msgstr ""
msgstr "Visa alla"
#: sabnzbd/skintext.py:227 [History table header] # sabnzbd/skintext.py:443 [Size of the download quota] # sabnzbd/skintext.py:784
msgid "Size"
@@ -1998,19 +2042,19 @@ msgstr "Storlek"
#: sabnzbd/skintext.py:229 [Button to delete all failed jobs in History]
msgid "Purge Failed NZBs"
msgstr ""
msgstr "Rensa Misslyckade NZB:er."
#: sabnzbd/skintext.py:230 [Button to delete all failed jobs in History, including files]
msgid "Purge Failed NZBs & Delete Files"
msgstr ""
msgstr "Rensa Misslyckade NZB:er och ta bort filer"
#: sabnzbd/skintext.py:231 [Button to delete all completed jobs in History]
msgid "Purge Completed NZBs"
msgstr ""
msgstr "Rensa färdiga NZB:er"
#: sabnzbd/skintext.py:232 [Button to add NZB to failed job in History]
msgid "Optional Supplemental NZB"
msgstr ""
msgstr "Valfri Kompletterande NZB"
#: sabnzbd/skintext.py:233 [Path as displayed in History details] # sabnzbd/skintext.py:715 # sabnzbd/skintext.py:785
msgid "Path"
@@ -2046,11 +2090,11 @@ msgstr "Fel/Varning"
#: sabnzbd/skintext.py:244 [Status page logging selection value]
msgid "+ Info"
msgstr ""
msgstr "+ Info"
#: sabnzbd/skintext.py:245 [Status page logging selection value]
msgid "+ Debug"
msgstr ""
msgstr "+ Debug"
#: sabnzbd/skintext.py:246 [Status page tab header] # sabnzbd/skintext.py:468 [Server: amount of connections]
msgid "Connections"
@@ -2078,15 +2122,15 @@ msgstr "Ta bort blockering"
#: sabnzbd/skintext.py:252 [Status page, article identifier]
msgid "Article identifier"
msgstr ""
msgstr "Artikel-ID"
#: sabnzbd/skintext.py:253 [Status page, par-set that article belongs to]
msgid "File set"
msgstr ""
msgstr "Filuppsättning"
#: sabnzbd/skintext.py:254 [Status page, table column header, when error occured]
msgid "When"
msgstr ""
msgstr "När"
#: sabnzbd/skintext.py:255 [Status page, table column header, type of message] # sabnzbd/skintext.py:506 [Config->RSS table column header]
msgid "Type"
@@ -2094,11 +2138,11 @@ msgstr "Typ"
#: sabnzbd/skintext.py:256 [Status page, table column header, actual message]
msgid "Warning"
msgstr ""
msgstr "Varning"
#: sabnzbd/skintext.py:258 [Status page, indicator that server is enabled]
msgid "Enabled"
msgstr ""
msgstr "Aktiverad"
#: sabnzbd/skintext.py:262
msgid "Config File"
@@ -2106,7 +2150,7 @@ msgstr "Konfig fil"
#: sabnzbd/skintext.py:263 [Main config page, how much cache is in use]
msgid "Used cache"
msgstr ""
msgstr "Använt cache"
#: sabnzbd/skintext.py:264
msgid ""
@@ -2114,6 +2158,9 @@ msgid ""
"stability problem.<br />Downloading will be paused before the restart and "
"resume afterwards."
msgstr ""
"Detta kommer att starta om SABnzbd.<br />Använd det när du tror att "
"programmet har stabilitetsproblem.<br />Nerladdningar kommer att pusas innan "
"omstarten och återupptas efteråt."
#: sabnzbd/skintext.py:266
msgid ""
@@ -2133,7 +2180,7 @@ msgstr ""
#: sabnzbd/skintext.py:270
msgid "Version"
msgstr ""
msgstr "Version"
#: sabnzbd/skintext.py:271
msgid "Uptime"
@@ -2141,7 +2188,7 @@ msgstr "Upptid"
#: sabnzbd/skintext.py:272 [Indicates that server is Backup server in Status page]
msgid "Backup"
msgstr ""
msgstr "Säkerhetskopiera"
#: sabnzbd/skintext.py:275
msgid "General configuration"
@@ -2165,7 +2212,7 @@ msgstr "Adress som SABnzbd ska lyssna på."
#: sabnzbd/skintext.py:280
msgid "SABnzbd Port"
msgstr ""
msgstr "SABnzbd-port"
#: sabnzbd/skintext.py:281
msgid "Port SABnzbd should listen on."
@@ -2225,11 +2272,11 @@ msgstr "Aktivera åtkomst till webbkontrollen med HTTPS adress."
#: sabnzbd/skintext.py:295
msgid "HTTPS Port"
msgstr ""
msgstr "HTTPS-port"
#: sabnzbd/skintext.py:296
msgid "If empty, the standard port will only listen to HTTPS."
msgstr ""
msgstr "Om tom kommer standardporten endast lyssna till HTTPS."
#: sabnzbd/skintext.py:297
msgid "HTTPS Certificate"
@@ -2268,6 +2315,8 @@ msgid ""
"Checking interval (in minutes, at least 15). Not active when you use the "
"Scheduler!"
msgstr ""
"Kontrollintervall (i minuter, minst 15). Ej aktiv om du använder "
"Schemaläggaren!"
#: sabnzbd/skintext.py:306
msgid "Download Speed Limit"
@@ -2320,15 +2369,17 @@ msgstr "API-nyckel"
#: sabnzbd/skintext.py:316
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr ""
msgstr "Denna nyckel ger tredjepartsprogram full tillgång till SABnzbd."
#: sabnzbd/skintext.py:317
msgid "NZB Key"
msgstr ""
msgstr "NZB-nyckel"
#: sabnzbd/skintext.py:318
msgid "This key will allow 3rd party programs to add NZBs to SABnzbd."
msgstr ""
"Denna nyckel ger tredjepartsprogram möjlighet att lägga till NZB:er i "
"SABnzbd."
#: sabnzbd/skintext.py:319
msgid "Generate New Key"
@@ -2348,11 +2399,11 @@ msgstr "ANVÄND PÅ EGEN RISK!"
#: sabnzbd/skintext.py:323 [Button to show QR code of APIKEY]
msgid "QR Code"
msgstr ""
msgstr "QR-kod"
#: sabnzbd/skintext.py:324 [Explanation for QR code of APIKEY]
msgid "API Key QR Code"
msgstr ""
msgstr "API- eller QR-kod"
#: sabnzbd/skintext.py:327
msgid "Folder configuration"
@@ -2460,11 +2511,12 @@ msgstr "Mapp som innehåller användar-definierade e-mail mallar."
#: sabnzbd/skintext.py:347
msgid "Password file"
msgstr ""
msgstr "Lösenordsfil"
#: sabnzbd/skintext.py:348
msgid "File containing all passwords to be tried on encrypted RAR files."
msgstr ""
"Fil som innehåller alla lösenord som ska prövas på krypterade RAR-filer."
#: sabnzbd/skintext.py:349
msgid "System Folders"
@@ -2472,7 +2524,7 @@ msgstr "Systemmappar"
#: sabnzbd/skintext.py:350
msgid "Administrative Folder"
msgstr ""
msgstr "Administrativ mapp"
#: sabnzbd/skintext.py:351
msgid ""

View File

@@ -8,18 +8,18 @@ msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-05-01 18:51+0000\n"
"PO-Revision-Date: 2012-05-04 14:13+0000\n"
"Last-Translator: shypike <Unknown>\n"
"PO-Revision-Date: 2012-06-17 03:09+0000\n"
"Last-Translator: lrrosa <Unknown>\n"
"Language-Team: Brazilian Portuguese <pt_BR@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: 2012-05-05 05:41+0000\n"
"X-Generator: Launchpad (build 15195)\n"
"X-Launchpad-Export-Date: 2012-06-18 05:39+0000\n"
"X-Generator: Launchpad (build 15419)\n"
#: NSIS_Installer.nsi:417
msgid "Go to the SABnzbd Wiki"
msgstr "Vá para a Wiki SABnzbd"
msgstr "Vá para a Wiki do SABnzbd"
#: NSIS_Installer.nsi:419
msgid "Show Release Notes"
@@ -38,9 +38,8 @@ msgid ""
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
"release notes or go to http://wiki.sabnzbd.org/introducing-0-7-0 !"
msgstr ""
" >>>> ATENÇÃO <<<<\\\\r\\\\n\\\\r\\\\nPor favor, verifique "
"primeiro as notas de lançamento ou vá até "
"http://wiki.sabnzbd.org/introducing-0-7-0 !"
" >>>> ATENÇÃO <<<<\\r\\n\\r\\nPor favor, verifique primeiro "
"as notas de lançamento ou vá até http://wiki.sabnzbd.org/introducing-0-7-0 !"
#: NSIS_Installer.nsi:427
msgid "This will uninstall SABnzbd from your system"

View File

@@ -1252,6 +1252,16 @@ def build_queue(web_dir=None, root=None, verbose=False, prim=True, webdir='', ve
return info, pnfo_list, bytespersec, verbose_list, dictn
#------------------------------------------------------------------------------
def fast_queue():
""" Return paused, bytes_left, bpsnow, time_left """
bytes_left = NzbQueue.do.remaining()
paused = Downloader.do.paused
bpsnow = BPSMeter.do.get_bps()
time_left = calc_timeleft(bytes_left, bpsnow)
return paused, bytes_left, bpsnow, time_left
#------------------------------------------------------------------------------
def qstatus_data():
"""Build up the queue status as a nested object and output as a JSON object
@@ -1287,8 +1297,8 @@ def qstatus_data():
"state" : state,
"paused" : Downloader.do.paused,
"pause_int" : scheduler.pause_int(),
"kbpersec" : BPSMeter.do.get_bps() / KIBI,
"speed" : to_units(BPSMeter.do.get_bps(), dec_limit=1),
"kbpersec" : bpsnow / KIBI,
"speed" : to_units(bpsnow, dec_limit=1),
"mbleft" : qnfo[QNFO_BYTES_LEFT_FIELD] / MEBI,
"mb" : qnfo[QNFO_BYTES_FIELD] / MEBI,
"noofslots" : len(pnfo_list),

View File

@@ -238,6 +238,7 @@ win_menu = OptionBool('misc', 'win_menu', True)
uniconfig = OptionBool('misc', 'uniconfig', True)
allow_incomplete_nzb = OptionBool('misc', 'allow_incomplete_nzb', False)
marker_file = OptionStr('misc', 'nomedia_marker', '')
wait_ext_drive = OptionNumber('misc', 'wait_ext_drive', 5, 1, 60)
#------------------------------------------------------------------------------
# Set root folders for Folder config-items

View File

@@ -22,6 +22,7 @@ sabnzbd.config - Configuration Support
import os
import logging
import threading
import shutil
import sabnzbd.misc
from sabnzbd.constants import CONFIG_VERSION, NORMAL_PRIORITY, DEFAULT_PRIORITY
from sabnzbd.utils import listquote
@@ -633,11 +634,26 @@ def delete(section, keyword):
@synchronized(SAVE_CONFIG_LOCK)
def read_config(path):
""" Read the complete INI file and check its version number
if OK, pass values to config-database
"""
return _read_config(path)
def _read_config(path, try_backup=False):
""" Read the complete INI file and check its version number
if OK, pass values to config-database
"""
global CFG, database, modified
if try_backup or not os.path.exists(path):
# Not found, try backup
try:
shutil.copyfile(path + '.bak', path)
try_backup = True
except IOError:
pass
if not os.path.exists(path):
# No file found, create default INI file
try:
@@ -659,7 +675,10 @@ def read_config(path):
except (KeyError, ValueError):
CFG['__version__'] = CONFIG_VERSION
except configobj.ConfigObjError, strerror:
return False, '"%s" is not a valid configuration file<br>Error message: %s' % (path, strerror)
if try_backup:
return False, '"%s" is not a valid configuration file<br>Error message: %s' % (path, strerror)
else:
return _read_config(path, True)
CFG['__version__'] = CONFIG_VERSION
@@ -731,46 +750,32 @@ def save_config(force=False):
else:
CFG[sec][kw] = value
res = False
filename = CFG.filename
bakname = filename + '.bak'
# Check if file is writable
if not sabnzbd.misc.is_writable(filename):
logging.error(Ta('Cannot write to INI file %s'), filename)
return res
# copy current file to backup
try:
# Check if file is writable
if not sabnzbd.misc.is_writable(filename):
logging.error(Ta('Cannot write to INI file %s'), filename)
modified = False
return False
shutil.copyfile(filename, bakname)
except:
# Something wrong with the backup,
logging.warning(Ta('Cannot create backup file for %s'), bakname)
logging.info("Traceback: ", exc_info = True)
# Read current content
f = open(filename)
data = f.read()
f.close()
tmpname = filename + '.tmp'
bakname = filename + '.bak'
# Write new file
f = open(tmpname, 'w')
f.write(data)
f.close()
# Update temp file content
CFG.filename = tmpname
# Write new config file
try:
CFG.write()
# Rename to backup
if os.path.isfile(bakname):
os.remove(bakname)
os.rename(filename, bakname)
# Rename temp file, overwriting old one
os.rename(tmpname, filename)
modified = False
res = True
except:
logging.error(Ta('Cannot create backup file for %s'), filename)
logging.error(Ta('Cannot write to INI file %s'), filename)
logging.info("Traceback: ", exc_info = True)
res = False
CFG.filename = filename
return res

View File

@@ -1192,7 +1192,7 @@ SPECIAL_BOOL_LIST = \
)
SPECIAL_VALUE_LIST = \
( 'size_limit', 'folder_max_length', 'fsys_type', 'movie_rename_limit', 'nomedia_marker',
'req_completion_rate'
'req_completion_rate', 'wait_ext_drive'
)
class ConfigSpecial(object):

View File

@@ -713,15 +713,22 @@ def hostname():
#------------------------------------------------------------------------------
def check_mount(path):
""" Return False if volume isn't mounted on Linux or OSX
Retry 6 times with an interval of 1 sec.
"""
if sabnzbd.DARWIN:
m = re.search(r'^(/Volumes/[^/]+)/', path, re.I)
elif not sabnzbd.WIN32:
m = re.search(r'^(/(?:mnt|media)/[^/]+)/', path)
elif sabnzbd.WIN32:
m = re.search(r'^([a-z]:\\)', path, re.I)
else:
m = None
return (not m) or os.path.exists(m.group(1))
m = re.search(r'^(/(?:mnt|media)/[^/]+)/', path)
if m:
for n in xrange(cfg.wait_ext_drive() or 1):
if os.path.exists(m.group(1)):
return True
logging.debug('Waiting for %s to come online', m.group(1))
time.sleep(1)
return not m
#------------------------------------------------------------------------------
# Locked directory operations

View File

@@ -733,19 +733,34 @@ class NzbQueue(TryList):
@synchronized(NZBQUEUE_LOCK)
def queue_info(self, for_cli = False):
def queue_info(self, for_cli=False, max_jobs=0):
bytes_left = 0
bytes = 0
pnfo_list = []
n = 0
for nzo in self.__nzo_list:
pnfo = nzo.gather_info(for_cli = for_cli)
if nzo.status != 'Paused':
bytes += pnfo[PNFO_BYTES_FIELD]
bytes_left += pnfo[PNFO_BYTES_LEFT_FIELD]
pnfo_list.append(pnfo)
n += 1
if max_jobs and n >= max_jobs:
break
return (bytes, bytes_left, pnfo_list)
@synchronized(NZBQUEUE_LOCK)
def remaining(self):
""" Return bytes left in the queue by non-paused items
"""
bytes_left = 0
for nzo in self.__nzo_list:
if nzo.status != 'Paused':
bytes_left += nzo.remaining()
return bytes_left
@synchronized(NZBQUEUE_LOCK)
def is_empty(self):
empty = True

View File

@@ -1228,6 +1228,13 @@ class NzbObject(TryList):
except:
pass
def remaining(self):
""" Return remaining bytes """
bytes_left = 0
for nzf in self.files:
bytes_left += nzf.bytes_left
return bytes_left
def gather_info(self, for_cli = False):
bytes_left_all = 0

View File

@@ -32,7 +32,6 @@ import sys
import time
import logging
import logging.handlers
import sabnzbd
import sabnzbd.cfg
@@ -42,6 +41,7 @@ from sabnzbd.misc import get_filename, get_ext, diskfree, to_units
from sabnzbd.panic import launch_a_browser
import sabnzbd.growler as growler
from sabnzbd.api import fast_queue
from sabnzbd.nzbqueue import NzbQueue
import sabnzbd.config as config
import sabnzbd.scheduler as scheduler
@@ -50,6 +50,7 @@ import sabnzbd.dirscanner as dirscanner
from sabnzbd.bpsmeter import BPSMeter
from sabnzbd.newzbin import Bookmarks
from sabnzbd.database import get_history_handle
from sabnzbd.encoding import unicoder
status_icons = {'idle':'../Resources/sab_idle.png','pause':'../Resources/sab_pause.png','clicked':'../Resources/sab_clicked.png'}
start_time = NSDate.date()
@@ -328,7 +329,7 @@ class SABnzbdDelegate(NSObject):
def queueUpdate(self):
try:
qnfo = NzbQueue.do.queue_info()
qnfo = NzbQueue.do.queue_info(max_jobs=10)
pnfo_list = qnfo[QNFO_PNFO_LIST_FIELD]
bytesleftprogess = 0
@@ -347,7 +348,7 @@ class SABnzbdDelegate(NSObject):
for pnfo in pnfo_list:
if job_nb > 10:
break
filename = pnfo[PNFO_FILENAME_FIELD]
filename = unicoder(pnfo[PNFO_FILENAME_FIELD])
msgid = pnfo[PNFO_MSGID_FIELD]
bytesleft = pnfo[PNFO_BYTES_LEFT_FIELD] / MEBI
bytesleftprogess += pnfo[PNFO_BYTES_LEFT_FIELD]
@@ -438,24 +439,23 @@ class SABnzbdDelegate(NSObject):
def stateUpdate(self):
try:
qnfo = NzbQueue.do.queue_info()
bpsnow = BPSMeter.do.get_bps()
if sabnzbd.downloader.Downloader.do.paused:
paused, bytes_left, bpsnow, time_left = fast_queue()
if paused:
self.state = T('Paused')
if sabnzbd.scheduler.pause_int() != "0":
self.setMenuTitle("\n\n%s\n" % (sabnzbd.scheduler.pause_int()))
else:
self.setMenuTitle("")
elif qnfo[QNFO_BYTES_LEFT_FIELD] / MEBI > 0:
elif bytes_left > 0:
self.state = ""
speed = to_units(bpsnow, dec_limit=1) + 'B/s'
speed = to_units(bpsnow, dec_limit=1)
# "10.1 MB/s" doesn't fit, remove space char
if 'M' in speed and len(speed) > 8:
if 'M' in speed and len(speed) > 5:
speed = speed.replace(' ', '')
timeleft = (bpsnow>10 and self.calc_timeleft(qnfo[QNFO_BYTES_LEFT_FIELD],bpsnow)) or "--"
time_left = (bpsnow>10 and time_left) or "------"
statusbarText = "\n\n%s\n%s\n" % (timeleft, speed)
statusbarText = "\n\n%s\n%sB/s\n" % (time_left, speed)
if sabnzbd.SABSTOP:
statusbarText = "..."

View File

@@ -236,6 +236,10 @@ def launch_a_browser(url, force=False):
if not force and not cfg.autobrowser() or sabnzbd.DAEMON:
return
if '::1' in url and not '[::1]' in url:
# Get around ideosyncrasy in Python runtime
url = url.replace('::1', '[::1]')
if cfg.enable_https() and not cfg.https_port.get_int():
# Must use https, because http is not available
url = url.replace('http:', 'https:')

View File

@@ -29,6 +29,8 @@ import sabnzbd.api as api
import sabnzbd.scheduler as scheduler
from sabnzbd.downloader import Downloader
import sabnzbd.cfg as cfg
from sabnzbd.constants import MEBI
from sabnzbd.misc import to_units
import os
import cherrypy
@@ -71,23 +73,19 @@ class SABTrayThread(SysTrayIconThread):
""" Update menu info, once every 10 calls """
self.counter += 1
if self.counter > 10:
status = api.qstatus_data()
state = status.get('state', "SABnzbd")
self.sabpaused = status.get('paused', False)
self.sabpaused, bytes_left, bpsnow, time_left = api.fast_queue()
mb_left = to_units(bytes_left, dec_limit=1)
speed = to_units(bpsnow, dec_limit=1)
if state == 'IDLE':
self.hover_text = T('Idle')
self.icon = self.sabicons['default']
elif state == 'PAUSED':
if self.sabpaused:
self.hover_text = T('Paused')
self.icon = self.sabicons['pause']
elif state == 'DOWNLOADING':
self.hover_text = "%sB/s %s: %s MB (%s)" % (status.get('speed', "---"), T('Remaining'), str(int(status.get('mbleft', "0"))), status.get('timeleft', "---"))
elif bytes_left > 0:
self.hover_text = "%sB/s %s: %sB (%s)" % (speed, T('Remaining'), mb_left, time_left)
self.icon = self.sabicons['green']
else:
self.hover_text = '??'
self.icon = self.sabicons['pause']
self.hover_text = T('Idle')
self.icon = self.sabicons['default']
self.refresh_icon()
self.counter = 0

View File

@@ -105,7 +105,7 @@ def test_nntp_server(host, port, server=None, username=None, password=None, ssl=
if not username or not password:
nw.nntp.sock.sendall('ARTICLE test\r\n')
nw.nntp.sock.sendall('ARTICLE test@home\r\n')
try:
nw.lines = []
nw.recv_chunk(block=True)