Roll Call

162 views
Skip to first unread message

Derek Battams

unread,
Jul 20, 2011, 10:04:06 PM7/20/11
to sagetv-b...@googlegroups.com
Ok, let's start a roll call and figure out who wants to help out with this effort.  As I mentioned on the Sage forums, I'm more than willing to take a PM role here and help organize the effort.  I'm more than willing to chip in with code here and there, but am not looking to get into heavy coding at this time of the year.  As far as coding goes, I'm more of a backend/API kind of guy than I am a UI person.

If you want to join in on this effort please reply to this thread with your details: name, location (city/time zone), and what it is you want to do (UI code, backend code, graphic design, more than one, everything, something else, etc.).

I'm located in Kingston, ON (eastern time zone).

  - Derek

Michael Reid

unread,
Jul 20, 2011, 10:26:00 PM7/20/11
to sagetv-b...@googlegroups.com
I'm here (PiX64).

I fired an email off to jreichen to see what he thinks about my ideas of building on top of what is there.  I will work on creating an api framework which we can use to run commands and return boxee specific formatted xml back.

-Mike

Daniel Kohler

unread,
Jul 20, 2011, 10:29:38 PM7/20/11
to sagetv-b...@googlegroups.com
Hey all. I'm definitely interested in helping out with the effort. I'll have a D-Link Box by this weekend to start experimenting with. It seems like others already have a pretty good grasp on the API interface, but I'd be more than happy to work on the UI design.  I'm wondering if we could inherit some of the graphic design efforts that have gone into the Phoenix / Ortus projects rather than starting from scratch.

I'm located in Middletown, CT (eastern time zone).

- Dan (CyRex on SageTV forums)

Michael Reid

unread,
Jul 20, 2011, 10:32:00 PM7/20/11
to sagetv-b...@googlegroups.com
Sorry missed your details you wanted.

Mike Reid (PiX64)
Illinois
Central Timezone
I am willing to help out with anything that is needed.  UI, backend, whatever.
Message has been deleted

David Hamann

unread,
Jul 20, 2011, 11:59:26 PM7/20/11
to sagetv-b...@googlegroups.com
I'd be up for helping out- anything to keep Sage running is a good project.

I'm a j2ee guy, but I've done a bit of everything in the past.  Scripting and backend work would be something I can help out with.

I'm in Beaverton, OR (pacific time)

George S

unread,
Jul 21, 2011, 12:03:44 AM7/21/11
to sagetv-b...@googlegroups.com
George S (aka aflat on Sage forums)
Boston area

Currently just running the client on my PC, looking at the samples.

Where should we put the code? Github, Google code? I know people aren't ready for it yet, but it something to bring up early, to make it easier later.
Message has been deleted

Terry Denney

unread,
Jul 21, 2011, 2:50:24 PM7/21/11
to sagetv-b...@googlegroups.com
Not sure if my talents are needed since I am not a programmer. However, I am a project manager for a software development company plus I am very technically savy.  I would be more than  willing to test whatever is thrown out and do a QA analysis on it.

I somewhat feel responsible in getting people involved in using the boxee box since I persuaded Tom in getting one. I was even willing to buy it from him if he did not like it. I think there is a slim chance in prying that little box from his hands now.

btw, I go by Nebulink in the Sage forum and am located in Wisconsin.

Brian Schneider

unread,
Jul 21, 2011, 3:05:11 PM7/21/11
to sagetv-b...@googlegroups.com
I'd love to help out, especially as I've been very interested in exploring how to keep Sage alive but move to a different "extender" solution as it relates to not only DVR, but also general streaming of content (Boxee does the latter great, the DVR is the gap).

I'd love to help out as a tester, and happy to do so in an alpha capacity (I have no problems running code that blows up my PC for example).

I'm in Phoenixville, PA (outside Philly), eastern time zone

Michael Reid

unread,
Jul 21, 2011, 5:18:26 PM7/21/11
to sagetv-b...@googlegroups.com
found this as i am doing reserach:

http://forums.boxee.tv/archive/index.php/t-14177.html

we could use sqlite to store our data....

if we come up with a structure we may be able to create a stripped down version of recordings with the info we care about and go from there.  we also have the option to store txt or rss files locally, or even use the local config settings which are present for each app.

Tom Miranda

unread,
Jul 21, 2011, 5:36:50 PM7/21/11
to sagetv-b...@googlegroups.com
I'm here (tmiranda from the Sage forums).

As stated, I'm looking at starting on the main screen as a learning experience.

Tom Miranda

unread,
Jul 22, 2011, 6:49:27 PM7/22/11
to SageTV for Boxee (Development)
Is there a way to attach screenshots?

Michael Reid

unread,
Jul 22, 2011, 6:56:28 PM7/22/11
to sagetv-b...@googlegroups.com
I got the first part of the API working. Onload my app gets the system status and returns text that is displayed onscreen. When u click the button it updates..

I've found a way to work with the Jain returned from the sagex Apis and it works quite nicely. I'll get the other basic functions u requested and then I am going to work on recreating what slugger made as a groovy ap.

If anyone figures out pics on this group lemme know so I can share some screens. Mine are rudimentary at best since well tmiranda is dealing with that :-).

I'm pretty sure I can handle the http playback as well.

Does anyone know if u can pass Parms from
The XML to the python functions? If so then this will allow me to make the Apis as generic
As possible. Tmiranda for example could say getStatus(label). And I could update the correct label or location on the screen..

Michael Reid

unread,
Jul 22, 2011, 6:57:22 PM7/22/11
to sagetv-b...@googlegroups.com
Stupid autocorrect! Work with json

Derek Battams

unread,
Jul 23, 2011, 1:51:02 AM7/23/11
to sagetv-b...@googlegroups.com
Michael:

Do you have some examples of exactly what it is you're doing?  The more I got to thinking about this the more I wonder is the approach shouldn't be just to create a python library that converts a list of Sage media files/airings/shows/etc. into an RSS list suitable for Boxee to process.  Leave the rest of the API calls to be called directly.  For example, if the UI wants to know if something's recording then just directly call:


Maybe (probably) we create a simple wrapper around this with a python lib that makes this a little cleaner for the UI coding.  But I don't think there's any need for you to be writing specific Sage API calls like "getStatus()".  Instead, just write a python lib that converts certain types of Sage objects (lists/arrays/etc.) into RSS feeds, which will be needed to present lists for playback in Boxee.  As a matter of fact, I think only MediaFile lists need to be converted to RSS, since those are the only objects that can actually be played.  The rest of the objects should be able to just be modified directly within the code using the JSON returned by the sagex APIs.  To make the python code cleaner in the UI code, I'd probably just create a simple python class that defines a __call__ method, which simply makes the HTTP calls for sagex and returns JSON (or XML, which ever).  Such that in the UI code, Tom (and others) can do simple calls like:

Sage.GetOS()

Sage.GetCurrentlyRecordingMediaFiles()

and so on where each of these methods simply correspond to a Sage API call.  Then each of these calls are simply converted to HTTP API calls in the __call__ method of the python class and the JSON response is returned.  If a particular response needs to be converted to an RSS feed to allow for a media playback list then you've got another python lib capable of doing that, which the results can be passed to and get the converted RSS data.

Maybe you're already do this kind of thing, just thought I'd throw this idea out there while I was thinking of it.

  - Derek

Adam Edgington

unread,
Jul 23, 2011, 11:23:33 AM7/23/11
to sagetv-b...@googlegroups.com
Please accept my apologies if joining this group is inappropriate; I just worry that the Sage forums will disappear one day without warning *and* I'm in the no-PM penalty box for criticizing their treatment of customers.

I'm interested in this project; if any of you could answer, how is licensing going to be handled if this is about using boxee as replacement extenders?

Michael Reid

unread,
Jul 23, 2011, 12:00:24 PM7/23/11
to sagetv-b...@googlegroups.com
I have thought about this as well.  And i think that what seems to make the most sense in my opinion is to seperate the xml (gui) and the heavy lifting python.

What i am working on and have working right now is from the xml you can simply call api.getSystemStatus() and it will call on the sagexapi, process the request in json, and then populate the appropriate label on the gui with the system indicator status.  Likewise i have one that will check for currently recording.  the call api.getRecordingStatus() will call the sagex api and process the json result.  again populating the appropriate label on the xml gui.

From the xml we can certainly change the calls a bit so that the call actually returns something to the xml and then the xml gui will populate the correct location.  I do think however that all sagex calls even simple ones like getSystemStatus  (i know thats not the call but thats what i have been using in my example)  should be segregated out from the gui.  it keeps the gui files clean, and enforces a little bit of mvc ish style architecture.  easier to maintain in my opinion.

I am def open to other solutions, but this is what i have been working on thus far.

For recordings and such I agree 100% that the python to call on sagex, do the sorting and such we need, and then format the response into an rss style feed that boxee can handel natively.  I don't however like the idea of storing this on disk.  I think it will be sluggish and overall a poor user experience.  I think if we can simply return the correctly formatted rss object to the xml, then the xml gui can do with it what it pleases.


Just my thoughts.

BTW  My dev this weekend is going to be limited until my wife gets back from th bachelorette party she is at.  I will be doing some work hear and there, but i gotta take care of the kiddo.,.and of course he comes first :-)  

Michael Reid

unread,
Jul 23, 2011, 12:25:49 PM7/23/11
to sagetv-b...@googlegroups.com
No licensing.  It uses sagex API to do everything.

~Mike

On Jul 23, 2011, at 11:23 AM, Adam Edgington <aedgi...@gmail.com> wrote:

Please accept my apologies if joining this group is inappropriate; I just worry that the Sage forums will disappear one day without warning *and* I'm in the no-PM penalty box for criticizing their treatment of customers.

I'm interested in this project; if any of you could answer, how is licensing going to be handled if this is about using boxee as replacement extenders?

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/7QBStKbGF3UJ.
To post to this group, send email to sagetv-b...@googlegroups.com.
To unsubscribe from this group, send email to sagetv-boxee-d...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sagetv-boxee-dev?hl=en.

Tom Miranda

unread,
Jul 23, 2011, 1:29:33 PM7/23/11
to sagetv-b...@googlegroups.com
It would make my life easier if some of the apis need to return boolean values.  Take a look at the conditional visibility attribute that many of the controls can use.

I'm pretty much at the point of needing some of these apis before I can go any further.

Derek Battams

unread,
Jul 23, 2011, 2:06:47 PM7/23/11
to sagetv-b...@googlegroups.com
I've been messing around, refreshing myself with python a little bit this morning.  I've actually got a basic little Sage API wrapper written that let's you make any Sage API calls via Python with code like this:

from sage import SageAPI

api = SageAPI('192.168.5.10:8080', 'my_jetty_id', 'my_jetty_pwd', 'json')

print activeRecs = api.GetCurrentlyRecordingMediaFiles()

This script prints out:

{"Result":[]}

(because there's currently nothing recording on my server).  This wrapper currently just returns the raw JSON or XML data of the API call.  I'd enhance it to actually return the raw int, boolean, list, etc.  However, I'm trying to call python from the UI you posted Tom and I can't get it to work.  I modified your home screen and modified the Video button to this:

<item>
<controlid>002</controlid>
<label>Video</label>
<onclick lang="python">
<![CDATA[
import mc

mc.ShowDialogOk("Hi", "Hi")]]>
</onclick>
</item>

It doesn't work.  The dialog is never shown and the boxee.log keeps giving me an error.  Anyone know what I'm doing wrong?  I just wanted to get some basic python working then import my module and make sure I could call it from boxee before going anything further with it.

13:41:16 T:10160 M:1294618624   DEBUG: CApplication::ExecuteXBMCAction : Translating 
                                            import mc
                                            
                                            mc.ShowDialogOk("Hi", "Hi")
13:41:16 T:10160 M:1294618624   DEBUG: CApplication::ExecuteXBMCAction : To 
                                            import mc
                                            
                                            mc.ShowDialogOk("Hi", "Hi")
13:41:16 T:10160 M:1294618624 WARNING: Keymapping error: no such action '
                                            import mc
                                            
                                            mc.showdialogok("hi", "hi")' defined

  - Derek

On Sat, Jul 23, 2011 at 13:29, Tom Miranda <tom.m...@gmail.com> wrote:
It would make my life easier if some of the apis need to return boolean values.  Take a look at the conditional visibility attribute that many of the controls can use.

I'm pretty much at the point of needing some of these apis before I can go any further.

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/LihWmc6QIUsJ.

Michael Reid

unread,
Jul 23, 2011, 2:14:28 PM7/23/11
to sagetv-b...@googlegroups.com
thats exactly what my api is doing.

import mc
import simplejson
import urllib

systemAlertLevel = "None"

def getStatus():
print "**********Entering LoadHome*****************"
global systemAlertLevel
page1 = f1.read()
page2 = f2.read()
jdata1 = simplejson.loads(page1)
jdata2 = simplejson.loads(page2)

print "pix64 - jdata2"
print jdata2

for key, value in jdata1.iteritems():
print "key = ",key
print "value = ", value
if (key == "Result"):
if (value == 1):
systemAlertLevel = "Info"
elif (value == 2):
systemAlertLevel = "Warning"
elif (value == 3):
systemAlertLevel = "Error"
else:
print "*** mreid *** Something went wrong!"
systemAlertLevel = "Something went wrong!"

print "***pix64*** systemAlertLevel =",systemAlertLevel
label = mc.GetActiveWindow().GetLabel(110)
label.SetLabel('System Alert Indicator: %s' % (systemAlertLevel))

IF you want to work on this Derek, please feel free to.:  here is what i have been working on so far.
--
~Mike

Michael Reid

unread,
Jul 23, 2011, 2:17:35 PM7/23/11
to sagetv-b...@googlegroups.com
This api will update the counter label that is used in the boxee basic with python example from the web.

if you call api.getStatus()  on button click. it will perform an update.  I played with calling it onload too which also works fine.

Tom Miranda

unread,
Jul 23, 2011, 3:02:13 PM7/23/11
to sagetv-b...@googlegroups.com
Derek,

Doesn't work for me either.  It might be due to the way I'm using the <item> within the list control because the mc.GetApp().Close() that I'm trying to use on the "Exit" entry also does not work.

I posted a question on the Boxee forum.  Maybe I'll get an answer there.  So much to learn....

Tom

Debacle

unread,
Jul 25, 2011, 4:29:31 PM7/25/11
to SageTV for Boxee (Development)
Ordered my Boxee unit today and it should be here Thursday. I have a
load of VB programming chores on my desk so I wasnt able to
familiarize myself with python or the existing progress yet, but will
try to do tomorrow afternoon or Wednesday.

Tom Miranda

unread,
Jul 25, 2011, 5:04:49 PM7/25/11
to sagetv-b...@googlegroups.com
Welcome.

Debacle

unread,
Jul 28, 2011, 5:09:33 PM7/28/11
to SageTV for Boxee (Development)
My Boxee just arrived via UPS this morning.I will attempt to get it
set up and actually help in coding this weekend. Work has just been
hell, and my home time has been devoted to my 3 yr old.

Debacle

unread,
Aug 17, 2011, 5:15:34 PM8/17/11
to SageTV for Boxee (Development)
Ok everyone. I apologize about being AWOL for so long. Work has been a
PITA. Numerous problems with production software running on a Novell
4.11 server running on a 10 yr old machine. And no plans to replace
anytime soon.

Anyways, I still have the Boxee unit in the box. Havent even unboxed
it yet. Will do it when I get home and DL the code to familiarize
myself with it. Is there anything anywhere showing me how to install
the sage stuff on it? Or where to download the latest sage build?
Again, sorry for the no help so far, but will rectify that soon.

Tom Miranda

unread,
Aug 17, 2011, 6:17:32 PM8/17/11
to sagetv-b...@googlegroups.com
I think the easiest way to run it is in "test app" mode. 

1. Use tortoise svn to download all files from here: https://sagetv-boxee.googlecode.com/svn/trunk

2. Get a thumbdrive and in the root create a folder called "BoxeeApps"

3. Copy the com.googlecode.sagetvboxee.sageboxee folder downloaded from step 1 to the BoxeeApps folder.

4. Copy version.py (attached) to the com.googlecode.sagetvboxee.sageboxee folder.

5. Insert thumbdrive into Boxee and turn on unit.  The sage app will appear in with the "Favorite" apps.

Let me know if you have problems.

You can configure the BB so that the thumbdrive appears as smb share on your network so in the future when you download updated files from svn you can just copy them over the network to the thumbdrive in the BB.


version.py

Debacle

unread,
Aug 17, 2011, 9:45:59 PM8/17/11
to SageTV for Boxee (Development)
Sagex plugin 7.1.9.1 (or something like that) installed on server
Boxee in Dev mode with dev certificate
Downloaded and placed com.googlecode.sagetvboxee.sageboxee folder in
the BoxeeApps folder
went to apps->favs and installed sagetv
entered sage server name and username/password

....
thats it
cant get it to run past that point. I am guessing I may have entered
the wrong info for connecting to sage server. But I cant find where I
change that. I have tried looking in the dev logs by logging into the
boxee box at http://192.168.2.3:8080/, but logs show nothing
pertaining to sage. I cant uninstall in order to reinstall. Says I
need to do it manually. I did find in the dev forums that I should
change the build number each time, but I dont want alot of sage apps
in there. Any thoughts?

Tom Miranda

unread,
Aug 17, 2011, 10:20:40 PM8/17/11
to sagetv-b...@googlegroups.com
You must also have sagex-services installed on the sage server, not just sagex-api.

I'm not sure what you mean by "installed sagetv", there is nothing to install when working in dev mode.  You should NOT enter the repository information and install the app as you would in a production environment.

Hopefully you just do not have sagex-services installed.  (Will probably need to reboot sage server as well.)


--

Debacle

unread,
Aug 17, 2011, 10:30:49 PM8/17/11
to SageTV for Boxee (Development)
No. Sagex Services are installed as well. I think it has to do with my
initial configuration to the sage server itself.

"went to apps->favs and installed sagetv " I mean I installed it on
Boxee. My terminology may be off as I am writing this from memory

On Aug 17, 9:20 pm, Tom Miranda <tom.mira...@gmail.com> wrote:
> You must also have sagex-services installed on the sage server, not just
> sagex-api.
>
> I'm not sure what you mean by "installed sagetv", there is nothing to
> install when working in dev mode.  You should NOT enter the repository
> information and install the app as you would in a production environment.
>
> Hopefully you just do not have sagex-services installed.  (Will probably
> need to reboot sage server as well.)
>
>
>
>
>
>
>
> On Wed, Aug 17, 2011 at 9:45 PM, Debacle <cwp...@gmail.com> wrote:
> > Sagex plugin 7.1.9.1 (or something like that) installed on server
> > Boxee in Dev mode with dev certificate
> > Downloaded and placed com.googlecode.sagetvboxee.sageboxee folder in
> > the BoxeeApps folder
> > went to apps->favs and installed sagetv
> > entered sage server name and username/password
>
> > ....
> > thats it
> > cant get it to run past that point. I am guessing I may have entered
> > the wrong info for connecting to sage server. But I cant find where I
> > change that. I have tried looking in the dev logs by logging into the
> > boxee box athttp://192.168.2.3:8080/, but logs show nothing

Tom Miranda

unread,
Aug 17, 2011, 10:41:09 PM8/17/11
to sagetv-b...@googlegroups.com
In order to see any debug information you must go into the Boxee settings and set the debug level to "Debug" (I think that's what it's called.  There are several levels, choose the one that is the most verbose.)

1. Are you sure you have the latest copy of all the files? I've attached a zip file that does contain the latest and greatest.  Just overwrite all existing files with the attached.

2. Are you sure you put version.py in the proper directory? (The attached zip file has it in the correct place already.)

If the sage app launches but can't connect to the server, it should tell you that and then give you the option to continue anyway (so you can go to the settings menu and change the jetty information).

If you can't get it working send me the logfile from the Box.  I'm going to bed now but will look at it tomorrow.  If you want me to look at it sooner send it to me on the Sage forums (because that's about all I can access from work.)
com.googlecode.sagetvboxee.sageboxee.zip

Debacle

unread,
Aug 17, 2011, 10:43:47 PM8/17/11
to SageTV for Boxee (Development)
Yes. Have debugging level set to 'debug'. My file directories are the
same as your zip file. I havent checked sizes and dates, but I
originally DLed them from svn. Will look in a bit on sizes and try it
again in a bit. Getting ready to go do tonight's Insanity workout with
the wife.

Darci Hanning

unread,
Aug 17, 2011, 11:10:01 PM8/17/11
to sagetv-b...@googlegroups.com
Well, I must be an idiot tonight, I can't get the app to show up. This is what I've done:

On the Box:
Removed the repository version of SageTV from my favorites
Removed the repository

Followed the steps:
Downloaded the code from SVN
Created BoxeeApps on a thumbdrive
Copied com.googlecode.sagetvboxee.sageboxee to BoxeeApps
Copied the version.py file to com.googlecode.sagetvboxee.sageboxee
Inserted the thumbdrive
Turned on the Box
Navigated to Favorite Apps -- and no SageTV app

See attached screenshot for contents of com.googlecode.sagetvboxee.sageboxee

What stupidly obvious thing have I missed?

Cheers,
Darci
BoxeeApps.png

Debacle

unread,
Aug 18, 2011, 12:19:49 AM8/18/11
to SageTV for Boxee (Development)
Dev-certificate.xml?

Darci Hanning

unread,
Aug 18, 2011, 12:22:39 AM8/18/11
to sagetv-b...@googlegroups.com
Oops, do I have to get my own?

On Wed, Aug 17, 2011 at 9:19 PM, Debacle <cwp...@gmail.com> wrote:
Dev-certificate.xml?


Debacle

unread,
Aug 18, 2011, 12:49:33 AM8/18/11
to SageTV for Boxee (Development)
I beleive so. You have to enter in the serial number and the MAC
address of the unit and a dev-ceet is auto create dfror you.

Darci Hanning

unread,
Aug 18, 2011, 10:10:07 PM8/18/11
to sagetv-b...@googlegroups.com
Well that did the trick (THANKS!). And now that I have guest access enabled for various shares on my WHS, all is well, including starting a recording from the EPG :)

Yay, fantastic work gentlemen!

Cheers,
Darci
Reply all
Reply to author
Forward
0 new messages