File | Date | Author | Commit |
---|---|---|---|
DB | 2017-11-19 | David Santiago | [1db8ad] Rewrite of title parser. |
conf | 2016-11-23 | David Santiago | [2492ed] Release V2. |
lib | 2019-01-15 | David Santiago | [6c956e] Fixed the filtering function |
t | 2018-04-21 | David Santiago | [2cd3eb] Add support to parse hd-tc source |
LICENSE | 2015-11-30 | David Emanuel Santiago | [864801] Initial commit |
README.md | 2016-12-09 | David Santiago | [477ae8] Updated the README to indicate without any doub... |
pervert.pl | 2019-03-26 | David Santiago | [8a201c] Fixed bug when filtering the results. |
Simple and passive download automation (PVR) for Usenet
Having a simple (KISS philosophy) PVR that downloads NZBs when they appear online.
Why a fancy gui, when i just want to setup a whish list? Why a local HTTP server
when i just want something that runs periodicaly to see if my wishes are available?
Keep It Simple Stupid
This tries to Do one thing and do it well
Download NZBs that correspond to your wishlist as soon as it appears in the indexer.
This tries to follow the most possible way the scene rules so a nzb named with "[", "]", "_" or
any other character that ain't in the official set are ignored.
Note When i started this i wasn't aware of Flexget. So think
about this as something similar (and way more simpler and less features) but only for usenet
*/15 * * * * perl /path/to/pervert/folder/pervert.pl -c /path/to/pervert/config/folder/pervert.cfg
The configuration file is a json file:
{
"feeds":[
{
"name": "your indexer",
"url": "http://indezer.com/rss/"
},
{
"name": "Another nzb indexer",
"url": "http://nzb/rss"
}
],
"requests":"/path/to/requests.txt",
"historyDatabase": "/path/to/sqlite/database/created/in/step/1/database.sqlite",
"downloadFolder": "/path/to/save/nzbs",
"filters":{
"acceptLanguage":["ENGLiSH"],
"acceptSubtitles":[],
"acceptResolution":[],
"acceptFormat":[],
"acceptAudio":[],
"acceptReleaseGroup":[],
"acceptEpisode":[],
"acceptSource":[],
"acceptBackup":[],
"acceptDate":[],
"acceptContainer":[],
"acceptFix":[],
"ignoreType":[],
"ignoreLanguage":["GERMAN","SPANiSH","FRENCH","iTALiAN"],
"ignoreSubtitles":["NORiC","NL"],
"ignoreResolution":[],
"ignoreFormat":[],
"ignoreAudio":[],
"ignoreReleaseGroup":[],
"ignoreEpisode":[],
"ignoreSource":[],
"ignoreBackup":[],
"ignoreDate":[],
"ignoreContainer":[],
"ignoreFix":[],
"ignoreType":[],
}
}
Please be sure that the configuration file is a valid JSON file!
Use a online json validator
feeds: You can add how many RSS feeds you want
requests: path to text file with your requests
filters: filters to apply. There are 2 kinds of filters: the "ignore" and the "accept".
The ignore ones, will make the nzb to be filtered and ignored if it matches
The accept ones, will make the nzb to not be filtered if it matches.
Example:
Wish "my.video"
ignoreResolution: ["720[pi]"]
If there's a matching result "my.video.720p", then this will be ignored and not downloaded.
However
acceptResolution: ["720[pi]"]
will make all the matches that contains "720p" to not be filtered.
Note: Just because the match wasn't filtered it doesn't mean that it will be downloaded.
If there's already a match with the same name in the DB, then it will not be downloaded.
To be downloaded, you need to set the field "valid" in the DB to zero.
the requests file defined in the configurations must have something like:
my.series episode:s0[6-9]
my.movie.name group:group
The spaces are used to split between fields (fields available: language, subtitles, resolution, format, audio, group, episode, source, backup, date, container, fix, type).
The title field is the default one. Doing
this is my name
will search for a title with the word "thisismyname".
this is my name s03e04
will search for a title with the word "thisismynames03e04".
What you probably want is:
this.is.my.name episode:s03e04
or
this.is.my.name date:2016
If you want to re-download new match of NZB previously downloaded, please set the "valid"
field in the database as zero.
You can consult the download history in the sqlite database by:
select * from history