Replace Lyric Downloader with a plugin centric version from Rhythmbox
The current lyrics_
The lyrics_downloader is derived from source developed by the Rhythmbox project. A look at the current svn code for Rhythmbox shows that they have moved to a generic lyrics downloader plugin that supports multiple lyrics sources.
This blueprint proposes to replace the old, single source lyrics downloader with the plugin architectured lyrics downloader available in the current Rhythmbox source tree.
Details of the conversion plan are to be determined after further study of the Rhythmbox source code.
UPDATED:
Incorporation of the new lyric downloader code from Rhythmbox could have broader impacts than initially foreseen (IMO, in a good way). Due to its structure, it could lay the groundwork for the Entertainer project goal of having a plugin architecture.
A couple worthwhile notes:
* The code makes use of gconf keys to store lyric searching engines and the default storage path for lyric files. Until we come up with a way to manage plugin preference, we may need to add some lyrics options to the preference dialog. Alternatively, we could remove the engines options and just have the users get all the engines. This removes the need to configure something and simplifies things, but users may get more than they want. My vote would be to use all the engines.
* The code stores all lyrics in special lyric files (defaulting to ~/.lyrics/
I know very little about how to write a plugin architecture and there are some details that will probably bite me along the way so feedback would be appreciated. This is probably something we should discuss at the sprint.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Matt Layman
- Direction:
- Needs approval
- Assignee:
- Matt Layman
- Definition:
- Discussion
- Series goal:
- Proposed for trunk
- Implementation:
- Not started
- Milestone target:
- None
- Started by
- Completed by
Whiteboard
Work Items
Dependency tree
* Blueprints in grey have been implemented.