|
@@ -27,8 +27,20 @@ ad_plan_typesetting_table = Table('ad_plan_typesetting', db.metadata,
|
|
|
# 1.实现本机服务
|
|
|
# 2.实现线上docker-selenium服务
|
|
|
|
|
|
+class BaseHandler(tornado.web.RequestHandler):
|
|
|
+ def options(self):
|
|
|
+ pass
|
|
|
|
|
|
-class create_ad_plan_remote(tornado.web.RequestHandler):
|
|
|
+ def set_default_headers(self):
|
|
|
+ print('get in ')
|
|
|
+ self.set_header('Access-Control-Allow-Origin', '*')
|
|
|
+ self.set_header('Access-Control-Allow-Headers', '*')
|
|
|
+ self.set_header('Access-Control-Max-Age', 1000)
|
|
|
+ self.set_header('Content-type', '*')
|
|
|
+ self.set_header('Access-Control-Allow-Methods', '*')
|
|
|
+
|
|
|
+
|
|
|
+class create_ad_plan_remote(BaseHandler):
|
|
|
# 1.批量创建计划
|
|
|
# 返回创建计划是否已经开始
|
|
|
def post(self):
|
|
@@ -41,7 +53,7 @@ class create_ad_plan_remote(tornado.web.RequestHandler):
|
|
|
args=(user_id, ad_plan_name, wechat_json, log_ad, db, cookie_canuse)).start()
|
|
|
|
|
|
|
|
|
-class create_ad_plan_local(tornado.web.RequestHandler):
|
|
|
+class create_ad_plan_local(BaseHandler):
|
|
|
def post(self):
|
|
|
user_id = self.get_argument("user_id", None)
|
|
|
ad_plan_typesetting = self.get_argument("plan_typesetting", None)
|
|
@@ -49,7 +61,7 @@ class create_ad_plan_local(tornado.web.RequestHandler):
|
|
|
print(user_id, ad_plan_typesetting, ad_plan_name)
|
|
|
sql_session = db.DBSession()
|
|
|
if user_id is None or ad_plan_name is None or ad_plan_typesetting is None:
|
|
|
- self.write(json.dumps({'status': {'msg': 'url parameter error', "RetCode": 400}}))
|
|
|
+ self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
return
|
|
|
# 落地页名字精确到毫秒,默认是全局唯一
|
|
|
# TODO:检查一下plan--内容 有无问题-----和前端确定一下
|
|
@@ -60,10 +72,10 @@ class create_ad_plan_local(tornado.web.RequestHandler):
|
|
|
table_ad_plan_typesetting=ad_plan_typesetting_table)
|
|
|
sql_session.execute(ad_plan_typesetting_inserte)
|
|
|
sql_session.commit()
|
|
|
- self.write(json.dumps({'status': {'msg': 'success', "RetCode": 200}}, ensure_ascii=False))
|
|
|
+ self.write({'status': {'msg': 'success', "RetCode": 200}})
|
|
|
|
|
|
|
|
|
-class create_ad_layout_remote(tornado.web.RequestHandler):
|
|
|
+class create_ad_layout_remote(BaseHandler):
|
|
|
# 1.批量创建落地页
|
|
|
def post(self):
|
|
|
user_id = self.get_argument("user_id", None)
|
|
@@ -75,7 +87,7 @@ class create_ad_layout_remote(tornado.web.RequestHandler):
|
|
|
args=(user_id, layout_name, wechat_json, log_ad, db, cookie_canuse)).start()
|
|
|
|
|
|
|
|
|
-class create_ad_layout_local(tornado.web.RequestHandler):
|
|
|
+class create_ad_layout_local(BaseHandler):
|
|
|
def post(self):
|
|
|
user_id = self.get_argument("user_id", None)
|
|
|
layout_typesetting = self.get_argument("layout_typesetting", None)
|
|
@@ -83,7 +95,7 @@ class create_ad_layout_local(tornado.web.RequestHandler):
|
|
|
print(user_id, layout_typesetting, layout_name)
|
|
|
sql_session = db.DBSession()
|
|
|
if user_id is None or layout_name is None or layout_typesetting is None:
|
|
|
- self.write(json.dumps({'status': {'msg': 'url parameter error', "RetCode": 400}}))
|
|
|
+ self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
return
|
|
|
# 落地页名字精确到毫秒,默认是全局唯一
|
|
|
# TODO:检查一下layout--内容 有无问题-----和前端确定一下
|
|
@@ -94,15 +106,15 @@ class create_ad_layout_local(tornado.web.RequestHandler):
|
|
|
table_layout_typesetting=layout_typesetting_table)
|
|
|
sql_session.execute(layout_typesetting_inserte)
|
|
|
sql_session.commit()
|
|
|
- self.write(json.dumps({'status': {'msg': 'success', "RetCode": 200}}, ensure_ascii=False))
|
|
|
+ self.write({'status': {'msg': 'success', "RetCode": 200}})
|
|
|
|
|
|
|
|
|
# TODO:wechat_info,human_info 这两张表有空时需要进行对应改进
|
|
|
-class ad_status(tornado.web.RequestHandler):
|
|
|
+class ad_status(BaseHandler):
|
|
|
def get(self):
|
|
|
user_id = self.get_argument("user_id", None)
|
|
|
if user_id is None:
|
|
|
- self.write(json.dumps({'status': {'msg': 'url parameter error', "RetCode": 400}}))
|
|
|
+ self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
return
|
|
|
sql_session = db.DBSession()
|
|
|
|
|
@@ -116,11 +128,11 @@ class ad_status(tornado.web.RequestHandler):
|
|
|
'create_time': create_time.strftime("%Y-%m-%d %H:%M:%S"), 'status': status})
|
|
|
# result = json.loads(result)
|
|
|
print(result)
|
|
|
- self.write(json.dumps({'status': {'msg': 'success', "RetCode": 200},
|
|
|
- 'ad_status_info': result}, ensure_ascii=False))
|
|
|
+ self.write({'status': {'msg': 'success', "RetCode": 200},
|
|
|
+ 'ad_status_info': result})
|
|
|
|
|
|
|
|
|
-class ad_human_info(tornado.web.RequestHandler):
|
|
|
+class ad_human_info(BaseHandler):
|
|
|
|
|
|
@staticmethod
|
|
|
def refresh_wechat_cookies(tornado_web, user_id):
|
|
@@ -141,19 +153,19 @@ class ad_human_info(tornado.web.RequestHandler):
|
|
|
if not log_ad.wechat_cookies_check_alive(cookie_db):
|
|
|
# cookie 不能使用
|
|
|
wechat_code = log_ad.log_in()
|
|
|
- tornado_web.write(json.dumps({'status': {'msg': 'success', "RetCode": 200},
|
|
|
- 'wechat_code': wechat_code}))
|
|
|
+ tornado_web.write({'status': {'msg': 'success', "RetCode": 200},
|
|
|
+ 'wechat_code': wechat_code})
|
|
|
print('cookie can not use')
|
|
|
else:
|
|
|
# cookie 可以继续使用
|
|
|
cookie_canuse = True
|
|
|
log_ad.driver.get('https://a.weixin.qq.com/index.html')
|
|
|
- tornado_web.write(json.dumps({'status': {'msg': 'success', "RetCode": 200}}))
|
|
|
+ tornado_web.write({'status': {'msg': 'success', "RetCode": 200}})
|
|
|
else:
|
|
|
# cookie 不能使用
|
|
|
wechat_code = log_ad.log_in()
|
|
|
- tornado_web.write(json.dumps({'status': {'msg': 'success', "RetCode": 200},
|
|
|
- 'wechat_code': wechat_code}))
|
|
|
+ tornado_web.write({'status': {'msg': 'success', "RetCode": 200},
|
|
|
+ 'wechat_code': wechat_code})
|
|
|
return log_ad, cookie_canuse
|
|
|
|
|
|
# 1.人群包获取
|
|
@@ -166,7 +178,7 @@ class ad_human_info(tornado.web.RequestHandler):
|
|
|
is_refresh = self.get_argument("is_refresh", None)
|
|
|
print(user_id, is_refresh)
|
|
|
if user_id is None or is_refresh is None:
|
|
|
- self.write(json.dumps({'status': {'msg': 'url parameter error', "RetCode": 400}}))
|
|
|
+ self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
return
|
|
|
sql_session = db.DBSession()
|
|
|
# TODO:一个涉及到selenium-driver的请求-生命周期.----看一下tornado是怎么处理请求的生命周期
|
|
@@ -188,11 +200,12 @@ class ad_human_info(tornado.web.RequestHandler):
|
|
|
result = sql_tools.get_human_info(sql_session=sql_session, user_id=user_id)
|
|
|
result = [json.loads(x) for x in result]
|
|
|
print(result)
|
|
|
- self.write(json.dumps({'status': {'msg': 'success', "RetCode": 200},
|
|
|
- 'human_info': result}, ensure_ascii=False))
|
|
|
+ self.write({'status': {'msg': 'success', "RetCode": 200},
|
|
|
+ 'human_info': result})
|
|
|
+
|
|
|
|
|
|
+class ad_wechat_info(BaseHandler):
|
|
|
|
|
|
-class ad_wechat_info(tornado.web.RequestHandler):
|
|
|
# 1.公众号相关信息获取
|
|
|
def get(self):
|
|
|
# TODO:添加分页
|
|
@@ -203,7 +216,7 @@ class ad_wechat_info(tornado.web.RequestHandler):
|
|
|
is_refresh = self.get_argument("is_refresh", None)
|
|
|
print(user_id, is_refresh)
|
|
|
if user_id is None or is_refresh is None:
|
|
|
- self.write(json.dumps({'status': {'msg': 'url parameter error', "RetCode": 400}}))
|
|
|
+ self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
return
|
|
|
sql_session = db.DBSession()
|
|
|
# TODO:一个涉及到selenium-driver的请求-生命周期.----看一下tornado是怎么处理请求的生命周期
|
|
@@ -227,8 +240,8 @@ class ad_wechat_info(tornado.web.RequestHandler):
|
|
|
service_name, wechat_name = _
|
|
|
result_list.append({'service_name': service_name, 'wechat_name': wechat_name})
|
|
|
print(result_list)
|
|
|
- self.write(json.dumps({'status': {'msg': 'success', "RetCode": 200},
|
|
|
- 'wechat_info': result_list}, ensure_ascii=False))
|
|
|
+ self.write({'status': {'msg': 'success', "RetCode": 200},
|
|
|
+ 'wechat_info': result_list})
|
|
|
|
|
|
|
|
|
def make_app():
|