Tivo Desktop Problem
Tags:
- Ptv Tivo
- Tivo
-
Desktops
Last response: in Home Theatre Legacy
Anonymous
July 28, 2005 12:20:16 PM
Archived from groups: alt.video.ptv.tivo (More info?)
I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
PC, and it is working (Or at least, I am able to serve pictures and
music to the Tivo). The only problem is that on the tivo desktop now
of the movies in my now playing list show up in the tivo desktop list.
I've installed the proper codecs from www.free-codecs.com. Any help
will be appreciated. Thanks.
I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
PC, and it is working (Or at least, I am able to serve pictures and
music to the Tivo). The only problem is that on the tivo desktop now
of the movies in my now playing list show up in the tivo desktop list.
I've installed the proper codecs from www.free-codecs.com. Any help
will be appreciated. Thanks.
More about : tivo desktop problem
Howard
July 28, 2005 9:09:42 PM
Archived from groups: alt.video.ptv.tivo (More info?)
GTD <duuh@stoopid.net> wrote in news:u51ie1tjc3nr06rvgrbg9q3fvqrpsebem8@
4ax.com:
> I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
> PC, and it is working (Or at least, I am able to serve pictures and
> music to the Tivo). The only problem is that on the tivo desktop now
> of the movies in my now playing list show up in the tivo desktop list.
> I've installed the proper codecs from www.free-codecs.com. Any help
> will be appreciated. Thanks.
To my knowledge, the DVD recorders don't have TTG yet.
http://www.tivo.com/4.9.19.3.asp#6
--
Minister of All Things Digital & Electronic, and Holder of Past Knowledge
stile99@email.com. Cabal# 24601-fnord | Sleep is irrelevant.
I speak for no one but myself, and |Caffeine will be assimilated.
no one else speaks for me. O- | Decaf is futile.
GTD <duuh@stoopid.net> wrote in news:u51ie1tjc3nr06rvgrbg9q3fvqrpsebem8@
4ax.com:
> I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
> PC, and it is working (Or at least, I am able to serve pictures and
> music to the Tivo). The only problem is that on the tivo desktop now
> of the movies in my now playing list show up in the tivo desktop list.
> I've installed the proper codecs from www.free-codecs.com. Any help
> will be appreciated. Thanks.
To my knowledge, the DVD recorders don't have TTG yet.
http://www.tivo.com/4.9.19.3.asp#6
--
Minister of All Things Digital & Electronic, and Holder of Past Knowledge
stile99@email.com. Cabal# 24601-fnord | Sleep is irrelevant.
I speak for no one but myself, and |Caffeine will be assimilated.
no one else speaks for me. O- | Decaf is futile.
Anonymous
July 28, 2005 10:06:13 PM
Archived from groups: alt.video.ptv.tivo (More info?)
On 28 Jul 2005 17:09:42 GMT, Howard <stile99@email..com> wrote:
>GTD <duuh@stoopid.net> wrote in news:u51ie1tjc3nr06rvgrbg9q3fvqrpsebem8@
>4ax.com:
>
>> I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
>> PC, and it is working (Or at least, I am able to serve pictures and
>> music to the Tivo). The only problem is that on the tivo desktop now
>> of the movies in my now playing list show up in the tivo desktop list.
>> I've installed the proper codecs from www.free-codecs.com. Any help
>> will be appreciated. Thanks.
>
>To my knowledge, the DVD recorders don't have TTG yet.
>
>http://www.tivo.com/4.9.19.3.asp#6
I see. I didn't realize The Tivo Desktop and TTG were one in the same.
Thanks.
On 28 Jul 2005 17:09:42 GMT, Howard <stile99@email..com> wrote:
>GTD <duuh@stoopid.net> wrote in news:u51ie1tjc3nr06rvgrbg9q3fvqrpsebem8@
>4ax.com:
>
>> I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
>> PC, and it is working (Or at least, I am able to serve pictures and
>> music to the Tivo). The only problem is that on the tivo desktop now
>> of the movies in my now playing list show up in the tivo desktop list.
>> I've installed the proper codecs from www.free-codecs.com. Any help
>> will be appreciated. Thanks.
>
>To my knowledge, the DVD recorders don't have TTG yet.
>
>http://www.tivo.com/4.9.19.3.asp#6
I see. I didn't realize The Tivo Desktop and TTG were one in the same.
Thanks.
Related resources
- Tivo Desktop Problem - Forum
- What is new in Tivo 7.2 and Desktop 2.2 - Forum
- TiVo Software 7.2 and TiVo Desktop 2.2 are out - Forum
- Movies in TiVo Desktop? - Forum
- TiVo Desktop (Mac OS X) now works with AAC (iTunes/iPod de.. - Forum
Anonymous
July 29, 2005 3:11:09 AM
Archived from groups: alt.video.ptv.tivo (More info?)
GTD wrote:
> On 28 Jul 2005 17:09:42 GMT, Howard <stile99@email..com> wrote:
>
>
>>GTD <duuh@stoopid.net> wrote in news:u51ie1tjc3nr06rvgrbg9q3fvqrpsebem8@
>>4ax.com:
>>
>>
>>>I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
>>>PC, and it is working (Or at least, I am able to serve pictures and
>>>music to the Tivo). The only problem is that on the tivo desktop now
>>>of the movies in my now playing list show up in the tivo desktop list.
>>>I've installed the proper codecs from www.free-codecs.com. Any help
>>>will be appreciated. Thanks.
>>
>>To my knowledge, the DVD recorders don't have TTG yet.
>>
>>http://www.tivo.com/4.9.19.3.asp#6
>
>
> I see. I didn't realize The Tivo Desktop and TTG were one in the same.
> Thanks.
>
They aren't, but the portion of Tivo Desktop that you are trying to use
is. TTG consists of transferring shows from your Tivo to your computer.
Everything else is still available.
Randy S.
GTD wrote:
> On 28 Jul 2005 17:09:42 GMT, Howard <stile99@email..com> wrote:
>
>
>>GTD <duuh@stoopid.net> wrote in news:u51ie1tjc3nr06rvgrbg9q3fvqrpsebem8@
>>4ax.com:
>>
>>
>>>I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
>>>PC, and it is working (Or at least, I am able to serve pictures and
>>>music to the Tivo). The only problem is that on the tivo desktop now
>>>of the movies in my now playing list show up in the tivo desktop list.
>>>I've installed the proper codecs from www.free-codecs.com. Any help
>>>will be appreciated. Thanks.
>>
>>To my knowledge, the DVD recorders don't have TTG yet.
>>
>>http://www.tivo.com/4.9.19.3.asp#6
>
>
> I see. I didn't realize The Tivo Desktop and TTG were one in the same.
> Thanks.
>
They aren't, but the portion of Tivo Desktop that you are trying to use
is. TTG consists of transferring shows from your Tivo to your computer.
Everything else is still available.
Randy S.
Jason
July 29, 2005 7:54:59 AM
Archived from groups: alt.video.ptv.tivo (More info?)
On Thu, 28 Jul 2005 23:11:09 -0400, Randy S. wrote:
>GTD wrote:
>> On 28 Jul 2005 17:09:42 GMT, Howard <stile99@email..com> wrote:
>>
>>>GTD <duuh@stoopid.net> wrote in news:u51ie1tjc3nr06rvgrbg9q3fvqrpsebem8@
>>>4ax.com:
>>>
>>>>I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
>>>>PC, and it is working (Or at least, I am able to serve pictures and
>>>>music to the Tivo). The only problem is that on the tivo desktop now
>>>>of the movies in my now playing list show up in the tivo desktop list.
>>>>I've installed the proper codecs from www.free-codecs.com. Any help
>>>>will be appreciated. Thanks.
>>>
>>>To my knowledge, the DVD recorders don't have TTG yet.
>>>http://www.tivo.com/4.9.19.3.asp#6
>>
>> I see. I didn't realize The Tivo Desktop and TTG were one in the same.
>> Thanks.
>
>They aren't, but the portion of Tivo Desktop that you are trying to use
>is. TTG consists of transferring shows from your Tivo to your computer.
> Everything else is still available.
>Randy S.
Does the series2 web server exist in the humax as well? Does
anyone know if it is different somehow?
My pc and tivo are on the same home network. In a browser I can
plug in the IP number the tivo has and get a webpage.
http://192.168.2.4/ gives me a 'Congratulations!
You've successfully connected your TiVo box to your home network,
enabling a number of exciting new Home Media features:"
if I change that to https://192.168.2.4/ I get a dialog box, user
is tivo, password is your media access key, and I am shown the
contents of the tivo.
I found a sweet browser file on the tivocommunity forum that I
will share now...
On Thu, 28 Jul 2005 23:11:09 -0400, Randy S. wrote:
>GTD wrote:
>> On 28 Jul 2005 17:09:42 GMT, Howard <stile99@email..com> wrote:
>>
>>>GTD <duuh@stoopid.net> wrote in news:u51ie1tjc3nr06rvgrbg9q3fvqrpsebem8@
>>>4ax.com:
>>>
>>>>I'm using a Humax 80hr with DVD-r. I have Tivo Desktop set up on my
>>>>PC, and it is working (Or at least, I am able to serve pictures and
>>>>music to the Tivo). The only problem is that on the tivo desktop now
>>>>of the movies in my now playing list show up in the tivo desktop list.
>>>>I've installed the proper codecs from www.free-codecs.com. Any help
>>>>will be appreciated. Thanks.
>>>
>>>To my knowledge, the DVD recorders don't have TTG yet.
>>>http://www.tivo.com/4.9.19.3.asp#6
>>
>> I see. I didn't realize The Tivo Desktop and TTG were one in the same.
>> Thanks.
>
>They aren't, but the portion of Tivo Desktop that you are trying to use
>is. TTG consists of transferring shows from your Tivo to your computer.
> Everything else is still available.
>Randy S.
Does the series2 web server exist in the humax as well? Does
anyone know if it is different somehow?
My pc and tivo are on the same home network. In a browser I can
plug in the IP number the tivo has and get a webpage.
http://192.168.2.4/ gives me a 'Congratulations!
You've successfully connected your TiVo box to your home network,
enabling a number of exciting new Home Media features:"
if I change that to https://192.168.2.4/ I get a dialog box, user
is tivo, password is your media access key, and I am shown the
contents of the tivo.
I found a sweet browser file on the tivocommunity forum that I
will share now...
Jason
July 29, 2005 7:56:49 AM
Archived from groups: alt.video.ptv.tivo (More info?)
On Fri, 29 Jul 2005 03:54:59 -0400, Jason wrote:
>
>I found a sweet browser file on the tivocommunity forum that I
>will share now...
Is it me, or did it not show up?
Let's try again:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Loading...</title>
<script type="text/javascript">
<![CDATA[
var tivo = new Array(5);
DELETE THESE LINES, and save this to a new filename. You must make sure that the
end result filename ends with a .xhtml, or it won't work. If something is going wrong,
check if you have windows set to 'hide extensions for known file types'.
Short version of what that does, it hides the true nature of the files you are looking
at in your folders. For instance, you could be thinking you are looking at a picture
names Mom.jpg and it could really be a virus named Mom.jpg.exe Bad.
I found this file on the tivo community forum. Go there for more info, I don't have it.
The little section just below here is where you plug in the info for your tivo.
the 'Living Room' in the only place you have to change IP NUMBER HERE to a number.
You can find your tivo's ip number in the network section, where it says IP on the
upper right part of the screen. Don't get rid of the " quotes.
The number after the comma is the size of your drive. Parts of this file do math and
figure out how much space you have left on your drive. SWEET!
Put your media access key where it says YOUR MAK HERE, you can find it in the system
menus in your tivo.
Go thank the folks at tivocomunnity.com for this.
If you have more than 1 tivo, then fill in the number and size bits for tivi[1] and
get rid of the 2 little // in front of the line, that will activate that line of code.
Yes, you can change the words inside the "quotes", just don't get rid of the "".
STOP DELETING HERE
tivo[0]=[ "Living Room","IP NUMBER HERE", 80 ];
//[ "Location" , "Tivo's IP" , total gigabytes used to record shows ]
//tivo[1]=[ "Master Bedroom" , "IP NUMBER HERE" , 29.25 ];
//tivo[2]=[ "Den" ,"IP NUMBER HERE" , 69.25 ];
//tivo[3]=[ "Kitchen" , "IP NUMBER HERE" , 109.25 ];
//tivo[4]=[ "Bathroom" , "IP NUMBER HERE" , 0 ];
var mak='YOUR MAK HERE'; //your media access key
var totalGB = tivo[0][2];
var numExpDReqFilled = 0;
window.onload = function (evt) {
if (tivo[1]){
var f = document.createElement('form');
f.setAttribute('name','frmSelTiVo');
f.setAttribute('id','frmSelTiVo');
var s = document.createElement('select');
s.setAttribute('disabled',"disabled");
s.setAttribute('name','selTiVos');
s.setAttribute('id','selTiVos');
s.onchange=getContent;
var o = new Array(5);
var oTN = new Array(5);
for (i = 0; i < 5; i++) {
if (tivo){
o = document.createElement('option');
o.setAttribute('value',tivo[1]);
oTN = document.createTextNode(tivo[0]);
o.appendChild(oTN);
s.appendChild(o);
}
}
f.appendChild(s);
document.body.appendChild(f);
}
getContent();
}
function getContent(){
var tivo_ip = tivo[0][1];
if (document.getElementById("selTiVos")){
var tivo_list = document.getElementById("selTiVos");
tivo_list.setAttribute('disabled','disabled');
tivo_ip = tivo_list.options[tivo_list.selectedIndex].value;
totalGB = tivo[tivo_list.selectedIndex][2];
}
document.title="Loading...";
if (document.getElementById('content')){
document.body.removeChild(document.getElementById('content'));
}
var contentDiv = document.createElement('div');
contentDiv.setAttribute('id','content');
document.body.appendChild(contentDiv);
var xsltNS = 'http://www.w3.org/1999/XSL/Transform';
var xsltSheet = document.getElementsByTagNameNS(xsltNS, 'stylesheet')[0];
var xsltProcessor = new XSLTProcessor();
var xmlDoc;
xsltProcessor.importStylesheet(xsltSheet);
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+
'/TiVoConnect?Command=QueryContainer&Container=%2FNowPlaying&Recurse=Yes'
, true,'tivo',mak);
myXMLHTTPRequest.send(null);
myXMLHTTPRequest.onreadystatechange=function() {
if (myXMLHTTPRequest.readyState==4) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
xmlDoc = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
document.getElementById('content').appendChild(fragment);
convertDates();
calcTimeLeft();
if (document.getElementById("nRI")) getNowRecInfo(tivo_ip);
var tblNP = document.getElementById('nowPlay');
for (i = 0; i < tblNP.rows.length; i++) {
getExpDate(tivo_ip, tblNP.rows.cells[2], tblNP.rows.length);
}
if (document.getElementById("selTiVos")){
document.getElementById("selTiVos").removeAttribute('disabled');
}
}
}
}
function getNowRecInfo(tivo_ip){
var nRSpan = document.getElementById("nRI");
var vd = nRSpan.childNodes[0].nodeValue;
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+vd, true,'tivo',mak);
myXMLHTTPRequest.send(null);
myXMLHTTPRequest.onreadystatechange=function() {
if (myXMLHTTPRequest.readyState==4) {
if (myXMLHTTPRequest.status!=200){
getNowRecInfo(tivo_ip);
} else {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
var responseText = myXMLHTTPRequest.responseText;
var zuluTime = responseText.match( /<expirationTime>(.+)<\/expirationTime>/ );
var y = zuluTime[1].substring(0,4);
var mo = zuluTime[1].substring(5,7);
var d = zuluTime[1].substring(8,10);
var h = zuluTime[1].substring(11,13);
var m = zuluTime[1].substring(14,16);
var s = zuluTime[1].substring(17,19);
var expDate = new Date(Date.UTC(y,mo-1,d,h,m,s));
var weekday=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var d =weekday[expDate.getDay()]+' '+(expDate.getMonth()+1)+'/'+expDate.getDate();
expDate = d+" "+getClockTime(expDate)
var quality = responseText.match( /<recordingQuality.+>(.+)<\/recordingQuality>/);
if (quality[1]=="GOOD") quality[1]="BASIC";
var recDur = responseText.match( /<recordedDuration>(.+)<\/recordedDuration>/ );
var dur = responseText.match( /<showing>.+<duration>(.+?)<\/duration>/ );
nRSpan.childNodes[0].nodeValue="Quality: "+quality[1]+" | Partialness: "
+recDur[1].substring(2)+" of "+dur[1].substring(2)
+" | Will Expire: "+expDate+"}";
nRSpan.className = '';
}
}
}
}
function getExpDate(tivo_ip, node, timesToBeCalled){
var showId = node.childNodes[0].childNodes[0].nodeValue;
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+
'/TiVoVideoDetails?id='+showId, true,'tivo',mak);
myXMLHTTPRequest.send(null);
myXMLHTTPRequest.onreadystatechange=function() {
if (myXMLHTTPRequest.readyState==4) {
if (myXMLHTTPRequest.status!=200){
getExpDate(tivo_ip, node, timesToBeCalled);
} else {
numExpDReqFilled++;
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
var responseText = myXMLHTTPRequest.responseText;
var zuluTime = responseText.match( /<expirationTime>(.+)<\/expirationTime>/ )
var spanNode = document.createElement("span");
if (zuluTime[1]=='2038-01-19T00:00:00Z') {
var textNode=document.createTextNode('Never');
spanNode.appendChild(textNode);
node.appendChild(spanNode);
node.childNodes[0].childNodes[0].nodeValue=9999999999;
} else{
var y = zuluTime[1].substring(0,4);
var mo = zuluTime[1].substring(5,7);
var d = zuluTime[1].substring(8,10);
var h = zuluTime[1].substring(11,13);
var m = zuluTime[1].substring(14,16);
var s = zuluTime[1].substring(17,19);
var expDate = new Date(Date.UTC(y,mo-1,d,h,m,s));
var weekday=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var d =weekday[expDate.getDay()]+' '+(expDate.getMonth()+1)+'/'+expDate.getDate();
var textNode=document.createTextNode(d);
var di = document.createElement("div");
var tn = document.createTextNode(getClockTime(expDate));
di.appendChild(tn);
spanNode.appendChild(textNode);
spanNode.appendChild(di);
node.appendChild(spanNode);
node.childNodes[0].childNodes[0].nodeValue=(expDate.getTime()/1000);
}
if (numExpDReqFilled==timesToBeCalled){
numExpDReqFilled = 0
var where = " on my Tivo";
if (document.getElementById("selTiVos")){
var tivo_list = document.getElementById("selTiVos");
where = " in my "+tivo_list.options[tivo_list.selectedIndex].childNodes[0].nodeValue
}
document.title="Now Playing"+where;
if (document.getElementById('exp')) document.getElementById('exp').className = 'sort';
}
}
}
}
}
function convertDates(){
var tblNP = document.getElementById('nowPlay');
for (i = 0; i < tblNP.rows.length; i++) {
var hexDate = tblNP.rows.cells[3].childNodes[1].nodeValue;
var d=new Date((parseInt(hexDate, 16))*1000+2000);
var weekday=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var newValue =weekday[d.getDay()]+' '+(d.getMonth()+1)+'/'+d.getDate();
tblNP.rows.cells[3].childNodes[1].nodeValue = newValue;
var di = document.createElement("div");
var tn = document.createTextNode(getClockTime(d));
di.appendChild(tn);
tblNP.rows.cells[3].appendChild(di);
}
if (document.getElementById('suggest')) {
var tblSu = document.getElementById('suggest');
for (i = 0; i < tblSu.rows.length; i++) {
var hexDate = tblSu.rows.cells[2].childNodes[1].nodeValue;
var d=new Date((parseInt(hexDate, 16))*1000+2000);
var weekday=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var newValue =weekday[d.getDay()]+' '+(d.getMonth()+1)+'/'+d.getDate();
tblSu.rows.cells[2].childNodes[1].nodeValue = newValue;
var di = document.createElement("div");
var tn = document.createTextNode(getClockTime(d));
di.appendChild(tn);
tblSu.rows.cells[2].appendChild(di);
}
}
}
function getClockTime(d)
{
var hour = d.getHours();
var minute = d.getMinutes();
var ap = "A";
if (hour > 11) { ap = "P";}
if (hour > 12) { hour = hour - 12; }
if (hour == 0) { hour = 12; }
if (minute < 10) { minute = "0" + minute; }
var timeString = hour + ':' + minute +ap;
return timeString;
}
function calcTimeLeft(){
var used = document.body.getElementsByTagName('i')[0].childNodes[0].nodeValue;
if (totalGB>used) {
var leftGB = totalGB - used;
var bestHoursLeft = leftGB * 1073741824/763712/3600;
var bestHo = Math.floor(bestHoursLeft);
var bestMin = Math.round((bestHoursLeft - bestHo)*60);
var highHoursLeft = leftGB * 1073741824/475354/3600;
var highHo = Math.floor(highHoursLeft);
var highMin = Math.round((highHoursLeft - highHo)*60);
var medHoursLeft = leftGB * 1073741824/361759/3600;
var medHo = Math.floor(medHoursLeft);
var medMin = Math.round((medHoursLeft - medHo)*60);
var basHoursLeft = leftGB * 1073741824/213210/3600;
var basHo = Math.floor(basHoursLeft);
var basMin = Math.round((basHoursLeft - basHo)*60);
var h2 = document.createElement("h2");
var tn = document.createTextNode('TimeLeft: ~ '
+bestHo+'hr '+bestMin+'min (@Best) || '
+highHo+'hr '+highMin+'min (@High) || '
+medHo+'hr '+medMin+'min (@Medium) || '
+basHo+'hr '+basMin+'min (@Basic)');
h2.appendChild(tn);
document.body.getElementsByTagName('h1')[0].appendChild(h2);
}
}
function sortTable(col, tableBody) {
var tblEl = document.getElementById(tableBody);
if (tblEl.reverseSort == null) tblEl.reverseSort = new Array();
if (col == tblEl.lastColumn) tblEl.reverseSort[col] = !tblEl.reverseSort[col];
tblEl.lastColumn = col;
var oldDsply = tblEl.style.display;
tblEl.style.display = "none";
var tmpEl, i, j, minVal, minIdx, testVal, cmp;
for (i = 0; i < tblEl.rows.length - 1; i++) {
minIdx = i;
minVal = tblEl.rows.cells[col].childNodes[0].childNodes[0].nodeValue;
for (j = i + 1; j < tblEl.rows.length; j++) {
testVal = tblEl.rows[j].cells[col].childNodes[0].childNodes[0].nodeValue;
cmp = compareValues(minVal, testVal);
if (tblEl.reverseSort[col])
cmp = -cmp;
if (cmp > 0) {
minIdx = j;
minVal = testVal;
}
}
if (minIdx > i) {
tmpEl = tblEl.removeChild(tblEl.rows[minIdx]);
tblEl.insertBefore(tmpEl, tblEl.rows);
}
}
tblEl.style.display = oldDsply;
}
function compareValues(v1, v2) {
var f1, f2;
if (v1.substring(0,4)=='The ') v1=v1.substring(4);
if (v1.substring(0,2)=='A ') v1=v1.substring(2);
if (v2.substring(0,4)=='The ') v2=v2.substring(4);
if (v2.substring(0,2)=='A ') v2=v2.substring(2);
if (v1.substring(0,2)=='0x'){
f1 = parseInt(v1,16);
f2 = parseInt(v2,16);
} else {
f1= parseInt(v1);
f2=parseInt(v2);
}
if (!isNaN(f1) && !isNaN(f2)) {
v1 = f1;
v2 = f2;
}
if (v1 == v2) return 0;
if (v1 > v2) return 1
return -1;
}
function showNowRecordingDetails(urlend){
var tivo_ip = tivo[0][1];
if (document.getElementById("selTiVos")){
var tivo_list = document.getElementById("selTiVos");
tivo_ip = tivo_list.options[tivo_list.selectedIndex].value;
}
if (document.getElementById("nowRec").childNodes[0].nodeValue=="show"){
document.getElementById("nowRec").childNodes[0].nodeValue="hide";
var xsltProcessor = new XSLTProcessor();
var xsltSheet = document.getElementsByTagNameNS('http://www.w3.org/1999/XSL/Transform', 'stylesheet')[1];
xsltProcessor.importStylesheet(xsltSheet);
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+urlend, false,'tivo',mak);
myXMLHTTPRequest.send(null);
xmlDoc = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
var nr=document.getElementById("recDesc");
nr.appendChild(fragment);
} else {
var nr=document.getElementById("recDesc");
nr.removeChild(nr.lastChild);
document.getElementById("nowRec").childNodes[0].nodeValue="show";
}
}
function showDetails(showNum){
var tivo_ip = tivo[0][1];
if (document.getElementById("selTiVos")){
var tivo_list = document.getElementById("selTiVos");
tivo_ip = tivo_list.options[tivo_list.selectedIndex].value;
}
if (document.getElementById('SH'+showNum).childNodes[0].nodeValue=="show"){
var xsltProcessor = new XSLTProcessor();
var xsltSheet = document.getElementsByTagNameNS('http://www.w3.org/1999/XSL/Transform', 'stylesheet')[1];
xsltProcessor.importStylesheet(xsltSheet);
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+'/TiVoVideoDetails?id='+showNum, false,'tivo',mak);
myXMLHTTPRequest.send(null);
xmlDoc = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
var row=document.getElementById(showNum);
row.childNodes[1].appendChild(fragment);
document.getElementById('SH'+showNum).childNodes[0].nodeValue="hide";
} else {
var row=document.getElementById(showNum);
row.childNodes[1].removeChild(row.childNodes[1].lastChild);
document.getElementById('SH'+showNum).childNodes[0].nodeValue="show";
}
}
function showSuggTable() {
if (document.getElementById("suggShowHide").childNodes[0].nodeValue=="show"){
document.getElementById("suggTable").style.display="block";
document.getElementById("suggShowHide").childNodes[0].nodeValue="hide"
} else {
document.getElementById("suggTable").style.display="none";
document.getElementById("suggShowHide").childNodes[0].nodeValue="show"
}
}
]]>
</script>
<style type="text/css">
body { font-family: sans-serif }
a.sh { cursor: pointer; color:#0000ff }
a.search{ text-decoration:none;color:#000000}
a.search:hover { color:#0000ff;text-decoration:underline}
a.sort { cursor: pointer; color:#000000 }
a.sort:hover { color:#790619}
.sortBy {display:none}
.cantSortYet { color:#ffffff }
.nRDisplayHide {display:none }
h1 { font-size: large }
h2 { font-size: medium }
tr { font-size: small }
th { font-size: small; padding: 7px }
td { font-size: small; padding: 7px }
</style>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:t="http://www.tivo.com/developer/calypso-protocol-1.5/">
<xsl
utput method="html"/>
<xsl:template match="/">
<xsl:for-each select="t:TiVoContainer/t:Item[t
etails/t:InProgress]">
<xsl:variable name="vd" select="t:Links/t:TiVoVideoDetails/t:Url"/>
<span style="font-size:large"><b>Now Recording</b></span><br/>
<b>
<xsl:value-of select="t
etails/t:SourceStation"/> Ch.
<xsl:value-of select="substring-before(t
etails/t:SourceChannel,'-0')"/>
-
<xsl:value-of select="t
etails/t:Title"/>
<xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if>
</b>
<span style="font-family:courier">[<b>details:</b>
<a class='sh' onclick="showNowRecordingDetails('{$vd}')">
<xsl:attribute name="id">nowRec</xsl:attribute>show</a>]
</span>
<br/>
<span style="font-size:small">
<b>
<xsl:choose>
<xsl:when test="../t:Item[1]/t
etails/t:InProgress"> {Planned | </xsl:when>
<xsl
therwise> {Suggestion | </xsl
therwise>
</xsl:choose>
<span class="nRDisplayHide">
<xsl:attribute name="id">nRI</xsl:attribute>
<xsl:value-of select="$vd"/></span>
</b>
</span>
<br/>
<span>
<xsl:attribute name="id">recDesc</xsl:attribute>
<xsl:value-of select="t
etails/t
escription"/></span>
<hr></hr>
</xsl:for-each>
<h1>4485732656 Now Playing -
<xsl:value-of select="count(t:TiVoContainer/t:Item[not(t
etails/t:InProgress
or t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])"/>
Shows
<xsl:variable name="hr" select="floor(sum(//t
uration[not(../t:InProgress
or ../../t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])
div 3600000)"/>
<xsl:variable name="min" select="(sum(//t
uration[not(../t:InProgress
or ../../t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])
div 3600000)-$hr"/>
(<xsl:value-of select="$hr"/>hr
<xsl:value-of select="round($min*6000 div 100)"/>min using
<b><i>
<xsl:value-of select="round(sum(//t:SourceSize[not(../t:InProgress
or ../../t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])
div 1073741824 * 100) div 100"/>
</i></b><b>GB</b>)
</h1>
<table id='tab' style="width:100%;">
<thead>
<tr style="background-color:#E5E5C5;">
<th style="width:1%"><a class='sort' onclick="sortTable(0, 'nowPlay')">Source</a></th>
<th><a class='sort' onclick="sortTable(1, 'nowPlay')">Description</a></th>
<th style="width:5%"><a class='cantSortYet' onclick="sortTable(2, 'nowPlay')">
<xsl:attribute name="id">exp</xsl:attribute>Expires</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(3, 'nowPlay')">Captured</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(4, 'nowPlay')">Size</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(5, 'nowPlay')">Quality</a></th>
</tr>
</thead>
<tbody>
<xsl:attribute name="id">nowPlay</xsl:attribute>
<xsl:for-each select="t:TiVoContainer/t:Item[not(t
etails/t:InProgress
or t:Links/t:CustomIcon/t:Url='urn:tivo:image:suggestion-recording')]">
<xsl:variable name="showUrl" select="t:Links/t:TiVoVideoDetails/t:Url"/>
<xsl:variable name="showNum" select="substring-after($showUrl,'id=')"/>
<tr id="{$showNum}">
<td style="background-color:#fc0000;vertical-align:top;text-align:center;">
<span class="sortBy"><xsl:value-of select="t
etails/t:SourceStation"/></span>
<xsl:value-of select="t
etails/t:SourceStation"/><br/>
<xsl:value-of select="substring-before(t
etails/t:SourceChannel,'-0')"/>
</td>
<td style="background-color:#F5F595;vertical-align:top;text-align:left;">
<span class="sortBy"><xsl:value-of select="t
etails/t:Title"/></span>
<span style="float:right;font-family:courier">[<b>details:</b>
<a class='sh' id="SH{$showNum}" onclick="showDetails('{$showNum}')">show</a>]</span>
<xsl:choose>
<xsl:when test="t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:save-until-i-delete-recording'">
<span style="background-color:#00ff00">
<b>
<xsl:value-of select="t
etails/t:Title"/>
<xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if>
</b>
</span>
</xsl:when>
<xsl
therwise>
<span style="color:#000000">
<b>
<xsl:value-of select="t
etails/t:Title"/>
<xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if>
</b>
</span>
</xsl
therwise>
</xsl:choose>
<br/>
<xsl:value-of select="t
etails/t
escription"/>
</td>
<td>
<xsl:attribute name="style">
background-color:#32c864;vertical-align:top;text-align:center
</xsl:attribute>
<span class="sortBy"><xsl:value-of select="$showNum"/></span>
</td>
<td>
<xsl:attribute name="style">
background-color:#32c864;vertical-align:top;text-align:center
</xsl:attribute>
<span class="sortBy"><xsl:value-of select="t
etails/t:CaptureDate"/></span>
<xsl:value-of select="t
etails/t:CaptureDate"/>
</td>
<xsl:variable name="dur" select="t
etails/t
uration div 3600000"/>
<xsl:variable name="hr" select="floor($dur)"/>
<xsl:variable name="min" select="round((($dur)-($hr))*60)"/>
<td style="background-color:#fe9900;vertical-align:top;text-align:center;">
<span class="sortBy"><xsl:value-of select="t
etails/t:SourceSize"/></span>
<xsl:choose>
<xsl:when test="$min = 60">
<xsl:value-of select="$hr+1"/>:00</xsl:when>
<xsl
therwise>
<xsl:value-of select="$hr"/>:<xsl:if test="$min < 10">0</xsl:if><xsl:value-of select="$min"/>
</xsl
therwise>
</xsl:choose>
<br/>
<xsl:variable name="download" select="t:Links/t:Content/t:Url"/>
<a href='{$download}'>
<xsl:value-of select="round(t
etails/t:SourceSize div 1024 div 1024)"/></a> MB
</td>
<td style="background-color:#6565ca;vertical-align:top;text-align:center;">
<xsl:variable name="bs" select="t
etails/t:SourceSize div
(t
etails/t
uration div 1000)"/>
<xsl:variable name="qual">
<xsl:choose>
<xsl:when test="$bs > 600000">Best</xsl:when>
<xsl:when test="$bs > 400000 and $bs < 600000">High</xsl:when>
<xsl:when test="$bs > 300000 and $bs < 400000">Medium</xsl:when>
<xsl
therwise>Basic</xsl
therwise>
</xsl:choose>
</xsl:variable>
<span class="sortBy"><xsl:value-of select="$qual"/></span>
<b><xsl:value-of select="$qual"/></b>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
<xsl:variable name="numSugg" select="count(t:TiVoContainer/t:Item
[t:Links/t:CustomIcon/t:Url='urn:tivo:image:suggestion-recording'])"/>
<xsl:if test="$numSugg > 0">
<hr></hr>
<b id="ts">TiVo Suggestions: </b>
<xsl:value-of select="$numSugg"/>
Shows
<span style="font-family:courier">[<a class='sh' onclick="showSuggTable()">
<xsl:attribute name="id">suggShowHide</xsl:attribute>show</a>]</span><br/>
<table style="display:none;width:100%">
<xsl:attribute name="id">suggTable</xsl:attribute>
<thead>
<tr style="background-color:#E5E5C5;">
<th style="width:1%"><a class='sort' onclick="sortTable(0, 'suggest')">Source</a></th>
<th><a class='sort' onclick="sortTable(1, 'suggest')">Description</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(2, 'suggest')">Captured</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(3, 'suggest')">Size</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(4, 'suggest')">Quality</a></th>
</tr>
</thead>
<tbody>
<xsl:attribute name="id">suggest</xsl:attribute>
<xsl:variable name="numNowPlay" select="count(t:TiVoContainer/t:Item[not(t
etails/t:InProgress
or t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])"/>
<xsl:for-each select="t:TiVoContainer/t:Item
[t:Links/t:CustomIcon/t:Url='urn:tivo:image:suggestion-recording']">
<xsl:sort select="t
etails/t:Title"/>
<xsl:variable name="showUrl" select="t:Links/t:TiVoVideoDetails/t:Url"/>
<xsl:variable name="showNum" select="substring-after($showUrl,'id=')"/>
<tr id="{$showNum}">
<td style="width:1%;background-color:#fc0000;vertical-align:top;text-align:center;">
<span class="sortBy"><xsl:value-of select="t
etails/t:SourceStation"/></span>
<xsl:value-of select="t
etails/t:SourceStation"/>
<br/>
<xsl:value-of select="substring-before(t
etails/t:SourceChannel,'-0')"/>
</td>
<td style="background-color:#F5F595;vertical-align:top;text-align:left;">
<span class="sortBy"><xsl:value-of select="t
etails/t:Title"/></span>
<xsl:variable name="vd" select="t:Links/t:TiVoVideoDetails/t:Url"/>
<span style="float:right;font-family:courier">[<b>details:</b>
<a class='sh' id="SH{$showNum}" onclick="showDetails('{$showNum}')">show</a>]</span>
<xsl:choose>
<xsl:when test="t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:save-until-i-delete-recording'">
<span style="background-color:#00ff00">
<b><xsl:value-of select="t
etails/t:Title"/>
<xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if>
</b>
</span>
</xsl:when>
<xsl
therwise>
<span style="color:#000000">
<b>
<xsl:value-of select="t
etails/t:Title"/>
<xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if>
</b>
</span>
</xsl
therwise>
</xsl:choose>
<br/>
<xsl:value-of select="t
etails/t
escription"/>
</td>
<td >
<xsl:attribute name="style">
width:5%;background-color:#32c864;vertical-align:top;text-align:center
</xsl:attribute>
<span class="sortBy"><xsl:value-of select="t
etails/t:CaptureDate"/></span>
<xsl:value-of select="t
etails/t:CaptureDate"/>
</td>
<xsl:variable name="dur" select="t
etails/t
uration div 3600000"/>
<xsl:variable name="hr" select="floor($dur)"/>
<xsl:variable name="min" select="round((($dur)-($hr))*60)"/>
<td style="width:5%;background-color:#fe9900;vertical-align:top;text-align:center;">
<span class="sortBy"><xsl:value-of select="t
etails/t:SourceSize"/></span>
<xsl:choose>
<xsl:when test="$min = 60">
1:00
</xsl:when>
<xsl
therwise>
<xsl:value-of select="$hr"/>:<xsl:if test="$min < 10">0</xsl:if>
<xsl:value-of select="$min"/>
</xsl
therwise>
</xsl:choose>
<br/>
<xsl:variable name="download" select="t:Links/t:Content/t:Url"/>
<a href='{$download}'>
<xsl:value-of select="round(t
etails/t:SourceSize div 1024 div 1024)"/></a> MB
</td>
<td style="width:5%;background-color:#6565ca;vertical-align:top;text-align:center;">
<xsl:variable name="bs" select="t
etails/t:SourceSize div
(t
etails/t
uration div 1000)"/>
<xsl:variable name="qual">
<xsl:choose>
<xsl:when test="$bs > 600000">Best</xsl:when>
<xsl:when test="$bs > 400000 and $bs < 600000">High</xsl:when>
<xsl:when test="$bs > 300000 and $bs < 400000">Medium</xsl:when>
<xsl
therwise>Basic</xsl
therwise>
</xsl:choose>
</xsl:variable>
<span class="sortBy"><xsl:value-of select="$qual"/></span>
<b><xsl:value-of select="$qual"/></b>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:TvBusMarshalledStruct="http://tivo.com/developer/xml/idl/TvBusMarshalledStruct">
<xsl
utput method="html"/>
<xsl:template match="/TvBusMarshalledStruct:TvBusEnvelope">
<xsl:variable name="oAD" select="showing/program/originalAirDate"/>
<xsl:variable name="expD" select="expirationTime"/>
<xsl:variable name="bkMk" select="vBookmark/element/time"/>
<table style="background-color:#FFFF7E;border-top: 2px solid #000000;border-left: 2px solid #000000;width:100%;">
<tr>
<td style="padding: 2px;width:200px;vertical-align: top;text-align:left">
Watched so far: <xsl:choose>
<xsl:when test="vBookmark/element">
<b>
<xsl:variable name="wsf" select="translate(substring-after
(substring-before($bkMk,'M'),'PT'),'H','h')"/>
<xsl:choose>
<xsl:when test="$wsf"><xsl:value-of select="$wsf"/></xsl:when>
<xsl
therwise><1</xsl
therwise>
</xsl:choose>min</b>
</xsl:when>
<xsl
therwise>(None)</xsl
therwise>
</xsl:choose><br/>
<xsl:if test="showing/program/originalAirDate">
Original Air Date: <b>
<xsl:value-of select="translate(concat(substring($oAD,6,5),'-',substring($oAD,1,4)),'-','/')"/>
</b>
</xsl:if>
<br/>
<xsl:if test="showing/program/episodeNumber">
Episode Number:
<xsl:value-of select="showing/program/episodeNumber"/>
<br/>
</xsl:if>
</td>
<td style="padding: 2px;vertical-align: top">
<xsl:if test="showing/program/vProgramGenre">
Genre:
<xsl:for-each select="showing/program/vProgramGenre/element">
<xsl:value-of select="."/>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
<br/>
</xsl:if>
<xsl:if test="showing/program/movieYear">
Year:
<xsl:value-of select="showing/program/movieYear"/>
<br/>
</xsl:if>
<xsl:if test="showing/program/mpaaRating">
Rated:
<xsl:value-of select="showing/program/mpaaRating"/>
</xsl:if>
</td>
</tr>
<xsl:if test="showing/program/vActor/element">
<tr><td colspan="2" style="padding: 2px">
<u>Actors</u>:
<xsl:for-each select="showing/program/vActor/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vGuestStar/element">
<tr><td colspan="2" style="padding: 2px">
<u>Guest Stars</u>:
<xsl:for-each select="showing/program/vGuestStar/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vHost/element">
<tr><td colspan="2" style="padding: 2px">
<u>Host</u>:
<xsl:for-each select="showing/program/vHost/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vDirector/element">
<tr><td colspan="2" style="padding: 2px">
<u>Directed by</u>:
<xsl:for-each select="showing/program/vDirector/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vWriter/element">
<tr><td colspan="2" style="padding: 2px">
<u>Written by</u>:
<xsl:for-each select="showing/program/vWriter/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vExecProducer/element">
<tr><td colspan="2" style="padding: 2px">
<u>Exec. Produced by</u>:
<xsl:for-each select="showing/program/vExecProducer/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
</table>
</xsl:template>
</xsl:stylesheet>
</head>
<body>
</body>
</html>
On Fri, 29 Jul 2005 03:54:59 -0400, Jason wrote:
>
>I found a sweet browser file on the tivocommunity forum that I
>will share now...
Is it me, or did it not show up?
Let's try again:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Loading...</title>
<script type="text/javascript">
<![CDATA[
var tivo = new Array(5);
DELETE THESE LINES, and save this to a new filename. You must make sure that the
end result filename ends with a .xhtml, or it won't work. If something is going wrong,
check if you have windows set to 'hide extensions for known file types'.
Short version of what that does, it hides the true nature of the files you are looking
at in your folders. For instance, you could be thinking you are looking at a picture
names Mom.jpg and it could really be a virus named Mom.jpg.exe Bad.
I found this file on the tivo community forum. Go there for more info, I don't have it.
The little section just below here is where you plug in the info for your tivo.
the 'Living Room' in the only place you have to change IP NUMBER HERE to a number.
You can find your tivo's ip number in the network section, where it says IP on the
upper right part of the screen. Don't get rid of the " quotes.
The number after the comma is the size of your drive. Parts of this file do math and
figure out how much space you have left on your drive. SWEET!
Put your media access key where it says YOUR MAK HERE, you can find it in the system
menus in your tivo.
Go thank the folks at tivocomunnity.com for this.
If you have more than 1 tivo, then fill in the number and size bits for tivi[1] and
get rid of the 2 little // in front of the line, that will activate that line of code.
Yes, you can change the words inside the "quotes", just don't get rid of the "".
STOP DELETING HERE
tivo[0]=[ "Living Room","IP NUMBER HERE", 80 ];
//[ "Location" , "Tivo's IP" , total gigabytes used to record shows ]
//tivo[1]=[ "Master Bedroom" , "IP NUMBER HERE" , 29.25 ];
//tivo[2]=[ "Den" ,"IP NUMBER HERE" , 69.25 ];
//tivo[3]=[ "Kitchen" , "IP NUMBER HERE" , 109.25 ];
//tivo[4]=[ "Bathroom" , "IP NUMBER HERE" , 0 ];
var mak='YOUR MAK HERE'; //your media access key
var totalGB = tivo[0][2];
var numExpDReqFilled = 0;
window.onload = function (evt) {
if (tivo[1]){
var f = document.createElement('form');
f.setAttribute('name','frmSelTiVo');
f.setAttribute('id','frmSelTiVo');
var s = document.createElement('select');
s.setAttribute('disabled',"disabled");
s.setAttribute('name','selTiVos');
s.setAttribute('id','selTiVos');
s.onchange=getContent;
var o = new Array(5);
var oTN = new Array(5);
for (i = 0; i < 5; i++) {
if (tivo){
o = document.createElement('option');
o.setAttribute('value',tivo[1]);
oTN = document.createTextNode(tivo[0]);
o.appendChild(oTN);
s.appendChild(o);
}
}
f.appendChild(s);
document.body.appendChild(f);
}
getContent();
}
function getContent(){
var tivo_ip = tivo[0][1];
if (document.getElementById("selTiVos")){
var tivo_list = document.getElementById("selTiVos");
tivo_list.setAttribute('disabled','disabled');
tivo_ip = tivo_list.options[tivo_list.selectedIndex].value;
totalGB = tivo[tivo_list.selectedIndex][2];
}
document.title="Loading...";
if (document.getElementById('content')){
document.body.removeChild(document.getElementById('content'));
}
var contentDiv = document.createElement('div');
contentDiv.setAttribute('id','content');
document.body.appendChild(contentDiv);
var xsltNS = 'http://www.w3.org/1999/XSL/Transform';
var xsltSheet = document.getElementsByTagNameNS(xsltNS, 'stylesheet')[0];
var xsltProcessor = new XSLTProcessor();
var xmlDoc;
xsltProcessor.importStylesheet(xsltSheet);
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+
'/TiVoConnect?Command=QueryContainer&Container=%2FNowPlaying&Recurse=Yes'
, true,'tivo',mak);
myXMLHTTPRequest.send(null);
myXMLHTTPRequest.onreadystatechange=function() {
if (myXMLHTTPRequest.readyState==4) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
xmlDoc = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
document.getElementById('content').appendChild(fragment);
convertDates();
calcTimeLeft();
if (document.getElementById("nRI")) getNowRecInfo(tivo_ip);
var tblNP = document.getElementById('nowPlay');
for (i = 0; i < tblNP.rows.length; i++) {
getExpDate(tivo_ip, tblNP.rows.cells[2], tblNP.rows.length);
}
if (document.getElementById("selTiVos")){
document.getElementById("selTiVos").removeAttribute('disabled');
}
}
}
}
function getNowRecInfo(tivo_ip){
var nRSpan = document.getElementById("nRI");
var vd = nRSpan.childNodes[0].nodeValue;
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+vd, true,'tivo',mak);
myXMLHTTPRequest.send(null);
myXMLHTTPRequest.onreadystatechange=function() {
if (myXMLHTTPRequest.readyState==4) {
if (myXMLHTTPRequest.status!=200){
getNowRecInfo(tivo_ip);
} else {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
var responseText = myXMLHTTPRequest.responseText;
var zuluTime = responseText.match( /<expirationTime>(.+)<\/expirationTime>/ );
var y = zuluTime[1].substring(0,4);
var mo = zuluTime[1].substring(5,7);
var d = zuluTime[1].substring(8,10);
var h = zuluTime[1].substring(11,13);
var m = zuluTime[1].substring(14,16);
var s = zuluTime[1].substring(17,19);
var expDate = new Date(Date.UTC(y,mo-1,d,h,m,s));
var weekday=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var d =weekday[expDate.getDay()]+' '+(expDate.getMonth()+1)+'/'+expDate.getDate();
expDate = d+" "+getClockTime(expDate)
var quality = responseText.match( /<recordingQuality.+>(.+)<\/recordingQuality>/);
if (quality[1]=="GOOD") quality[1]="BASIC";
var recDur = responseText.match( /<recordedDuration>(.+)<\/recordedDuration>/ );
var dur = responseText.match( /<showing>.+<duration>(.+?)<\/duration>/ );
nRSpan.childNodes[0].nodeValue="Quality: "+quality[1]+" | Partialness: "
+recDur[1].substring(2)+" of "+dur[1].substring(2)
+" | Will Expire: "+expDate+"}";
nRSpan.className = '';
}
}
}
}
function getExpDate(tivo_ip, node, timesToBeCalled){
var showId = node.childNodes[0].childNodes[0].nodeValue;
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+
'/TiVoVideoDetails?id='+showId, true,'tivo',mak);
myXMLHTTPRequest.send(null);
myXMLHTTPRequest.onreadystatechange=function() {
if (myXMLHTTPRequest.readyState==4) {
if (myXMLHTTPRequest.status!=200){
getExpDate(tivo_ip, node, timesToBeCalled);
} else {
numExpDReqFilled++;
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
var responseText = myXMLHTTPRequest.responseText;
var zuluTime = responseText.match( /<expirationTime>(.+)<\/expirationTime>/ )
var spanNode = document.createElement("span");
if (zuluTime[1]=='2038-01-19T00:00:00Z') {
var textNode=document.createTextNode('Never');
spanNode.appendChild(textNode);
node.appendChild(spanNode);
node.childNodes[0].childNodes[0].nodeValue=9999999999;
} else{
var y = zuluTime[1].substring(0,4);
var mo = zuluTime[1].substring(5,7);
var d = zuluTime[1].substring(8,10);
var h = zuluTime[1].substring(11,13);
var m = zuluTime[1].substring(14,16);
var s = zuluTime[1].substring(17,19);
var expDate = new Date(Date.UTC(y,mo-1,d,h,m,s));
var weekday=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var d =weekday[expDate.getDay()]+' '+(expDate.getMonth()+1)+'/'+expDate.getDate();
var textNode=document.createTextNode(d);
var di = document.createElement("div");
var tn = document.createTextNode(getClockTime(expDate));
di.appendChild(tn);
spanNode.appendChild(textNode);
spanNode.appendChild(di);
node.appendChild(spanNode);
node.childNodes[0].childNodes[0].nodeValue=(expDate.getTime()/1000);
}
if (numExpDReqFilled==timesToBeCalled){
numExpDReqFilled = 0
var where = " on my Tivo";
if (document.getElementById("selTiVos")){
var tivo_list = document.getElementById("selTiVos");
where = " in my "+tivo_list.options[tivo_list.selectedIndex].childNodes[0].nodeValue
}
document.title="Now Playing"+where;
if (document.getElementById('exp')) document.getElementById('exp').className = 'sort';
}
}
}
}
}
function convertDates(){
var tblNP = document.getElementById('nowPlay');
for (i = 0; i < tblNP.rows.length; i++) {
var hexDate = tblNP.rows.cells[3].childNodes[1].nodeValue;
var d=new Date((parseInt(hexDate, 16))*1000+2000);
var weekday=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var newValue =weekday[d.getDay()]+' '+(d.getMonth()+1)+'/'+d.getDate();
tblNP.rows.cells[3].childNodes[1].nodeValue = newValue;
var di = document.createElement("div");
var tn = document.createTextNode(getClockTime(d));
di.appendChild(tn);
tblNP.rows.cells[3].appendChild(di);
}
if (document.getElementById('suggest')) {
var tblSu = document.getElementById('suggest');
for (i = 0; i < tblSu.rows.length; i++) {
var hexDate = tblSu.rows.cells[2].childNodes[1].nodeValue;
var d=new Date((parseInt(hexDate, 16))*1000+2000);
var weekday=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var newValue =weekday[d.getDay()]+' '+(d.getMonth()+1)+'/'+d.getDate();
tblSu.rows.cells[2].childNodes[1].nodeValue = newValue;
var di = document.createElement("div");
var tn = document.createTextNode(getClockTime(d));
di.appendChild(tn);
tblSu.rows.cells[2].appendChild(di);
}
}
}
function getClockTime(d)
{
var hour = d.getHours();
var minute = d.getMinutes();
var ap = "A";
if (hour > 11) { ap = "P";}
if (hour > 12) { hour = hour - 12; }
if (hour == 0) { hour = 12; }
if (minute < 10) { minute = "0" + minute; }
var timeString = hour + ':' + minute +ap;
return timeString;
}
function calcTimeLeft(){
var used = document.body.getElementsByTagName('i')[0].childNodes[0].nodeValue;
if (totalGB>used) {
var leftGB = totalGB - used;
var bestHoursLeft = leftGB * 1073741824/763712/3600;
var bestHo = Math.floor(bestHoursLeft);
var bestMin = Math.round((bestHoursLeft - bestHo)*60);
var highHoursLeft = leftGB * 1073741824/475354/3600;
var highHo = Math.floor(highHoursLeft);
var highMin = Math.round((highHoursLeft - highHo)*60);
var medHoursLeft = leftGB * 1073741824/361759/3600;
var medHo = Math.floor(medHoursLeft);
var medMin = Math.round((medHoursLeft - medHo)*60);
var basHoursLeft = leftGB * 1073741824/213210/3600;
var basHo = Math.floor(basHoursLeft);
var basMin = Math.round((basHoursLeft - basHo)*60);
var h2 = document.createElement("h2");
var tn = document.createTextNode('TimeLeft: ~ '
+bestHo+'hr '+bestMin+'min (@Best) || '
+highHo+'hr '+highMin+'min (@High) || '
+medHo+'hr '+medMin+'min (@Medium) || '
+basHo+'hr '+basMin+'min (@Basic)');
h2.appendChild(tn);
document.body.getElementsByTagName('h1')[0].appendChild(h2);
}
}
function sortTable(col, tableBody) {
var tblEl = document.getElementById(tableBody);
if (tblEl.reverseSort == null) tblEl.reverseSort = new Array();
if (col == tblEl.lastColumn) tblEl.reverseSort[col] = !tblEl.reverseSort[col];
tblEl.lastColumn = col;
var oldDsply = tblEl.style.display;
tblEl.style.display = "none";
var tmpEl, i, j, minVal, minIdx, testVal, cmp;
for (i = 0; i < tblEl.rows.length - 1; i++) {
minIdx = i;
minVal = tblEl.rows.cells[col].childNodes[0].childNodes[0].nodeValue;
for (j = i + 1; j < tblEl.rows.length; j++) {
testVal = tblEl.rows[j].cells[col].childNodes[0].childNodes[0].nodeValue;
cmp = compareValues(minVal, testVal);
if (tblEl.reverseSort[col])
cmp = -cmp;
if (cmp > 0) {
minIdx = j;
minVal = testVal;
}
}
if (minIdx > i) {
tmpEl = tblEl.removeChild(tblEl.rows[minIdx]);
tblEl.insertBefore(tmpEl, tblEl.rows);
}
}
tblEl.style.display = oldDsply;
}
function compareValues(v1, v2) {
var f1, f2;
if (v1.substring(0,4)=='The ') v1=v1.substring(4);
if (v1.substring(0,2)=='A ') v1=v1.substring(2);
if (v2.substring(0,4)=='The ') v2=v2.substring(4);
if (v2.substring(0,2)=='A ') v2=v2.substring(2);
if (v1.substring(0,2)=='0x'){
f1 = parseInt(v1,16);
f2 = parseInt(v2,16);
} else {
f1= parseInt(v1);
f2=parseInt(v2);
}
if (!isNaN(f1) && !isNaN(f2)) {
v1 = f1;
v2 = f2;
}
if (v1 == v2) return 0;
if (v1 > v2) return 1
return -1;
}
function showNowRecordingDetails(urlend){
var tivo_ip = tivo[0][1];
if (document.getElementById("selTiVos")){
var tivo_list = document.getElementById("selTiVos");
tivo_ip = tivo_list.options[tivo_list.selectedIndex].value;
}
if (document.getElementById("nowRec").childNodes[0].nodeValue=="show"){
document.getElementById("nowRec").childNodes[0].nodeValue="hide";
var xsltProcessor = new XSLTProcessor();
var xsltSheet = document.getElementsByTagNameNS('http://www.w3.org/1999/XSL/Transform', 'stylesheet')[1];
xsltProcessor.importStylesheet(xsltSheet);
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+urlend, false,'tivo',mak);
myXMLHTTPRequest.send(null);
xmlDoc = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
var nr=document.getElementById("recDesc");
nr.appendChild(fragment);
} else {
var nr=document.getElementById("recDesc");
nr.removeChild(nr.lastChild);
document.getElementById("nowRec").childNodes[0].nodeValue="show";
}
}
function showDetails(showNum){
var tivo_ip = tivo[0][1];
if (document.getElementById("selTiVos")){
var tivo_list = document.getElementById("selTiVos");
tivo_ip = tivo_list.options[tivo_list.selectedIndex].value;
}
if (document.getElementById('SH'+showNum).childNodes[0].nodeValue=="show"){
var xsltProcessor = new XSLTProcessor();
var xsltSheet = document.getElementsByTagNameNS('http://www.w3.org/1999/XSL/Transform', 'stylesheet')[1];
xsltProcessor.importStylesheet(xsltSheet);
var myXMLHTTPRequest = new XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
myXMLHTTPRequest.open("GET", 'https://'+tivo_ip+'/TiVoVideoDetails?id='+showNum, false,'tivo',mak);
myXMLHTTPRequest.send(null);
xmlDoc = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
var row=document.getElementById(showNum);
row.childNodes[1].appendChild(fragment);
document.getElementById('SH'+showNum).childNodes[0].nodeValue="hide";
} else {
var row=document.getElementById(showNum);
row.childNodes[1].removeChild(row.childNodes[1].lastChild);
document.getElementById('SH'+showNum).childNodes[0].nodeValue="show";
}
}
function showSuggTable() {
if (document.getElementById("suggShowHide").childNodes[0].nodeValue=="show"){
document.getElementById("suggTable").style.display="block";
document.getElementById("suggShowHide").childNodes[0].nodeValue="hide"
} else {
document.getElementById("suggTable").style.display="none";
document.getElementById("suggShowHide").childNodes[0].nodeValue="show"
}
}
]]>
</script>
<style type="text/css">
body { font-family: sans-serif }
a.sh { cursor: pointer; color:#0000ff }
a.search{ text-decoration:none;color:#000000}
a.search:hover { color:#0000ff;text-decoration:underline}
a.sort { cursor: pointer; color:#000000 }
a.sort:hover { color:#790619}
.sortBy {display:none}
.cantSortYet { color:#ffffff }
.nRDisplayHide {display:none }
h1 { font-size: large }
h2 { font-size: medium }
tr { font-size: small }
th { font-size: small; padding: 7px }
td { font-size: small; padding: 7px }
</style>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:t="http://www.tivo.com/developer/calypso-protocol-1.5/">
<xsl
utput method="html"/><xsl:template match="/">
<xsl:for-each select="t:TiVoContainer/t:Item[t
etails/t:InProgress]"><xsl:variable name="vd" select="t:Links/t:TiVoVideoDetails/t:Url"/>
<span style="font-size:large"><b>Now Recording</b></span><br/>
<b>
<xsl:value-of select="t
etails/t:SourceStation"/> Ch. <xsl:value-of select="substring-before(t
etails/t:SourceChannel,'-0')"/>-
<xsl:value-of select="t
etails/t:Title"/><xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if></b>
<span style="font-family:courier">[<b>details:</b>
<a class='sh' onclick="showNowRecordingDetails('{$vd}')">
<xsl:attribute name="id">nowRec</xsl:attribute>show</a>]
</span>
<br/>
<span style="font-size:small">
<b>
<xsl:choose>
<xsl:when test="../t:Item[1]/t
etails/t:InProgress"> {Planned | </xsl:when><xsl
therwise> {Suggestion | </xsl
therwise></xsl:choose>
<span class="nRDisplayHide">
<xsl:attribute name="id">nRI</xsl:attribute>
<xsl:value-of select="$vd"/></span>
</b>
</span>
<br/>
<span>
<xsl:attribute name="id">recDesc</xsl:attribute>
<xsl:value-of select="t
etails/t
escription"/></span><hr></hr>
</xsl:for-each>
<h1>4485732656 Now Playing -
<xsl:value-of select="count(t:TiVoContainer/t:Item[not(t
etails/t:InProgress or t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])"/>
Shows
<xsl:variable name="hr" select="floor(sum(//t
uration[not(../t:InProgress or ../../t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])
div 3600000)"/>
<xsl:variable name="min" select="(sum(//t
uration[not(../t:InProgress or ../../t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])
div 3600000)-$hr"/>
(<xsl:value-of select="$hr"/>hr
<xsl:value-of select="round($min*6000 div 100)"/>min using
<b><i>
<xsl:value-of select="round(sum(//t:SourceSize[not(../t:InProgress
or ../../t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])
div 1073741824 * 100) div 100"/>
</i></b><b>GB</b>)
</h1>
<table id='tab' style="width:100%;">
<thead>
<tr style="background-color:#E5E5C5;">
<th style="width:1%"><a class='sort' onclick="sortTable(0, 'nowPlay')">Source</a></th>
<th><a class='sort' onclick="sortTable(1, 'nowPlay')">Description</a></th>
<th style="width:5%"><a class='cantSortYet' onclick="sortTable(2, 'nowPlay')">
<xsl:attribute name="id">exp</xsl:attribute>Expires</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(3, 'nowPlay')">Captured</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(4, 'nowPlay')">Size</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(5, 'nowPlay')">Quality</a></th>
</tr>
</thead>
<tbody>
<xsl:attribute name="id">nowPlay</xsl:attribute>
<xsl:for-each select="t:TiVoContainer/t:Item[not(t
etails/t:InProgress or t:Links/t:CustomIcon/t:Url='urn:tivo:image:suggestion-recording')]">
<xsl:variable name="showUrl" select="t:Links/t:TiVoVideoDetails/t:Url"/>
<xsl:variable name="showNum" select="substring-after($showUrl,'id=')"/>
<tr id="{$showNum}">
<td style="background-color:#fc0000;vertical-align:top;text-align:center;">
<span class="sortBy"><xsl:value-of select="t
etails/t:SourceStation"/></span><xsl:value-of select="t
etails/t:SourceStation"/><br/><xsl:value-of select="substring-before(t
etails/t:SourceChannel,'-0')"/></td>
<td style="background-color:#F5F595;vertical-align:top;text-align:left;">
<span class="sortBy"><xsl:value-of select="t
etails/t:Title"/></span><span style="float:right;font-family:courier">[<b>details:</b>
<a class='sh' id="SH{$showNum}" onclick="showDetails('{$showNum}')">show</a>]</span>
<xsl:choose>
<xsl:when test="t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:save-until-i-delete-recording'">
<span style="background-color:#00ff00">
<b>
<xsl:value-of select="t
etails/t:Title"/><xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if></b>
</span>
</xsl:when>
<xsl
therwise><span style="color:#000000">
<b>
<xsl:value-of select="t
etails/t:Title"/><xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if></b>
</span>
</xsl
therwise></xsl:choose>
<br/>
<xsl:value-of select="t
etails/t
escription"/></td>
<td>
<xsl:attribute name="style">
background-color:#32c864;vertical-align:top;text-align:center
</xsl:attribute>
<span class="sortBy"><xsl:value-of select="$showNum"/></span>
</td>
<td>
<xsl:attribute name="style">
background-color:#32c864;vertical-align:top;text-align:center
</xsl:attribute>
<span class="sortBy"><xsl:value-of select="t
etails/t:CaptureDate"/></span><xsl:value-of select="t
etails/t:CaptureDate"/></td>
<xsl:variable name="dur" select="t
etails/t
uration div 3600000"/><xsl:variable name="hr" select="floor($dur)"/>
<xsl:variable name="min" select="round((($dur)-($hr))*60)"/>
<td style="background-color:#fe9900;vertical-align:top;text-align:center;">
<span class="sortBy"><xsl:value-of select="t
etails/t:SourceSize"/></span><xsl:choose>
<xsl:when test="$min = 60">
<xsl:value-of select="$hr+1"/>:00</xsl:when>
<xsl
therwise><xsl:value-of select="$hr"/>:<xsl:if test="$min < 10">0</xsl:if><xsl:value-of select="$min"/>
</xsl
therwise></xsl:choose>
<br/>
<xsl:variable name="download" select="t:Links/t:Content/t:Url"/>
<a href='{$download}'>
<xsl:value-of select="round(t
etails/t:SourceSize div 1024 div 1024)"/></a> MB</td>
<td style="background-color:#6565ca;vertical-align:top;text-align:center;">
<xsl:variable name="bs" select="t
etails/t:SourceSize div (t
etails/t
uration div 1000)"/><xsl:variable name="qual">
<xsl:choose>
<xsl:when test="$bs > 600000">Best</xsl:when>
<xsl:when test="$bs > 400000 and $bs < 600000">High</xsl:when>
<xsl:when test="$bs > 300000 and $bs < 400000">Medium</xsl:when>
<xsl
therwise>Basic</xsl
therwise></xsl:choose>
</xsl:variable>
<span class="sortBy"><xsl:value-of select="$qual"/></span>
<b><xsl:value-of select="$qual"/></b>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
<xsl:variable name="numSugg" select="count(t:TiVoContainer/t:Item
[t:Links/t:CustomIcon/t:Url='urn:tivo:image:suggestion-recording'])"/>
<xsl:if test="$numSugg > 0">
<hr></hr>
<b id="ts">TiVo Suggestions: </b>
<xsl:value-of select="$numSugg"/>
Shows
<span style="font-family:courier">[<a class='sh' onclick="showSuggTable()">
<xsl:attribute name="id">suggShowHide</xsl:attribute>show</a>]</span><br/>
<table style="display:none;width:100%">
<xsl:attribute name="id">suggTable</xsl:attribute>
<thead>
<tr style="background-color:#E5E5C5;">
<th style="width:1%"><a class='sort' onclick="sortTable(0, 'suggest')">Source</a></th>
<th><a class='sort' onclick="sortTable(1, 'suggest')">Description</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(2, 'suggest')">Captured</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(3, 'suggest')">Size</a></th>
<th style="width:5%"><a class='sort' onclick="sortTable(4, 'suggest')">Quality</a></th>
</tr>
</thead>
<tbody>
<xsl:attribute name="id">suggest</xsl:attribute>
<xsl:variable name="numNowPlay" select="count(t:TiVoContainer/t:Item[not(t
etails/t:InProgress or t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:suggestion-recording')])"/>
<xsl:for-each select="t:TiVoContainer/t:Item
[t:Links/t:CustomIcon/t:Url='urn:tivo:image:suggestion-recording']">
<xsl:sort select="t
etails/t:Title"/><xsl:variable name="showUrl" select="t:Links/t:TiVoVideoDetails/t:Url"/>
<xsl:variable name="showNum" select="substring-after($showUrl,'id=')"/>
<tr id="{$showNum}">
<td style="width:1%;background-color:#fc0000;vertical-align:top;text-align:center;">
<span class="sortBy"><xsl:value-of select="t
etails/t:SourceStation"/></span><xsl:value-of select="t
etails/t:SourceStation"/><br/>
<xsl:value-of select="substring-before(t
etails/t:SourceChannel,'-0')"/></td>
<td style="background-color:#F5F595;vertical-align:top;text-align:left;">
<span class="sortBy"><xsl:value-of select="t
etails/t:Title"/></span><xsl:variable name="vd" select="t:Links/t:TiVoVideoDetails/t:Url"/>
<span style="float:right;font-family:courier">[<b>details:</b>
<a class='sh' id="SH{$showNum}" onclick="showDetails('{$showNum}')">show</a>]</span>
<xsl:choose>
<xsl:when test="t:Links/t:CustomIcon/t:Url=
'urn:tivo:image:save-until-i-delete-recording'">
<span style="background-color:#00ff00">
<b><xsl:value-of select="t
etails/t:Title"/><xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if></b>
</span>
</xsl:when>
<xsl
therwise><span style="color:#000000">
<b>
<xsl:value-of select="t
etails/t:Title"/><xsl:if test="t
etails/t:EpisodeTitle">: "<xsl:value-of select="t
etails/t:EpisodeTitle"/>"</xsl:if></b>
</span>
</xsl
therwise></xsl:choose>
<br/>
<xsl:value-of select="t
etails/t
escription"/></td>
<td >
<xsl:attribute name="style">
width:5%;background-color:#32c864;vertical-align:top;text-align:center
</xsl:attribute>
<span class="sortBy"><xsl:value-of select="t
etails/t:CaptureDate"/></span><xsl:value-of select="t
etails/t:CaptureDate"/></td>
<xsl:variable name="dur" select="t
etails/t
uration div 3600000"/><xsl:variable name="hr" select="floor($dur)"/>
<xsl:variable name="min" select="round((($dur)-($hr))*60)"/>
<td style="width:5%;background-color:#fe9900;vertical-align:top;text-align:center;">
<span class="sortBy"><xsl:value-of select="t
etails/t:SourceSize"/></span><xsl:choose>
<xsl:when test="$min = 60">
1:00
</xsl:when>
<xsl
therwise><xsl:value-of select="$hr"/>:<xsl:if test="$min < 10">0</xsl:if>
<xsl:value-of select="$min"/>
</xsl
therwise></xsl:choose>
<br/>
<xsl:variable name="download" select="t:Links/t:Content/t:Url"/>
<a href='{$download}'>
<xsl:value-of select="round(t
etails/t:SourceSize div 1024 div 1024)"/></a> MB</td>
<td style="width:5%;background-color:#6565ca;vertical-align:top;text-align:center;">
<xsl:variable name="bs" select="t
etails/t:SourceSize div (t
etails/t
uration div 1000)"/><xsl:variable name="qual">
<xsl:choose>
<xsl:when test="$bs > 600000">Best</xsl:when>
<xsl:when test="$bs > 400000 and $bs < 600000">High</xsl:when>
<xsl:when test="$bs > 300000 and $bs < 400000">Medium</xsl:when>
<xsl
therwise>Basic</xsl
therwise></xsl:choose>
</xsl:variable>
<span class="sortBy"><xsl:value-of select="$qual"/></span>
<b><xsl:value-of select="$qual"/></b>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:TvBusMarshalledStruct="http://tivo.com/developer/xml/idl/TvBusMarshalledStruct">
<xsl
utput method="html"/><xsl:template match="/TvBusMarshalledStruct:TvBusEnvelope">
<xsl:variable name="oAD" select="showing/program/originalAirDate"/>
<xsl:variable name="expD" select="expirationTime"/>
<xsl:variable name="bkMk" select="vBookmark/element/time"/>
<table style="background-color:#FFFF7E;border-top: 2px solid #000000;border-left: 2px solid #000000;width:100%;">
<tr>
<td style="padding: 2px;width:200px;vertical-align: top;text-align:left">
Watched so far: <xsl:choose>
<xsl:when test="vBookmark/element">
<b>
<xsl:variable name="wsf" select="translate(substring-after
(substring-before($bkMk,'M'),'PT'),'H','h')"/>
<xsl:choose>
<xsl:when test="$wsf"><xsl:value-of select="$wsf"/></xsl:when>
<xsl
therwise><1</xsl
therwise></xsl:choose>min</b>
</xsl:when>
<xsl
therwise>(None)</xsl
therwise></xsl:choose><br/>
<xsl:if test="showing/program/originalAirDate">
Original Air Date: <b>
<xsl:value-of select="translate(concat(substring($oAD,6,5),'-',substring($oAD,1,4)),'-','/')"/>
</b>
</xsl:if>
<br/>
<xsl:if test="showing/program/episodeNumber">
Episode Number:
<xsl:value-of select="showing/program/episodeNumber"/>
<br/>
</xsl:if>
</td>
<td style="padding: 2px;vertical-align: top">
<xsl:if test="showing/program/vProgramGenre">
Genre:
<xsl:for-each select="showing/program/vProgramGenre/element">
<xsl:value-of select="."/>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
<br/>
</xsl:if>
<xsl:if test="showing/program/movieYear">
Year:
<xsl:value-of select="showing/program/movieYear"/>
<br/>
</xsl:if>
<xsl:if test="showing/program/mpaaRating">
Rated:
<xsl:value-of select="showing/program/mpaaRating"/>
</xsl:if>
</td>
</tr>
<xsl:if test="showing/program/vActor/element">
<tr><td colspan="2" style="padding: 2px">
<u>Actors</u>:
<xsl:for-each select="showing/program/vActor/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vGuestStar/element">
<tr><td colspan="2" style="padding: 2px">
<u>Guest Stars</u>:
<xsl:for-each select="showing/program/vGuestStar/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vHost/element">
<tr><td colspan="2" style="padding: 2px">
<u>Host</u>:
<xsl:for-each select="showing/program/vHost/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vDirector/element">
<tr><td colspan="2" style="padding: 2px">
<u>Directed by</u>:
<xsl:for-each select="showing/program/vDirector/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vWriter/element">
<tr><td colspan="2" style="padding: 2px">
<u>Written by</u>:
<xsl:for-each select="showing/program/vWriter/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
<xsl:if test="showing/program/vExecProducer/element">
<tr><td colspan="2" style="padding: 2px">
<u>Exec. Produced by</u>:
<xsl:for-each select="showing/program/vExecProducer/element">
<xsl:variable name="fname" select="substring-after(.,'|')"/>
<xsl:variable name="lname" select="substring-before(.,'|')"/>
<xsl:variable name="nam">
<xsl:value-of select="concat($fname,' ',$lname)"/>
</xsl:variable>
<a class='search' href="http://www.imdb.com/Find?for={$fname}%20{$lname}&select=People">
<xsl:value-of select="$nam"/></a>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
</td></tr>
</xsl:if>
</table>
</xsl:template>
</xsl:stylesheet>
</head>
<body>
</body>
</html>
Related resources
- SolvedNew desktop not displaying on monitor. Problem between mobo and cpu? Forum
- SolvedDesktop GPU problem Forum
- SolvedProblem connecting desktop to router by ethernet Forum
- Philips 212 Standalone Tivo Problem Forum
- The Only Problem with Tivo... Forum
- TiVo MyDVD recording problem Forum
- Tivo problem - no signal received! Forum
- Tivo problem only at friends homes Forum
- New TiVo 2 and weird problem with sound Forum
- New TiVo 2 and weird problem with sound Forum
- tivo picture problem Forum
- SolvedProblem connecting Win7 Desktop to Win8 Laptop Forum
- Solveddesktop board display problem Forum
- SolvedHigh-wattage PSU on a Low-wattage Desktop -- Additional watts consumed? (math problem) Forum
- SolvedUpgrading Desktop GPU,Ram, and adding wireless. fix problem? Forum
- More resources
Read discussions in other Home Theatre Legacy categories
!