annotate nodejs/examples/mce/epg.js @ 1496:042587afed2e

Add popup menu for transition
author Thinker K.F. Li <thinker@codemud.net>
date Tue, 03 May 2011 12:35:04 +0800
parents 9bd8e814f730
children
rev   line source
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
1 // -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*-
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
2 // vim: sw=4:ts=8:sts=4
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
3 var http = require('http');
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
4 var URL = require('url');
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
5 var sys = require("sys");
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
6 var fs = require("fs");
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
7 var os = require("child_process");
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
8 function EPG()
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
9 {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
10 var epgsrv = http.createClient(8080, '211.23.50.144');
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
11 var cmd = '{"Protocol":"EPG-CSP","Command":"SearchRequest","ProgramCat":"MainCat"}';
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
12 var headers={
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
13 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
14 'Host':'211.23.50.144:8080',
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
15 'User-Agent':'MadButterfly',
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
16 'Content-Type':'application/x-www-form-urlencoded'
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
17 };
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
18 headers['Content-Length'] = cmd.length;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
19 var request = epgsrv.request('POST', '/IPTV_EPG/EPGService.do?timestamp='+new Date().getTime(),headers);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
20 var self = this;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
21 sys.puts("aaaa");
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
22 var js = '';
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
23 request.write(cmd);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
24 request.end();
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
25 request.on('response', function(res) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
26 sys.puts("connected");
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
27 res.on('data',function (data) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
28 js = js + data;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
29 });
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
30 res.on('end', function () {
1122
3d438daea48c Add the handler for the next page
wycc
parents: 1065
diff changeset
31 try {
3d438daea48c Add the handler for the next page
wycc
parents: 1065
diff changeset
32 res = JSON.parse(js);
3d438daea48c Add the handler for the next page
wycc
parents: 1065
diff changeset
33 } catch(e) {
3d438daea48c Add the handler for the next page
wycc
parents: 1065
diff changeset
34 sys.puts(e);
3d438daea48c Add the handler for the next page
wycc
parents: 1065
diff changeset
35 sys.puts(js);
3d438daea48c Add the handler for the next page
wycc
parents: 1065
diff changeset
36 }
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
37 sys.puts("parsed");
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
38 self.onLoad(res);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
39
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
40 });
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
41 });
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
42 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
43
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
44
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
45 /**
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
46 * Check if the file has been cached. Create a symbolic to link if it is cached already.
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
47 *
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
48 */
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
49 function isCached(cachepath,file,obj) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
50 var fields = cachepath.split('.');
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
51 try {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
52 var ext = fields.pop();
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
53 var pngfile = cachepath;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
54 sys.puts("ext="+ext);
1386
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
55 //if (ext != 'png') {
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
56 // fields.push('png');
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
57 // pngfile = fields.join('.');
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
58 //}
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
59 var st = fs.statSync(pngfile);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
60 try {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
61 fs.unlinkSync(file);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
62 } catch(e) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
63 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
64 fs.linkSync(pngfile, file);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
65 obj.pend = obj.pend - 1;
1386
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
66 try {
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
67 if (obj.pend == 0) {
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
68 obj.onInitDone();
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
69 }
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
70 } catch(e) {
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
71 sys.puts(e);
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
72 }
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
73 return 1;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
74 } catch(e) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
75 sys.puts(e);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
76 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
77 return 0;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
78 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
79
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
80 /**
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
81 * Implement the mkdir -p to create the directory
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
82 */
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
83 function CreateDirectory(cachepath)
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
84 {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
85 var fields = cachepath.split('/');
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
86 var p='';
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
87 for(i=0;i<fields.length-1;i++) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
88 p = p + fields[i]+'/';
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
89 try {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
90 fs.mkdirSync(p,0777);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
91 } catch(e) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
92 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
93 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
94 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
95 /*
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
96 * We will check the cache directory. If the file is available, we will create a symbolic link only. Otherwise,
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
97 * we will fetch it before create the symbolic link.
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
98 */
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
99 function httpGetFile(url,file,obj)
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
100 {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
101 sys.puts("fetch "+ file);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
102 var u = URL.parse(url);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
103 var cachepath = 'cache/'+u.pathname;
1409
b8ba20b8f91a Call onInitDOne when all pictures are loaded.
wycc
parents: 1386
diff changeset
104 if (isCached(cachepath,file,obj)) {
b8ba20b8f91a Call onInitDOne when all pictures are loaded.
wycc
parents: 1386
diff changeset
105 return;
b8ba20b8f91a Call onInitDOne when all pictures are loaded.
wycc
parents: 1386
diff changeset
106 }
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
107 CreateDirectory(cachepath);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
108
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
109 // Fetch file from the server and convert it tyo PNG if it is not PNG format.
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
110 var f = fs.openSync(cachepath,'w');
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
111 sys.puts("f="+f);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
112 var headers={
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
113 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
114 'Host':'211.23.50.144:8080',
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
115 'User-Agent':'MadButterfly',
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
116 'Content-Type':'application/x-www-form-urlencoded'
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
117 };
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
118 sys.puts("host="+u.host+' '+u.port+' '+u.pathname);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
119 for(k in u) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
120 sys.puts(k+"--->"+u[k]);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
121 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
122 var c = http.createClient(8080,'211.23.50.144');
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
123 var req = c.request('GET',u.pathname,headers);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
124 req.end();
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
125 req.on('response', function(res) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
126 res.on('data',function(data) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
127 fs.writeSync(f,data,0,data.length);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
128 });
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
129 res.on('end',function() {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
130 fs.close(f);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
131 var fields = cachepath.split('.');
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
132 var ext = fields.pop();
1122
3d438daea48c Add the handler for the next page
wycc
parents: 1065
diff changeset
133 if (ext != "png" && ext != 'jpg') {
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
134 fields.push("png");
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
135 newf = fields.join(".");
1035
18329b6f77a4 Generate the PNG fropm the JPG file. We need to add the JPG/GIF graphics format
wycc
parents: 932
diff changeset
136 sys.puts("cachepath="+cachepath+" newf="+newf);
18329b6f77a4 Generate the PNG fropm the JPG file. We need to add the JPG/GIF graphics format
wycc
parents: 932
diff changeset
137 os.spawn("convert",[cachepath,newf]);
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
138 } else {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
139 newf = cachepath;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
140 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
141 try {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
142 fs.unlinkSync(file);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
143 } catch(e) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
144 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
145 sys.puts("end of "+cachepath+" to "+file);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
146 fs.symlinkSync(newf, file);
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
147 obj.pend = obj.pend - 1;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
148 if (obj.pend == 0) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
149 obj.onInitDone();
1409
b8ba20b8f91a Call onInitDOne when all pictures are loaded.
wycc
parents: 1386
diff changeset
150 sys.puts("done");
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
151 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
152
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
153 });
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
154
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
155 });
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
156 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
157
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
158 EPG.prototype.onLoad = function(res) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
159 cats = res['ProgramCat'];
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
160 this.pend = cats.length;
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
161 this.maincat = cats;
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
162 for (i in cats) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
163 c = cats[i];
1386
9f3f20c4a4fb Use jpg instead of PNG.
wycc
parents: 1122
diff changeset
164 httpGetFile(c['ProgramPIC'],'cat'+i+'.jpg',this);
1409
b8ba20b8f91a Call onInitDOne when all pictures are loaded.
wycc
parents: 1386
diff changeset
165 sys.puts("this.pend="+this.pend);
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
166 }
1409
b8ba20b8f91a Call onInitDOne when all pictures are loaded.
wycc
parents: 1386
diff changeset
167 if (this.pend == 0)
b8ba20b8f91a Call onInitDOne when all pictures are loaded.
wycc
parents: 1386
diff changeset
168 this.onInitDone();
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
169 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
170
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
171 EPG.prototype.getList=function(item,func) {
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
172 var epgsrv = http.createClient(8080, '211.23.50.144');
1441
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
173 for (k in this.maincat[item]) {
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
174 sys.puts(k+"--->"+this.maincat[item][k]);
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
175 }
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
176 var catID = this.maincat[item]['Category'];
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
177 sys.puts(catID);
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
178 var cmd = '{"Protocol":"EPG-CSP","Command":"SearchRequest","ProgramSub":"'+catID+'"}';
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
179 var headers={
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
180 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
181 'Host':'211.23.50.144:8080',
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
182 'User-Agent':'MadButterfly',
1441
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
183 'Content-Type':'application/x-www-form-urlencoded;charset=utf-8'
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
184 };
1441
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
185 //headers['Content-Length'] = cmd.length;
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
186 var request = epgsrv.request('POST', '/IPTV_EPG/EPGService.do?timestamp='+new Date().getTime(),headers);
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
187 var self = this;
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
188 var js = '';
1441
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
189 request.write(cmd,encoding='utf-8');
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
190 request.end();
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
191 request.on('response', function(res) {
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
192 res.on('data',function (data) {
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
193 js = js + data;
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
194 });
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
195 res.on('end', function () {
1441
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
196 res = JSON.parse(unescape(js));
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
197 sys.puts("parsed");
1441
9bd8e814f730 Handle the utf-8 string correctly.
wycc
parents: 1409
diff changeset
198 sys.puts(js);
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
199 func();
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
200
1065
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
201 });
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
202 });
eb3719020866 Add support for the second level page.
wycc
parents: 1035
diff changeset
203 }
932
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
204 EPG.prototype.onInitDone=function() {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
205 if (this.loadCallback)
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
206 this.loadCallback();
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
207 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
208
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
209 EPG.prototype.registerInitDone=function(cb) {
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
210 this.loadCallback = cb;
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
211 }
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
212
bd9b0142fc7e Update the sample application. We can use the ./test5 to test it now. It will download the image from the VOD server and render it in the screen.
wycc
parents:
diff changeset
213 exports.EPG = EPG;