Row 1196, sends a string, archive['file'], to hastagRelease() which causing the loop at row 810 to break (since it iterates over a string)
Row 811: fnmatch.filter() is case sensitive on linux system (depends on the OS actually).
We are comparing the ignore files to archive files, BUT the the ignore file was created with the name of the extracted file and not the archive files (see row 644).
If there is a difference between the extracted file and archive file the ignore file will be no good and extraction will occur again..
Usually scene release archive files are all low-case while the extracted files are not. I suggest to tag the archive file when the renamer is keeping the rar files (no cleanup) in-order to prevent re-extraction of the files over and over again.
Row 1232: I added tagging to archive file only if there is no cleanup. I also add another sanity check if the file was really extracted because if you kill unrar process while it runs it does not generate exception that extracting was stopped.
One Question:
Is the raise of exception at row 821 really needed?
I think it can be removed.. because it will cause both copies to exist which will just consume more space.
If the newznab provider provides an nzb link xml tag this is used instead of constructing a link.
If no link tag is found in the newznab response the old logic is used.
The main target is **settings**. After applying this PL the CP will be able to work with *ro*, *rw* and *hidden* options and *hidden* sections.
The behavior of common options is defined by internal meta-options, which you might add to the config file. These meta-options define whether the particular option will be visible/editable in the web interface.
There is full backward compability.
Example of usage. Lets consider this `.couchpotato/settings.conf`:
```ini
[core]
username = cp
**username_internal_meta = ro**
ssl_key =
proxy_server =
[updater]
**section_hidden_internal_meta = True**
notification = 0
...
```
In this example option `core.username` will be immutable in the web UI, since there is meta-option `username_internal_meta`, set to value **ro** (means *read-only*).
The second thing: we have made the *updater* section invisible, so you couldn't see its config values in the web interface.
Allowed values for options in `.couchpotato/settings.conf` file:
* \<option\>_internal_meta = ( **hidden** | **ro** | **rw** )
* section_hidden_internal_meta = ( **True** | **False** )