Developing MeD's Movie Manager interface to XBMC - assistance is needed
#31
When I'm looking at the SQLite DLL issue, I might also have a look at abstracting the database functionality of XBMC. I would imagine that XBMC uses fairly standard SQL. It should be possible by introducing a persistence layer to have XBMC perform queries on either an SQLite DB or another Database, such as MySQL which could be located anywhere. If all SQL queries follow the same path: "XBMC query->Persistence Layer->DB". It should be possible to have numerous Persistence Layers for various DB's once the interface to the persistence layer is generic enough.

I havn't looked at any of the code for XBMC yet, nor have I built it yet. Once I get a chance to delve into the code I'll see which option would be best. A persistence layer could be a huge undertaking depending on how the DB side of things is currently written.
Maintainer of Enigma2 PVR addon: repo, docschangelog
How to create a full debug: here
Reply
#32
Lightbulb 
To bad that XBMC's embedded WebServer (libGoAhead from GoAhead Software) do not support PHP, then you could maybe have used phpMyAdmin or something similar to access the databases.

As it is the GoAhead WebServer only support Active Server Pages (ASP), Embedded JavaScript, and in-memory CGI processing, ...though it is also possible to use spyce (python server pages), and AJAX without JAVAhttp://forum.xbmc.org/showthread.php?tid=1358

Maybe there are some other similar tools to phpMyAdmin that preforms the same tasks for SQLite but is written in a language supported by GoAhead WebServer?
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#33
phunkyfish - A little tip I learned for sanning in movies is to create a .nfo file for the given movie. You don't need to enter all the info for the movie. All you have to do is enter the IMDB url for that movie's info and then when you do a scan XBMC will be sure to get the correct movie information everytime. It's really quick and easy.
Reply
#34
By the way... I will be anxiously watching the proggess of this. I, along with many others I'm sure, would kill to have a remote db for multiple xboxes. Good luck and thanks for taking this on.
Reply
#35
I just want to echo RockDawg's statement, I will be anxiously watching as well.
Reply
#36
Hi Guys,

Sorry I havn't been on for a while. Works been keeping me busy. But there has been some progress.

I've managed to interface Java to the SQLite DB. So here's the solution I'm working on:

1) Setup each XBox on your LAN in the servlet.
2) Select one as the master. Other's are slaves. The master collects the info from IMDB. The servlet then copies (via ftp) the DB to the PC. The PC then copies the DB to all the slaves.
3) You may browse the entire DB from the servlet (where it is local).

Note: All the ftp'ing etc. will be done by the servlet. No need to manually copy stuff. The idea is that once you have setup the XBox's in the servlet the rest is automatic.

Now, for the questions:

Q1) Will there be a problem copying the DB from one XBox and just putting it on another? I understand I'll have to move related files such as DVD covers etc as well as the DB. But is there a situation where this will not work. Bearing in mind that no media will be stored locally on the XBox. It will all be a on a fileserver.

Q2) Is there an easy way to find the paths to DB files etc. on the XBox remotely (Such as if it's installed as a dashboard or application, or which drive it's on)? Or should I just require the user to input the paths when setting up an XBox on the servlet. It would be nice if they didn't have to.

I originally had started with getting SQLite working over the network. The PC I was working on gave up the ghost and I had already given back the Visual Studio CD's. Plus the guy I got them from was away so I decided to move on with a different solution.

I like this solution though. It can evolve as a separate project and leaves the local DB on the XBox so there will be no DB access time concerns. Plus you can access what's in your collection externally via the web.

What do you think the chances are that you could add a number of user's in XBMC so that watched/unwatched could be setup for multiple people? Could be no users by default. But the facility to add users would be handy I think. Especially when using the servlet to manage multiple XBox's. This would require synchronising the DB's from all XBox's, but it's really a future concern...

Oh, and jmarshall did you talk to spiff about changing the regexp's for TV Shows?

jmarshall Wrote:2. Regarding TV show regexps - obviously we're open to altering the defaults if there's a reasonable need to do so - will chat with spiff next time he's around.
Maintainer of Enigma2 PVR addon: repo, docschangelog
How to create a full debug: here
Reply
#37
Smile 
FYI, I subitted these two ideas as feature requests directly to MeD's Movie Manager:

Use XBMC's XML scrapers for HTTP scraping - RFE:
http://sourceforge.net/forum/message.php?msg_id=4553533
Use XBMC's XML scrapers for HTTP scraping - Forum discussion:
http://sourceforge.net/tracker/index.php...tid=569698

Export database to individual NFO files - RFE:
http://sourceforge.net/tracker/index.php...tid=569698
Export database to individual NFO files - Forum discussion:
http://sourceforge.net/forum/message.php?msg_id=4553574

Hopefully some developer(s) will someday like those ideas and implement them Cool
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#38
@phunkyfish, have you made any progress on this?
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#39
Yes and no, I think I have a pretty neat servlet interface to the SQLite DB now. Unfortunately I've been working out of the country the last few months and it doesn't look like I'll be back to normality for another month or two yet.

But no-one seems to have answered the questions I posted... Bearing in mind I havn't been next to my xbox in 3 months now, it's hard for me to answer them myself...
Maintainer of Enigma2 PVR addon: repo, docschangelog
How to create a full debug: here
Reply
#40
phunkyfish Wrote:Q1) Will there be a problem copying the DB from one XBox and just putting it on another? I understand I'll have to move related files such as DVD covers etc as well as the DB. But is there a situation where this will not work. Bearing in mind that no media will be stored locally on the XBox. It will all be a on a fileserver.
I am not 100% sure but I do not think that will be a problem, you can follow the similar discussions/questions in these two topic threads:
http://forum.xbmc.org/showthread.php?tid=15971
http://forum.xbmc.org/showthread.php?tid=29299

phunkyfish Wrote:Q2) Is there an easy way to find the paths to DB files etc. on the XBox remotely (Such as if it's installed as a dashboard or application, or which drive it's on)? Or should I just require the user to input the paths when setting up an XBox on the servlet. It would be nice if they didn't have to.
I think that XBMC built-in commands API for python scripts does have a way and what the python API supports the HTTP API should support as well, see: http://xboxmediacenter.com/wiki/index.ph...erHTTP-API
Maybe ask a question in the python development forum for confirmation on that if you can not find the command in the HTTP API.
...or maybe talk to nad about the HTTPAPI or Nuka1195 about built-in commands in python.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#41
Cool, thanks for the reply gamester Wink

As I said I'm away at the minute. The interface to the DB is quite rich now and I'm thinking of moving it over to Struts (more because I don't have an xbox with me so I won't be making progress with the other stuff!)

Should have something for everyone to play with some time after Xmas. It will be as simple as install a program (any servlet container, tomcat, jboss, etc, not to worry there all free), copy a file and open a browser... (he says with his fingers crossed!).

The only thing is I don't make things that look nice, someone else may of course do there magic on the final version and jazz it up...
Maintainer of Enigma2 PVR addon: repo, docschangelog
How to create a full debug: here
Reply
#42
Lightbulb 
Do you think that XBMC would benifit from using ADOdb (or better yet ADOdb Lite)? Huh
http://en.wikipedia.org/wiki/ADOdb
http://en.wikipedia.org/wiki/ADOdb_Lite

From what I understand that would not only make it simpler for XBMC to change the database backend if needed (if someone for example like to fork XBMC Linux port to use MySQL instead of SQLite), but it should also more importantly enable better direct access for the Web Interface (HTTP API) and Python to the database?
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#43
I've written the Java module with persistence in mind, so it should be possible to use any DB, not just SQLite. Bear in mind that SQLite will work nicely because it's just a file you can copy anywhere. Using other DB's you will have to remove/create the DB's each time. Let's get the first version running and tested a little and then we can move onto other stuff. I'm expecting to have a first release at the start of February. I'm sure we'll have a host of teething problems at the time that may take a little while to sort. Still have no idea what effect replacing a DB in XBMC will have when it is running or accessing it's library. We may need a HTTP call/handle for start/stop update or something like that, but once more initial version first...
Maintainer of Enigma2 PVR addon: repo, docschangelog
How to create a full debug: here
Reply
#44
Thumbs Up 
phunkyfish Wrote:We may need a HTTP call/handle for start/stop update or something like that
Good idea; a "lock_database" and "release_database" mechanism for each database sounds like logical function to have, (one that could be called via via XBMC's built-in commands so that it can be accessed from both python and the HTTP API)

Nod
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#45
Gamester17 Wrote:Good idea; a "lock_database" and "release_database" mechanism for each database sounds like logical function to have, (one that could be called via via XBMC's built-in commands so that it can be accessed from both python and the HTTP API)

Nod

In fact without it you may have to reset each XBox back to the start screen (or somewhere) before running a "sync" with other boxes... Not sure about the locking or how it works in XMBC.
Maintainer of Enigma2 PVR addon: repo, docschangelog
How to create a full debug: here
Reply

Logout Mark Read Team Forum Stats Members Help
Developing MeD's Movie Manager interface to XBMC - assistance is needed1