Allow the user to add search engines

Registered by Christophe Dumez

Search engine plug-in should be reworked in order to allow the user to add custom search engines.

Blueprint information

Status:
Complete
Approver:
Christophe Dumez
Priority:
Undefined
Drafter:
Christophe Dumez
Direction:
Needs approval
Assignee:
Christophe Dumez
Definition:
New
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon 1.0.0
Started by
Christophe Dumez
Completed by
Christophe Dumez

Related branches

Sprints

Whiteboard

I think nova.py will be splitted into several files:
- The core that interacts with all the search engines
- one class python file per supported search engine

Structure:
nova.py
engines/
-> mininova.py
-> torrentreactor.py
-> isohunt.py

# How to get the list of search engines available
$ nova.py --supported-engines
minova torrentreactor isohunt

All search engines classes files will be in a subfolder and they will be loaded dynamically. This means that nova.py core will scan the subfolder and load all the search engines it can find. This way, it should be easy for the users to add their own search engine.

* Search engine selection:
Instead of the current checkbox in the search dialog, I think we should open a new dialog that will call "nova.py --supported-engines", parse this list and display them in the dialog. This way, the user will be able to choose in the search engine he wants to enable.

* Search plugin update:
Since we will have mixed files (official and non-official/added by the user). We will have to pay attention and not delete the non-official files. We may consider using a file version.txt with the following structure :

# Search engine core
nova-core: 1.02
# search engines plug-ins
mininova: 1.01
isohunt: 1.01
torrentreactor: 1.03

This will help the updater to detect if the core or any search plug-in is outdated and it will download only the necessary files (the ones that need updating).

* Changelog:
I think we will drop the search plug-in update changelog system. This will become difficult to maintain and anyway it is usually not that interesting: "Fixed mininova search engine..."

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.