mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-01-08 07:28:30 -05:00
Compare commits
70 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f21533e76 | ||
|
|
89996482a1 | ||
|
|
03c10dce91 | ||
|
|
bd5331be05 | ||
|
|
a50a65ee7c | ||
|
|
8665af91f2 | ||
|
|
8641f86631 | ||
|
|
46e1645289 | ||
|
|
45de8c7206 | ||
|
|
4ce3965747 | ||
|
|
9d4af19db3 | ||
|
|
55f811289d | ||
|
|
fbb637e5e3 | ||
|
|
f628dda4e7 | ||
|
|
48e034f4be | ||
|
|
f8959baa2f | ||
|
|
8ed5997eae | ||
|
|
129d3eaf07 | ||
|
|
350db4afc0 | ||
|
|
0a8ffd233e | ||
|
|
a74b500e96 | ||
|
|
1298e7ccce | ||
|
|
e1c61c41ca | ||
|
|
3da76e15d2 | ||
|
|
b116c24b84 | ||
|
|
a43810ec46 | ||
|
|
d4954b52ec | ||
|
|
b0332e141c | ||
|
|
80a181816e | ||
|
|
0dec3b7ec3 | ||
|
|
2c92a7621c | ||
|
|
e05beb71e6 | ||
|
|
6d82c7e542 | ||
|
|
fb238af7de | ||
|
|
6b9e3cd9d8 | ||
|
|
daf9f50ac8 | ||
|
|
6b11013c1a | ||
|
|
0dd1f647d8 | ||
|
|
6999872ec3 | ||
|
|
83ccc0a765 | ||
|
|
bf4b06f620 | ||
|
|
8f290a11ce | ||
|
|
72fda0117f | ||
|
|
d1cfa51a46 | ||
|
|
d6a5f4c0dc | ||
|
|
124701c118 | ||
|
|
d1adc8abc1 | ||
|
|
0c2cfd6225 | ||
|
|
f280363df5 | ||
|
|
6ed9dcfc95 | ||
|
|
4008bd004f | ||
|
|
cbbdccca81 | ||
|
|
0168d8870c | ||
|
|
d6269099aa | ||
|
|
5548bd9c7e | ||
|
|
5c8483f393 | ||
|
|
b9a344992b | ||
|
|
a85a988b22 | ||
|
|
d9808a7550 | ||
|
|
92894e9301 | ||
|
|
e59a28b617 | ||
|
|
27429a1415 | ||
|
|
8f9e1b2eb7 | ||
|
|
663330e251 | ||
|
|
92410fc1ef | ||
|
|
8ab3ebd5f6 | ||
|
|
0d8d5daff6 | ||
|
|
309f8e0044 | ||
|
|
902f67ef02 | ||
|
|
5c54b873bf |
10
.lgtm.yml
Normal file
10
.lgtm.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
path_classifiers:
|
||||
oldinterfaces:
|
||||
- interfaces/smpl
|
||||
- interfaces/Plush
|
||||
library:
|
||||
- cherrypy
|
||||
- gntp
|
||||
- six
|
||||
- "*knockout*"
|
||||
- "**/*min*"
|
||||
13
.travis.yml
13
.travis.yml
@@ -3,16 +3,17 @@ matrix:
|
||||
include:
|
||||
- os: linux
|
||||
language: python
|
||||
python: 2.7
|
||||
env:
|
||||
- secure: X5MY2HAtCxBI84IySY/XroFsFy2RIVhfsX+P1y3WXfvwBHYKCgrPV6BgwCg93ttkPmMS/IslP5Vp4F1OGqC9AZdxtxfHKpIPlIVxIHj6Lf6xwynmbGDQXjy73K13gjznK2mkGA0jcsp4Q5POS4ZKVkd6aOXnc8l8xS08+ztAvfxCC3tsMj2oMLEPP92j6zqb/1x2aX5+gVyVzrKgQQVKIk6R6jTxhIiOMPzj4+VMLXK8NEZqjV6RPwUjSoKHqJiV5URyf6/+2Ojmem3ilnpktn7xIJ/ZO1UNnZCrElOGZtmbryZFMctJvEAIQCOSdzsq/MACk0gocnOL3JQfDF5sYPOjJmc6sZI9PL78oFhwKaLkWEx565u8kdkLTMvv4A02HAmPzV1rKE1CTlEhsy0djU8mueCr9Ep1WyLJdY/igbyhR+dOd8fVo9Y1tY2o+ZisCsO5+PRfzhypK9xukqmWDJSXIWSuExUU/becXJ4IaTmlYJ+ArhKvkL90GmckH/zt9ZPIgr9Lq0OFva9uVHX+sbbsQZZ48lAmgiiiX335dONj8MxO8cDKsUT9FWQ8PzeJ8g8PErv5pmVVVODoOdKZg2Oo4jUsZG2yV8uUt9j87I2DPou4WiJ7wcTzQCPdzlaA5hdixPMyVUF/yCL+eKdJQFaKy3eaKwCxnAVp3WA2WdA=
|
||||
- secure: gzvbgg+rdM/TfPOlXGE/JOW8VEfIJxwUnzt2bH07nj/PbREXQXrImC1SreMtwQX+gvd7bjIBZU/sgNSgRYcWKaSim4uNtAbinkcKQeP+V844ZY2Fabq/xpLluSP61vJLQ+hOLbnvilxmuI0E1Divahxo5qZJlwzCdk5u2txJRT/2LKGDT1lpGgIyDj9u0/ViAcpaAyfFR2Zd6ydHKbx+eFBE21LkyH/+GJmRiO0+qLIuCa2knmOJYjwBxRcPiAEDpbrRUbYDiNyzPqEVxJfCbsGYlo/QN/SnV6kTqM1WoFzvi4d1pDxDGRFLQj+KigihF6uY4eLC1e6yVQrDy0tyWKt6E+1tc8fH5dRS7AYtWMzURn/7Ebd72AiNIYaeAL8ZPqI7vw3ovFTqBS0h8Mg2uUZ503ytUvfwKyU9MgIkzXwmGuE37MCd0bRJ/blPS2DT+IMbrbEP90K5VrDrN/AGiYHR1TZ9GKUZd6xHibulEh2nNFMMQEga8nE2CWaJ3uJrCN7ud+4OJ0zCZFF7JiJTbOGApHg/aGWD/bYfg9sIh7up4PcxVs6RFxbf+M1aB8GO2A9aEZFow+djYVxiqf6esmzrnlsTfz16f8Txmez3BRftjVULre03a3Rt7WRxwYLveNlJos1nMw3G0CnruCe+wJbHEK4tEiqIXqB8UemT4zw=
|
||||
- secure: f5QGjZESH4khjLOO1Ntgtiol4ZvwcqHLIV1sdK162dVkNT6UKOTRQflj2UmRXzwiRzWtVX/Ri0zT0j+SUJy2+aqJY/gxvisdTIWzRQ3w/CJPGgCizSkTQEWJ2V/n7DUAJ4xerme36zYi21S3d8VEWVDzU/duLu3yhlN5x0wMCY+dDPSDTFubmptGeCmyxqBqGVd7gD3PaiK7fDBB/eAXbW3QxLLQfxLHmPsx8vzPhDTQiLFtY43jfnVGEBdUbxSMXbq2NRB5eXH3bBkW8u/5y9uoyuF45CQn8f3UB6F84L+/n9M2ryCGeSJOFuZqSUHXvRF2acON40jx3t4PVocEzYguPwewoiFxfFHjRWmiI4WljiN30taK0pgstmzLTedozK+NdZ0M8vD7MCyK0yegPQolzFRngWW5Y8NY1XwlBT9W2lqGmrFge+dB86wOArMcRlY62PTOJ9Zqspbe/6mBT4Tq4O2OsXxGX/x60W/NJynva9WAz2SLEi5Pjs6r1a3tyXssw4/8KVhWl92WfpOnWrZrnZlsxOTmcS2OhLB0FQikTv9T/i3CZNcCI4PELkExeIwh4JW1MY0iGeLDHcAUKryJGrRZj1x32Nt1uUPTPBi8l8EzNyNOUvbHYTdpBr5r2JW1orvT55OhvKauc3wB7ogj673iYsqx5jeazHhgJMs=
|
||||
- secure: iMXx74c2eUhDPJrukvAFxCFNWYDk8JB2alQ89Hc3T1ckXfDS37vgUplTze1aGo+AefUkDSFmTreFk9hVJvd4SQTHz4wS+qp7HQJFWECjR16jZwobIbukNPNU1JamozZoOa2igoVIJ8/tVIdIpfcsGfzj9WogwUlpChWHIiI8SM/Fc0WK+M9rDPKBpgjEN2yom73jbC2ETxuQ/HMdMNnNS9S1vS7MY+2W69+xi5Kl9hP0HUBIG/JtVXu1a4SO5NgqL5aW4cgKtgg0IjpedBRMcC0rpyEz+lDtl2jXYR+mXQEO8uNZOwzV7SLrq/ROGwW+DMtfiiySKxmuYoL/JOm4kcLyEup51dgnTQc1RdEcaYfk0twDry67prnQ/sXAQphzjl0StrTpLfzWUsCvgXRp7+XWhX9ElHN4KelOcAc7YeTSXoPY6bENk8LSy1woJ2HbH5TkSvtVJ6xrmssV3bEMp7aGx7qv1D/uvyAEMulB79WwdLyoDxmG9eIgXfp3nICko4p9kisrzK0hVCGDRCHSYgTnDBGTMJU/SlRRNUepmXHXQUrqWyTWvy2HTMUTjuYBaaNcUqZvyHyyaDq0MNBotwDCmes5o8fZu456lB/B26LwUu7cOSbCw19ePlGBNnbjA9NmNoQGOo66era3NEVJLYv+H91PAPQyWpzOt0X53Gk=
|
||||
- secure: Cryq31K8wxt+q212/q7IHlLf4flH4riaiHssxR0/VfGACtMp3jOAVZ5RAOvX03LPYp+BuX2KAHFXDHeGHGzYmESkpzPCToZ3GpaOwP3ymc3RNeU6bd98yEQyQtM/wtY4uxPUWdwz5Uw5kkeynxw3y/QFsYceipB3u3oCvfB9n8SqWShjWpBFyFhSKS/SJjUqgNcAaA0pTP8l/crquZNhkug/J8Nlc/nC0H6ZSJKGu8UhkhZ0VSEY8dofZZkGG6YCIIEAqGasQqkra6x/D0uECfQnnDrTqekvklUG31/zy+awQXl+0NjLTIKyl2rHp5AUpSTlbPO2mDYdbWEWcRYmNsEEiGfvy3R9kGGbNijB5b57jvgsJapH8DkGRWseISdCBWqLH7C/OafNuMGzQ4s3UCN1aazqqN/IAJplVjSWiKA76Nbh385x88E8RaH7Gnvx1ZK88Lgf7Bz8Ar/O1dMviyP8WbM/vQQkVMdOk89y5O6G8ZwHFoj/v8w383irWMN2iU0Mf7GKW91ughpKrrKbXCmkT1bR9+tNYpKWU1O+1jgnGk65149GNC0K+9exWt0TK3pNSUa7b2nVzxeAqdCJjCoKBi2pLiRxYVI50V80M2p5Xw+5iiSiOhTLzFLT3YRi2VBjjBFa8BHJHBS9Pua4DaFc1w06XNej6K8rRV5We0s=
|
||||
- secure: O/8jVULQmqOLHkvIW21IsVuL7/B+3MhgRFaT4wltxk/x7TarEsQyahXdStsQ+I53mMRbSfsArdCHXwgIm13wROXfcEdt7iM0f2tGWUsm32q73RrjBsKzb8SRTKZNkL1dOjpgkdEHejZdVckKlg0GlpJTTowOdfi+SYinj4Hj52vrV9waHk296njKw98W5Y35lEtSH3DcAU2NHrDi7YqQvjiBzj9MviG1qpJZJ1RMxKrTXXCqjlYcxr8FwO2kGpMnkTFIDywi4OspLQ1InEGhM9MdrY9tqGVzW631nX1uRV8aNhl+bLhtRs0i3QtOisWMWO5z5SQN6pOqUWx3nnwLPJzuoL+wGMDC2tdVRmH1+cuYCwq97curNq4hv9FBs7P/RS4e22WAoW0jtLWnx/5voVes1EsQE5iW/iG0z4ih3MIk3dHN6h8HcNr83DRxOW8JKmA79IbtcVFReZJ2AXQhx6VmvdUaIi3IKpW79K89ZzEuoEEO5Eyti2LLz9rti0iVknHejGYKWDCABflGaKjnj62tpUsAB9EsPPuwBegoKRd2bVy3kJ+RWGcMc4QfzsEq39z2ftQ8XJ800ZuuQvl7nsk86Dso+Hgr/T+5xU2wU6vFbwoDCWsxdnK2LXNpf3ci5PBZFhG9zLMRk+yFyAfh8OdQr19lxclay0X6na1K8i0=
|
||||
- os: osx
|
||||
env:
|
||||
- HOMEBREW_NO_AUTO_UPDATE=1
|
||||
- secure: RI/WxBI5kTP5v0qZ6im5BwqPurzzwKIl8GSbM2dFSEiWYEbKwHTDJ3KDDsXqS8YMNaropNVgzsdpCGXYUWRNTraKVa9GZEGNJ+fQuBWK9wkJ0MDTYfL/QFSN1CDXXlg7k26VXu6PgvEFA5kyDfSpxrxXJC6yXOUeJqmebkU2fiQo7/5Vpb1WAwpYlBP6zL5lYt2lpJ85fhYEjuAeuP/9zdVIlgCB7rDCgUX7tCKKXgwbKXfcff7lOCneB00/RCmRuNp3/tohGlgrSXh4ivHx4XEQgRoiVdeR3RCKZa5tBIXANefuJ2VopBrAbSRmVBexQP1818IU/XLlwtEEpC1vulpkx+5JolWksCrx4uJkKdlH0KA4k1m88L0Q1Rmmnp9LgRgeEl5xqt5s6RR6lS63ChQYkVFgWandwlrWu7Uenne4401KbG58PzDXEGlsKhUXnYBX+SU6gwejImCMb3vszKRAge5QAQlkiruCu31W9tWpY9ezHYrbv9ckOqdFXf9qsPEnU352v/8qHFe7jT/+7RSYdUzuo/d2aQqPKfkb7sy1VLEznmbGmv1BH4rGNpxd5inlcFKsR099Hx7PWgY8MHZcnEP3PJ2kBseFzVP3WKXHDTcv8yR0w6EgQyMzSHl9Ah3WJJ7TXZQ82gcqF8LcmuKcqXcwTkffG3ww7Vzuq4M=
|
||||
- secure: uXHKYgQAwnfhWKi7RKAEumMMZZTJBb878KpodRfs1fz0NffdPo5+Ak1ricNzOJ8wti8/lXycDS+YmnFs64lGUxL+zvbQlFv7QuKfN0uHfPlo6zux9Ha9pg1rSUI4zqZ9kmbtwc0I2mdy1VeWwHvnbQDXUIt6a+tTwYZL3MGdP6kNvtSXaYhbEoHExjqeHUtVhUTafvWGtwE7uN+sdvhwXQ0dWlz6HGub8qYjkKCmF9VG+OyLKjFHjLVDMQ7Jnng2l1ZOgHSh5g5m6r++NEwSzZ8wFVULdzv5eEcR9U+mHmonFKOA/ICcZGd8MhEuvz9BupfgDWFqSTb5JGxzlZ28YdtjcAudzrWQMSpP2R0ks2Ttxz9Kpgw1L75HMvj0smazHs7IEEiXf2Yr03bzeHg7CGXNqOYyEOxxrPaJekCjMlX/YGqT/iv/8pZPfew7k/iVJlvCam76WNXABjJncHJeMsCgkItYZAoRZJDc+7z8J4g4ys1Rk0V/difjjwc/pSeKbt6wDA/9cmZ7r4Cs1Yh9Pl/mw6kzWGGpejO7lmsayQN3Pw99QMcZByUHx5BR+ZtIfF7Sl+F0uDQJ0MntJcteF7z1Dam2jHlkLckb85j6YWup5ItLAj5Hz7V2YUwqFmQhfOWEAjxagNSNnB8we4YBWS4KDTBEVDm6ITTfddlYvCw=
|
||||
- secure: HKaT52NUQh18kllFQTjpKC64KlDkWEz0XnIEKJffumctrJjCvoFZFNC7ip3j7Bi3yp2IeD2SMsdxrrT6YFKxx5FfSdPqpQnsY34bzdEFZQomNJg4n/tmBc350PoVQ0PvLQiVoCCfVbdS/b4makNK7A+d9KED+SEsQMAqKp2mSnGhATB9MwFaZL5S4nGnEkqW5+eeAQxJ8JRawwumOOx/xhPOoEMIfHMpyTwFI1yUh1nJhZ9k1nxHzPlM78goyIuf0MjeZfSZ2fIlNZGVruYM28i9hpO4bzPFhk51uryWv8DQZiZlpCkHl6Po7rVVf5pNqm+l9SD/t0DnhS2rJHdeFSI2lM/uZtdOxaY5fTTj83LbCGhFtuZnZRwoQ73tpda8J7Z1E5Ni9bi7vOiZQ4pEIPt4LLu0X607sPWMkqrmgalKQQS13b5oliyMpkIguvmj9822BpaNVqamIrfn0z38+0Gog8iuGlMAQnRO9tGDO4kbVLcZQTRWpSwIC3niTPjPgLq/N92XQ9xmccrFT7efwemgF65FNM5ltv8+9AmI+hsuyXfqeHaAV9wmxRAAhaqvRgnSLYa3u1CPn5fF2CDvPvPcyCEIWnyxc7dYHDpzAQDcyuSejtbnL8gpkDqEHpy23hTjgZnZD7Pk7PQ7ayA8zBumTMGZ+/GAn5Wmgce+w0M=
|
||||
- secure: iMXx74c2eUhDPJrukvAFxCFNWYDk8JB2alQ89Hc3T1ckXfDS37vgUplTze1aGo+AefUkDSFmTreFk9hVJvd4SQTHz4wS+qp7HQJFWECjR16jZwobIbukNPNU1JamozZoOa2igoVIJ8/tVIdIpfcsGfzj9WogwUlpChWHIiI8SM/Fc0WK+M9rDPKBpgjEN2yom73jbC2ETxuQ/HMdMNnNS9S1vS7MY+2W69+xi5Kl9hP0HUBIG/JtVXu1a4SO5NgqL5aW4cgKtgg0IjpedBRMcC0rpyEz+lDtl2jXYR+mXQEO8uNZOwzV7SLrq/ROGwW+DMtfiiySKxmuYoL/JOm4kcLyEup51dgnTQc1RdEcaYfk0twDry67prnQ/sXAQphzjl0StrTpLfzWUsCvgXRp7+XWhX9ElHN4KelOcAc7YeTSXoPY6bENk8LSy1woJ2HbH5TkSvtVJ6xrmssV3bEMp7aGx7qv1D/uvyAEMulB79WwdLyoDxmG9eIgXfp3nICko4p9kisrzK0hVCGDRCHSYgTnDBGTMJU/SlRRNUepmXHXQUrqWyTWvy2HTMUTjuYBaaNcUqZvyHyyaDq0MNBotwDCmes5o8fZu456lB/B26LwUu7cOSbCw19ePlGBNnbjA9NmNoQGOo66era3NEVJLYv+H91PAPQyWpzOt0X53Gk=
|
||||
- secure: Yc9lY76AEXwG1uf+pg1xyTDo3gg8zsIqJ6K/WwJr7zStLGU6J5Qf/iW7jFzGxTbq0Kc6/dgb4VInYwlcyhjsRE3DI5LDqKiP2dZATP07crwZnzwrhxDPdYA+s1sI9YDJN90aZZm48DbUPFR7DPZjkDqyRJMRCFstZ/fJ//kSDVJvMjEOPEixzT6k5sRW2j9sctzEzqCHhroKaz5/m1sSBWa+pJx7C4A76NQFrMZEmlnWf0qKoUERaGn4hv5I3/38KQa0wy1q43obMoltmaFrbyIV4tx9M60kSGfaQdVVgwYgxPsINZeESJk+N4JCQSUKr0biAcKamPfgIbfEN4FbCGiFzHf5w/eIyUG0yUg42NtzzMVVS4I0s/aaPGKrjDrJNZ9bj8/oQjWDHtlRx7nrREdPI2Ch/MF8e8t03tDm5unhLIa6Fk1Ic9UbgwjtUqDvAne5+kwhsh8WpyU+VnttP/LyKTi2eqtADF6kPuxKM9DbTFE/IvCE2DXDFc6OOzAWoqhnbBgPrX0L5OlQLWoL13oi+yJMnBsF4Rd3rhqpNJ2sJTukeHT9z5yhkBEXHe9PatT0hiXZ7AxHsgX292k9Ti4se3pPxETkbR3r8iOklItMu1PViQsvfRyOFu+XloqMaPO31z48LmcPOps+/DYkbRyaTqBMdmPPRJghZ9lzvno=
|
||||
- secure: RsFCZq/1Q6/++mgCZB6WsnIcbBsBwHFn6nfwC+vAomxbPtHevdiC930eIn8jKDza6Vmd4LoaMklvNOBEK1QpphbZXhKZIecakZOb+KyHVanSbQwErZCuVQdEo2p8cHJfuEh3guxmkE2OjAiBnSsgHlLmGiLAUF5GW5NPDLASPXIxXbBKOIKv7sTWj6tYYfVdUs1pQVz3Z+MkhRoS2uhVBOvQ14axtAtil1WmhgEJzuHAvjW29b1Q6l2goIuqoglqwKSna437CCt6mMFt6IVQqi36/lwXw0cYCLyJq3PURGDce6FdeQlwW0YfOXwT9k6BH+HcNuYmCSAbuL5hqC994avYbpemsBKKGfBK0Q8xZe0lQpS+R1C+iF3XXnPLU8B5TtALiBcFVRd3s291mxigxYqjkXbkgwVNAgkXKze+MhvrEQgoQwwhU3SbnmrZN8U6wW58MDYzjDxPaZdE5tUI+ROkfWeMRqtQrGNSJX6AwjkCrurW1/n0DXMlsUFnq4WGWF9nk8aHVzD8Y0cetQ+tLj3HxuxNqmAquewn+Z7pL41YTHlSTZ9+nHhI0GLQem6ANWL/4xJO8nBeOUETv1nULgbMyNOVaS9yBA7b2omE+Zuf8CMRCr9ID+Eeqtx1cUSMkWRymTdZvyPFPLjQ9KASTc7aCM7Cfc0aBceOoOOxMRw=
|
||||
addons:
|
||||
chrome: stable
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
*******************************************
|
||||
*** This is SABnzbd 2.3.7 ***
|
||||
*** This is SABnzbd 2.3.9 ***
|
||||
*******************************************
|
||||
SABnzbd is an open-source cross-platform binary newsreader.
|
||||
It simplifies the process of downloading from Usenet dramatically,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
SABnzbd 2.3.7
|
||||
SABnzbd 2.3.9
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
0) LICENSE
|
||||
|
||||
4
PKG-INFO
4
PKG-INFO
@@ -1,7 +1,7 @@
|
||||
Metadata-Version: 1.0
|
||||
Name: SABnzbd
|
||||
Version: 2.3.7
|
||||
Summary: SABnzbd-2.3.7
|
||||
Version: 2.3.9
|
||||
Summary: SABnzbd-2.3.9
|
||||
Home-page: https://sabnzbd.org
|
||||
Author: The SABnzbd Team
|
||||
Author-email: team@sabnzbd.org
|
||||
|
||||
31
README.mkd
31
README.mkd
@@ -1,18 +1,21 @@
|
||||
Release Notes - SABnzbd 2.3.7
|
||||
Release Notes - SABnzbd 2.3.9
|
||||
=========================================================
|
||||
|
||||
## Improvements and bug fixes since 2.3.6
|
||||
- Hopeless jobs will be failed faster, based on the first article of
|
||||
each file. If 80% of these first articles is missing, the job is aborted.
|
||||
- Option "fast_fail" added to disable the new behavior.
|
||||
- Added option to quickly add a verified test download
|
||||
- Readout of some RSS feeds could result in a crash
|
||||
- Direct Unpack could get stuck processing
|
||||
- Show Details on Servers page could break graph display
|
||||
- Windows: Update MultiPar to 1.3.0.3
|
||||
|
||||
Still looking for help with SABnzbd (Python 3) development!
|
||||
https://www.reddit.com/r/usenet/comments/918nxv/
|
||||
## Improvements and bug fixes since 2.3.8
|
||||
- Duplicate job detection would not compare job names
|
||||
- Propagation delay could show even if it was not configured
|
||||
- Ignore Samples deleted all files of jobs containing the words Sample/Proof
|
||||
- Warning "Unable to stop the unrar process" was shown too often
|
||||
- Direct Unpack could hang forever on Unicode downloads
|
||||
- Test Download could fail if clicked on the icon instead of the button
|
||||
- Series Duplicate detection did not always work with Direct Unpack enabled
|
||||
- Adding a job with non-existing category was not set to Default (*) category
|
||||
- Only delete completed jobs from history when using History Retention option
|
||||
- Renamed Server Load-balancing to Server IP address selection
|
||||
- Linux: remove sabnzbd.error.log file at start-up if it grew too large
|
||||
- Windows: double-click delay increased to avoid accidental pausing
|
||||
- Windows: update MultiPar to v1.3.0.5
|
||||
- Windows and macOS: update UnRar to 5.71
|
||||
|
||||
## Upgrading from 2.2.x and older
|
||||
- Finish queue
|
||||
@@ -26,7 +29,7 @@ https://www.reddit.com/r/usenet/comments/918nxv/
|
||||
URL's that did not finish fetching before the upgrade will be lost.
|
||||
- The organization of the download queue is different from 0.7.x releases.
|
||||
This version will not see the 0.7.x queue, but you can restore the jobs
|
||||
by going to Status page and using Queue Repair.
|
||||
by going to the Status and Interface Settings window and using Queue Repair.
|
||||
|
||||
## Known problems and solutions
|
||||
- Read the file "ISSUES.txt"
|
||||
|
||||
12
SABnzbd.py
12
SABnzbd.py
@@ -89,7 +89,7 @@ import sabnzbd.newsunpack
|
||||
from sabnzbd.misc import real_path, \
|
||||
check_latest_version, exit_sab, get_from_url, \
|
||||
split_host, get_ext, create_https_certificates, \
|
||||
windows_variant, ip_extract, set_serv_parms, get_serv_parms, globber_full
|
||||
windows_variant, ip_extract, set_serv_parms, get_serv_parms, globber_full, remove_file
|
||||
from sabnzbd.panic import panic_tmpl, panic_port, panic_host, \
|
||||
panic_sqlite, panic, launch_a_browser
|
||||
import sabnzbd.scheduler as scheduler
|
||||
@@ -1126,8 +1126,14 @@ def main():
|
||||
try:
|
||||
x = sys.stderr.fileno
|
||||
x = sys.stdout.fileno
|
||||
ol_path = os.path.join(logdir, DEF_LOG_ERRFILE)
|
||||
out_log = file(ol_path, 'a+', 0)
|
||||
|
||||
# Get log file path and remove the log file if it got too large
|
||||
log_path = os.path.join(logdir, DEF_LOG_ERRFILE)
|
||||
if os.path.exists(log_path) and os.path.getsize(log_path) > sabnzbd.cfg.log_size.get_int():
|
||||
remove_file(log_path)
|
||||
|
||||
# Redirect stderr/stdout
|
||||
out_log = file(log_path, 'a+', 0)
|
||||
sys.stderr.flush()
|
||||
sys.stdout.flush()
|
||||
os.dup2(out_log.fileno(), sys.stderr.fileno())
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
environment:
|
||||
SAB_NEWSSERVER_HOST:
|
||||
secure: UNnTfVHDugC9amTucdTRyxe8RZfVBLYfI1EOTaDUjNM=
|
||||
secure: 6SvOPWr5ypJeoumXJAZh90DLpk4C/5UAvzwyX7OOUr4=
|
||||
SAB_NEWSSERVER_USER:
|
||||
secure: npe0D4TiEzXMUVMCH3+SHA==
|
||||
secure: Ty3ZG8T5vnacqIFPj5j5hg==
|
||||
SAB_NEWSSERVER_PASSWORD:
|
||||
secure: 28COv3RG+KAnBLxIrR1EDw==
|
||||
secure: bO3XHtWTleVF9AqRV/V/nA==
|
||||
|
||||
install:
|
||||
- pip install --upgrade -r tests/requirements.txt
|
||||
|
||||
@@ -61,11 +61,6 @@
|
||||
<input type="checkbox" name="email_rss" id="email_rss" value="1" <!--#if int($email_rss) > 0 then 'checked="checked"' else ""#--> />
|
||||
<span class="desc">$T('explain-email_rss')</span>
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="email_dir">$T('opt-email_dir')</label>
|
||||
<input type="text" name="email_dir" id="email_dir" value="$email_dir" data-initialdir="$my_home" />
|
||||
<span class="desc">$T('explain-email_dir')</span>
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="email_server">$T('opt-email_server')</label>
|
||||
<input type="text" name="email_server" id="email_server" value="$email_server" />
|
||||
@@ -404,9 +399,6 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
\$(document).ready(function(){
|
||||
// Autocomplete and filebrowser
|
||||
\$('#email_dir').typeahead().fileBrowser();
|
||||
|
||||
// Expand on enable
|
||||
\$('.col2 input[name$="enable"]').change(function() {
|
||||
if(this.checked) {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
<!--#from sabnzbd.constants import VALID_ARCHIVES, VALID_NZB_FILES#-->
|
||||
<!--#set $file_exts = ', '.join(VALID_NZB_FILES + VALID_ARCHIVES)#-->
|
||||
<!-- Notifcation box -->
|
||||
<div class="main-notification-box" style="display: none">
|
||||
<div class="main-notification-box-uploading">
|
||||
@@ -433,7 +435,7 @@
|
||||
<form data-bind="submit: addNZBFromURL" class="col-sm-6">
|
||||
<fieldset>
|
||||
<legend class="row-wrap-text">$T('Glitter-addFromURL')</legend>
|
||||
<div class="input-group" data-tooltip="true" data-placement="bottom" title="$T('Glitter-nzbFormats')">
|
||||
<div class="input-group" data-tooltip="true" data-placement="bottom" title="$file_exts">
|
||||
<input type="text" name="nzbURL" class="form-control" placeholder="$T('enterURL')" />
|
||||
<span class="input-group-btn">
|
||||
<input type="submit" name="Add" value="$T('add')" class="btn btn-default" />
|
||||
@@ -444,10 +446,10 @@
|
||||
<form data-bind="submit: addNZBFromFileForm" class="col-sm-6">
|
||||
<fieldset>
|
||||
<legend class="row-wrap-text">$T('Glitter-addFromFile')</legend>
|
||||
<div class="input-group" data-tooltip="true" data-placement="bottom" title="$T('Glitter-nzbFormats')">
|
||||
<div class="input-group" data-tooltip="true" data-placement="bottom" title="$file_exts">
|
||||
<label class="btn btn-default btn-file">
|
||||
<span class="glyphicon glyphicon-file"></span> <em>$T('Glitter-chooseFile')…</em>
|
||||
<input type="file" multiple name="nzbFile" class="form-control" accept=".nzb,.rar,.zip,.gz,.bz2" data-bind="event : { change: updateBrowseLabel }" />
|
||||
<input type="file" multiple name="nzbFile" class="form-control" accept="$file_exts" data-bind="event : { change: updateBrowseLabel }" />
|
||||
</label>
|
||||
|
||||
<span class="input-group-btn">
|
||||
@@ -569,10 +571,10 @@
|
||||
<input type="hidden" name="retry_job_id" />
|
||||
<fieldset>
|
||||
<legend>$T('opt-extra-NZB')</legend>
|
||||
<div class="input-group input-group-addfile" data-tooltip="true" data-placement="bottom" title="$T('Glitter-nzbFormats')">
|
||||
<div class="input-group input-group-addfile" data-tooltip="true" data-placement="bottom" title="$file_exts">
|
||||
<label class="btn btn-default btn-file">
|
||||
<span class="glyphicon glyphicon-file"></span> <em>$T('Glitter-chooseFile')…</em>
|
||||
<input type="file" name="nzbFile" class="form-control" accept=".nzb,.rar,.zip,.gz,.bz2" data-bind="event : { change: updateBrowseLabel }" />
|
||||
<input type="file" name="nzbFile" class="form-control" accept="$file_exts" data-bind="event : { change: updateBrowseLabel }" />
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
@@ -35,6 +35,6 @@
|
||||
<!--#else if float($mbleft) < 0.1#-->
|
||||
SABnzbd
|
||||
<!--#else#-->
|
||||
<!--#if float($kbpersec) > 1023 #-->$speed<!--#else#--><!--#echo "%.0f" % float($kbpersec)#--> K<!--#end if#-->B/s - $sizeleft $T('Glitter-left') - SABnzbd
|
||||
${speed}B/s - $sizeleft $T('Glitter-left') - SABnzbd
|
||||
<!--#end if#-->
|
||||
|||<!--#echo "%.0f" % float($kbpersec)#-->
|
||||
@@ -96,7 +96,7 @@ function ViewModel() {
|
||||
|
||||
// Dynamic speed text function
|
||||
self.speedText = ko.pureComputed(function() {
|
||||
return self.speed() + ' ' + (self.speedMetrics[self.speedMetric()] ? self.speedMetrics[self.speedMetric()] : "KB/s");
|
||||
return self.speed() + ' ' + (self.speedMetrics[self.speedMetric()] ? self.speedMetrics[self.speedMetric()] : "B/s");
|
||||
});
|
||||
|
||||
// Dynamic icon
|
||||
@@ -852,6 +852,12 @@ function ViewModel() {
|
||||
// Download a test-NZB
|
||||
self.testDownload = function(data, event) {
|
||||
var nzbSize = $(event.target).data('size')
|
||||
|
||||
// Maybe it was a click on the icon?
|
||||
if(nzbSize == undefined) {
|
||||
nzbSize = $(event.target.parentElement).data('size')
|
||||
}
|
||||
|
||||
// Build request
|
||||
var theCall = {
|
||||
mode: "addurl",
|
||||
|
||||
BIN
osx/unrar/unrar
BIN
osx/unrar/unrar
Binary file not shown.
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2018-12-24 11:01+0000\n"
|
||||
"PO-Revision-Date: 2017-08-01 16:45+0000\n"
|
||||
"Last-Translator: ION IL <Unknown>\n"
|
||||
"PO-Revision-Date: 2019-01-21 15:26+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Hebrew <he@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: 2018-12-25 04:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-22 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18856)\n"
|
||||
|
||||
#: email/email.tmpl:1
|
||||
msgid ""
|
||||
@@ -91,9 +91,9 @@ msgstr ""
|
||||
"הורדו $size\n"
|
||||
"\n"
|
||||
":תוצאות העבודה\n"
|
||||
"<!--#for $stage ב $stages #-->\n"
|
||||
"<!--#for $stage in $stages #-->\n"
|
||||
"שלב $stage <!--#slurp#-->\n"
|
||||
"<!--#for $result ב $stages[$stage]#-->\n"
|
||||
"<!--#for $result in $stages[$stage]#-->\n"
|
||||
" $result <!--#slurp#-->\n"
|
||||
"<!--#end for#-->\n"
|
||||
"<!--#end for#-->\n"
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-2.4.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-2.3.8\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"
|
||||
"POT-Creation-Date: 2019-01-04 12:49+W. Europe Standard Time\n"
|
||||
"POT-Creation-Date: 2019-05-07 09:00+W. Europe Daylight Time\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
||||
@@ -412,10 +412,6 @@ msgstr ""
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3275,19 +3271,19 @@ msgid "Comma separated list"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4154,10 +4150,6 @@ msgstr ""
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@@ -6,15 +6,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"PO-Revision-Date: 2018-11-28 04:21+0000\n"
|
||||
"Last-Translator: scootergrisen <scootergrisen@gmail.com>\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2019-01-26 09:26+0000\n"
|
||||
"Last-Translator: B.E. <Unknown>\n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:41+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:48+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
"Language: da\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
@@ -441,10 +441,6 @@ msgstr "Færdig"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Udpakket %s filer/mapper i %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -889,11 +885,11 @@ msgstr "FEJL: CRC mislykkedes i \"%s\""
|
||||
|
||||
#: sabnzbd/newsunpack.py
|
||||
msgid "Unpacking failed, file too large for filesystem (FAT?)"
|
||||
msgstr ""
|
||||
msgstr "Udpakningen fejlede, da filen er for stor til filsystemet (FAT?)"
|
||||
|
||||
#: sabnzbd/newsunpack.py [Error message]
|
||||
msgid "ERROR: File too large for filesystem (%s)"
|
||||
msgstr ""
|
||||
msgstr "FEJL: Fil for stor til filsystem (%s)"
|
||||
|
||||
#: sabnzbd/newsunpack.py
|
||||
msgid "Unpacking failed, write error or disk is full?"
|
||||
@@ -994,6 +990,8 @@ msgstr "[%s] Bekræftelse i %s, kræver reparation"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
"Invalide par2 filer eller invalide PAR2 parametre, kan ikke bekræfte eller "
|
||||
"reparere"
|
||||
|
||||
#: sabnzbd/newsunpack.py
|
||||
msgid "Fetching %s blocks..."
|
||||
@@ -1029,7 +1027,7 @@ msgstr "Bekræfter"
|
||||
|
||||
#: sabnzbd/newsunpack.py
|
||||
msgid "Checking extra files"
|
||||
msgstr ""
|
||||
msgstr "Tjekker ekstra filer"
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/skintext.py [PP status]
|
||||
msgid "Checking"
|
||||
@@ -1837,11 +1835,11 @@ msgstr "Deaktivere kvota styring"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
msgstr "Pause jobs med kategori"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
msgstr "Genoptag jobs med kategori"
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
@@ -2539,7 +2537,7 @@ msgstr "Gentagelse test"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test download"
|
||||
msgstr ""
|
||||
msgstr "Test overførsel"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
@@ -2825,19 +2823,19 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
msgstr "Behold alle jobs"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr ""
|
||||
msgstr "Behold maximal antal af gennemførte jobs"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr ""
|
||||
msgstr "Behold gennemførte jobs maximal antal af dage"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgstr ""
|
||||
msgstr "Behold ikke gennemførte jobs"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Jobs"
|
||||
@@ -3179,7 +3177,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
msgstr "Tillad reelle udgivelser"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
@@ -3197,7 +3195,7 @@ msgstr "Mislykkes job (flyt til historik)"
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
msgstr "Marker job"
|
||||
|
||||
#: sabnzbd/skintext.py [Three way switch for encrypted posts]
|
||||
msgid "Abort"
|
||||
@@ -3251,7 +3249,7 @@ msgstr "Nogle servere levere en alternativ NZB når et download mislykkes."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use tags from indexer"
|
||||
msgstr ""
|
||||
msgstr "Brug mærker fra indexer"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
@@ -3293,7 +3291,7 @@ msgstr "IONice parametre"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "External process priority"
|
||||
msgstr ""
|
||||
msgstr "Ekstern proces prioritet"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disconnect on Empty Queue"
|
||||
@@ -3539,20 +3537,20 @@ msgid "Comma separated list"
|
||||
msgstr "Kommasepareret liste"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Server belastningsjustering"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Forhindre belastningsjustering"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Tillad belastningsjustering"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Giver mulighed for belastningsjustering med optimering for IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4099,7 +4097,7 @@ msgstr "S01E05 Episodemappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
msgstr "Job Navn som Filnavn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
@@ -4171,7 +4169,7 @@ msgstr "Originalfilnavn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Original Job Name"
|
||||
msgstr ""
|
||||
msgstr "Oprindelig Job Navn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Lower Case"
|
||||
@@ -4449,10 +4447,6 @@ msgstr "Upload NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Angiv et valgfrit filnavn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formater: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Tilføj"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-05-31 06:22+0000\n"
|
||||
"Last-Translator: scope <Unknown>\n"
|
||||
"Language-Team: German <de@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: 2019-01-05 05:41+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -457,10 +457,6 @@ msgstr "Fertiggestellt"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "%s Datei(en)/Ordner entpackt in %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr "Direkt entpacken wurde automatisch aktiviert"
|
||||
@@ -3646,20 +3642,20 @@ msgid "Comma separated list"
|
||||
msgstr "Durch Komma getrennte Liste"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Server Lastverteilung"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Lastverteilung verhindern"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Lastverteilung zulassen"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Lastverteilung mit IPv6-Optimierung zulassen"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4562,10 +4558,6 @@ msgstr "NZB hochladen"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Wahlweise einen Dateinamen angeben:"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formate: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Senden"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Spanish <es@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: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -439,10 +439,6 @@ msgstr "Completado"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Descompresos %s archivos/directorios en %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3558,20 +3554,20 @@ msgid "Comma separated list"
|
||||
msgstr "Lista separada por comas"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Balanceo de carga del servidor"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Evitar el balanceo de carga"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Permitir balanceo de carga"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Permitir balanceo de carga con optimización para IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4467,10 +4463,6 @@ msgstr "Subir NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Opcionalmente especificar un nombre de fichero"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formatos: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:19+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Finnish <fi@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: 2019-01-05 05:41+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -438,10 +438,6 @@ msgstr "Valmistunut"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Purettiin %s tiedostoa/kansiota kohteeseen %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3547,20 +3543,20 @@ msgid "Comma separated list"
|
||||
msgstr "Pilkulla erotettu lista"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Palvelimen kuormantasaus"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Estä kuormantasaus"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Salli kuormantasaus"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Salli kuormantasaus IPv6 optimoinnille"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4459,10 +4455,6 @@ msgstr "Lähetä NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Vaihtoehtoisesti anna tiedostonimi"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Tiedostomuodot: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Lähetä"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"PO-Revision-Date: 2019-01-05 12:50+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2019-05-14 00:00+0000\n"
|
||||
"Last-Translator: Fred <88com88@gmail.com>\n"
|
||||
"Language-Team: French <fr@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: 2019-01-06 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-15 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18962)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -459,10 +459,6 @@ msgstr "Terminé"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "%s fichier(s)/dossier(s) extrait(s) en %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr "Impossible d'arrêter le processus unrar."
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr "La Décompression Directe a été activée automatiquement."
|
||||
@@ -3654,20 +3650,20 @@ msgid "Comma separated list"
|
||||
msgstr "Liste séparée par des virgules"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Equilibrage de charge du serveur"
|
||||
msgid "Server IP address selection"
|
||||
msgstr "Sélection de l'adresse IP du serveur"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Empêcher l'équilibrage de charge"
|
||||
msgid "First IP address"
|
||||
msgstr "Première adresse IP"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Autoriser l'équilibrage de charge"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr "Adresse IP sélectionnée au hasard"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Autoriser l'équilibrage de charge avec l'optimisation pour IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr "Adresse IP la plus rapide, IPv6 de préférence"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4576,10 +4572,6 @@ msgstr "Uploader le NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Vous pouvez également indiquer un nom de fichier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formats : .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Soumettre"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"PO-Revision-Date: 2019-01-05 10:03+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2019-05-07 23:12+0000\n"
|
||||
"Last-Translator: ION IL <Unknown>\n"
|
||||
"Language-Team: Hebrew <he@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: 2019-01-06 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -432,10 +432,6 @@ msgstr "הושלם"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "פורקו %s קבצים/תיקיות תוך %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr "לא היה ניתן לעצור את תהליך החילוץ"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ".פריקה ישירה אופשרה באופן אוטומטי"
|
||||
@@ -1129,7 +1125,7 @@ msgstr "התגלה קובץ פגום ,%s שגיאה בטעינת"
|
||||
|
||||
#: sabnzbd/nzbqueue.py [Error message]
|
||||
msgid "Failed to restart NZB after pre-check (%s)"
|
||||
msgstr "(%s) לאחר קדם-בדיקה NZB נכשל בהפעלה מחדש של"
|
||||
msgstr "(%s) לאחר קדם־בדיקה NZB נכשל בהפעלה מחדש של"
|
||||
|
||||
#: sabnzbd/nzbqueue.py
|
||||
msgid "NZB added to queue"
|
||||
@@ -1161,7 +1157,7 @@ msgstr "%s ריק NZB קובץ"
|
||||
|
||||
#: sabnzbd/nzbstuff.py
|
||||
msgid "Pre-queue script marked job as failed"
|
||||
msgstr "תסריט קדם-תור סומן כנכשל"
|
||||
msgstr "תסריט קדם־תור סומן כנכשל"
|
||||
|
||||
#: sabnzbd/nzbstuff.py [Warning message]
|
||||
msgid "Ignoring duplicate NZB \"%s\""
|
||||
@@ -3255,7 +3251,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pre-queue user script"
|
||||
msgstr "תסריט משתמש של קדם-תור"
|
||||
msgstr "תסריט משתמש של קדם־תור"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Used before an NZB enters the queue."
|
||||
@@ -3518,20 +3514,20 @@ msgid "Comma separated list"
|
||||
msgstr "רשימה מופרדת בפסיקים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "איזון-עומס של שרת"
|
||||
msgid "Server IP address selection"
|
||||
msgstr "של שרת IP בחירת כתובת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "מנע איזון-עומס"
|
||||
msgid "First IP address"
|
||||
msgstr "ראשונה IP כתובת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "התר איזון-עומס"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr "נבחרת באופן אקראי IP כתובת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "IPv6 התר איזון-עומס עם ייעול עבור"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr "IPv6 הזריזה ביותר, העדפה אל IP כתובת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4024,7 +4020,7 @@ msgstr "החל מסננים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "קדם-קביעות"
|
||||
msgstr "קדם־קביעות"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Example"
|
||||
@@ -4425,10 +4421,6 @@ msgstr "NZB העלה"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "ציין באופן רשותי שם קובץ"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr ".nzb, .rar, .zip, .gz, .bz2 :תסדירים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "הגש"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@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: 2019-01-05 05:41+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -434,10 +434,6 @@ msgstr "Ferdig"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Utpakket %s filer/mapper på %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3512,20 +3508,20 @@ msgid "Comma separated list"
|
||||
msgstr "Kommaseparert liste"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Serverlastbalansering"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Forhindre lastbalansering"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Tillat lastbalansering"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Tillat lastbalansering med optimalisering for IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4418,10 +4414,6 @@ msgstr "Last opp NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Valgfritt spesifiser filnavn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formater: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Send"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"PO-Revision-Date: 2019-01-10 08:23+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2019-05-15 19:07+0000\n"
|
||||
"Last-Translator: Dennis Versteegen <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@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: 2019-01-11 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18855)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-16 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18962)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -452,10 +452,6 @@ msgstr "Voltooid"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "%s bestanden/mappen uitgepakt in %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr "Het was niet mogelijk het unrar process te stoppen."
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr "Direct Uitpakken is automatisch ingeschakeld."
|
||||
@@ -3601,20 +3597,20 @@ msgid "Comma separated list"
|
||||
msgstr "Door komma's gescheiden lijst"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Balanceren van server belasting"
|
||||
msgid "Server IP address selection"
|
||||
msgstr "Server IP adres selectie"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Schakel balancering uit"
|
||||
msgid "First IP address"
|
||||
msgstr "Eerste IP adres"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Schakel balancering in"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr "willekeurig geselecteerd IP adres"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Schakel balancering met optimalisatie voor IPv6 in"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr "Snelste IP adres, voorkeur voor IPv6"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4520,10 +4516,6 @@ msgstr "NZB uploaden"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Geef eventueel een andere naam"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formaten: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Verstuur"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Polish <pl@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: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -434,10 +434,6 @@ msgstr "Ukończone"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Rozpakowano %s plików/katalogów w %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3529,20 +3525,20 @@ msgid "Comma separated list"
|
||||
msgstr "Lista wartości oddzielonych przecinkami"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Równoważenie obciążenia serwerów"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Zapobiegaj równoważeniu obciążenia"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Zezwól na równoważenie obciążenia"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Zezwól na równoważenie obciążenia, preferując IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4435,10 +4431,6 @@ msgstr "Wczytaj NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Opcjonalnie podaj nazwę pliku"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formaty: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Wyślij"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:16+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\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: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -436,10 +436,6 @@ msgstr "Concluído"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Descompactados %s arquivos/pastas em %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3527,20 +3523,20 @@ msgid "Comma separated list"
|
||||
msgstr "Lista separada por vírgulas"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Balanceamento de carga do servidor"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Prevenir balanceamento de carga"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Permitir balanceamento de carga"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Permitir balanceamento de carga com optimização para IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4434,10 +4430,6 @@ msgstr "Enviar NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Opcionalmente, especifique um nome de arquivo"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formatos: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\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: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -438,10 +438,6 @@ msgstr "Finalizat"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Dezarhivat %s fişierele/dosarele în %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3529,20 +3525,20 @@ msgid "Comma separated list"
|
||||
msgstr "Listă separată prin virgulă"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Server de load-balancing"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Previne load-balancing"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Permite load-balancing"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Permite load-balancing cu o optimizare pentru IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4434,10 +4430,6 @@ msgstr "Încarcă NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Opţional specifică un nume de fişier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formate: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Trimite"
|
||||
|
||||
@@ -2,15 +2,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-0.7.x\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2013-05-05 14:50+0000\n"
|
||||
"Last-Translator: Pavel Maryanov <Unknown>\n"
|
||||
"Language-Team: Russian <gmu@mx.ru>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
@@ -427,10 +427,6 @@ msgstr "Завершено"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Распаковка %s файлов или папок в %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3504,19 +3500,19 @@ msgid "Comma separated list"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4415,10 +4411,6 @@ msgstr ""
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Имя файла (необязательно)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: ОZZII <ozzii.translate@gmail.com>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Serbian <sr@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: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -431,10 +431,6 @@ msgstr "Завршено"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Издвојено %s датотека/фасцикла у %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3498,20 +3494,20 @@ msgid "Comma separated list"
|
||||
msgstr "Lista razdvojena zarezom"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Balansiranje opterećenja servera"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Onemogući balansiranje opterećenja"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Omogući balansiranje opterećenja"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Omogući balansiranje opterećenja sa optimizacijom za IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4402,10 +4398,6 @@ msgstr "Pošalji NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Опционо специфирати име"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formati: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Пошаљи"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:19+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\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: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -432,10 +432,6 @@ msgstr "Färdig"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Uppackad %s filer/mappar i %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3512,20 +3508,20 @@ msgid "Comma separated list"
|
||||
msgstr "Kommaseparerad lista"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Serverbelastad-balansering"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Undvik belastningsbalansering"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Tillåt belastningsbalansering"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Tillåt bellastningsbalansering med optimering för IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4416,10 +4412,6 @@ msgstr "Ladda upp NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Alternativt ange ett filnamn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Format: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Skicka"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2017-06-22 07:06+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@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: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -426,10 +426,6 @@ msgstr "完成"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "已解压 %s 个文件/文件夹,耗时 %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3441,20 +3437,20 @@ msgid "Comma separated list"
|
||||
msgstr "逗号分隔的列表"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "服务器负载均衡"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "避免负载均衡"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "允许负载均衡"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "允许负载均衡,并对 IPv6 优化"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4342,10 +4338,6 @@ msgstr "上传 NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "可以选择指定文件名"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "格式: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "提交"
|
||||
|
||||
@@ -1406,7 +1406,7 @@ def fast_queue():
|
||||
""" Return paused, bytes_left, bpsnow, time_left """
|
||||
bytes_left = NzbQueue.do.remaining()
|
||||
paused = Downloader.do.paused
|
||||
bpsnow = BPSMeter.do.get_bps()
|
||||
bpsnow = BPSMeter.do.bps
|
||||
time_left = calc_timeleft(bytes_left, bpsnow)
|
||||
return paused, bytes_left, bpsnow, time_left
|
||||
|
||||
@@ -1468,9 +1468,9 @@ def rss_qstatus():
|
||||
item = Item()
|
||||
item.title = 'Total ETA: %s - Queued: %.2f MB - Speed: %.2f kB/s' % \
|
||||
(
|
||||
calc_timeleft(qnfo.bytes_left, BPSMeter.do.get_bps()),
|
||||
calc_timeleft(qnfo.bytes_left, BPSMeter.do.bps),
|
||||
qnfo.bytes_left / MEBI,
|
||||
BPSMeter.do.get_bps() / KIBI
|
||||
BPSMeter.do.bps / KIBI
|
||||
)
|
||||
rss.addItem(item)
|
||||
|
||||
@@ -1501,7 +1501,7 @@ def rss_qstatus():
|
||||
status_line.append('<dt>Remain/Total: %.2f/%.2f MB</dt>' % (bytesleft, bytes))
|
||||
# ETA
|
||||
sum_bytesleft += pnfo.bytes_left
|
||||
status_line.append("<dt>ETA: %s </dt>" % calc_timeleft(sum_bytesleft, BPSMeter.do.get_bps()))
|
||||
status_line.append("<dt>ETA: %s </dt>" % calc_timeleft(sum_bytesleft, BPSMeter.do.bps))
|
||||
status_line.append("<dt>Age: %s</dt>" % calc_age(pnfo.avg_date))
|
||||
status_line.append("</tr>")
|
||||
item.description = ''.join(status_line)
|
||||
@@ -1695,7 +1695,7 @@ def build_queue_header(search=None, start=0, limit=0, output=None):
|
||||
|
||||
header = build_header(output=output)
|
||||
|
||||
bytespersec = BPSMeter.do.get_bps()
|
||||
bytespersec = BPSMeter.do.bps
|
||||
qnfo = NzbQueue.do.queue_info(search=search, start=start, limit=limit)
|
||||
|
||||
bytesleft = qnfo.bytes_left
|
||||
|
||||
@@ -320,9 +320,6 @@ class BPSMeter(object):
|
||||
del self.timeline_total[server]
|
||||
self.save()
|
||||
|
||||
def get_bps(self):
|
||||
return self.bps
|
||||
|
||||
def get_bps_list(self):
|
||||
refresh_rate = int(cfg.refresh_rate()) if cfg.refresh_rate() else 1
|
||||
self.add_empty_time()
|
||||
|
||||
@@ -36,7 +36,7 @@ import threading
|
||||
|
||||
import sabnzbd
|
||||
import sabnzbd.cfg
|
||||
from sabnzbd.constants import DB_HISTORY_NAME, STAGES
|
||||
from sabnzbd.constants import DB_HISTORY_NAME, STAGES, Status
|
||||
from sabnzbd.encoding import unicoder
|
||||
from sabnzbd.bpsmeter import this_week, this_month
|
||||
from sabnzbd.decorators import synchronized
|
||||
@@ -259,11 +259,11 @@ class HistoryDB(object):
|
||||
to_keep = int_conv(sabnzbd.cfg.history_retention())
|
||||
if to_keep > 0:
|
||||
logging.info('Removing all but last %s completed jobs from history', to_keep)
|
||||
return self.execute("""DELETE FROM history WHERE id NOT IN ( SELECT id FROM history WHERE status = 'Completed' ORDER BY completed DESC LIMIT ? )""", (to_keep,), save=True)
|
||||
return self.execute("""DELETE FROM history WHERE status = ? AND id NOT IN ( SELECT id FROM history WHERE status = ? ORDER BY completed DESC LIMIT ? )""", (Status.COMPLETED, Status.COMPLETED, to_keep), save=True)
|
||||
|
||||
def add_history_db(self, nzo, storage, path, postproc_time, script_output, script_line):
|
||||
""" Add a new job entry to the database """
|
||||
t = build_history_info(nzo, storage, path, postproc_time, script_output, script_line)
|
||||
t = build_history_info(nzo, storage, path, postproc_time, script_output, script_line, series_info=True)
|
||||
|
||||
self.execute("""INSERT INTO history (completed, name, nzb_name, category, pp, script, report,
|
||||
url, status, nzo_id, storage, path, script_log, script_line, download_time, postproc_time, stage_log,
|
||||
@@ -319,7 +319,6 @@ class HistoryDB(object):
|
||||
def have_episode(self, series, season, episode):
|
||||
""" Check whether History contains this series episode """
|
||||
total = 0
|
||||
series = series.lower().replace('.', ' ').replace('_', ' ').replace(' ', ' ')
|
||||
if series and season and episode:
|
||||
pattern = '%s/%s/%s' % (series, season, episode)
|
||||
res = self.execute("select count(*) from History WHERE series = ? AND STATUS != 'Failed'", (pattern,))
|
||||
@@ -330,10 +329,11 @@ class HistoryDB(object):
|
||||
pass
|
||||
return total > 0
|
||||
|
||||
def have_md5sum(self, md5sum):
|
||||
""" Check whether this md5sum already in History """
|
||||
def have_name_or_md5sum(self, name, md5sum):
|
||||
""" Check whether this name or md5sum is already in History """
|
||||
total = 0
|
||||
res = self.execute("select count(*) from History WHERE md5sum = ? AND STATUS != 'Failed'", (md5sum,))
|
||||
# Do the check case-insensitive
|
||||
res = self.execute("SELECT count(*) FROM History WHERE ( LOWER(name) = LOWER(?) OR md5sum = ? ) AND STATUS != 'Failed'", (name, md5sum))
|
||||
if res:
|
||||
try:
|
||||
total = self.c.fetchone().get('count(*)')
|
||||
@@ -438,7 +438,7 @@ def dict_factory(cursor, row):
|
||||
|
||||
|
||||
_PP_LOOKUP = {0: '', 1: 'R', 2: 'U', 3: 'D'}
|
||||
def build_history_info(nzo, storage='', downpath='', postproc_time=0, script_output='', script_line=''):
|
||||
def build_history_info(nzo, storage='', downpath='', postproc_time=0, script_output='', script_line='', series_info=False):
|
||||
""" Collects all the information needed for the database """
|
||||
|
||||
if not downpath:
|
||||
@@ -491,7 +491,7 @@ def build_history_info(nzo, storage='', downpath='', postproc_time=0, script_out
|
||||
|
||||
# Analyze series info only when job is finished
|
||||
series = u''
|
||||
if postproc_time:
|
||||
if series_info:
|
||||
seriesname, season, episode, dummy = sabnzbd.newsunpack.analyse_show(nzo.final_name)
|
||||
if seriesname and season and episode:
|
||||
series = u'%s/%s/%s' % (seriesname.lower(), season, episode)
|
||||
|
||||
@@ -175,7 +175,8 @@ class Decoder(Thread):
|
||||
if nzo.precheck:
|
||||
if found and not killed:
|
||||
# Pre-check, proper article found, just register
|
||||
logging.debug('Server %s has article %s', article.fetcher, art_id)
|
||||
if sabnzbd.LOG_ALL:
|
||||
logging.debug('Server %s has article %s', article.fetcher, art_id)
|
||||
register = True
|
||||
elif not killed and not found:
|
||||
logme = T('Badly formed yEnc article in %s') % art_id
|
||||
|
||||
@@ -51,7 +51,6 @@ from subprocess import Popen
|
||||
# Otherwise we could stop while the thread was still starting
|
||||
START_STOP_LOCK = threading.RLock()
|
||||
|
||||
MAX_ACTIVE_UNPACKERS = 10
|
||||
ACTIVE_UNPACKERS = []
|
||||
|
||||
RAR_NR = re.compile(r'(.*?)(\.part(\d*).rar|\.r(\d*))$', re.IGNORECASE)
|
||||
@@ -77,6 +76,8 @@ class DirectUnpacker(threading.Thread):
|
||||
self.success_sets = {}
|
||||
self.next_sets = []
|
||||
|
||||
self.duplicate_lines = 0
|
||||
|
||||
nzo.direct_unpacker = self
|
||||
|
||||
def stop(self):
|
||||
@@ -176,10 +177,10 @@ class DirectUnpacker(threading.Thread):
|
||||
break
|
||||
|
||||
# Error? Let PP-handle it
|
||||
if linebuf.endswith(('ERROR: ', 'Cannot create', 'in the encrypted file', 'CRC failed',
|
||||
'checksum failed', 'You need to start extraction from a previous volume',
|
||||
'password is incorrect', 'Write error', 'checksum error',
|
||||
'start extraction from a previous volume')):
|
||||
if linebuf.endswith(('ERROR: ', 'Cannot create', 'in the encrypted file', 'CRC failed', 'checksum failed',
|
||||
'You need to start extraction from a previous volume', 'password is incorrect',
|
||||
'Write error', 'checksum error', 'start extraction from a previous volume'
|
||||
'Unexpected end of archive')):
|
||||
logging.info('Error in DirectUnpack of %s: %s', self.cur_setname, linebuf.strip())
|
||||
self.abort()
|
||||
|
||||
@@ -271,13 +272,16 @@ class DirectUnpacker(threading.Thread):
|
||||
logging.info('DirectUnpacked volume %s for %s', self.cur_volume, self.cur_setname)
|
||||
|
||||
# If lines did not change and we don't have the next volume, this download is missing files!
|
||||
# In rare occasions we can get stuck forever with repeating lines
|
||||
if last_volume_linebuf == linebuf:
|
||||
if not self.have_next_volume():
|
||||
if not self.have_next_volume() or self.duplicate_lines > 10:
|
||||
logging.info('DirectUnpack failed due to missing files %s', self.cur_setname)
|
||||
self.abort()
|
||||
else:
|
||||
logging.debug('Duplicate output line detected: "%s"', last_volume_linebuf)
|
||||
|
||||
self.duplicate_lines += 1
|
||||
else:
|
||||
self.duplicate_lines = 0
|
||||
last_volume_linebuf = linebuf
|
||||
|
||||
# Show the log
|
||||
@@ -398,20 +402,12 @@ class DirectUnpacker(threading.Thread):
|
||||
pass
|
||||
|
||||
# Now force kill and give it a bit of time
|
||||
self.active_instance.kill()
|
||||
time.sleep(0.2)
|
||||
|
||||
# Have to collect the return-code to avoid zombie
|
||||
# But it will block forever if the process is in special state.
|
||||
# That should never happen, but it can happen on broken unrar's
|
||||
if self.active_instance.poll():
|
||||
self.active_instance.communicate()
|
||||
else:
|
||||
# It is still running?!? This should never happen
|
||||
# Wait a little bit longer just to be sure..
|
||||
time.sleep(2.0)
|
||||
if not self.active_instance.poll():
|
||||
logging.warning(T('Unable to stop the unrar process.'))
|
||||
try:
|
||||
self.active_instance.kill()
|
||||
time.sleep(0.2)
|
||||
except AttributeError:
|
||||
# Already killed by the Quit command
|
||||
pass
|
||||
|
||||
# Wake up the thread
|
||||
with self.next_file_lock:
|
||||
|
||||
@@ -600,17 +600,17 @@ class Downloader(Thread):
|
||||
|
||||
else:
|
||||
if self.bandwidth_limit:
|
||||
bps = BPSMeter.do.get_bps()
|
||||
bps = BPSMeter.do.bps
|
||||
bps += bytes
|
||||
limit = self.bandwidth_limit
|
||||
if bps > limit:
|
||||
while BPSMeter.do.get_bps() > limit:
|
||||
while BPSMeter.do.bps > limit:
|
||||
time.sleep(0.05)
|
||||
BPSMeter.do.update()
|
||||
BPSMeter.do.update(server.id, bytes)
|
||||
|
||||
if nzo:
|
||||
nzo.update_download_stats(BPSMeter.do.get_bps(), server.id, bytes)
|
||||
nzo.update_download_stats(BPSMeter.do.bps, server.id, bytes)
|
||||
|
||||
if not done and nw.status_code != '222':
|
||||
if not nw.connected or nw.status_code == '480':
|
||||
@@ -903,7 +903,10 @@ class Downloader(Thread):
|
||||
self.init_server(server.id, server.id)
|
||||
|
||||
def update_server(self, oldserver, newserver):
|
||||
""" Update the server and make sure we trigger
|
||||
the update in the loop to do housekeeping """
|
||||
self.init_server(oldserver, newserver)
|
||||
self.wakeup()
|
||||
|
||||
@NzbQueueLocker
|
||||
def wakeup(self):
|
||||
|
||||
@@ -2591,7 +2591,7 @@ def GetRssLog(feed):
|
||||
LIST_EMAIL = (
|
||||
'email_endjob', 'email_cats', 'email_full',
|
||||
'email_server', 'email_to', 'email_from',
|
||||
'email_account', 'email_pwd', 'email_dir', 'email_rss'
|
||||
'email_account', 'email_pwd', 'email_rss'
|
||||
)
|
||||
LIST_GROWL = ('growl_enable', 'growl_cats', 'growl_server', 'growl_password',
|
||||
'growl_prio_startup', 'growl_prio_download', 'growl_prio_pp', 'growl_prio_complete', 'growl_prio_failed',
|
||||
|
||||
@@ -158,6 +158,7 @@ def cat_to_opts(cat, pp=None, script=None, priority=None):
|
||||
try:
|
||||
my_cat = config.get_categories()[cat]
|
||||
except KeyError:
|
||||
cat = '*'
|
||||
my_cat = def_cat
|
||||
|
||||
if pp is None:
|
||||
@@ -280,13 +281,10 @@ def has_win_device(p):
|
||||
return False
|
||||
|
||||
|
||||
if sabnzbd.WIN32:
|
||||
# the colon should be here too, but we'll handle that separately
|
||||
CH_ILLEGAL = '\/<>?*|"\t'
|
||||
CH_LEGAL = '++{}!@#`+'
|
||||
else:
|
||||
CH_ILLEGAL = '/'
|
||||
CH_LEGAL = '+'
|
||||
CH_ILLEGAL = '/'
|
||||
CH_LEGAL = '+'
|
||||
CH_ILLEGAL_WIN = '\/<>?*|"\t:'
|
||||
CH_LEGAL_WIN = '++{}!@#`+;'
|
||||
|
||||
|
||||
def sanitize_filename(name):
|
||||
@@ -295,9 +293,15 @@ def sanitize_filename(name):
|
||||
"""
|
||||
if not name:
|
||||
return name
|
||||
|
||||
illegal = CH_ILLEGAL
|
||||
legal = CH_LEGAL
|
||||
|
||||
if sabnzbd.WIN32 or cfg.sanitize_safe():
|
||||
# Remove all bad Windows chars too
|
||||
illegal += CH_ILLEGAL_WIN
|
||||
legal += CH_LEGAL_WIN
|
||||
|
||||
if ':' in name:
|
||||
if sabnzbd.WIN32:
|
||||
# Compensate for the odd way par2 on Windows substitutes a colon character
|
||||
@@ -306,9 +310,6 @@ def sanitize_filename(name):
|
||||
# Compensate for the foolish way par2 on OSX handles a colon character
|
||||
name = name[name.rfind(':') + 1:]
|
||||
|
||||
if sabnzbd.WIN32 or cfg.sanitize_safe():
|
||||
name = replace_win_devices(name)
|
||||
|
||||
lst = []
|
||||
for ch in name.strip():
|
||||
if ch in illegal:
|
||||
@@ -316,6 +317,9 @@ def sanitize_filename(name):
|
||||
lst.append(ch)
|
||||
name = ''.join(lst)
|
||||
|
||||
if sabnzbd.WIN32 or cfg.sanitize_safe():
|
||||
name = replace_win_devices(name)
|
||||
|
||||
if not name:
|
||||
name = 'unknown'
|
||||
|
||||
@@ -345,10 +349,10 @@ def sanitize_foldername(name, limit=True):
|
||||
illegal = FL_ILLEGAL
|
||||
legal = FL_LEGAL
|
||||
|
||||
if cfg.sanitize_safe():
|
||||
if sabnzbd.WIN32 or cfg.sanitize_safe():
|
||||
# Remove all bad Windows chars too
|
||||
illegal += r'\/<>?*|":'
|
||||
legal += r'++{}!@#`;'
|
||||
illegal += CH_ILLEGAL_WIN
|
||||
legal += CH_LEGAL_WIN
|
||||
|
||||
repl = cfg.replace_illegal()
|
||||
lst = []
|
||||
|
||||
@@ -33,7 +33,7 @@ from sabnzbd.encoding import TRANS, unicoder, platform_encode, deunicode
|
||||
import sabnzbd.utils.rarfile as rarfile
|
||||
from sabnzbd.misc import format_time_string, find_on_path, make_script_path, int_conv, \
|
||||
real_path, globber, globber_full, get_all_passwords, renamer, clip_path, calc_age, \
|
||||
long_path, remove_file, recursive_listdir, is_rarfile
|
||||
long_path, remove_file, recursive_listdir, is_rarfile, get_filename
|
||||
from sabnzbd.sorting import SeriesSorter
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.constants import Status
|
||||
@@ -759,7 +759,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
# unrar 3.x: "Encrypted file: CRC failed in oLKQfrcNVivzdzSG22a2xo7t001.part1.rar (password incorrect ?)"
|
||||
# unrar 4.x: "CRC failed in the encrypted file oLKQfrcNVivzdzSG22a2xo7t001.part1.rar. Corrupt file or wrong password."
|
||||
# unrar 5.x: "Checksum error in the encrypted file oLKQfrcNVivzdzSG22a2xo7t001.part1.rar. Corrupt file or wrong password."
|
||||
# unrar 5.01 : "The specified password is incorrect."
|
||||
# unrar 5.01: "The specified password is incorrect."
|
||||
m = re.search(r'encrypted file (.+)\. Corrupt file', line)
|
||||
if not m:
|
||||
# unrar 3.x syntax
|
||||
@@ -767,7 +767,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
if m:
|
||||
filename = TRANS(m.group(1)).strip()
|
||||
else:
|
||||
filename = os.path.split(rarfile_path)[1]
|
||||
filename = get_filename(rarfile_path)
|
||||
nzo.fail_msg = T('Unpacking failed, archive requires a password')
|
||||
msg = (u'[%s][%s] ' + T('Unpacking failed, archive requires a password')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
@@ -779,20 +779,20 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
if m:
|
||||
filename = TRANS(m.group(1)).strip()
|
||||
else:
|
||||
filename = '???'
|
||||
filename = get_filename(rarfile_path)
|
||||
nzo.fail_msg = T('Unusable RAR file')
|
||||
msg = ('[%s][%s] ' + T('Unusable RAR file')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
fail = 3
|
||||
|
||||
elif 'checksum error' in line:
|
||||
# Corrupt archive
|
||||
elif 'checksum error' in line or 'Unexpected end of archive' in line:
|
||||
# Corrupt archive or passworded, we can't know
|
||||
# packed data checksum error in volume FILE
|
||||
m = re.search(r'error in volume (.+)', line)
|
||||
if m:
|
||||
filename = TRANS(m.group(1)).strip()
|
||||
else:
|
||||
filename = '???'
|
||||
filename = get_filename(rarfile_path)
|
||||
nzo.fail_msg = T('Corrupt RAR file')
|
||||
msg = ('[%s][%s] ' + T('Corrupt RAR file')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
|
||||
@@ -722,11 +722,13 @@ class NzbQueue(object):
|
||||
""" Get next article for jobs in the queue
|
||||
Not locked for performance, since it only reads the queue
|
||||
"""
|
||||
# Pre-calculate propagation delay
|
||||
propagtion_delay = float(cfg.propagation_delay() * 60)
|
||||
for nzo in self.__nzo_list:
|
||||
# Not when queue paused and not a forced item
|
||||
if nzo.status not in (Status.PAUSED, Status.GRABBING) or nzo.priority == TOP_PRIORITY:
|
||||
# Check if past propagation delay, or forced
|
||||
if not cfg.propagation_delay() or nzo.priority == TOP_PRIORITY or (nzo.avg_stamp + float(cfg.propagation_delay() * 60)) < time.time():
|
||||
if not propagtion_delay or nzo.priority == TOP_PRIORITY or (nzo.avg_stamp + propagtion_delay) < time.time():
|
||||
if not nzo.server_in_try_list(server):
|
||||
article = nzo.get_article(server, servers)
|
||||
if article:
|
||||
|
||||
@@ -933,7 +933,6 @@ class NzbObject(TryList):
|
||||
# Raise error, so it's not added
|
||||
raise TypeError
|
||||
|
||||
@synchronized(NZO_LOCK)
|
||||
def update_download_stats(self, bps, serverid, bytes):
|
||||
if bps:
|
||||
self.avg_bps_total += bps / 1024
|
||||
@@ -1331,8 +1330,9 @@ class NzbObject(TryList):
|
||||
dif = int(self.url_wait - time.time() + 0.5)
|
||||
if dif > 0:
|
||||
prefix += T('WAIT %s sec') % dif + ' / ' # : Queue indicator for waiting URL fetch
|
||||
if (self.avg_stamp + float(cfg.propagation_delay() * 60)) > time.time() and self.priority != TOP_PRIORITY:
|
||||
wait_time = int((self.avg_stamp + float(cfg.propagation_delay() * 60) - time.time()) / 60 + 0.5)
|
||||
propagtion_delay = float(cfg.propagation_delay() * 60)
|
||||
if propagtion_delay and (self.avg_stamp + propagtion_delay) > time.time() and self.priority != TOP_PRIORITY:
|
||||
wait_time = int((self.avg_stamp + propagtion_delay - time.time()) / 60 + 0.5)
|
||||
prefix += T('PROPAGATING %s min') % wait_time + ' / ' # : Queue indicator while waiting for propagation of post
|
||||
return '%s%s' % (prefix, self.final_name)
|
||||
|
||||
@@ -1881,7 +1881,7 @@ class NzbObject(TryList):
|
||||
|
||||
# dupe check off nzb contents
|
||||
if no_dupes:
|
||||
res = history_db.have_md5sum(self.md5sum)
|
||||
res = history_db.have_name_or_md5sum(self.final_name, self.md5sum)
|
||||
logging.debug('Dupe checking NZB in history: filename=%s, md5sum=%s, result=%s', self.filename, self.md5sum, res)
|
||||
if not res and cfg.backup_for_duplicates():
|
||||
res = sabnzbd.backup_exists(self.filename)
|
||||
|
||||
@@ -349,7 +349,6 @@ class SABnzbdDelegate(NSObject):
|
||||
pnfo_list = qnfo.list
|
||||
|
||||
bytesleftprogess = 0
|
||||
bpsnow = BPSMeter.do.get_bps()
|
||||
self.info = ""
|
||||
|
||||
self.menu_queue = NSMenu.alloc().init()
|
||||
@@ -366,7 +365,7 @@ class SABnzbdDelegate(NSObject):
|
||||
bytesleftprogess += pnfo.bytes_left
|
||||
bytes = pnfo.bytes / MEBI
|
||||
nzo_id = pnfo.nzo_id
|
||||
timeleft = self.calc_timeleft_(bytesleftprogess, bpsnow)
|
||||
timeleft = self.calc_timeleft_(bytesleftprogess, BPSMeter.do.bps)
|
||||
|
||||
job = "%s\t(%d/%d MB) %s" % (filename, bytesleft, bytes, timeleft)
|
||||
menu_queue_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(job, '', '')
|
||||
|
||||
@@ -131,7 +131,6 @@ def parse_par2_file_packet(f, header):
|
||||
nothing = None, None, None
|
||||
|
||||
if header != PAR_PKT_ID:
|
||||
print header
|
||||
return nothing
|
||||
|
||||
# Length must be multiple of 4 and at least 20
|
||||
|
||||
@@ -910,17 +910,28 @@ def get_last_line(txt):
|
||||
|
||||
|
||||
def remove_samples(path):
|
||||
""" Remove all files that match the sample pattern """
|
||||
""" Remove all files that match the sample pattern
|
||||
Skip deleting if it matches all files or there is only 1 file
|
||||
"""
|
||||
files_to_delete = []
|
||||
nr_files = 0
|
||||
for root, _dirs, files in os.walk(path):
|
||||
for file_ in files:
|
||||
if RE_SAMPLE.search(file_):
|
||||
path = os.path.join(root, file_)
|
||||
try:
|
||||
logging.info("Removing unwanted sample file %s", path)
|
||||
remove_file(path)
|
||||
except:
|
||||
logging.error(T('Removing %s failed'), clip_path(path))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
for file_to_match in files:
|
||||
nr_files += 1
|
||||
if RE_SAMPLE.search(file_to_match):
|
||||
files_to_delete.append(os.path.join(root, file_to_match))
|
||||
|
||||
# Make sure we skip false-positives
|
||||
if 1 < len(files_to_delete) < nr_files:
|
||||
for path in files_to_delete:
|
||||
try:
|
||||
logging.info("Removing unwanted sample file %s", path)
|
||||
remove_file(path)
|
||||
except:
|
||||
logging.error(T('Removing %s failed'), clip_path(path))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
else:
|
||||
logging.info("Skipping sample-removal, false-positive")
|
||||
|
||||
|
||||
def rename_and_collapse_folder(oldpath, newpath, files):
|
||||
|
||||
@@ -542,10 +542,10 @@ SKIN_TEXT = {
|
||||
'opt-rating_filter_downvoted' : TT('More thumbs down than up'),
|
||||
'opt-rating_filter_keywords' : TT('Title keywords'),
|
||||
'explain-rating_filter_keywords' : TT('Comma separated list'),
|
||||
'opt-load_balancing' : TT('Server load-balancing'),
|
||||
'no-load-balancing' : TT('Prevent load-balancing'),
|
||||
'load-balancing' : TT('Allow load-balancing'),
|
||||
'load-balancing-happy-eyeballs' : TT('Allow load-balancing with optimization for IPv6'),
|
||||
'opt-load_balancing' : TT('Server IP address selection'),
|
||||
'no-load-balancing' : TT('First IP address'),
|
||||
'load-balancing' : TT('Randomly selected IP address'),
|
||||
'load-balancing-happy-eyeballs' : TT('Quickest IP address, preferring IPv6'),
|
||||
'explain-load_balancing' : TT('Useful if a newsserver has more than one IPv4/IPv6 address'),
|
||||
|
||||
# Config->Server
|
||||
@@ -829,7 +829,6 @@ SKIN_TEXT = {
|
||||
'Glitter-addFromFile' : TT('Upload NZB'),
|
||||
'Glitter-chooseFile' : TT('Browse'),
|
||||
'Glitter-addnzbFilename' : TT('Optionally specify a filename'),
|
||||
'Glitter-nzbFormats' : TT('Formats: .nzb, .rar, .zip, .gz, .bz2'),
|
||||
'Glitter-submit' : TT('Submit'),
|
||||
'Glitter-openInfoURL' : TT('Open Informational URL'),
|
||||
'Glitter-sendThanks' : TT('Submitted. Thank you!'),
|
||||
|
||||
@@ -377,7 +377,12 @@ class SeriesSorter(object):
|
||||
else:
|
||||
head = path
|
||||
|
||||
return os.path.normpath(head)
|
||||
if head:
|
||||
return os.path.normpath(head)
|
||||
else:
|
||||
# The normpath function translates "" to "."
|
||||
# which results in wrong path.join later on
|
||||
return head
|
||||
|
||||
def rename(self, files, current_path):
|
||||
""" Rename for Series """
|
||||
@@ -626,7 +631,12 @@ class MovieSorter(object):
|
||||
else:
|
||||
head = path
|
||||
|
||||
return os.path.normpath(head)
|
||||
if head:
|
||||
return os.path.normpath(head)
|
||||
else:
|
||||
# The normpath function translates "" to "."
|
||||
# which results in wrong path.join later on
|
||||
return head
|
||||
|
||||
def rename(self, _files, current_path):
|
||||
""" Rename for Generic files """
|
||||
@@ -848,7 +858,12 @@ class DateSorter(object):
|
||||
else:
|
||||
head = path
|
||||
|
||||
return os.path.normpath(head)
|
||||
if head:
|
||||
return os.path.normpath(head)
|
||||
else:
|
||||
# The normpath function translates "" to "."
|
||||
# which results in wrong path.join later on
|
||||
return head
|
||||
|
||||
def rename(self, files, current_path):
|
||||
""" Renaming Date file """
|
||||
|
||||
@@ -32,28 +32,33 @@ from sabnzbd.misc import int_conv
|
||||
def test_nntp_server_dict(kwargs):
|
||||
# Grab the host/port/user/pass/connections/ssl
|
||||
host = kwargs.get('host', '').strip()
|
||||
|
||||
if not host:
|
||||
return False, T('The hostname is not set.')
|
||||
|
||||
username = kwargs.get('username', '').strip()
|
||||
password = kwargs.get('password', '').strip()
|
||||
server = kwargs.get('server', '').strip()
|
||||
connections = int_conv(kwargs.get('connections', 0))
|
||||
if not connections:
|
||||
return False, T('There are no connections set. Please set at least one connection.')
|
||||
ssl = int_conv(kwargs.get('ssl', 0))
|
||||
ssl_verify = int_conv(kwargs.get('ssl_verify', 1))
|
||||
ssl_ciphers = kwargs.get('ssl_ciphers')
|
||||
port = int_conv(kwargs.get('port', 0))
|
||||
|
||||
if not connections:
|
||||
return False, T('There are no connections set. Please set at least one connection.')
|
||||
|
||||
if not port:
|
||||
if ssl:
|
||||
port = 563
|
||||
else:
|
||||
port = 119
|
||||
|
||||
return test_nntp_server(host, port, server, username=username,
|
||||
password=password, ssl=ssl, ssl_verify=ssl_verify)
|
||||
return test_nntp_server(host, port, server, username=username, password=password,
|
||||
ssl=ssl, ssl_verify=ssl_verify, ssl_ciphers=ssl_ciphers)
|
||||
|
||||
|
||||
def test_nntp_server(host, port, server=None, username=None, password=None, ssl=None, ssl_verify=1):
|
||||
def test_nntp_server(host, port, server=None, username=None, password=None, ssl=None, ssl_verify=1, ssl_ciphers=None):
|
||||
""" Will connect (blocking) to the nttp server and report back any errors """
|
||||
timeout = 4.0
|
||||
if '*' in password and not password.strip('*'):
|
||||
@@ -74,7 +79,7 @@ def test_nntp_server(host, port, server=None, username=None, password=None, ssl=
|
||||
if not got_pass:
|
||||
return False, T('Password masked in ******, please re-enter')
|
||||
try:
|
||||
s = Server(-1, '', host, port, timeout, 0, 0, ssl, ssl_verify, None, False, username, password)
|
||||
s = Server(-1, '', host, port, timeout, 0, 0, ssl, ssl_verify, ssl_ciphers, False, username, password)
|
||||
except:
|
||||
return False, T('Invalid server details')
|
||||
|
||||
|
||||
@@ -190,7 +190,7 @@ class SysTrayIconThread(Thread):
|
||||
# Wrapper of win32api, timeout is in ms
|
||||
# We need to wait at least untill what user has defined as double click
|
||||
self.stop_click_timer()
|
||||
self.click_timer = timer.set_timer(win32gui.GetDoubleClickTime(), self.click)
|
||||
self.click_timer = timer.set_timer(win32gui.GetDoubleClickTime() * 2, self.click)
|
||||
return True
|
||||
|
||||
def show_menu(self):
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
|
||||
# You MUST use double quotes (so " and not ')
|
||||
|
||||
__version__ = "2.3.7"
|
||||
__baseline__ = "7a8df5ee916455f17a2c5841f87a7641bb123859"
|
||||
__version__ = "2.3.9"
|
||||
__baseline__ = "03c10dce91e13918bc2e6f8ca9c309196b90be11"
|
||||
|
||||
@@ -3,7 +3,7 @@ version: git
|
||||
summary: SABnzbd
|
||||
description: The automated Usenet download tool
|
||||
confinement: strict
|
||||
grade: devel
|
||||
grade: stable
|
||||
icon: interfaces/Config/templates/staticcfg/images/logo-small.svg
|
||||
version-script: |
|
||||
grep -oP '(?<=^Version: ).*' PKG-INFO
|
||||
|
||||
@@ -121,6 +121,12 @@ class SABnzbdDownloadFlow(SABnzbdBaseTest):
|
||||
if not ssl_imp.get_attribute('checked'):
|
||||
ssl_imp.click()
|
||||
|
||||
# Lower number of connections to prevent testing errors
|
||||
self.driver.find_element_by_partial_link_text("Advanced Settings").click()
|
||||
pass_inp = self.driver.find_element_by_name("connections")
|
||||
pass_inp.clear()
|
||||
pass_inp.send_keys(2)
|
||||
|
||||
# Test server-check
|
||||
self.driver.find_element_by_id("serverTest").click()
|
||||
self.wait_for_ajax()
|
||||
|
||||
BIN
win/7zip/7za.exe
BIN
win/7zip/7za.exe
Binary file not shown.
@@ -3,7 +3,7 @@
|
||||
License for use and distribution
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Copyright (C) 1999-2018 Igor Pavlov.
|
||||
Copyright (C) 1999-2019 Igor Pavlov.
|
||||
|
||||
7-Zip Extra files are under the GNU LGPL license.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ Be careful to use those special features.
|
||||
|
||||
[ System requirement ]
|
||||
|
||||
MultiPar requires a PC with Windows XP or later (Windows Vista, 7, 8, etc).
|
||||
MultiPar requires a PC with Windows XP or later (Windows Vista, 7, 8, 10, etc).
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
@@ -71,10 +71,11 @@ Don't send current PAR3 files to others, who may not have the same version.
|
||||
|
||||
[ How to install or uninstall with installer package ]
|
||||
|
||||
Double click setup file ( MultiPar126_setup.exe or something like this name ),
|
||||
Double click setup file ( MultiPar129_setup.exe or something like this name ),
|
||||
and follow the installer dialog.
|
||||
At version up, if you want to use previous setting, overwrite install is possible.
|
||||
You may need to re-start OS after over write install or uninstall rarely.
|
||||
Before overwrite install, you should un-check "Integrate MultiPar into Shell".
|
||||
You may need to re-start OS after overwrite install or uninstall rarely.
|
||||
To install under "Program Files" directory on Windows Vista/7/8,
|
||||
you must start the installer with administrative privileges by selecting
|
||||
"Run as administrator" on right-click menu.
|
||||
@@ -99,7 +100,7 @@ In either case, user made icons and association are available for the user only.
|
||||
|
||||
[ How to install with archive version ]
|
||||
|
||||
Unpack compressed file ( MultiPar126.zip or something like this name ) in a folder.
|
||||
Unpack compressed file ( MultiPar129.zip or something like this name ) in a folder.
|
||||
MultiPar.exe is the interface of MultiPar.
|
||||
|
||||
You can create short-cut icon or send-to link at Option window later.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user