OSDN Git Service

fix Error char bug.
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Wed, 6 Jul 2011 22:11:30 +0000 (22:11 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Wed, 6 Jul 2011 22:11:30 +0000 (22:11 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@863 4e526526-5e11-4fc0-8910-f8fd03428081

Rec10WEBG3/trunk/rec10webg3.htm
Rec10WEBG3/trunk/rec10webg3.py
rec10/trunk/src/dbMySQL.py
rec10/trunk/src/timerec.py

index e749ea7..0c783e2 100644 (file)
@@ -3,7 +3,6 @@
     <head>\r
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
         <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css">\r
-               <!--<link rel="stylesheet" type="text/css" href="./dojo-release-1.5.0/dijit/themes/claro/claro.css">-->\r
         <style type="text/css">\r
             body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }\r
         </style>\r
         </style>\r
                <title>Rec10Suite 0.0.3</title>\r
                <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js" type="text/javascript" djConfig="parseOnLoad : true, isDebug : true"></script>\r
-               <!--<script src="./dojo-release-1.5.0/dojo/dojo.js" type="text/javascript" djConfig="parseOnLoad : true, isDebug : true"></script>-->\r
                <script type="text/javascript">\r
-                       //dojo.require("dojo.event.connect");\r
                dojo.require("dijit.layout.ContentPane");\r
                dojo.require("dijit.layout.TabContainer");\r
                dojo.require("dijit.layout.AccordionContainer");\r
                        dojo.require("dijit.layout.BorderContainer");\r
                        dojo.require("dojo.data.ItemFileReadStore");\r
-                       dojo.require("dijit.form.FilteringSelect");\r
+                       dojo.require("dijit.form.FilteringSelect");
+                       dojo.require("dijit.form.TextBox");
+                       dojo.require("dijit.form.Button");\r
                        dojo.require("dijit.form.DateTextBox");\r
                        dojo.require("dijit.form.TimeTextBox");\r
                        dojo.require("dijit.form.HorizontalSlider");\r
                        dojo.require("dijit.form.HorizontalRuleLabels");\r
                        dojo.require("dojox.grid.DataGrid");\r
-                       //dojo.require("dojo.date");\r
-                       dojo.require("dojo.date.locale");\r
+                       dojo.require("dojo.date.locale");
+                       dojo.require("dojo.date");\r
                        var ttch=["","",""];\r
                        var ttlastchange=0;\r
                        var gbtime="";\r
@@ -40,9 +39,9 @@
                                {name:"開始",field:"btime",width:"6em"},\r
                                {name:"終了",field:"etime",width:"3em"},\r
                                {name:"タイトル",field:"title",width:"auto"},\r
-                               {name:"opt",field:"opt",width:"3em"},\r
-                               {name:"dt",field:"deltatime",width:"3em"},\r
-                               {name:"dd",field:"deltaday",width:"3em"}\r
+                               {name:"opt",field:"opt",width:"4em"},\r
+                               {name:"dt",field:"deltatime",width:"2em"},\r
+                               {name:"dd",field:"deltaday",width:"2em"}\r
                        ]}];\r
                        function readCh(){\r
                                var chlistPaneTE=dojo.byId("progTableTE");\r
                                        nbt=dojo.date.add(nbt,"minute",30);\r
                                }\r
                        }
+
+
+
+
+
+
+//########################################################################
+                       function showSearchEPG(){
+                               var keyw=dojo.byId("tb_search_keyword").value;\r
+                               dojo.xhrGet({\r
+                                       url:"rec10webg3.py?mode=epg-search&keyword="+keyw,\r
+                                       handleAs: "json",\r
+                                       load: function(data,ioargs){\r
+                                               var baseForm=dojo.byId("tab_epgsearch");\r
+                                               console.dir(data);
+                                               console.dir(data.items);\r
+                                               for (i=0;i<data['items'].length;i++){\r
+                                                       var node = dojo.doc.createElement("p");
+                                                       var hr = dojo.doc.createElement("hr");
+                                                       var titlediv = dojo.doc.createElement("div");
+                                                       titlediv.setAttribute("style","font-size:1.4em;font-weight:bold;");
+                                                       var titlediv_text = dojo.doc.createTextNode(data['items'][i]['title']);
+                                                       titlediv.appendChild(titlediv_text);
+                                                       var datespan1 = dojo.doc.createElement("span");
+                                                       datespan1.setAttribute("style","font-size:1.2em;font-weight:bold;");
+                                                       var date_text = dojo.doc.createTextNode(data['items'][i]['btime'].substring(6,10)+"   ");
+                                                       datespan1.appendChild(date_text);
+                                                       var datespan2 = dojo.doc.createElement("span");
+                                                       datespan2.setAttribute("style","font-size:1em;");
+                                                       var date_text2 = dojo.doc.createTextNode(data['items'][i]['btime'].substring(11,16));
+                                                       datespan2.appendChild(date_text2);
+                                                       var channel = dojo.doc.createElement("span");
+                                                       channel.setAttribute("style","font-size:1.2em;font-style:italic;");
+                                                       var channel_text = dojo.doc.createTextNode(data['items'][i]['chtxt']);
+                                                       channel.appendChild(channel_text);
+                                                       var desc_div = dojo.doc.createElement("div");
+                                                       desc_div.setAttribute("style","font-size:1em;font-style:italic;");
+                                                       var desc_div = dojo.doc.createTextNode(data['items'][i]['exp'].replace(/\n/g,"<br>"));
+                                                       datespan2.appendChild(date_text2);
+                                                       node.appendChild(hr);
+                                                       node.appendChild(titlediv);
+                                                       node.appendChild(datespan1);
+                                                       node.appendChild(datespan2);
+                                                       node.appendChild(channel);
+                                                       node.appendChild(desc_div);\r
+                                                       baseForm.appendChild(node);\r
+                                               }; \r
+                                       },\r
+                                       error: function(error,args) {\r
+                                         console.warn("error!",error);\r
+                                       }\r
+                               });
+
+                       }
                        function gridTypeFormatter(type){
                                switch(type){
                                case "reserve_flexible":return "<span style='color:skyblue'>未確定予約</span>";
        </script>\r
                <style type="text/css">\r
                        @import "http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/Grid.css";\r
-            @import "http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/claroGrid.css";\r
+                       @import "http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/claroGrid.css";\r
                </style>\r
     </head>\r
     \r
                                                </div>\r
                        </div>
                        <div dojoType="dijit.layout.ContentPane" id="tab_timetablebasic" title="TimeTable" href="rec10webg2.pl">
+                       </div>
+                       <div dojoType="dijit.layout.ContentPane" id="tab_epgsearch" title="Search" onClick="showSearchEPG()">
+                               <p>Program Search:<div dojoType="dijit.form.TextBox" id="tb_search_keyword">Keyword</div>
+                               <div dojoType="dijit.form.Button" id="tb_search_button">Search</div></p>
+                       </div>
+                    <div dojoType="dijit.layout.ContentPane" title="番組表3" >
+                       <div dojoType="dijit.layout.BorderContainer" id="timetableContainer3" design="headline" style="width:100%;height:100%;" gutters="true">
+                                                       <div dojoType="dijit.layout.ContentPane" id="timetable3-tt" region="center"  href="rec10webg2.pl?mode=timegraph&btime=2011-05-07_06-00-00&etime=2011-05-07_18-00-00"></div>\r
+                                                       <div dojoType="dijit.layout.ContentPane" id="timetable3-id0" region="right" style="width:28%" href="rec10webg2.pl?mode=graph&chtxt=13&btime=2011-05-07_06-00-00&etime=2011-05-07_18-00-00"></div>\r
+                                                       <div dojoType="dijit.layout.ContentPane" id="timetable3-id1" region="right" style="width:28%" href="rec10webg2.pl?mode=graph&chtxt=21&btime=2011-05-07_06-00-00&etime=2011-05-07_18-00-00"></div>\r
+                                                       <div dojoType="dijit.layout.ContentPane" id="timetable3-id2" region="right" style="width:28%" href="rec10webg2.pl?mode=graph&chtxt=21&btime=2011-05-07_06-00-00&etime=2011-05-07_18-00-00"></div>\r
+                                                       <div dojoType="dijit.layout.ContentPane" id="timetable3-button" region="bottom" style="height:4%;position:relative;">\r
+                                                               <div dojoType="dijit.form.Button" style="position:absolute;left:0.5em;" onClick=showTimeTable()><<前</div>\r
+                                                               <div dojoType="dijit.form.Button" style="position:absolute;right:0.5em;" onClick=showTimeTable()>次>></div>\r
+                                                               <div dojoType="dijit.form.Button" style="position:absolute;left:40%;" onClick=showTimeTable()>06h</div>\r
+                                                               <div dojoType="dijit.form.Button" style="position:absolute;left:48.5%;" onClick=showTimeTable()>12h</div>\r
+                                                               <div dojoType="dijit.form.Button" style="position:absolute;right:40%;" onClick=showTimeTable()>24h</div>\r
+                                                               <div dojoType="dijit.form.Button" style="position:absolute;left:10%;" onClick=showTimeTable("timetableContainer",["tb1","tb2","tb3"],"2001-01-01T12:00:00","2001-01-01T13:15:00",5)>test</div>\r
+                                                       </div>\r
+                                               </div>\r
                        </div>\r
                     <div dojoType="dijit.layout.ContentPane" id="tab_list_time" title="予約確認(時間順)">\r
                        <div dojoType="dojo.data.ItemFileReadStore" jsId="reserveStore"\r
index f075b02..7c04f86 100644 (file)
@@ -183,7 +183,7 @@ class DB_MySQL:
         self.close_db(db)
         return ret
 
-    ########epg_tiemline系
+    ########epg_timeline系
     def epg_timeline2dic(self,epg_timeline):
         ret={}
         ret['bctype']=epg_timeline[0]
@@ -230,6 +230,31 @@ class DB_MySQL:
             recdata.append(self.epg_timeline2dic(line))
         self.close_db(db)
         return recdata
+    def select_by_keyword_title_epg_timeline(self,keyword="",chtxt="",btime="",etime=""):
+        keyt=""
+        chtxtt=""
+        btimet=""
+        etimet=""
+        if len(keyword)>0:
+            keyt=" AND title LIKE '%"+keyt+"%' "
+        if len(btime)>0:
+            start=datetime.datetime(*time.strptime(btime, "%Y-%m-%d %H:%M:%S")[:-3]).strftime("%Y%m%d%H%M%S")
+            stop=datetime.datetime(*time.strptime(etime, "%Y-%m-%d %H:%M:%S")[:-3]).strftime("%Y%m%d%H%M%S")
+            btimet=" AND start >= "+start+" "
+            etimet=" AND stop <= "+stop+" "
+        if len(chtxt)>0:
+            chtxtt=" AND channel = "+chtxt+" "
+        db = self.connect_db()
+        recdata = []
+        #print "SELECT bctype,channel,start,stop,title,exp,longexp,category FROM epg_timeline \
+        #WHERE bctype LIKE '%' "+keyt+btimet+etimet+chtxtt+""
+        dl = db[1].execute("SELECT bctype,channel,start,stop,title,exp,longexp,category FROM epg_timeline \
+        WHERE bctype LIKE '%' "+keyt+btimet+etimet+chtxtt+"")
+        dls = db[1].fetchall()
+        for line in dls:
+            recdata.append(self.epg_timeline2dic(line))
+        self.close_db(db)
+        return recdata
 #####ここまでDBの読み込み/書き込み系
 global db
 db=getdb()
@@ -238,6 +263,10 @@ htmlHeader="Content-Type: text/html; charset=utf-8\n"
 global f
 f = cgi.FieldStorage()
 #mode="timeline"
+mode=""
+
+
+
 if f.getfirst('mode',""):
        mode=f.getfirst('mode', "")
 if mode=="chtypelist":
@@ -293,9 +322,10 @@ if mode=="epg-timeline":
     btime=f.getfirst("btime")
     etime=f.getfirst("etime")
     if not btime:
-        btime="2011-02-24 12:00:00"
+        btime=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
     if not etime:
-        etime="2011-02-24 15:00:00"
+        et=datetime.datetime.now()+datetime.timedelta(days=8)
+        etime=et.strftime("%Y-%m-%d %H:%M:%S")
     chtxt=f.getfirst("chtxt")
     if not chtxt:
         chtxt="18_3096"
@@ -309,3 +339,28 @@ if mode=="epg-timeline":
         print jsonHeader
         #print htmlHeader
         print json.dumps({"data":tlll},encoding="utf-8")
+if mode=="epg-search":
+    tlll={"items":[]}
+    btime=f.getfirst("btime")
+    etime=f.getfirst("etime")
+    if not btime:
+        bt=datetime.datetime.now()
+        btime=bt.strftime("%Y-%m-%d %H:%M:%S")
+    if not etime:
+        et=datetime.datetime.now()+datetime.timedelta(days=8)
+        etime=et.strftime("%Y-%m-%d %H:%M:%S")
+    chtxt=f.getfirst("chtxt")
+    if not chtxt:
+        chtxt=""
+    keyword=f.getfirst("keyword")
+    if not keyword:
+        keyword=""
+    dbl=db.select_by_keyword_title_epg_timeline(keyword=keyword,chtxt=chtxt,btime=btime,etime=etime)
+    for dbi in dbl:
+        tlll["items"].append({"id":dbi["btime"],"btime":dbi["btime"],
+       "chtxt":dbi["chtxt"],"title":dbi["title"],
+       "exp":dbi["exp"],"longexp":dbi["longexp"],
+       "category":dbi["category"]})
+    print jsonHeader
+    #print htmlHeader
+    print json.dumps({"data":tlll},encoding="utf-8")
index f7c43a4..ff539f9 100644 (file)
@@ -1312,4 +1312,4 @@ vim         ")
         self.change_installed_in_status(1)
         self.change_version_in_status("101")
         #self.change_installed_in_status()#チャンネルスキャンをさせる
-        
\ No newline at end of file
+        
index 497dedf..af5cd3c 100644 (file)
@@ -503,7 +503,7 @@ def type_keyword(typetxt,chtxt,title,bt,et,opt,deltatime):
         recdb.deleteReckey(typetxtnow, title, chtxt, btime)
         recdb.reserveReckey(typetxtres, title, chtxt, btime, etime, opt)
         recdblist.addCommonlogEX(u"エラー","timerec.py",u"nothing match","",log_level=200)
-        recdblist.addCommonlogEX(u"エラー","timerec.py",u"key "+title+u" : "+titlet+u" "+btimet+u" "+etimet,"",log_level=200)
+        recdblist.addCommonlogEX(u"エラー","timerec.py",u"key "+title+u" "+btime+u" "+etime,"",log_level=200)
 def type_keyword_every_day(type,chtxt,title,bt,et,opt,deltatime,deltaday,counter):
     btime = bt.strftime("%Y-%m-%d %H:%M:%S")
     etime = et.strftime("%Y-%m-%d %H:%M:%S")