A torrent search engine based on qBittorrent's
Project description
# Standalone Novasearch
This is a fork of [qBittorrent's Nova search engine](https://github.com/qbittorrent/qBittorrent/tree/master/src/searchengine).
It has been patched to use modern [requests](http://docs.python-requests.org/en/master/) library, add a setuptools installer for standalone usage and support both Python2 and Python3 out of the box (though this should not be relied upon).
Please note that even though this works on Python2, development will only focus on Python3.
## How to use
* Install it
```shell
$ pip install nova6
```
* Get some engines from qBittorrent: https://github.com/qbittorrent/search-plugins
* Run it
```shell
$ nova6 -d search-plugins all all query
```
## Synopsis
Nova6 tries to maintain command-line compatibility with nova from qBittorrent. However, in order to make it distributable and still maintain compatibility with existing plugins, I had to make some changes.
Notably, `nova6` accepts one extra command line argument that `nova2` does not: `--engines-dir`, `-d`.
This argument can be specified multiple times with a list of directories to be scanned for plugins. If none is specified, it checks for an `engines` in the same directory of `nova6.py`, just like qBittorrent's.
### Positional arguments
* **engines**
Select the engines to be used for search, comma-separated, or "all". Use `--capabilities` to list available plugins.
* **category**
Select the category to be used for search, or "all". Available categories are `movies`, `tv`, `music`, `games`, `anime`, `software`, `pictures` and `books`.
* **keywords**
Search keywords
### Optional arguments
* **--capabilities**
Outputs an XML showing search engine plugins capabilities and exits immediately.
* **--engines-dir**, **-d**
See above. Specify custom directory for engine plugins. Can be specified multiple times.
## Output
### Search
Search results are meant to be machine readable. The format is the following:
```link|name|size|seeds|leech|engine_url```
* **link** → a string corresponding the the download link (points to the .torrent file)
* **name** → a unicode string corresponding to the torrent's name (i.e: "Ubuntu Linux 17.04")
* **size** → a string corresponding to the torrent size (i.e: "6 MB" or "200 KB" or "1.2 GB"...)
* **seeds** → the number of seeds for this torrent
* **leech** → the number of leechers for this torrent
* **engine_url** → the search engine url (i.e: http://www.mininova.org)
* **desc_link** (optional) → if the search plugin provides it, a human-readable page describing the torrent
### Capabilities
Outputs an XML listing all the engines found in search directories and their capabilities. For example:
```xml
<capabilities>
<myengine>
<name>My Super Torrent Engine</name>
<url>https://www.mytorrentengine.com</url>
<categories>movies anime books software games tv music</categories>
</myengine>
...
</capabilities>
```
## How to write plugins
Please see [qBittorrent's guide](https://github.com/qbittorrent/search-plugins/wiki/How-to-write-a-search-plugin).
## Credits and license
All this code has been taken from qBittorrent. It's been adjusted by [Davide Depau](https://github.com/Depaulicious) to make it standalone and reusable.
The license is the same as qBittorrent, GPLv2.
This is a fork of [qBittorrent's Nova search engine](https://github.com/qbittorrent/qBittorrent/tree/master/src/searchengine).
It has been patched to use modern [requests](http://docs.python-requests.org/en/master/) library, add a setuptools installer for standalone usage and support both Python2 and Python3 out of the box (though this should not be relied upon).
Please note that even though this works on Python2, development will only focus on Python3.
## How to use
* Install it
```shell
$ pip install nova6
```
* Get some engines from qBittorrent: https://github.com/qbittorrent/search-plugins
* Run it
```shell
$ nova6 -d search-plugins all all query
```
## Synopsis
Nova6 tries to maintain command-line compatibility with nova from qBittorrent. However, in order to make it distributable and still maintain compatibility with existing plugins, I had to make some changes.
Notably, `nova6` accepts one extra command line argument that `nova2` does not: `--engines-dir`, `-d`.
This argument can be specified multiple times with a list of directories to be scanned for plugins. If none is specified, it checks for an `engines` in the same directory of `nova6.py`, just like qBittorrent's.
### Positional arguments
* **engines**
Select the engines to be used for search, comma-separated, or "all". Use `--capabilities` to list available plugins.
* **category**
Select the category to be used for search, or "all". Available categories are `movies`, `tv`, `music`, `games`, `anime`, `software`, `pictures` and `books`.
* **keywords**
Search keywords
### Optional arguments
* **--capabilities**
Outputs an XML showing search engine plugins capabilities and exits immediately.
* **--engines-dir**, **-d**
See above. Specify custom directory for engine plugins. Can be specified multiple times.
## Output
### Search
Search results are meant to be machine readable. The format is the following:
```link|name|size|seeds|leech|engine_url```
* **link** → a string corresponding the the download link (points to the .torrent file)
* **name** → a unicode string corresponding to the torrent's name (i.e: "Ubuntu Linux 17.04")
* **size** → a string corresponding to the torrent size (i.e: "6 MB" or "200 KB" or "1.2 GB"...)
* **seeds** → the number of seeds for this torrent
* **leech** → the number of leechers for this torrent
* **engine_url** → the search engine url (i.e: http://www.mininova.org)
* **desc_link** (optional) → if the search plugin provides it, a human-readable page describing the torrent
### Capabilities
Outputs an XML listing all the engines found in search directories and their capabilities. For example:
```xml
<capabilities>
<myengine>
<name>My Super Torrent Engine</name>
<url>https://www.mytorrentengine.com</url>
<categories>movies anime books software games tv music</categories>
</myengine>
...
</capabilities>
```
## How to write plugins
Please see [qBittorrent's guide](https://github.com/qbittorrent/search-plugins/wiki/How-to-write-a-search-plugin).
## Credits and license
All this code has been taken from qBittorrent. It's been adjusted by [Davide Depau](https://github.com/Depaulicious) to make it standalone and reusable.
The license is the same as qBittorrent, GPLv2.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nova6-2.0.1.tar.gz
(16.4 kB
view details)
Built Distribution
nova6-2.0.1-py2.py3-none-any.whl
(24.1 kB
view details)
File details
Details for the file nova6-2.0.1.tar.gz
.
File metadata
- Download URL: nova6-2.0.1.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4624ac978af12ddc00b4553da6dd37da92ce986c16939e7aa82e866c076875a1 |
|
MD5 | e88501f40cffb45a3ffaeaf4448568b2 |
|
BLAKE2b-256 | 80193027562d16301bc53161830e824967773a058d7dd366bbf9c2c32cb5a721 |
File details
Details for the file nova6-2.0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: nova6-2.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f80e3ccf7ea6511cd13b493a0904912814ad546b7a4da08e56ebcc51d71e3be8 |
|
MD5 | 4fc08ae7cf4e4c13907ee1df6019ee83 |
|
BLAKE2b-256 | ef68384e547157493815ea6ed1519fd3cc6049eb9e46b9fd70b1d5ea01d5aae2 |