Commit 9fa02039 authored by 杨成林's avatar 杨成林

Merge branch 'dev' into 'test'

Dev

See merge request !166
parents 42bea5db a3ae7dc5
import hashlib import hashlib
import time
from django.conf import settings from django.conf import settings
from gm_types.ascle import ERROR from gm_types.ascle import ERROR
...@@ -52,7 +53,8 @@ class ChannelList(APIView): ...@@ -52,7 +53,8 @@ class ChannelList(APIView):
error_logger.error(u'获取渠道列表失败:%s', e) error_logger.error(u'获取渠道列表失败:%s', e)
raise e raise e
data = {'total': channel_list.get('total', 0)} data = {'total': channel_list.get('total', 0)}
url = settings.APK_DOMAIN + settings.APK_BUILD_DIR + '/' + settings.APK_RELEASE_DIR + "/{name}/gm_alpha_{name}.apk" url = settings.APK_DOMAIN + settings.APK_BUILD_DIR + '/' + settings.APK_RELEASE_DIR + \
"/{name}/gm_alpha_{name}.apk?t={timestamp}"
channels = [ channels = [
{ {
'id': data.get('id'), 'id': data.get('id'),
...@@ -60,7 +62,7 @@ class ChannelList(APIView): ...@@ -60,7 +62,7 @@ class ChannelList(APIView):
'url_name': data.get('url_name'), 'url_name': data.get('url_name'),
'pack': data.get('pack'), 'pack': data.get('pack'),
'released_version': data.get('released_version'), 'released_version': data.get('released_version'),
'download_url': url.format(name=data.get('url_name')), 'download_url': url.format(name=data.get('url_name'), timestamp=time.time()),
} }
for data in channel_list.get('data', [])] for data in channel_list.get('data', [])]
data.update({'channel': channels}) data.update({'channel': channels})
...@@ -84,7 +86,7 @@ class ChannelVersionList(APIView): ...@@ -84,7 +86,7 @@ class ChannelVersionList(APIView):
error_logger.error(u'获取渠道列表失败:%s', e) error_logger.error(u'获取渠道列表失败:%s', e)
raise e raise e
data = {'total': channel_list.get('total', 0)} data = {'total': channel_list.get('total', 0)}
url = settings.APK_DOMAIN + settings.APK_BUILD_DIR + "/{version}/{name}/gm_alpha_{name}.apk" url = settings.APK_DOMAIN + settings.APK_BUILD_DIR + "/{version}/{name}/gm_alpha_{name}.apk?t={timestamp}"
channels = [ channels = [
{ {
'version_id': data.get('version_id'), 'version_id': data.get('version_id'),
...@@ -96,7 +98,8 @@ class ChannelVersionList(APIView): ...@@ -96,7 +98,8 @@ class ChannelVersionList(APIView):
'packed': data.get('packed'), 'packed': data.get('packed'),
'release_time': data.get('release_time'), 'release_time': data.get('release_time'),
'is_released': data.get('is_released'), 'is_released': data.get('is_released'),
'download_url': url.format(version=data.get('version'), name=data.get('url_name')), 'download_url': url.format(
version=data.get('version'), name=data.get('url_name'), timestamp=time.time()),
} }
for data in channel_list.get('data', [])] for data in channel_list.get('data', [])]
data.update({'channel': channels}) data.update({'channel': channels})
...@@ -245,7 +248,8 @@ class VersionChannelList(APIView): ...@@ -245,7 +248,8 @@ class VersionChannelList(APIView):
error_logger.error(u'获取版本列表失败:%s', e) error_logger.error(u'获取版本列表失败:%s', e)
raise e raise e
data = {'total': version_list.get('total', 0)} data = {'total': version_list.get('total', 0)}
url = settings.APK_DOMAIN + settings.APK_BUILD_DIR + "/{version}/{name}/gm_alpha_{name}.apk" url = settings.APK_DOMAIN + settings.APK_BUILD_DIR + "/{version}/{name}/gm_alpha_{name}.apk?t={timestamp}"
sup_url = ChannelPackage.apk_url(channel='', version=version_list.get('version')) + '?t={timestamp}'
versions = { versions = {
'version': [{ 'version': [{
'channel_id': item.get('channel_id'), 'channel_id': item.get('channel_id'),
...@@ -254,11 +258,12 @@ class VersionChannelList(APIView): ...@@ -254,11 +258,12 @@ class VersionChannelList(APIView):
'name': item.get('name'), 'name': item.get('name'),
'packed_time': item.get('packed_time'), 'packed_time': item.get('packed_time'),
'packed': item.get('packed'), 'packed': item.get('packed'),
'download_url': url.format(version=item.get('version'), name=item.get('url_name')), 'download_url': url.format(
version=item.get('version'), name=item.get('url_name'), timestamp=time.time()),
'release_time': item.get('release_time'), 'release_time': item.get('release_time'),
'is_released': item.get('is_released'), 'is_released': item.get('is_released'),
} for item in version_list.get('data', [])], } for item in version_list.get('data', [])],
'base_apk_url': ChannelPackage.apk_url(channel='', version=version_list.get('version')), 'base_apk_url': sup_url.format(timestamp=time.time()),
} }
data.update({'data': versions}) data.update({'data': versions})
return self.write_success(data=data) return self.write_success(data=data)
......
import json
from utils.base import APIView, get_offset_count from utils.base import APIView, get_offset_count
from utils.logger import error_logger from utils.logger import error_logger
...@@ -6,7 +7,7 @@ class TopicHomeRecommendList(APIView): ...@@ -6,7 +7,7 @@ class TopicHomeRecommendList(APIView):
def get(self, request): def get(self, request):
sort_ = request.GET.get('sort', '-topic_id') sort_ = request.GET.get('sort_params', '-topic_id')
offset, count = get_offset_count(request) offset, count = get_offset_count(request)
try: try:
...@@ -16,7 +17,7 @@ class TopicHomeRecommendList(APIView): ...@@ -16,7 +17,7 @@ class TopicHomeRecommendList(APIView):
error_logger.error(u'获取首页推荐帖子列表失败%s', e) error_logger.error(u'获取首页推荐帖子列表失败%s', e)
raise raise
return {'data': data} return data
class TopicHomeRecommendEdit(APIView): class TopicHomeRecommendEdit(APIView):
...@@ -79,3 +80,42 @@ class TopicHomeFixOperation(APIView): ...@@ -79,3 +80,42 @@ class TopicHomeFixOperation(APIView):
return { return {
'message': '更新成功' 'message': '更新成功'
} }
class PictorialHomeRecommendList(APIView):
"""获取画报首页运营位推荐画报列表"""
def get(self, request):
offset, count = get_offset_count(request)
filters = json.loads(request.GET.get('filters', '{}'))
sort_by = request.GET.get('sort_by', None)
try:
data = self.rpc['venus/sun/operation/recommend/pictorial/list'](filters=filters, sort_by=sort_by, offset=offset, count=count).unwrap()
except Exception as e:
error_logger.error(u'获取数据失败', e)
raise
return data
class PictorialHomeRecommendUpdate(APIView):
"""更新画报首页运营位推荐画报"""
def post(self, request):
pictorial_id = request.POST.get('id')
rank = request.POST.get('rank')
try:
if rank:
data = self.rpc['venus/sun/operation/recommend/pictorial/rank'](pictorial_id=pictorial_id, rank=rank).unwrap()
elif pictorial_id:
data = self.rpc['venus/sun/operation/recommend/pictorial/delete'](pictorial_id=pictorial_id).unwrap()
except Exception as e:
error_logger.error(u'操作失败', e)
raise
if not data:
return u'操作失败'
return data
...@@ -58,7 +58,8 @@ class PictorialUpdateOrCreate(APIView): ...@@ -58,7 +58,8 @@ class PictorialUpdateOrCreate(APIView):
'is_recommend': int(request.POST.get('is_recommend', 0)), 'is_recommend': int(request.POST.get('is_recommend', 0)),
'pictorial_user_ids': pictorial_user_ids, 'pictorial_user_ids': pictorial_user_ids,
'icon': request.POST.get('icon', ''), 'icon': request.POST.get('icon', ''),
'collection_tag_ids': collection_tag_ids 'collection_tag_ids': collection_tag_ids,
'is_home_recommend': request.POST.get('is_home_recommend', 0),
} }
try: try:
data = self.rpc['venus/sun/pictorial/edit'](id=id, data=data).unwrap() data = self.rpc['venus/sun/pictorial/edit'](id=id, data=data).unwrap()
......
...@@ -35,7 +35,7 @@ class TagSearchView(APIView): ...@@ -35,7 +35,7 @@ class TagSearchView(APIView):
def get(self, request): def get(self, request):
offset, count = get_offset_count(request) offset, count = get_offset_count(request)
name = request.GET.get('name') name = request.GET.get('name')
platform = request.GET.get('platform') platform = None # request.GET.get('platform')
collection = request.GET.get('collection') collection = request.GET.get('collection')
try: try:
data = self.rpc['venus/sun/tag/search'](offset=offset, count=count, name=name, platform=platform, collection=collection).unwrap() data = self.rpc['venus/sun/tag/search'](offset=offset, count=count, name=name, platform=platform, collection=collection).unwrap()
...@@ -93,7 +93,7 @@ class TagTypeSearchView(APIView): ...@@ -93,7 +93,7 @@ class TagTypeSearchView(APIView):
'data': ['{id}:{name}'.format(id=search_data['id'], name=search_data['name']) for search_data in data] 'data': ['{id}:{name}'.format(id=search_data['id'], name=search_data['name']) for search_data in data]
} }
class PictorialSearchView(APIView): class PictorialSearchView(APIView):
def get(self, request): def get(self, request):
name = request.GET.get('name') name = request.GET.get('name')
......
...@@ -116,7 +116,7 @@ class TopicUpdateOrCreateView(APIView): ...@@ -116,7 +116,7 @@ class TopicUpdateOrCreateView(APIView):
def post(self, request): def post(self, request):
id = request.POST.get('id', '') id = request.POST.get('id', '')
topic_images = list(map(lambda x: x[:-2], json.loads(request.POST.get('topic_images', [])))) topic_images = list(map(lambda x: x[:-2], json.loads(request.POST.get('topic_images', '[]'))))
tag_ids = list(map(lambda x: x.split(':')[0], json.loads(request.POST.get('tags', '[]')))) tag_ids = list(map(lambda x: x.split(':')[0], json.loads(request.POST.get('tags', '[]'))))
collection_tag_ids = list(map(lambda x: x.split(':')[0], json.loads(request.POST.get('collection_tags', '[]')))) collection_tag_ids = list(map(lambda x: x.split(':')[0], json.loads(request.POST.get('collection_tags', '[]'))))
pictorial_ids = list(json.loads(request.POST.get('pictorial_ids', '[]'))) pictorial_ids = list(json.loads(request.POST.get('pictorial_ids', '[]')))
...@@ -126,16 +126,18 @@ class TopicUpdateOrCreateView(APIView): ...@@ -126,16 +126,18 @@ class TopicUpdateOrCreateView(APIView):
'video_url': request.POST.get('video_url', ''), 'video_url': request.POST.get('video_url', ''),
'posting_time': request.POST.get('posting_time'), 'posting_time': request.POST.get('posting_time'),
'content': request.POST.get('content', ''), 'content': request.POST.get('content', ''),
'content_level': request.POST.get('content_level', ''), 'content_level': request.POST.get('content_level', 0),
'pictorial_ids': pictorial_ids, 'pictorial_ids': pictorial_ids,
'user_id': request.POST.get('user', '').split(':')[0], 'user_id': request.POST.get('user', '').split(':')[0],
'star_id': request.POST.get('star', '').split(':')[0], 'star_id': request.POST.get('star', '').split(':')[0],
'tag_ids': tag_ids, 'tag_ids': tag_ids,
'collection_tag_ids': collection_tag_ids, 'collection_tag_ids': collection_tag_ids,
'is_online': int(request.POST.get('is_online')), 'is_online': int(request.POST.get('is_online', 0)),
'drop_score': int(request.POST.get('drop_score')), 'drop_score': int(request.POST.get('drop_score', 0)),
'has_image': 1 if topic_images else 0, 'has_image': 1 if topic_images else 0,
'has_video': 1 if request.POST.get('video_url', '') else 0, 'has_video': 1 if request.POST.get('video_url', '') else 0,
'virtual_vote_num': request.POST.get('virtual_vote_num', ''),
'is_home': int(request.POST.get('is_home', 0)),
} }
try: try:
self.rpc['venus/sun/topic/edit'](id=id, data=data).unwrap() self.rpc['venus/sun/topic/edit'](id=id, data=data).unwrap()
......
...@@ -137,6 +137,8 @@ urlpatterns = [ ...@@ -137,6 +137,8 @@ urlpatterns = [
url(r'^topic/home_recommend/list', TopicHomeRecommendList.as_view()), url(r'^topic/home_recommend/list', TopicHomeRecommendList.as_view()),
url(r'^topic/home_recommend/edit', TopicHomeRecommendEdit.as_view()), url(r'^topic/home_recommend/edit', TopicHomeRecommendEdit.as_view()),
url(r'^operation/home_fix', TopicHomeFixOperation.as_view()), url(r'^operation/home_fix', TopicHomeFixOperation.as_view()),
url(r'^operation/pictorial/recommend/list', PictorialHomeRecommendList.as_view()),
url(r'^operation/pictorial/recommend/update', PictorialHomeRecommendUpdate.as_view()),
] ]
search_urlpatterns = [ search_urlpatterns = [
......
...@@ -63,9 +63,8 @@ class ChannelPackage(object): ...@@ -63,9 +63,8 @@ class ChannelPackage(object):
ret_res = cmd_res.readlines()[0] ret_res = cmd_res.readlines()[0]
target_channel_info = cp.findall(ret_res)[1] target_channel_info = cp.findall(ret_res)[1]
if target_channel_info and channel_name == target_channel_info.split('=')[1]: if target_channel_info and channel_name == target_channel_info.split('=')[1]:
target_path = self.channel_prefix + '_' + channel_name + '.apk'
os.remove(self.apk) os.remove(self.apk)
return target_path return targe_apk
else: else:
log_error() log_error()
os.remove(self.apk) os.remove(self.apk)
...@@ -76,6 +75,8 @@ class ChannelPackage(object): ...@@ -76,6 +75,8 @@ class ChannelPackage(object):
apk_uri = self.apk_key(channel_name, self.version) apk_uri = self.apk_key(channel_name, self.version)
QiniuTool.delete(apk_uri, settings.APK_SCOPE) QiniuTool.delete(apk_uri, settings.APK_SCOPE)
ret = QiniuFileTool.upload_file(chn_apk_path, apk_uri, settings.APK_SCOPE) ret = QiniuFileTool.upload_file(chn_apk_path, apk_uri, settings.APK_SCOPE)
res_resp = QiniuTool.refresh(['http://alpha-s.iyanzhi.com/' + apk_uri])
info_logger.debug(res_resp)
os.remove(chn_apk_path) os.remove(chn_apk_path)
return ret return ret
...@@ -115,5 +116,5 @@ class ChannelPackage(object): ...@@ -115,5 +116,5 @@ class ChannelPackage(object):
QiniuTool.delete(current_key, apk_scope) QiniuTool.delete(current_key, apk_scope)
QiniuTool.copy(version_key, current_key, apk_scope, apk_scope) QiniuTool.copy(version_key, current_key, apk_scope, apk_scope)
if need_refresh: if need_refresh:
QiniuTool.refresh(['http://qiniu.dl.igengmei.com/' + current_key]) QiniuTool.refresh(['http://alpha-s.iyanzhi.com/' + current_key])
return True return True
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment