Allow the user to add search engines
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:
- 1.0.0
- Started by
- Christophe Dumez
- Completed by
- Christophe Dumez
Related branches
Related bugs
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-
* 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..."