正在显示
10 个修改的文件
包含
580 行增加
和
0 行删除
trunk/research/community/server.py
0 → 100755
| 1 | +#!/usr/bin/python | ||
| 2 | +''' | ||
| 3 | +The MIT License (MIT) | ||
| 4 | + | ||
| 5 | +Copyright (c) 2013-2014 winlin | ||
| 6 | + | ||
| 7 | +Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 8 | +this software and associated documentation files (the "Software"), to deal in | ||
| 9 | +the Software without restriction, including without limitation the rights to | ||
| 10 | +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 11 | +the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 12 | +subject to the following conditions: | ||
| 13 | + | ||
| 14 | +The above copyright notice and this permission notice shall be included in all | ||
| 15 | +copies or substantial portions of the Software. | ||
| 16 | + | ||
| 17 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 18 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 19 | +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 20 | +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 21 | +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 22 | +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 23 | +''' | ||
| 24 | + | ||
| 25 | +""" | ||
| 26 | +the community is a default demo server for srs | ||
| 27 | +""" | ||
| 28 | + | ||
| 29 | +import sys | ||
| 30 | +# reload sys model to enable the getdefaultencoding method. | ||
| 31 | +reload(sys) | ||
| 32 | +# set the default encoding to utf-8 | ||
| 33 | +# using exec to set the encoding, to avoid error in IDE. | ||
| 34 | +exec("sys.setdefaultencoding('utf-8')") | ||
| 35 | +assert sys.getdefaultencoding().lower() == "utf-8" | ||
| 36 | + | ||
| 37 | +import os, json, time, datetime, cherrypy, threading | ||
| 38 | + | ||
| 39 | +# simple log functions. | ||
| 40 | +def trace(msg): | ||
| 41 | + date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") | ||
| 42 | + print "[%s][trace] %s"%(date, msg) | ||
| 43 | + | ||
| 44 | +# enable crossdomain access for js-client | ||
| 45 | +# define the following method: | ||
| 46 | +# def OPTIONS(self, *args, **kwargs) | ||
| 47 | +# enable_crossdomain() | ||
| 48 | +# invoke this method to enable js to request crossdomain. | ||
| 49 | +def enable_crossdomain(): | ||
| 50 | + cherrypy.response.headers["Access-Control-Allow-Origin"] = "*" | ||
| 51 | + cherrypy.response.headers["Access-Control-Allow-Methods"] = "GET, POST, HEAD, PUT, DELETE" | ||
| 52 | + # generate allow headers for crossdomain. | ||
| 53 | + allow_headers = ["Cache-Control", "X-Proxy-Authorization", "X-Requested-With", "Content-Type"] | ||
| 54 | + cherrypy.response.headers["Access-Control-Allow-Headers"] = ",".join(allow_headers) | ||
| 55 | + | ||
| 56 | +# error codes definition | ||
| 57 | +class Error: | ||
| 58 | + # ok, success, completed. | ||
| 59 | + success = 0 | ||
| 60 | + | ||
| 61 | +# HTTP RESTful path. | ||
| 62 | +class Root(object): | ||
| 63 | + exposed = True | ||
| 64 | + | ||
| 65 | + def __init__(self): | ||
| 66 | + self.api = Api() | ||
| 67 | + def GET(self): | ||
| 68 | + enable_crossdomain(); | ||
| 69 | + return json.dumps({"code":Error.success, "urls":{"api":"the api root"}}) | ||
| 70 | + def OPTIONS(self, *args, **kwargs): | ||
| 71 | + enable_crossdomain(); | ||
| 72 | +# HTTP RESTful path. | ||
| 73 | +class Api(object): | ||
| 74 | + exposed = True | ||
| 75 | + | ||
| 76 | + def __init__(self): | ||
| 77 | + self.v1 = V1() | ||
| 78 | + def GET(self): | ||
| 79 | + enable_crossdomain(); | ||
| 80 | + return json.dumps({"code":Error.success, | ||
| 81 | + "urls": { | ||
| 82 | + "v1": "the api version 1.0" | ||
| 83 | + } | ||
| 84 | + }); | ||
| 85 | + def OPTIONS(self, *args, **kwargs): | ||
| 86 | + enable_crossdomain(); | ||
| 87 | +# HTTP RESTful path. to access as: | ||
| 88 | +# http://127.0.0.1:8085/api/v1/clients | ||
| 89 | +class V1(object): | ||
| 90 | + exposed = True | ||
| 91 | + | ||
| 92 | + def __init__(self): | ||
| 93 | + pass; | ||
| 94 | + def OPTIONS(self, *args, **kwargs): | ||
| 95 | + enable_crossdomain(); | ||
| 96 | + | ||
| 97 | +''' | ||
| 98 | +main code start. | ||
| 99 | +''' | ||
| 100 | +# donot support use this module as library. | ||
| 101 | +if __name__ != "__main__": | ||
| 102 | + raise Exception("embed not support") | ||
| 103 | + | ||
| 104 | +# check the user options | ||
| 105 | +if len(sys.argv) <= 1: | ||
| 106 | + print "SRS community server, Copyright (c) 2013-2014 winlin" | ||
| 107 | + print "Usage: python %s <port>"%(sys.argv[0]) | ||
| 108 | + print " port: the port to listen at." | ||
| 109 | + print "For example:" | ||
| 110 | + print " python %s 1949"%(sys.argv[0]) | ||
| 111 | + print "" | ||
| 112 | + print "See also: https://github.com/winlinvip/simple-rtmp-server" | ||
| 113 | + sys.exit(1) | ||
| 114 | + | ||
| 115 | +# parse port from user options. | ||
| 116 | +port = int(sys.argv[1]) | ||
| 117 | +static_dir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "static-dir")) | ||
| 118 | +trace("api server listen at port: %s, static_dir: %s"%(port, static_dir)) | ||
| 119 | + | ||
| 120 | +# cherrypy config. | ||
| 121 | +conf = { | ||
| 122 | + 'global': { | ||
| 123 | + 'server.shutdown_timeout': 1, | ||
| 124 | + 'server.socket_host': '0.0.0.0', | ||
| 125 | + 'server.socket_port': port, | ||
| 126 | + 'tools.encode.on': True, | ||
| 127 | + 'tools.staticdir.on': True, | ||
| 128 | + 'tools.encode.encoding': "utf-8", | ||
| 129 | + #'server.thread_pool': 2, # single thread server. | ||
| 130 | + }, | ||
| 131 | + '/': { | ||
| 132 | + 'tools.staticdir.dir': static_dir, | ||
| 133 | + 'tools.staticdir.index': "index.html", | ||
| 134 | + # for cherrypy RESTful api support | ||
| 135 | + 'request.dispatch': cherrypy.dispatch.MethodDispatcher() | ||
| 136 | + } | ||
| 137 | +} | ||
| 138 | + | ||
| 139 | +# start cherrypy web engine | ||
| 140 | +trace("start cherrypy server") | ||
| 141 | +root = Root() | ||
| 142 | +cherrypy.quickstart(root, '/', conf) | ||
| 143 | + |
| 1 | +<html> | ||
| 2 | +<head> | ||
| 3 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
| 4 | + <meta property="qc:admins" content="35453715257630661457637577164165323" /> | ||
| 5 | + <title>DailyReport</title> | ||
| 6 | +</head> | ||
| 7 | +<body> | ||
| 8 | + <script type="text/javascript" src="http://tajs.qq.com/stats?sId=27171919" charset="UTF-8"></script> | ||
| 9 | + <script type="text/javascript" src="js/jquery.js"></script> | ||
| 10 | + <script type="text/javascript"> | ||
| 11 | + function parse_query_string(){ | ||
| 12 | + var query_string = String(window.location.hash).split("#")[1]; | ||
| 13 | + if(query_string == undefined){ | ||
| 14 | + return {}; | ||
| 15 | + } | ||
| 16 | + | ||
| 17 | + var queries = query_string.split("&"); | ||
| 18 | + var obj = {}; | ||
| 19 | + $(queries).each(function(){ | ||
| 20 | + var query = this.split("="); | ||
| 21 | + obj[query[0]] = query[1]; | ||
| 22 | + }); | ||
| 23 | + | ||
| 24 | + return obj; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + function jump(){ | ||
| 28 | + // discovery the query string. | ||
| 29 | + var obj = parse_query_string(); | ||
| 30 | + //console.log(obj); | ||
| 31 | + | ||
| 32 | + // for IE, cannot pase the char ":", we use ".." to substitued. | ||
| 33 | + var host = obj.state; | ||
| 34 | + | ||
| 35 | + if(!host){ | ||
| 36 | + alert("invalid state to parsed to host"); | ||
| 37 | + return; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + // generate the redirect url. | ||
| 41 | + var url = ""; | ||
| 42 | + if (host == "check") { | ||
| 43 | + url = "http://182.92.80.26:8085/srs/releases/index.html" + window.location.hash; | ||
| 44 | + } else { | ||
| 45 | + url = "http://182.92.80.26:1949/ui/auth.html" + window.location.hash; | ||
| 46 | + } | ||
| 47 | + //console.log(url); | ||
| 48 | + //document.write(url); | ||
| 49 | + | ||
| 50 | + window.location.href = url; | ||
| 51 | + } | ||
| 52 | + jump(); | ||
| 53 | + </script> | ||
| 54 | +</body> |
| 1 | +#slideshow_wrapper { | ||
| 2 | + POSITION: relative; | ||
| 3 | + PADDING-BOTTOM: 0px; | ||
| 4 | + PADDING-LEFT: 0px; | ||
| 5 | + WIDTH: 980px; | ||
| 6 | + PADDING-RIGHT: 0px; | ||
| 7 | + HEIGHT: 446px; | ||
| 8 | + OVERFLOW: hidden; | ||
| 9 | + PADDING-TOP: 0px | ||
| 10 | +} | ||
| 11 | +#slideshow_footbar { | ||
| 12 | + Z-INDEX: 5; | ||
| 13 | + POSITION: absolute; | ||
| 14 | + WIDTH: 100%; | ||
| 15 | + BOTTOM: 0px; | ||
| 16 | + HEIGHT: 30px; | ||
| 17 | +} | ||
| 18 | +#slideshow_photo { | ||
| 19 | + POSITION: absolute; | ||
| 20 | + WIDTH: 100%; | ||
| 21 | + HEIGHT: 100%; | ||
| 22 | + CURSOR: pointer | ||
| 23 | +} | ||
| 24 | +#slideshow_photo A { | ||
| 25 | + Z-INDEX: 1; | ||
| 26 | + BORDER-BOTTOM: 0px; | ||
| 27 | + POSITION: absolute; | ||
| 28 | + BORDER-LEFT: 0px; | ||
| 29 | + MARGIN: 0px; | ||
| 30 | + DISPLAY: block; | ||
| 31 | + BORDER-TOP: 0px; | ||
| 32 | + TOP: 0px; | ||
| 33 | + BORDER-RIGHT: 0px; | ||
| 34 | + LEFT: 0px | ||
| 35 | +} | ||
| 36 | +#slideshow_footbar .slideshow-bt { | ||
| 37 | + BACKGROUND-COLOR: #ccc; | ||
| 38 | + MARGIN: 10px 0px 0px 10px; | ||
| 39 | + WIDTH: 9px; | ||
| 40 | + DISPLAY: inline; | ||
| 41 | + FLOAT: left; | ||
| 42 | + HEIGHT: 9px; | ||
| 43 | + border-radius:5px; | ||
| 44 | + FONT-SIZE: 0px | ||
| 45 | +} | ||
| 46 | +#slideshow_footbar .bt-on { | ||
| 47 | + BACKGROUND-COLOR: #30b1eb; | ||
| 48 | + width:9px; | ||
| 49 | + height:9px; | ||
| 50 | +} |
| 1 | +@charset "utf-8"; | ||
| 2 | +/* CSS Document */ | ||
| 3 | +* {margin:0; padding:0;word-break:break-all;} | ||
| 4 | +html,body{height:auto;} | ||
| 5 | +html,body,a,h1,h2,h3,h4,h5,h6,p,div,ul,li,ol,dl,dt,dd,img,form,input,textarea,select,fieldset { margin:0px; padding:0px } | ||
| 6 | +body,table,input,select,textarea { font-family:'微软雅黑',Arial; font-size:12px;} | ||
| 7 | +body {} | ||
| 8 | +img { border:0px;} | ||
| 9 | + | ||
| 10 | +.td_left { text-align:left; padding-left:3px; background:#FFF;} | ||
| 11 | +.td_right { text-align:right; padding-right:5px;} | ||
| 12 | + | ||
| 13 | +.btn_1 { margin:10px 0px; padding:5px 20px; cursor:pointer;} | ||
| 14 | + | ||
| 15 | +/*logo | ||
| 16 | +------------------------------------------------------------------------------------------------- */ | ||
| 17 | +#logo { width:980px; height:52px; margin:0px auto; color:#FFF; line-height:25px; font-size:12px;} | ||
| 18 | +#logo span { float:right; margin-top:20px; margin-right:10px; line-height:32x;} | ||
| 19 | +#logo span a { margin-left:8px;} | ||
| 20 | + | ||
| 21 | +/*主导航 | ||
| 22 | +------------------------------------------------------------------------------------------------- */ | ||
| 23 | +#nav { width:980px; height:35px; line-height:35px; *line-height:32px; margin:0px auto;} | ||
| 24 | +#nav ul { list-style-type:none; width:inherit; margin:0px auto;} | ||
| 25 | +#nav ul li { float:left; list-style-type:none; width:162.5px; height:35px; padding:0px; text-align:center; display:block; overflow:hidden; background:url(../images/mav_bg.gif) no-repeat; background-position:0px 0px;} | ||
| 26 | +#nav ul li:hover { float:left; list-style-type:none; width:162.5px; height:35px; padding:0px; text-align:center; display:block; overflow:hidden; background:url(../images/mav_bg.gif) no-repeat; background-position:0px -35px;} | ||
| 27 | +#nav ul li.S { float:left; list-style-type:none; width:162.5px; height:35px; padding:0px; text-align:center; display:block; overflow:hidden; background:url(../images/mav_bg.gif) no-repeat; background-position:0px -35px;} | ||
| 28 | + | ||
| 29 | +#nav ul li.L { width:162.5px; height:35px; padding:0px; background:url(../images/mav_bg_l.gif) no-repeat; background-position:0px 0px;} | ||
| 30 | +#nav ul li.L:hover { width:162.5px; height:35px; padding:0px;background:url(../images/mav_bg_l.gif) no-repeat; background-position:0px -35px;} | ||
| 31 | + | ||
| 32 | +#nav ul li.R { width:162.5px; height:35px; padding:0px; background:url(../images/mav_bg_r.gif) no-repeat; background-position:0px 0px;} | ||
| 33 | +#nav ul li.R:hover { width:162.5px; height:35px; padding:0px;background:url(../images/mav_bg_r.gif) no-repeat; background-position:0px -35px;} | ||
| 34 | + | ||
| 35 | +#nav ul li.line { width:1px; height:35px; margin:0px 0px; padding:0px; background:#287ab4;} | ||
| 36 | +#nav ul li a { width:inherit; height:35px; line-height:33px; *line-height:32px; font-size:14px; color:#fff; padding:8px 50px;text-decoration:none; box-shadow:0px 0px 1px #4bd2ef inset;} | ||
| 37 | +#nav ul li a:hover { color:#fff; padding:8px 50px;} | ||
| 38 | + | ||
| 39 | +/*banner | ||
| 40 | +------------------------------------------------------------------------------------------------- */ | ||
| 41 | +#banner { width:980px; height:446px; margin:0px auto; position:relative;} | ||
| 42 | + | ||
| 43 | +/*主内容 | ||
| 44 | +------------------------------------------------------------------------------------------------- */ | ||
| 45 | +#container { width:980px; margin:0px auto 40px auto; padding:0px;} | ||
| 46 | + | ||
| 47 | +/*栏目模块 | ||
| 48 | +------------------------------------------------------------------------------------------------- */ | ||
| 49 | +#module { width:239px; height:160px; float:left; margin-right:8px;} | ||
| 50 | +#module h1 { padding-left:15px; padding-top:15px; font-size:16px; font-weight:normal; color:#333;} | ||
| 51 | +#module h2 { padding-left:15px; padding-top:5px; font-size:12px; color:#000;} | ||
| 52 | +#module p { padding-left:15px; padding-top:5px; padding-right:70px; color:#707070; line-height:20px;} | ||
| 53 | +#module a { color:none; text-decoration:none;} | ||
| 54 | + | ||
| 55 | +/*产品模块 | ||
| 56 | +------------------------------------------------------------------------------------------------- */ | ||
| 57 | +#P_module { width:319px; height:160px; float:left; margin-right:11px; background:url(../images/module_P.gif) no-repeat;} | ||
| 58 | +#P_module h1 { padding-left:15px; padding-top:15px; font-size:16px; font-weight:normal; color:#333;} | ||
| 59 | +#P_module h2 { padding-left:15px; padding-top:5px; font-size:12px; color:#000;} | ||
| 60 | +#P_module p { padding-left:15px; padding-top:5px; padding-right:70px; color:#707070; line-height:20px;} | ||
| 61 | +#P_module a { color:none; text-decoration:none;} | ||
| 62 | + | ||
| 63 | +/*列表 | ||
| 64 | +------------------------------------------------------------------------------------------------- */ | ||
| 65 | +#list { float:left; width:189px; height:230px; margin:0px; *margin-top:20px; background:url(../images/list_bg.gif) no-repeat;} | ||
| 66 | +#list ul { list-style-type:none; width:inherit; margin:0px; padding-left:5px; padding-top:15px;} | ||
| 67 | +#list ul li { width:92%; list-style-type:none; height:25px; line-height:25px;} | ||
| 68 | +#list ul li:hover { color:#000; background:url(../images/arrow.gif) no-repeat right center;} | ||
| 69 | +#list ul li.sel { font-size:14px; color:#000; font-weight:bold; background:url(../images/arrow.gif) no-repeat right center;} | ||
| 70 | +#list ul li a { width:inherit; text-decoration:none; color:#666; padding:6px 10px 6px 10px;} | ||
| 71 | +#list ul li a:hover { width:inherit; color:#000; padding:6px 10px 6px 10px;} | ||
| 72 | + | ||
| 73 | +/*产品详细 | ||
| 74 | +------------------------------------------------------------------------------------------------- */ | ||
| 75 | +#detailed { width:750px; height:360px; margin-left:200px; margin-top:20px; background:url(../images/SCT.jpg) no-repeat; padding:15px;} | ||
| 76 | +#detailed h1 { width:auto; line-height:40px; font-size:36px; font-weight:normal;} | ||
| 77 | +#detailed p { width:90%; padding-top:15px; line-height:28px; font-size:14px;} | ||
| 78 | +#detailed ul { list-style-type:none; width:50%; padding:0px; padding-top:15px;} | ||
| 79 | +#detailed ul li { list-style-type:none; line-height:28px; color:#666;} | ||
| 80 | + | ||
| 81 | +/*产品特性 | ||
| 82 | +------------------------------------------------------------------------------------------------- */ | ||
| 83 | +#feature { width:775px; *width:775px; margin-left:200px;} | ||
| 84 | +#feature h1 { width:auto; line-height:25px; font-size:14px; font-weight:normal; padding-left:15px; border-bottom:1px solid #bfbfbf;} | ||
| 85 | +#feature ul { width:inherit; list-style-type:none; margin-top:10px;} | ||
| 86 | +#feature ul li { width:355px; height:150px; list-style-type:none; padding:15px; margin-bottom:5px; display:block; overflow:hidden; background:url(../images/feature_bg.gif) no-repeat;} | ||
| 87 | +#feature ul li h2 { line-height:23px; font-size:14px; font-weight:normal;} | ||
| 88 | +#feature ul li p { width:inherit; line-height:20px; color:#666;} | ||
| 89 | + | ||
| 90 | +/*解决方案 说明 | ||
| 91 | +------------------------------------------------------------------------------------------------- */ | ||
| 92 | +#explain { width:980px; height:210px; padding-top:20px; padding-bottom:50px; background:url(../images/explain_bg.jpg) no-repeat;} | ||
| 93 | +#explain h1 { width:auto; line-height:40px; padding-left:15px; font-size:30px; font-weight:normal;} | ||
| 94 | +#explain h1 span { float:right; font-size:12px; padding-right:15px;} | ||
| 95 | +#explain h2 { font-size:16px; padding-left:15px; padding-top:10px;} | ||
| 96 | +#explain p { width:60%; padding:15px; margin-top:10px; line-height:28px; font-size:16px;} | ||
| 97 | +#explain ul { list-style-type:none; width:inherit; padding:0px; padding-top:15px; padding-left:15px;} | ||
| 98 | +#explain ul li { list-style-type:none; line-height:28px; color:#666;} | ||
| 99 | + | ||
| 100 | +/*解决方案 列表 | ||
| 101 | +------------------------------------------------------------------------------------------------- */ | ||
| 102 | +#Slist { float:left; width:180px; height:230px; margin:0px; *margin-top:20px; padding-right:6px; border-right:1px dotted #bfbfbf;} | ||
| 103 | +#Slist ul { list-style-type:none; width:inherit; margin:0px; padding-left:5px; padding-top:15px;} | ||
| 104 | +#Slist ul li { width:92%; list-style-type:none; height:25px; line-height:25px;} | ||
| 105 | +#Slist ul li:hover { color:#000; background:url(../images/arrow.gif) no-repeat right center;} | ||
| 106 | +#Slist ul li.sel { font-size:14px; color:#000; font-weight:bold; background:url(../images/arrow.gif) no-repeat right center;} | ||
| 107 | +#Slist ul li a { width:inherit; text-decoration:none; color:#666; padding:6px 10px 6px 10px;} | ||
| 108 | +#Slist ul li a:hover { width:inherit; color:#000; padding:6px 10px 6px 10px;} | ||
| 109 | + | ||
| 110 | +/*解决方案 | ||
| 111 | +------------------------------------------------------------------------------------------------- */ | ||
| 112 | +#solution { width:auto; height:auto; margin-left:200px; margin-top:20px;} | ||
| 113 | +#solution h1 { width:auto; line-height:24px; font-size:18px; font-weight:normal;} | ||
| 114 | +#solution h1 span { float:right; font-size:12px; padding-right:15px;} | ||
| 115 | +#solution h1 span a { color:#999; text-decoration:none;} | ||
| 116 | +#solution h1 span a:hover { color:#09F;} | ||
| 117 | +#solution p { width:auto; padding:15px; margin-top:10px; line-height:28px; font-size:14px; background:#f1f9fd; border:1px solid #bfbfbf; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;} | ||
| 118 | +#solution ul { list-style-type:none; width:50%; padding:0px; padding-top:15px;} | ||
| 119 | +#solution ul li { list-style-type:none; line-height:28px; color:#666;} | ||
| 120 | + | ||
| 121 | +/*招贤纳士 | ||
| 122 | +------------------------------------------------------------------------------------------------- */ | ||
| 123 | +#career { width:980px; height:auto; margin-top:20px; padding-bottom:20px; background:url(../images/career_bg.jpg) no-repeat;} | ||
| 124 | +#career h1 { width:auto; line-height:40px; padding-left:15px; font-size:30px; font-weight:normal;} | ||
| 125 | +#career h1 span { float:right; font-size:12px; padding-right:15px;} | ||
| 126 | +#career h2 { font-size:14px;} | ||
| 127 | +#career p { width:80%; padding:15px; margin-top:10px; line-height:28px; font-size:14px;} | ||
| 128 | +#career ul { list-style-type:none; width:inherit; padding:0px; padding-top:15px; padding-left:15px;} | ||
| 129 | +#career ul li { list-style-type:none; line-height:28px; color:#666;} | ||
| 130 | + | ||
| 131 | +/*招聘 | ||
| 132 | +------------------------------------------------------------------------------------------------- */ | ||
| 133 | +#recruitment { width:918px; height:auto; padding:30px; background:url(../images/recruitment_bg.jpg); background-repeat:repeat-x; border:1px solid #FFF; *border:1px solid #bfbfbf; box-shadow:0px 2px 3px #999999; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;} | ||
| 134 | +#recruitment h1 { width:auto; line-height:28px; font-size:18px; font-weight:bold;} | ||
| 135 | +#recruitment h1 span { float:right; font-size:12px; padding-right:15px; font-weight:normal;} | ||
| 136 | +#recruitment p { width:auto; margin-top:10px; line-height:23px; font-size:14px;} | ||
| 137 | +#recruitment ul { list-style-type:none; width:inherit; padding:0px; padding-top:15px; padding-left:15px;} | ||
| 138 | +#recruitment ul li { list-style-type:none; line-height:28px; color:#666;} | ||
| 139 | + | ||
| 140 | +/*关于我们 | ||
| 141 | +------------------------------------------------------------------------------------------------- */ | ||
| 142 | +#aboutUs { width:980px; height:auto; margin-top:20px; padding-bottom:20px; background:url(../images/aboutUs_bg.jpg) no-repeat;} | ||
| 143 | +#aboutUs h1 { width:auto; line-height:40px; padding-left:15px; font-size:30px; font-weight:normal;} | ||
| 144 | +#aboutUs h1 span { float:right; font-size:12px; padding-right:15px;} | ||
| 145 | +#aboutUs h2 { font-size:16px; padding-left:15px; padding-top:10px;} | ||
| 146 | +#aboutUs p { width:80%; padding:15px; margin-top:10px; line-height:28px; font-size:14px;} | ||
| 147 | +#aboutUs ul { list-style-type:none; width:inherit; padding:0px; padding-top:15px; padding-left:15px;} | ||
| 148 | +#aboutUs ul li { list-style-type:none; line-height:28px; color:#666;} | ||
| 149 | + | ||
| 150 | +/*联系我们 | ||
| 151 | +------------------------------------------------------------------------------------------------- */ | ||
| 152 | +#contactUs { width:980px; height:auto; padding-top:20px; padding-bottom:0px; background:url(../images/contactUs_bg.jpg) no-repeat;} | ||
| 153 | +#contactUs h1 { width:auto; line-height:40px; padding-left:15px; font-size:30px; font-weight:normal;} | ||
| 154 | +#contactUs h1 span { float:right; font-size:12px; padding-right:15px;} | ||
| 155 | +#contactUs h2 { font-size:16px; padding-left:15px; padding-top:10px;} | ||
| 156 | +#contactUs p { width:80%; padding:15px; margin-top:10px; line-height:28px; font-size:14px;} | ||
| 157 | +#contactUs ul { list-style-type:none; width:inherit; padding:0px; padding-top:15px; padding-left:15px;} | ||
| 158 | +#contactUs ul li { list-style-type:none; line-height:28px; color:#000;} | ||
| 159 | + | ||
| 160 | +/*地图 | ||
| 161 | +------------------------------------------------------------------------------------------------- */ | ||
| 162 | +#map { width:918px; height:550px; padding:30px; background:url(../images/recruitment_bg.jpg); background-repeat:repeat-x; border:1px solid #FFF; *border:1px solid #bfbfbf; box-shadow:0px 2px 3px #999999; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;} | ||
| 163 | +#map h1 { width:auto; line-height:28px; font-size:18px; font-weight:bold;} | ||
| 164 | +#map h1 span { float:right; font-size:12px; padding-right:15px;} | ||
| 165 | +#map h1 span a { color:#999; text-decoration:none;} | ||
| 166 | +#map h1 span a:hover { color:#09F;} | ||
| 167 | +#map p { width:auto; margin-top:10px; line-height:23px; font-size:14px; background:; } | ||
| 168 | +#map ul { list-style-type:none; width:inherit; padding:0px; padding-top:15px; padding-left:15px;} | ||
| 169 | +#map ul li { list-style-type:none; line-height:28px; color:#666;} | ||
| 170 | + | ||
| 171 | +/*体验中心 | ||
| 172 | +------------------------------------------------------------------------------------------------- */ | ||
| 173 | +#experience { width:485px; height:160px; float:left; margin-right:10px;} | ||
| 174 | +#experience h1 { padding-left:15px; padding-top:15px; font-size:30px; font-weight:normal; color:#333;} | ||
| 175 | +#experience h2 { padding-left:15px; padding-top:5px; font-size:12px; color:#000;} | ||
| 176 | +#experience p { padding-left:15px; padding-top:5px; padding-right:70px; color:#707070; line-height:20px;} | ||
| 177 | +#experience a { color:none; text-decoration:none;} | ||
| 178 | + | ||
| 179 | +/*演示 | ||
| 180 | +------------------------------------------------------------------------------------------------- */ | ||
| 181 | +/*#demonstrate { width:750px; height:360px; margin-left:200px; margin-top:20px; background:#999; padding:15px;}*/ | ||
| 182 | +#demonstrate { width:750px; height:360px; margin-left:200px; margin-top:20px; background:url(../images/wait.jpg); padding:0px;} | ||
| 183 | +#demonstrate h1 { width:auto; line-height:28px; font-size:18px; font-weight:normal;} | ||
| 184 | +#demonstrate p { width:inherit; padding-top:15px; line-height:28px; font-size:14px;} | ||
| 185 | +#demonstrate ul { list-style-type:none; width:50%; padding:0px; padding-top:15px;} | ||
| 186 | +#demonstrate ul li { list-style-type:none; line-height:28px; color:#666;} | ||
| 187 | + | ||
| 188 | +/*Copyright | ||
| 189 | +------------------------------------------------------------------------------------------------- */ | ||
| 190 | +#footer { width:980px; height:100px; margin:0px auto; padding-top:15px; font-size:11px; color:#666; line-height:20px; border-top:1px solid #bfbfbf; clear:both;} | ||
| 191 | +#footer span { float:right;} |
9.9 KB
| 1 | +<html> | ||
| 2 | +<head> | ||
| 3 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
| 4 | + <meta property="qc:admins" content="35453715257630661457637577164165323" /> | ||
| 5 | + <title>SRS</title> | ||
| 6 | + <link href="css/style.css" rel="stylesheet" type="text/css"> | ||
| 7 | + <link href="css/index_black.css" rel="stylesheet" type="text/css"> | ||
| 8 | +</head> | ||
| 9 | + | ||
| 10 | +<body> | ||
| 11 | +<script type="text/javascript" src="js/jquery.js"></script> | ||
| 12 | +<script type="text/javascript" src="conf.js"></script> | ||
| 13 | + | ||
| 14 | +<div id="banner"> | ||
| 15 | + <div id="login" style="padding-top:20px;text-align:center;"></div> | ||
| 16 | +</div> | ||
| 17 | + | ||
| 18 | +<script type="text/javascript"> | ||
| 19 | + document.title = get_system_title(); | ||
| 20 | + | ||
| 21 | + function require_login(){ | ||
| 22 | + // 应用的APPID | ||
| 23 | + var appID = get_qq_oauth_app_id(); | ||
| 24 | + // 成功授权后的回调地址 | ||
| 25 | + var redirectURI = get_qq_oauth_redirect_url(); | ||
| 26 | + // 透传的状态: check, user | ||
| 27 | + var state = "check"; | ||
| 28 | + | ||
| 29 | + var path = 'https://graph.qq.com/oauth2.0/authorize?'; | ||
| 30 | + var queryParams = [ | ||
| 31 | + 'response_type=token', | ||
| 32 | + 'client_id=' + appID, | ||
| 33 | + 'redirect_uri=' + encodeURI(redirectURI), | ||
| 34 | + 'state=' + state, | ||
| 35 | + 'scope=' + 'get_user_info', | ||
| 36 | + ]; | ||
| 37 | + | ||
| 38 | + var query = queryParams.join('&'); | ||
| 39 | + var url = path + query; | ||
| 40 | + //console.log(url); | ||
| 41 | + $("#login").empty(); | ||
| 42 | + $("#login").append("<div style='margin-bottom:40px;margin-top:30px;'>Welcome to " + get_system_title() + "!</div>"); | ||
| 43 | + $("#login").append("<a href='" + url + "'><img src='images/login.png'/></a>"); | ||
| 44 | + //window.location.href = url; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + if(enable_auth()){ | ||
| 48 | + require_login(); | ||
| 49 | + } | ||
| 50 | + else{ | ||
| 51 | + $("#login").html("<div style='margin-bottom:20px;'>Welcome to " + get_system_title() + "!</div>"); | ||
| 52 | + } | ||
| 53 | +</script> | ||
| 54 | + | ||
| 55 | +<div id="footer"> | ||
| 56 | + <span>Copyright © 2013-2014 SRS,保留所有权利</span> | ||
| 57 | + Email: winlin@vip.126.com<br/> | ||
| 58 | + <span>京ICP备12047633号</span> | ||
| 59 | +</div> | ||
| 60 | +</body> | ||
| 61 | +</html> |
此 diff 太大无法显示。
| 1 | +<html> | ||
| 2 | +<head> | ||
| 3 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
| 4 | + <title>SRS</title> | ||
| 5 | + <link href="css/style.css" rel="stylesheet" type="text/css"> | ||
| 6 | + <link href="css/index_black.css" rel="stylesheet" type="text/css"> | ||
| 7 | +</head> | ||
| 8 | + | ||
| 9 | +<body> | ||
| 10 | +<script type="text/javascript" src="js/jquery.js"></script> | ||
| 11 | +<script type="text/javascript" src="conf.js"></script> | ||
| 12 | + | ||
| 13 | +<div id="banner"> | ||
| 14 | + <div id="login" style="padding-top:20px;text-align:center;"></div> | ||
| 15 | +</div> | ||
| 16 | + | ||
| 17 | +<script type="text/javascript"> | ||
| 18 | + document.title = get_system_title(); | ||
| 19 | + | ||
| 20 | + function require_login(){ | ||
| 21 | + // 应用的APPID | ||
| 22 | + var appID = get_qq_oauth_app_id(); | ||
| 23 | + // 成功授权后的回调地址 | ||
| 24 | + var redirectURI = get_qq_oauth_redirect_url(); | ||
| 25 | + // 透传的状态: check, user | ||
| 26 | + var state = "user"; | ||
| 27 | + | ||
| 28 | + var path = 'https://graph.qq.com/oauth2.0/authorize?'; | ||
| 29 | + var queryParams = [ | ||
| 30 | + 'response_type=token', | ||
| 31 | + 'client_id=' + appID, | ||
| 32 | + 'redirect_uri=' + encodeURI(redirectURI), | ||
| 33 | + 'state=' + state, | ||
| 34 | + 'scope=' + 'get_user_info', | ||
| 35 | + ]; | ||
| 36 | + | ||
| 37 | + var query = queryParams.join('&'); | ||
| 38 | + var url = path + query; | ||
| 39 | + //console.log(url); | ||
| 40 | + $("#login").empty(); | ||
| 41 | + $("#login").append("<div style='margin-bottom:40px;margin-top:30px;'>Welcome to " + get_system_title() + "!</div>"); | ||
| 42 | + $("#login").append("<a href='" + url + "'><img src='images/login.png'/></a>"); | ||
| 43 | + //window.location.href = url; | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + if(enable_auth()){ | ||
| 47 | + require_login(); | ||
| 48 | + } | ||
| 49 | + else{ | ||
| 50 | + $("#login").html("<div style='margin-bottom:20px;'>Welcome to " + get_system_title() + "!</div>"); | ||
| 51 | + } | ||
| 52 | +</script> | ||
| 53 | + | ||
| 54 | +<div id="footer"> | ||
| 55 | + <span>Copyright © 2013-2014 SRS,保留所有权利</span> | ||
| 56 | + Email: winlin@vip.126.com<br/> | ||
| 57 | + <span>京ICP备12047633号</span> | ||
| 58 | +</div> | ||
| 59 | +</body> | ||
| 60 | +</html> |
-
请 注册 或 登录 后发表评论