2012-08-23, 11:53
Most of that is still unknown. I've designed heimdall so that it could run as a seperate process, it could also act as a library and it could even be run on a seperate machine, the API will work no matter. So heimdall could be run inside each application, on each system or even shared between applications/machines on a network.
To answer your question, how xbmc will use it is unknown. Most likely it will use it as a library first, and perhaps move it to a process later. To facilitate that we could do it as a service addon most likely.
My main focus has been the API of the "scrapers", but I'll try to explain how the API between heimdall and xbmc might be.
In psuedo SQL:
heimdall extract [ title, date ... ] on SUBJECT with [ IMDB, TMDB .... ]
But it will most likely use some RPC, perhaps JSON RPC. An example with that would be:
If you want to extend heimdall it is still somewhat unsure how this will work. The idea is that heimdall will have its own addons/modules. So xbmc will ask heimdall what addons it has and showcase this in GUI for user. So that user can "install" IMDB scraping. It might be that xbmc/nfo editors could send modules (its python afterall) but that might pose as a security risk, so undecided.
EDIT: So in short, if you want to extend heimdall and add new modules, you'll most likely submit those to heimdall directly rather than XBMC repo.
To answer your question, how xbmc will use it is unknown. Most likely it will use it as a library first, and perhaps move it to a process later. To facilitate that we could do it as a service addon most likely.
My main focus has been the API of the "scrapers", but I'll try to explain how the API between heimdall and xbmc might be.
In psuedo SQL:
heimdall extract [ title, date ... ] on SUBJECT with [ IMDB, TMDB .... ]
But it will most likely use some RPC, perhaps JSON RPC. An example with that would be:
Code:
{
"jsonrpc": "2.0",
"method": "heimdall.Extract",
"params": {
"properties": [
"title",
"date"
],
"subject": {
"http://purl.org/dc/elements/1.1/identifier": "file:///home/foo/bar.mp3"
},
"modules": [
"com.imdb",
"org.themoviedb"
]
},
"id": 1
}
If you want to extend heimdall it is still somewhat unsure how this will work. The idea is that heimdall will have its own addons/modules. So xbmc will ask heimdall what addons it has and showcase this in GUI for user. So that user can "install" IMDB scraping. It might be that xbmc/nfo editors could send modules (its python afterall) but that might pose as a security risk, so undecided.
EDIT: So in short, if you want to extend heimdall and add new modules, you'll most likely submit those to heimdall directly rather than XBMC repo.