搜索
查看: 4213|回复: 7

[web] Google搜索助手

[复制链接]

5

主题

5

帖子

38

积分

荣誉会员

Rank: 8Rank: 8

积分
38
发表于 2015-6-18 12:40:06 | 显示全部楼层 |阅读模式

  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = ..win.form(text="Google搜索助手";right=923;bottom=635)
  4. winform.add()
  5. /*}}*/

  6. import web.layout;
  7. var wbLayout = web.layout( winform );

  8. wbLayout.html = /**
  9. <!doctype html>
  10. <html>
  11. <head>
  12.     <style type="text/css">
  13.     html,body{ height:100%; margin:0;font-size:12px; }
  14.      
  15.     #header{
  16.         padding:10px;
  17.     }
  18.      
  19.     #header input#keyword{
  20.         font-size:14px;
  21.         width:1000%%;
  22.         text-align:right;
  23.     }
  24.      
  25.     #header button#search{
  26.         padding:4px 25px;
  27.         font-size:13px;
  28.         background:rgb(27,174,93);
  29.         color:white;
  30.     }
  31.      
  32.     #header button#search:hover {
  33.         background:rgb(33,127,188);
  34.         outline: 1px glow rgb(91,171,230) 1px;
  35.         cursor:pointer;
  36.     }
  37.      
  38.     #container{
  39.         height:100%%;
  40.         overflow:auto;
  41.     }
  42.      
  43.     .search-result-row{
  44.         margin:10px;
  45.     }
  46.      
  47.     .search-result-row .title{
  48.         font-size:16px;
  49.     }
  50.      
  51.     .search-result-row .content b{
  52.         color:red;
  53.     }
  54.      
  55.     .search-result-row .url a{
  56.         color:#008000;
  57.     }
  58.      
  59.     #footer{
  60.         background:#ccc;
  61.         font-size:14px;
  62.         text-align:right;
  63.         padding:2px 50px 2px auto;
  64.     }
  65.     </style>
  66. </head>
  67. <body>
  68.     <div id="header"> <input type="text" id="keyword" value="htmlayout site:aau.cn"> <button id="search">搜索</button></div>
  69.     <div id="container"> </div>
  70.     <div id="footer"><img src='http://cdn.uehtml.com/201402/1392662521354.gif' style="width:0;height:0;" cache></div>
  71. </body>
  72. </html>
  73. **/
  74. wbLayout.getEle("keyword").xcall("selectAll",true);//全选

  75. //默认回车键搜索
  76. winform.isDialogMessage = function(hwnd,msg){
  77.     if(  msg.wParam == 0xD/*_VK_RETURN*/ || msg.wParam == 0x1B/*_VK_ESC*/){
  78.         wbLayout.getEle("search").click();
  79.         return true;
  80.     }
  81. }


  82. search = function(keyword,start,pages) {

  83.     import web.rest.jsonLiteClient;
  84.      
  85.     var googleClient = web.rest.jsonLiteClient();
  86.     var ajaxSearch = googleClient.declareApi("http://ajax.useso.com/ajax/services/search/web?v=1.0")

  87.     var searchData = ajaxSearch.get(
  88.         hl = "zh-CN"; //界面语言:简体中文
  89.         lr = "lang_zh-CN|lang_zh-TW"; //Language Restrict 只显示指定语言的搜索结果
  90.         sourceid=cnhp;//搜索来源
  91.         q = keyword;//搜索关键词
  92.         start = start;//开始索引
  93.         rsz = pages;//分页大小
  94.     );
  95.      
  96.     //import console;
  97.     //googleClient.lastResponse()
  98.      
  99.     if( searchData[["responseStatus"]] = 200 ){
  100.          
  101.         var responseData = searchData.responseData;
  102.          
  103.         import string.template;
  104.         var rowTemplate = string.template();
  105.         rowTemplate.template = /***
  106.         <div class="search-result-row">
  107.                 <div class="title"><a href="${unescapedUrl}">${title}</a></div>
  108.                 <div class="content"> ${content} </div>
  109.                 <div class="url"><a href="${url}">${visibleUrl}</a></div>
  110.         </div>
  111.         ***/
  112.          
  113.         var tab = {};
  114.         for(i=1;#responseData.results;1){
  115.             table.push(tab, rowTemplate.format( responseData.results[i] ) )
  116.         }
  117.          
  118.         var html =  string.replace( string.join(tab),"@\u003cb\u003e","<b>");
  119.         html = string.replace( html,"@\u003c/b\u003e","</b>")
  120.          
  121.         var tPages = {}
  122.         for(i=1;#responseData.cursor.pages;1){
  123.             if( responseData.cursor.pages[i].start == start ){
  124.                 table.push(tPages,tostring(i) );
  125.             }
  126.             else{
  127.                 table.push(tPages,..string.format("<a href='' name='pageslink' start='%d' keyword='%s' pages='%d'>%s</a>"
  128.                     ,responseData.cursor.pages[i].start,inet.url.encode(keyword) ,pages : 8,responseData.cursor.pages[i].label) )
  129.             }
  130.         }
  131.          
  132.         var htmlPages =  '<div class="search-result-pages">' + string.join( tPages," | ") + '</div>';
  133.         return html,htmlPages;
  134.     }
  135.     else {
  136.         var errmsg = searchData[["responseDetails"]] : "网络错误"
  137.         if( string.find( errmsg,"Suspected Terms of Service Abuse") ) errmsg = "服务器忙,请稍候再试!";
  138.          
  139.         return ..string.format('<div class="search-result-row"><div class="content"> %s </div> </div>', errmsg ) ;
  140.     }
  141.      
  142. }

  143. wbLayout.sinking = {
  144.     onHyperlinkClick = {
  145.         pageslink = function (ltTarget,ltOwner,reason,behaviorParams) {
  146.          
  147.             import inet.url;
  148.             
  149.             wbLayout.getEle("container").innerHTML = "<img src='http://cdn.uehtml.com/201402/1392662521354.gif'>"
  150.             wbLayout.getEle("footer").innerHTML = "";
  151.             
  152.             var html,htmlPages = win.invoke(search,inet.url.decode(ltTarget.keyword),tonumber(ltTarget.start),tonumber(ltTarget.pages))
  153.             wbLayout.getEle("container").innerHTML = html;
  154.             wbLayout.getEle("footer").innerHTML = htmlPages;
  155.             
  156.             return true;
  157.         }
  158.         default = function(ltTarget,ltOwner,reason,behaviorParams){
  159.             import process;
  160.             process.execute(ltTarget.href);
  161.             return true;
  162.         }
  163.          
  164.     }
  165. }

  166. wbLayout.onButtonClick = {

  167.     search = function (ltTarget,ltOwner,reason,behaviorParams) {
  168.      
  169.         wbLayout.getEle("container").innerHTML = "<img src='http://cdn.uehtml.com/201402/1392662521354.gif'>"
  170.         wbLayout.getEle("footer").innerHTML = "";
  171.          
  172.         var html,htmlPages = win.invoke(search,wbLayout.getEle("keyword").value,0,8)
  173.         wbLayout.getEle("container").innerHTML = html;
  174.         wbLayout.getEle("footer").innerHTML = htmlPages;
  175.     }
  176. }

  177. winform.show()
  178. win.loopMessage();
复制代码
回复

使用道具 举报

6

主题

36

帖子

557

积分

培训班

积分
557
发表于 2015-6-18 13:00:36 | 显示全部楼层

感谢分享!

感谢分享!
回复

使用道具 举报

8

主题

54

帖子

529

积分

培训班

积分
529
QQ
发表于 2015-6-18 20:45:00 | 显示全部楼层

谢谢分享,正需要。再次感谢

谢谢分享,正需要。再次感谢
回复

使用道具 举报

0

主题

30

帖子

200

积分

二级会员

Rank: 3Rank: 3

积分
200
发表于 2015-8-4 20:51:18 | 显示全部楼层

不错,谢谢分享

不错,谢谢分享
回复

使用道具 举报

1

主题

27

帖子

367

积分

二级会员

Rank: 3Rank: 3

积分
367
发表于 2015-8-8 17:20:09 | 显示全部楼层

好东西,感谢分享了,收下了!!!

好东西,感谢分享了,收下了!!!
回复

使用道具 举报

0

主题

8

帖子

43

积分

新手入门

Rank: 1

积分
43
发表于 2015-8-11 00:04:01 | 显示全部楼层

非常感谢。冒个泡{:3_41:}

非常感谢。冒个泡
回复

使用道具 举报

0

主题

10

帖子

75

积分

一级会员

Rank: 2

积分
75
发表于 2016-5-11 08:41:40 | 显示全部楼层

谢谢分享

谢谢分享
回复

使用道具 举报

0

主题

6

帖子

39

积分

新手入门

Rank: 1

积分
39
发表于 2016-5-29 21:22:20 | 显示全部楼层

谢谢分享

谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-9-25 19:25 , Processed in 0.062500 second(s), 19 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表