| @@ -10,16 +10,21 @@ from group.models import GroupPhotoInfo | ||
| 10 | 10 |  | 
| 11 | 11 |  | 
| 12 | 12 | @logit | 
| 13 | +def group_detail(request, group_id): | |
| 14 | +    return render(request, 'page/pai2_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {}) | |
| 15 | + | |
| 16 | + | |
| 17 | +@logit | |
| 13 | 18 | def group_photo_detail(request, photo_id): | 
| 14 | 19 | photo = GroupPhotoInfo.objects.get(pk=photo_id) | 
| 15 | 20 |      return render(request, 'photo/photo_detail.html', {'photo_url': photo.photo_url, 'api_domain': settings.API_DOMAIN}) | 
| 16 | 21 |  | 
| 17 | 22 |  | 
| 18 | 23 | @logit | 
| 19 | -def group_detail(request, group_id): | |
| 20 | -    return render(request, 'page/{}_download.html'.format('ios' if request.iOS else 'adr'), {}) | |
| 24 | +def tgu_group_detail(request, admin_id): | |
| 25 | +    return render(request, 'page/pai2_tourguide_{}_download.html'.format('ios' if request.iOS else 'adr'), {}) | |
| 21 | 26 |  | 
| 22 | 27 |  | 
| 23 | 28 | @logit | 
| 24 | 29 | def tgu_group_user_detail(request, admin_id): | 
| 25 | -    return render(request, 'page/{}_download.html'.format('ios' if request.iOS else 'adr'), {}) | |
| 30 | +    return render(request, 'page/pai2_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {}) | 
| @@ -28,13 +28,41 @@ class LatestAppInfoAdmin(admin.ModelAdmin): | ||
| 28 | 28 | if obj.src == LatestAppInfo.PAIAI_USER: | 
| 29 | 29 | # 更新安卓下载页面 | 
| 30 | 30 |              write_to_disk(render_to_string('page/download.tmpl.html', { | 
| 31 | + 'src': obj.src, | |
| 31 | 32 | 'version': obj.latest_adr_version_name, | 
| 32 | - }), settings.DOWNLOAD_ADR_PAGE_PATH) | |
| 33 | + }), settings.PAI2_USER_DOWNLOAD_ADR_PAGE_PATH) | |
| 33 | 34 |  | 
| 34 | 35 | # 更新 iOS 下载页面 | 
| 35 | 36 |              write_to_disk(render_to_string('page/download.tmpl.html', { | 
| 37 | + 'src': obj.src, | |
| 36 | 38 | 'version': obj.latest_ios_version_name, | 
| 37 | - }), settings.DOWNLOAD_IOS_PAGE_PATH) | |
| 39 | + }), settings.PAI2_USER_DOWNLOAD_IOS_PAGE_PATH) | |
| 40 | + | |
| 41 | + elif obj.src == LatestAppInfo.PAIAI_LENSMAN: | |
| 42 | + # 更新安卓下载页面 | |
| 43 | +            write_to_disk(render_to_string('page/download.tmpl.html', { | |
| 44 | + 'src': obj.src, | |
| 45 | + 'version': obj.latest_adr_version_name, | |
| 46 | + }), settings.PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH) | |
| 47 | + | |
| 48 | + # 更新 iOS 下载页面 | |
| 49 | +            write_to_disk(render_to_string('page/download.tmpl.html', { | |
| 50 | + 'src': obj.src, | |
| 51 | + 'version': obj.latest_ios_version_name, | |
| 52 | + }), settings.PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH) | |
| 53 | + | |
| 54 | + elif obj.src == LatestAppInfo.PAIAI_TOURGUIDE: | |
| 55 | + # 更新安卓下载页面 | |
| 56 | +            write_to_disk(render_to_string('page/download.tmpl.html', { | |
| 57 | + 'src': obj.src, | |
| 58 | + 'version': obj.latest_adr_version_name, | |
| 59 | + }), settings.PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH) | |
| 60 | + | |
| 61 | + # 更新 iOS 下载页面 | |
| 62 | +            write_to_disk(render_to_string('page/download.tmpl.html', { | |
| 63 | + 'src': obj.src, | |
| 64 | + 'version': obj.latest_ios_version_name, | |
| 65 | + }), settings.PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH) | |
| 38 | 66 |  | 
| 39 | 67 | # 设置最新 APP 信息 | 
| 40 | 68 | set_latest_app(obj.src) | 
| @@ -5,7 +5,7 @@ from django.shortcuts import redirect | ||
| 5 | 5 | from logit import logit | 
| 6 | 6 |  | 
| 7 | 7 | from account.models import UserInfo | 
| 8 | -from operation.models import FeedbackInfo, SplashInfo | |
| 8 | +from operation.models import FeedbackInfo, LatestAppInfo, SplashInfo | |
| 9 | 9 | from utils.error.errno_utils import UserStatusCode | 
| 10 | 10 | from utils.error.response_utils import response | 
| 11 | 11 | from utils.redis.rapp import get_latest_app | 
| @@ -84,8 +84,22 @@ def feedback_api(request): | ||
| 84 | 84 |  | 
| 85 | 85 | def download_api(request): | 
| 86 | 86 | """ 下载接口 """ | 
| 87 | +    src = int(request.GET.get('src', 0)) | |
| 88 | + | |
| 87 | 89 | if request.weixin: | 
| 88 | - return redirect(settings.DOWNLOAD_WX_URL) | |
| 90 | + if src == LatestAppInfo.PAIAI_USER: | |
| 91 | + wx_url = settings.PAI2_USER_DOWNLOAD_WX_URL | |
| 92 | + elif src == LatestAppInfo.PAIAI_LENSMAN: | |
| 93 | + wx_url = settings.PAI2_LENSMAN_DOWNLOAD_WX_URL | |
| 94 | + elif src == LatestAppInfo.PAIAI_TOURGUIDE: | |
| 95 | + wx_url = settings.PAI2_TOURGUIDE_DOWNLOAD_WX_URL | |
| 96 | + return redirect(wx_url) | |
| 89 | 97 | if request.iOS: | 
| 90 | - return redirect(settings.DOWNLOAD_IOS_URL) | |
| 91 | -    return redirect(get_latest_app().get('latest_adr_url', '')) | |
| 98 | + if src == LatestAppInfo.PAIAI_USER: | |
| 99 | + ios_url = settings.PAI2_USER_DOWNLOAD_IOS_URL | |
| 100 | + elif src == LatestAppInfo.PAIAI_LENSMAN: | |
| 101 | + ios_url = settings.PAI2_LENSMAN_DOWNLOAD_IOS_URL | |
| 102 | + elif src == LatestAppInfo.PAIAI_TOURGUIDE: | |
| 103 | + ios_url = settings.PAI2_TOURGUIDE_DOWNLOAD_IOS_URL | |
| 104 | + return redirect(ios_url) | |
| 105 | +    return redirect(get_latest_app(src).get('latest_adr_url', '')) | 
| @@ -156,7 +156,7 @@ | ||
| 156 | 156 | </div> | 
| 157 | 157 | <div class="description text-muted">即拍即分享</div> | 
| 158 | 158 | <div class="download"> | 
| 159 | - <a href="https://api.pai.ai/op/download"> | |
| 159 | +                    <a href="https://api.pai.ai/op/download?scr={{ src }}"> | |
| 160 | 160 |                          <button class="hero-button">下载<strong>v{{ version }}</strong></button> | 
| 161 | 161 | </a> | 
| 162 | 162 | </div> | 
| @@ -266,7 +266,7 @@ CURTAIL_UUID_LENGTH = 7 | ||
| 266 | 266 |  WATERMARK_LOGO = os.path.join(PROJ_DIR, 'static/pai2/img/paiai_96_96.png').replace('\\', '/') | 
| 267 | 267 |  | 
| 268 | 268 | # 原图设置 | 
| 269 | -ORIGIN_EXPIRED_MSEL = 604800000 # 7d = 7 * 24 * 3600 * 1000msel | |
| 269 | +LENSMAN_PHOTO_ORIGIN_EXPIRED_MSEL = 604800000 # 摄影师原图过期毫秒数,7d = 7 * 24 * 3600 * 1000msel | |
| 270 | 270 |  | 
| 271 | 271 | # 缩略图设置 | 
| 272 | 272 | THUMBNAIL_MAX_WIDTH = 540 | 
| @@ -275,16 +275,29 @@ THUMBNAIL_MAX_WIDTH2 = 1080 | ||
| 275 | 275 | # 首页设置 | 
| 276 | 276 | PAI2_HOME_PER_PAGE = 20 # 首页照片每页数量 | 
| 277 | 277 | PAI2_HOME_MAX_PAGE = 20 # 首页照片最大页数 | 
| 278 | -PAI2_HOME_MAX_ROWS = 400 # 首页照片最大数量, PAI2_HOME_PER_PAGE * PAI2_HOME_MAX_PAGE = 20 * 20 = 400 | |
| 278 | +PAI2_HOME_MAX_ROWS = 400 # 首页照片最大数量,PAI2_HOME_PER_PAGE * PAI2_HOME_MAX_PAGE = 20 * 20 = 400 | |
| 279 | 279 |  | 
| 280 | 280 | # 下载页设置 | 
| 281 | -DOWNLOAD_TMPL_PATH = os.path.join(BASE_DIR, 'page/templates/page/download.tmpl.html').replace('\\', '/') | |
| 282 | -DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/adr_download.html').replace('\\', '/') | |
| 283 | -DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/ios_download.html').replace('\\', '/') | |
| 281 | +TMPL_DOWNLOAD_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/download.tmpl.html').replace('\\', '/') | |
| 282 | + | |
| 283 | +PAI2_USER_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_user_adr_download.html').replace('\\', '/') | |
| 284 | +PAI2_USER_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_user_ios_download.html').replace('\\', '/') | |
| 285 | + | |
| 286 | +PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_lensman_adr_download.html').replace('\\', '/') | |
| 287 | +PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_lensman_ios_download.html').replace('\\', '/') | |
| 288 | + | |
| 289 | +PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_tourguide_adr_download.html').replace('\\', '/') | |
| 290 | +PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_tourguide_ios_download.html').replace('\\', '/') | |
| 284 | 291 |  | 
| 285 | 292 | # 下载设置 | 
| 286 | -DOWNLOAD_WX_URL = 'https://pai.ai' | |
| 287 | -DOWNLOAD_IOS_URL = 'https://pai.ai' | |
| 293 | +PAI2_USER_DOWNLOAD_WX_URL = 'https://pai.ai' | |
| 294 | +PAI2_USER_DOWNLOAD_IOS_URL = 'https://pai.ai' | |
| 295 | + | |
| 296 | +PAI2_LENSMAN_DOWNLOAD_WX_URL = 'https://pai.ai' | |
| 297 | +PAI2_LENSMAN_DOWNLOAD_IOS_URL = 'https://pai.ai' | |
| 298 | + | |
| 299 | +PAI2_TOURGUIDE_DOWNLOAD_WX_URL = 'https://pai.ai' | |
| 300 | +PAI2_TOURGUIDE_DOWNLOAD_IOS_URL = 'https://pai.ai' | |
| 288 | 301 |  | 
| 289 | 302 | # 群组设置 | 
| 290 | 303 | GROUP_PER_PAGE = 20 # 群组每页数量 | 
| @@ -57,15 +57,19 @@ urlpatterns += [ | ||
| 57 | 57 | ] | 
| 58 | 58 |  | 
| 59 | 59 | urlpatterns += [ | 
| 60 | + url(r'^g/(?P<group_id>\w+)$', grouppage_views.group_detail, name='group_detail'), # 群组详情(拍爱用户端下载页) | |
| 61 | +] | |
| 62 | + | |
| 63 | +urlpatterns += [ | |
| 60 | 64 | url(r'^gp/(?P<photo_id>\w+)$', grouppage_views.group_photo_detail, name='group_photo_detail'), # 群组照片详情 | 
| 61 | 65 | ] | 
| 62 | 66 |  | 
| 63 | 67 | urlpatterns += [ | 
| 64 | - url(r'^g/(?P<group_id>\w+)$', grouppage_views.group_detail, name='group_detail'), # 群组详情(APP下载页) | |
| 68 | + url(r'^tg/(?P<admin_id>\w+)$', grouppage_views.tgu_group_detail, name='tgu_group_detail'), # 旅行团详情(拍爱导游端下载页) | |
| 65 | 69 | ] | 
| 66 | 70 |  | 
| 67 | 71 | urlpatterns += [ | 
| 68 | - url(r'^tgu/(?P<admin_id>\w+)$', grouppage_views.tgu_group_user_detail, name='tgu_group_user_detail'), # 旅行团详情(APP下载页) | |
| 72 | + url(r'^tgu/(?P<admin_id>\w+)$', grouppage_views.tgu_group_user_detail, name='tgu_group_user_detail'), # 旅行团成员详情(拍爱用户端下载页) | |
| 69 | 73 | ] | 
| 70 | 74 |  | 
| 71 | 75 | urlpatterns += [ | 
| @@ -5,6 +5,6 @@ from django.conf import settings | ||
| 5 | 5 |  | 
| 6 | 6 | def origin_expired_stamps(origin_stamps, user_id): | 
| 7 | 7 | try: | 
| 8 | - return int(origin_stamps) + settings.ORIGIN_EXPIRED_MSEL | |
| 8 | + return int(origin_stamps) + settings.LENSMAN_PHOTO_ORIGIN_EXPIRED_MSEL | |
| 9 | 9 | except: | 
| 10 | 10 | return 0 |