@@ -6,7 +6,7 @@ from django_models_ext import BaseModelMixin, SexModelMixin |
||
| 6 | 6 |
from jsonfield import JSONField |
| 7 | 7 |
from shortuuidfield import ShortUUIDField |
| 8 | 8 |
|
| 9 |
-from pai2.basemodels import LensmanTypeBoolMixin, LensmanTypeMixin |
|
| 9 |
+from kodo.basemodels import LensmanTypeBoolMixin, LensmanTypeMixin |
|
| 10 | 10 |
|
| 11 | 11 |
|
| 12 | 12 |
class LensmanInfo(BaseModelMixin, LensmanTypeBoolMixin): |
@@ -167,8 +167,8 @@ urlpatterns += [ |
||
| 167 | 167 |
|
| 168 | 168 |
# 首页相关 |
| 169 | 169 |
urlpatterns += [ |
| 170 |
- url(r'^pai2/home$', group_views.pai2_home_api, name='pai2_home_api'), # 首页照片信息 |
|
| 171 |
- url(r'^pai2/tginfo$', tourguidegroup_views.pai2_tginfo_api, name='pai2_tginfo_api'), # 首页旅行团信息 |
|
| 170 |
+ url(r'^kodo/home$', group_views.kodo_home_api, name='kodo_home_api'), # 首页照片信息 |
|
| 171 |
+ url(r'^kodo/tginfo$', tourguidegroup_views.kodo_tginfo_api, name='kodo_tginfo_api'), # 首页旅行团信息 |
|
| 172 | 172 |
] |
| 173 | 173 |
|
| 174 | 174 |
# 服务器相关 |
@@ -11,7 +11,7 @@ from group.models import GroupPhotoInfo |
||
| 11 | 11 |
|
| 12 | 12 |
@logit |
| 13 | 13 |
def group_detail(request, group_id): |
| 14 |
- return render(request, 'page/pai2_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
|
|
| 14 |
+ return render(request, 'page/kodo_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
|
|
| 15 | 15 |
|
| 16 | 16 |
|
| 17 | 17 |
@logit |
@@ -22,9 +22,9 @@ def group_photo_detail(request, photo_id): |
||
| 22 | 22 |
|
| 23 | 23 |
@logit |
| 24 | 24 |
def tgu_group_detail(request, admin_id): |
| 25 |
- return render(request, 'page/pai2_tourguide_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
|
|
| 25 |
+ return render(request, 'page/kodo_tourguide_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
|
|
| 26 | 26 |
|
| 27 | 27 |
|
| 28 | 28 |
@logit |
| 29 | 29 |
def tgu_group_user_detail(request, admin_id): |
| 30 |
- return render(request, 'page/pai2_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
|
|
| 30 |
+ return render(request, 'page/kodo_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
|
@@ -6,8 +6,7 @@ from django_models_ext import BaseModelMixin |
||
| 6 | 6 |
from shortuuidfield import ShortUUIDField |
| 7 | 7 |
from TimeConvert import TimeConvert as tc |
| 8 | 8 |
|
| 9 |
-from pai2.basemodels import LensmanTypeMixin |
|
| 10 |
-from photo.models import PhotosInfo |
|
| 9 |
+from kodo.basemodels import LensmanTypeMixin |
|
| 11 | 10 |
from utils.qiniucdn import qiniu_file_url |
| 12 | 11 |
from utils.redis.rgroup import get_group_photo_thumbup_flag |
| 13 | 12 |
from utils.redis.rorder import get_lensman_order_record |
@@ -122,7 +122,7 @@ def tg_group_detail_api(request): |
||
| 122 | 122 |
|
| 123 | 123 |
|
| 124 | 124 |
@logit |
| 125 |
-def pai2_tginfo_api(request): |
|
| 125 |
+def kodo_tginfo_api(request): |
|
| 126 | 126 |
""" 首页旅行团信息 """ |
| 127 | 127 |
user_id = request.POST.get('user_id', '')
|
| 128 | 128 |
|
@@ -608,7 +608,7 @@ def thumbup_cancel_api(request): |
||
| 608 | 608 |
|
| 609 | 609 |
|
| 610 | 610 |
@logit |
| 611 |
-def pai2_home_api(request): |
|
| 611 |
+def kodo_home_api(request): |
|
| 612 | 612 |
""" 首页照片信息 """ |
| 613 | 613 |
user_id = request.POST.get('user_id', '')
|
| 614 | 614 |
page = int(request.POST.get('page', 1))
|
@@ -1,11 +1,11 @@ |
||
| 1 |
-# pai2_uwsgi.ini file |
|
| 1 |
+# kodo_uwsgi.ini file |
|
| 2 | 2 |
[uwsgi] |
| 3 | 3 |
|
| 4 | 4 |
# Django-related settings |
| 5 | 5 |
# the base directory (full path) |
| 6 |
-chdir = /home/paiai/work/pai2 |
|
| 6 |
+chdir = /home/paiai/work/kodo |
|
| 7 | 7 |
# Django's wsgi file |
| 8 |
-module = pai2.wsgi |
|
| 8 |
+module = kodo.wsgi |
|
| 9 | 9 |
# the virtualenv (full path) |
| 10 | 10 |
# home = /path/to/virtualenv |
| 11 | 11 |
|
@@ -15,7 +15,7 @@ master = true |
||
| 15 | 15 |
# maximum number of worker processes |
| 16 | 16 |
processes = 10 |
| 17 | 17 |
# the socket (use the full path to be safe |
| 18 |
-socket = /home/paiai/work/pai2/pai2/uwsgi/pai2.sock |
|
| 18 |
+socket = /home/paiai/work/kodo/kodo/uwsgi/kodo.sock |
|
| 19 | 19 |
# ... with appropriate permissions - may be needed |
| 20 | 20 |
chmod-socket = 777 |
| 21 | 21 |
# clear environment on exit |
@@ -0,0 +1,35 @@ |
||
| 1 |
+# kodo_nginx.conf |
|
| 2 |
+ |
|
| 3 |
+# the upstream component nginx needs to connect to |
|
| 4 |
+upstream kodo {
|
|
| 5 |
+ # server unix:///home/paiai/work/kodo/kodo/uwsgi/kodo.sock; # for a file socket |
|
| 6 |
+ server 127.0.0.1:8888; # for a web port socket (we'll use this first) |
|
| 7 |
+} |
|
| 8 |
+ |
|
| 9 |
+# configuration of the server |
|
| 10 |
+server {
|
|
| 11 |
+ # the port your site will be served on |
|
| 12 |
+ listen 80; |
|
| 13 |
+ # the domain name it will serve for |
|
| 14 |
+ server_name .kodo.xfoto.com.cn; # substitute your machine's IP address or FQDN |
|
| 15 |
+ charset utf-8; |
|
| 16 |
+ |
|
| 17 |
+ # max upload size |
|
| 18 |
+ client_max_body_size 75M; # adjust to taste |
|
| 19 |
+ |
|
| 20 |
+ # Django media |
|
| 21 |
+ location /media {
|
|
| 22 |
+ alias /home/paiai/work/kodo/media; # your Django project's media files - amend as required |
|
| 23 |
+ } |
|
| 24 |
+ |
|
| 25 |
+ location /static {
|
|
| 26 |
+ alias /home/paiai/work/kodo/collect_static; # your Django project's static files - amend as required |
|
| 27 |
+ } |
|
| 28 |
+ |
|
| 29 |
+ # Finally, send all non-media requests to the Django server. |
|
| 30 |
+ location / {
|
|
| 31 |
+ # uwsgi_pass kodo; |
|
| 32 |
+ proxy_pass http://kodo; |
|
| 33 |
+ include /home/paiai/work/kodo/kodo/uwsgi/uwsgi_params; # the uwsgi_params file you installed |
|
| 34 |
+ } |
|
| 35 |
+} |
@@ -0,0 +1,12 @@ |
||
| 1 |
+[program:kodo] |
|
| 2 |
+command=/home/paiai/env/bin/uwsgi --ini /home/paiai/work/kodo/kodo/uwsgi/kodo.ini |
|
| 3 |
+autostart=true |
|
| 4 |
+autorestart=true |
|
| 5 |
+startretries=3 |
|
| 6 |
+exitcodes=0,1,2 |
|
| 7 |
+stopsignal=KILL |
|
| 8 |
+stopasgroup=true |
|
| 9 |
+killasgroup=true |
|
| 10 |
+stdout_logfile=/var/log/supervisor_kodo_access.log |
|
| 11 |
+stderr_logfile=/var/log/supervisor_kodo_error.log |
|
| 12 |
+user=paiai |
@@ -1,7 +1,7 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 | 2 |
|
| 3 | 3 |
""" |
| 4 |
-Django settings for pai2 project. |
|
| 4 |
+Django settings for kodo project. |
|
| 5 | 5 |
|
| 6 | 6 |
Generated by 'django-admin startproject' using Django 1.8.4. |
| 7 | 7 |
|
@@ -83,11 +83,11 @@ MIDDLEWARE_CLASSES = ( |
||
| 83 | 83 |
# MIDDLEWARE_CLASSES += ('multidomain.middleware.DomainMiddleware', )
|
| 84 | 84 |
# |
| 85 | 85 |
# URL_CONFIG = ( |
| 86 |
-# # (r'^(.+\.)?xfoto\.com\.cn', 'pai2.urls_www'), |
|
| 87 |
-# (r'^(.+\.)?api\.pai\.ai', 'pai2.urls_api'), |
|
| 86 |
+# # (r'^(.+\.)?xfoto\.com\.cn', 'kodo.urls_www'), |
|
| 87 |
+# (r'^(.+\.)?api\.pai\.ai', 'kodo.urls_api'), |
|
| 88 | 88 |
# ) |
| 89 | 89 |
|
| 90 |
-ROOT_URLCONF = 'pai2.urls' |
|
| 90 |
+ROOT_URLCONF = 'kodo.urls' |
|
| 91 | 91 |
|
| 92 | 92 |
TEMPLATES = [ |
| 93 | 93 |
{
|
@@ -111,7 +111,7 @@ TEMPLATES = [ |
||
| 111 | 111 |
}, |
| 112 | 112 |
] |
| 113 | 113 |
|
| 114 |
-WSGI_APPLICATION = 'pai2.wsgi.application' |
|
| 114 |
+WSGI_APPLICATION = 'kodo.wsgi.application' |
|
| 115 | 115 |
|
| 116 | 116 |
|
| 117 | 117 |
# Database |
@@ -119,7 +119,7 @@ WSGI_APPLICATION = 'pai2.wsgi.application' |
||
| 119 | 119 |
|
| 120 | 120 |
DATABASES = {
|
| 121 | 121 |
# Create Database |
| 122 |
- # CREATE DATABASE pai2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; |
|
| 122 |
+ # CREATE DATABASE kodo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; |
|
| 123 | 123 |
'default': {
|
| 124 | 124 |
'ENGINE': 'django.db.backends.mysql', |
| 125 | 125 |
'NAME': 'kodo', |
@@ -254,7 +254,7 @@ CURTAIL_UUID_LENGTH = 7 # Used in django-curtail-uuid==1.0.0 |
||
| 254 | 254 |
|
| 255 | 255 |
# 水印设置 |
| 256 | 256 |
WATERMARK_OR_NOT = False # 水印是否开启 |
| 257 |
-WATERMARK_LOGO_PATH = os.path.join(PROJ_DIR, 'static/pai2/img/paiai_water_mark.png').replace('\\', '/') # 水印图片路径
|
|
| 257 |
+WATERMARK_LOGO_PATH = os.path.join(PROJ_DIR, 'static/kodo/img/paiai_water_mark.png').replace('\\', '/') # 水印图片路径
|
|
| 258 | 258 |
|
| 259 | 259 |
# 原图设置 |
| 260 | 260 |
LENSMAN_PHOTO_ORIGIN_EXPIRED_MSEL = 604800000 # 摄影师原图过期毫秒数,7d = 7 * 24 * 3600 * 1000msel |
@@ -271,14 +271,14 @@ PAI2_HOME_MAX_ROWS = 400 # 首页照片最大数量,PAI2_HOME_PER_PAGE * PAI2 |
||
| 271 | 271 |
# 下载页设置 |
| 272 | 272 |
TMPL_DOWNLOAD_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/download.tmpl.html').replace('\\', '/')
|
| 273 | 273 |
|
| 274 |
-PAI2_USER_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_user_adr_download.html').replace('\\', '/')
|
|
| 275 |
-PAI2_USER_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_user_ios_download.html').replace('\\', '/')
|
|
| 274 |
+PAI2_USER_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_user_adr_download.html').replace('\\', '/')
|
|
| 275 |
+PAI2_USER_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_user_ios_download.html').replace('\\', '/')
|
|
| 276 | 276 |
|
| 277 |
-PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_lensman_adr_download.html').replace('\\', '/')
|
|
| 278 |
-PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_lensman_ios_download.html').replace('\\', '/')
|
|
| 277 |
+PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_lensman_adr_download.html').replace('\\', '/')
|
|
| 278 |
+PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_lensman_ios_download.html').replace('\\', '/')
|
|
| 279 | 279 |
|
| 280 |
-PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_tourguide_adr_download.html').replace('\\', '/')
|
|
| 281 |
-PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_tourguide_ios_download.html').replace('\\', '/')
|
|
| 280 |
+PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_tourguide_adr_download.html').replace('\\', '/')
|
|
| 281 |
+PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_tourguide_ios_download.html').replace('\\', '/')
|
|
| 282 | 282 |
|
| 283 | 283 |
# 下载设置 |
| 284 | 284 |
PAI2_USER_DOWNLOAD_WX_URL = 'https://a.app.qq.com/o/simple.jsp?pkgname=ai.pai.client' |
@@ -386,7 +386,7 @@ WECHAT_BASE_REDIRECT_URI = '{0}/we/base_redirect'.format(DOMAIN_HTTP)
|
||
| 386 | 386 |
WECHAT_USERINFO_REDIRECT_URI = '{0}/we/userinfo_redirect'.format(DOMAIN_HTTP)
|
| 387 | 387 |
|
| 388 | 388 |
# 消息图片设置 |
| 389 |
-PAI2_LOGO_URL = DOMAIN + '/static/pai2/img/paiai_96_96.png' |
|
| 389 |
+PAI2_LOGO_URL = DOMAIN + '/static/kodo/img/paiai_96_96.png' |
|
| 390 | 390 |
SYSTEM_MESSAGE_AVATAR = PAI2_LOGO_URL |
| 391 | 391 |
COMMENT_MESSAGE_AVATAR = PAI2_LOGO_URL |
| 392 | 392 |
THUMBUP_MESSAGE_AVATAR = PAI2_LOGO_URL |
@@ -395,7 +395,7 @@ THUMBUP_MESSAGE_AVATAR = PAI2_LOGO_URL |
||
| 395 | 395 |
REDIS_CACHE = connector(REDIS.get('default', {}))
|
| 396 | 396 |
|
| 397 | 397 |
# Q_CLUSTER = {
|
| 398 |
-# 'name': 'pai2', |
|
| 398 |
+# 'name': 'kodo', |
|
| 399 | 399 |
# 'workers': 8, |
| 400 | 400 |
# 'recycle': 500, |
| 401 | 401 |
# 'timeout': 60, |
@@ -411,7 +411,7 @@ DJLOGIT = {
|
||
| 411 | 411 |
'level': 'DEBUG', |
| 412 | 412 |
'class': 'rlog.RedisListHandler', |
| 413 | 413 |
'redis_client': REDIS_CACHE, |
| 414 |
- 'key': 'django:logit:pai2', |
|
| 414 |
+ 'key': 'django:logit:kodo', |
|
| 415 | 415 |
'formatter': 'verbose', |
| 416 | 416 |
} |
| 417 | 417 |
|
@@ -1,6 +1,6 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 | 2 |
|
| 3 |
-"""pai2 URL Configuration |
|
| 3 |
+"""kodo URL Configuration |
|
| 4 | 4 |
|
| 5 | 5 |
The `urlpatterns` list routes URLs to views. For more information please see: |
| 6 | 6 |
https://docs.djangoproject.com/en/1.8/topics/http/urls/ |
@@ -43,7 +43,7 @@ from website import views as website_views |
||
| 43 | 43 |
# router.register(r'photos', photo_views.PhotoInfoViewSet) |
| 44 | 44 |
|
| 45 | 45 |
urlpatterns = [ |
| 46 |
- url(r'^pai2admin/', include(admin.site.urls)), |
|
| 46 |
+ url(r'^kodoadmin/', include(admin.site.urls)), |
|
| 47 | 47 |
] |
| 48 | 48 |
|
| 49 | 49 |
# urlpatterns += [ |
@@ -72,7 +72,7 @@ urlpatterns = [ |
||
| 72 | 72 |
# ] |
| 73 | 73 |
# |
| 74 | 74 |
# urlpatterns += [ |
| 75 |
-# url(r'^$', website_views.pai2_home, name='pai2_home'), # 官网首页 |
|
| 75 |
+# url(r'^$', website_views.kodo_home, name='kodo_home'), # 官网首页 |
|
| 76 | 76 |
# ] |
| 77 | 77 |
|
| 78 | 78 |
# Mini App |
@@ -1,5 +1,5 @@ |
||
| 1 | 1 |
""" |
| 2 |
-WSGI config for pai2 project. |
|
| 2 |
+WSGI config for kodo project. |
|
| 3 | 3 |
|
| 4 | 4 |
It exposes the WSGI callable as a module-level variable named ``application``. |
| 5 | 5 |
|
@@ -12,6 +12,6 @@ import os |
||
| 12 | 12 |
from django.core.wsgi import get_wsgi_application |
| 13 | 13 |
|
| 14 | 14 |
|
| 15 |
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pai2.settings")
|
|
| 15 |
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kodo.settings")
|
|
| 16 | 16 |
|
| 17 | 17 |
application = get_wsgi_application() |
@@ -4,7 +4,7 @@ import sys |
||
| 4 | 4 |
|
| 5 | 5 |
|
| 6 | 6 |
if __name__ == "__main__": |
| 7 |
- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pai2.settings")
|
|
| 7 |
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kodo.settings")
|
|
| 8 | 8 |
|
| 9 | 9 |
from django.core.management import execute_from_command_line |
| 10 | 10 |
|
@@ -7,7 +7,7 @@ from django_models_ext import BaseModelMixin |
||
| 7 | 7 |
from TimeConvert import TimeConvert as tc |
| 8 | 8 |
|
| 9 | 9 |
from group.models import GroupPhotoInfo |
| 10 |
-from pai2.basemodels import PaiaiSrcMixin |
|
| 10 |
+from kodo.basemodels import PaiaiSrcMixin |
|
| 11 | 11 |
|
| 12 | 12 |
|
| 13 | 13 |
class UserMessageInfo(BaseModelMixin): |
@@ -4,7 +4,7 @@ from django.db import models |
||
| 4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
| 5 | 5 |
from django_models_ext import BaseModelMixin, upload_file_url, upload_path |
| 6 | 6 |
|
| 7 |
-from pai2.basemodels import PaiaiSrcMixin, PlatformMixin, VersionMixin |
|
| 7 |
+from kodo.basemodels import PaiaiSrcMixin, PlatformMixin, VersionMixin |
|
| 8 | 8 |
|
| 9 | 9 |
|
| 10 | 10 |
class LatestAppInfo(BaseModelMixin, PaiaiSrcMixin): |
@@ -50,10 +50,10 @@ |
||
| 50 | 50 |
</div> |
| 51 | 51 |
|
| 52 | 52 |
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> |
| 53 |
- <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
|
|
| 53 |
+ <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
|
|
| 54 | 54 |
<script> |
| 55 | 55 |
V.initWxData({
|
| 56 |
- imgUrl: 'http://pai.ai/static/pai2/img/paiai_96_96.png', |
|
| 56 |
+ imgUrl: 'http://pai.ai/static/kodo/img/paiai_96_96.png', |
|
| 57 | 57 |
link: 'http://pai.ai/w/o?r=http%3A%2F%2Fkodo.xfoto.com.cn%2Fp%2Fclerk%2Finfo', |
| 58 | 58 |
desc: '店员授权', |
| 59 | 59 |
title: '店员授权', |
@@ -176,10 +176,10 @@ |
||
| 176 | 176 |
{% endif %}
|
| 177 | 177 |
</script> |
| 178 | 178 |
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> |
| 179 |
- <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
|
|
| 179 |
+ <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
|
|
| 180 | 180 |
<script> |
| 181 | 181 |
V.initWxData({
|
| 182 |
- imgUrl: 'http://pai.ai/static/pai2/img/paiai_96_96.png', |
|
| 182 |
+ imgUrl: 'http://pai.ai/static/kodo/img/paiai_96_96.png', |
|
| 183 | 183 |
link: 'http://pai.ai/w/o?r=http%3A%2F%2Fkodo.xfoto.com.cn%2Fp%2Fclerk', |
| 184 | 184 |
desc: '店员授权', |
| 185 | 185 |
title: '店员授权', |
@@ -342,10 +342,10 @@ |
||
| 342 | 342 |
}); |
| 343 | 343 |
</script> |
| 344 | 344 |
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> |
| 345 |
- <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
|
|
| 345 |
+ <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
|
|
| 346 | 346 |
<script> |
| 347 | 347 |
V.initWxData({
|
| 348 |
- imgUrl: 'http://pai.ai/static/pai2/img/paiai_96_96.png', |
|
| 348 |
+ imgUrl: 'http://pai.ai/static/kodo/img/paiai_96_96.png', |
|
| 349 | 349 |
link: 'http://pai.ai/w/o?r=http%3A%2F%2Fkodo.xfoto.com.cn%2Fp%2Fclerk%2Fsale', |
| 350 | 350 |
desc: '店员授权', |
| 351 | 351 |
title: '店员授权', |
@@ -95,7 +95,7 @@ |
||
| 95 | 95 |
<div class="container" > |
| 96 | 96 |
<article class="text-center"> |
| 97 | 97 |
<a href="http://pai.ai"> |
| 98 |
- <img src="{% static 'pai2/img/paiai_96_96.png' %}" class="logo">
|
|
| 98 |
+ <img src="{% static 'kodo/img/paiai_96_96.png' %}" class="logo">
|
|
| 99 | 99 |
</a> |
| 100 | 100 |
<div class="title"> |
| 101 | 101 |
<a href="http://pai.ai" class="text-blue">拍爱</a> |
@@ -149,7 +149,7 @@ |
||
| 149 | 149 |
<div class="container"> |
| 150 | 150 |
<article class="text-center"> |
| 151 | 151 |
<a href="https://pai.ai"> |
| 152 |
- <img src="{% static 'pai2/img/paiai_96_96.png' %}" class="logo">
|
|
| 152 |
+ <img src="{% static 'kodo/img/paiai_96_96.png' %}" class="logo">
|
|
| 153 | 153 |
</a> |
| 154 | 154 |
<div class="title"> |
| 155 | 155 |
<a href="https://pai.ai" class="text-blue">拍爱</a> |
@@ -186,10 +186,10 @@ |
||
| 186 | 186 |
{% endif %}
|
| 187 | 187 |
</script> |
| 188 | 188 |
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> |
| 189 |
- <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
|
|
| 189 |
+ <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
|
|
| 190 | 190 |
<script> |
| 191 | 191 |
V.initWxData({
|
| 192 |
- imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png", |
|
| 192 |
+ imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png", |
|
| 193 | 193 |
link: 'http://pai.ai/w/o?r=http%3A%2F%2Fpai.ai%2Fp%2Flensman', |
| 194 | 194 |
desc: "摄影师授权", |
| 195 | 195 |
title: "摄影师授权", |
@@ -32,7 +32,7 @@ |
||
| 32 | 32 |
</head> |
| 33 | 33 |
<body> |
| 34 | 34 |
<div class="container" > |
| 35 |
- <img id="qr_logo" class="hidden" src="{% static 'pai2/img/paiai_96_96.png' %}">
|
|
| 35 |
+ <img id="qr_logo" class="hidden" src="{% static 'kodo/img/paiai_96_96.png' %}">
|
|
| 36 | 36 |
<div id="qr" class="qr"></div> |
| 37 | 37 |
</div> |
| 38 | 38 |
|
@@ -47,10 +47,10 @@ |
||
| 47 | 47 |
}); |
| 48 | 48 |
</script> |
| 49 | 49 |
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> |
| 50 |
- <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
|
|
| 50 |
+ <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
|
|
| 51 | 51 |
<script> |
| 52 | 52 |
V.initWxData({
|
| 53 |
- imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png", |
|
| 53 |
+ imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png", |
|
| 54 | 54 |
link: 'http://pai.ai/w/o?r=http%3A%2F%2Fpai.ai%2Fp%2Floginqr', |
| 55 | 55 |
desc: "授权登录", |
| 56 | 56 |
title: "授权登录", |
@@ -152,7 +152,7 @@ |
||
| 152 | 152 |
|
| 153 | 153 |
<script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script> |
| 154 | 154 |
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> |
| 155 |
- <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
|
|
| 155 |
+ <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
|
|
| 156 | 156 |
<script> |
| 157 | 157 |
{% if modified %}
|
| 158 | 158 |
$(function() {
|
@@ -251,7 +251,7 @@ |
||
| 251 | 251 |
</script> |
| 252 | 252 |
<script> |
| 253 | 253 |
V.initWxData({
|
| 254 |
- imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png", |
|
| 254 |
+ imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png", |
|
| 255 | 255 |
link: 'http://pai.ai/w/o?r=http%3A%2F%2Fpai.ai%2Fp%2Ftourguide', |
| 256 | 256 |
desc: "导游授权", |
| 257 | 257 |
title: "导游授权", |
@@ -1,88 +0,0 @@ |
||
| 1 |
-# pai2_nginx.conf |
|
| 2 |
- |
|
| 3 |
-# the upstream component nginx needs to connect to |
|
| 4 |
-upstream pai2 {
|
|
| 5 |
- # server unix:///home/paiai/work/pai2/pai2/uwsgi/pai2.sock; # for a file socket |
|
| 6 |
- server 127.0.0.1:8888; # for a web port socket (we'll use this first) |
|
| 7 |
-} |
|
| 8 |
- |
|
| 9 |
-# configuration of the server |
|
| 10 |
-server {
|
|
| 11 |
- # the port your site will be served on |
|
| 12 |
- listen 80; |
|
| 13 |
- # the domain name it will serve for |
|
| 14 |
- server_name .img.pai.ai .img.xfoto.com.cn; # substitute your machine's IP address or FQDN |
|
| 15 |
- charset utf-8; |
|
| 16 |
- |
|
| 17 |
- # max upload size |
|
| 18 |
- client_max_body_size 75M; # adjust to taste |
|
| 19 |
- |
|
| 20 |
- # Django media |
|
| 21 |
- location / {
|
|
| 22 |
- alias /home/paiai/work/pai2/media; # your Django project's media files - amend as required |
|
| 23 |
- } |
|
| 24 |
- |
|
| 25 |
- location /photo {
|
|
| 26 |
- alias /home/paiai/work/pai2/media/photo; # your Django project's media files - amend as required |
|
| 27 |
- } |
|
| 28 |
- |
|
| 29 |
- location /fly {
|
|
| 30 |
- alias /home/paiai/work/pai2/media/fly; # your Django project's media files - amend as required |
|
| 31 |
- } |
|
| 32 |
-} |
|
| 33 |
- |
|
| 34 |
-# configuration of the server |
|
| 35 |
-server {
|
|
| 36 |
- # the port your site will be served on |
|
| 37 |
- listen 80; |
|
| 38 |
- # the domain name it will serve for |
|
| 39 |
- server_name .api.pai.ai .api.xfoto.com.cn; # substitute your machine's IP address or FQDN |
|
| 40 |
- charset utf-8; |
|
| 41 |
- |
|
| 42 |
- # max upload size |
|
| 43 |
- client_max_body_size 75M; # adjust to taste |
|
| 44 |
- |
|
| 45 |
- # Django media |
|
| 46 |
- location /media {
|
|
| 47 |
- alias /home/paiai/work/pai2/media; # your Django project's media files - amend as required |
|
| 48 |
- } |
|
| 49 |
- |
|
| 50 |
- location /static {
|
|
| 51 |
- alias /home/paiai/work/pai2/collect_static; # your Django project's static files - amend as required |
|
| 52 |
- } |
|
| 53 |
- |
|
| 54 |
- # Finally, send all non-media requests to the Django server. |
|
| 55 |
- location / {
|
|
| 56 |
- # uwsgi_pass pai2; |
|
| 57 |
- proxy_pass http://pai2; |
|
| 58 |
- include /home/paiai/work/pai2/pai2/uwsgi/uwsgi_params; # the uwsgi_params file you installed |
|
| 59 |
- } |
|
| 60 |
-} |
|
| 61 |
- |
|
| 62 |
-# configuration of the server |
|
| 63 |
-server {
|
|
| 64 |
- # the port your site will be served on |
|
| 65 |
- listen 80; |
|
| 66 |
- # the domain name it will serve for |
|
| 67 |
- server_name .pai.ai .xfoto.com.cn; # substitute your machine's IP address or FQDN |
|
| 68 |
- charset utf-8; |
|
| 69 |
- |
|
| 70 |
- # max upload size |
|
| 71 |
- client_max_body_size 75M; # adjust to taste |
|
| 72 |
- |
|
| 73 |
- # Django media |
|
| 74 |
- location /media {
|
|
| 75 |
- alias /home/paiai/work/pai2/media; # your Django project's media files - amend as required |
|
| 76 |
- } |
|
| 77 |
- |
|
| 78 |
- location /static {
|
|
| 79 |
- alias /home/paiai/work/pai2/collect_static; # your Django project's static files - amend as required |
|
| 80 |
- } |
|
| 81 |
- |
|
| 82 |
- # Finally, send all non-media requests to the Django server. |
|
| 83 |
- location / {
|
|
| 84 |
- # uwsgi_pass pai2; |
|
| 85 |
- proxy_pass http://pai2; |
|
| 86 |
- include /home/paiai/work/pai2/pai2/uwsgi/uwsgi_params; # the uwsgi_params file you installed |
|
| 87 |
- } |
|
| 88 |
-} |
@@ -1,12 +0,0 @@ |
||
| 1 |
-[program:pai2] |
|
| 2 |
-command=/home/paiai/env/bin/uwsgi --ini /home/paiai/work/pai2/pai2/uwsgi/pai2.ini |
|
| 3 |
-autostart=true |
|
| 4 |
-autorestart=true |
|
| 5 |
-startretries=3 |
|
| 6 |
-exitcodes=0,1,2 |
|
| 7 |
-stopsignal=KILL |
|
| 8 |
-stopasgroup=true |
|
| 9 |
-killasgroup=true |
|
| 10 |
-stdout_logfile=/var/log/supervisor_pai2_access.log |
|
| 11 |
-stderr_logfile=/var/log/supervisor_pai2_error.log |
|
| 12 |
-user=paiai |
@@ -14,12 +14,12 @@ |
||
| 14 | 14 |
|
| 15 | 15 |
/* For Download Section */ |
| 16 | 16 |
.download_section {position:fixed;right:0;bottom:0;left:0;height:55px;padding:5px;background:#f0f0f0;box-sizing:border-box}
|
| 17 |
- .pai2_icon {width:45px;height:45px;float:left}
|
|
| 18 |
- .pai2_icon>img {width:100%;height:100%}
|
|
| 19 |
- .pai2_desc {height:45px;padding:5px 0 0 5px;float:left}
|
|
| 20 |
- .pai2_name {padding-top:2px;font-size:14px;text-align:left}
|
|
| 21 |
- .pai2_des {padding-top:2px;font-size:12px;line-height:23px;color:#8f8f8f;text-align:left}
|
|
| 22 |
- .pai2_download {position:relative;top:5px;width:100px;height:35px;line-height:35px;text-align:center;background:#d13621;color:#fff;border-radius:5px;float:right;text-decoration:none}
|
|
| 17 |
+ .kodo_icon {width:45px;height:45px;float:left}
|
|
| 18 |
+ .kodo_icon>img {width:100%;height:100%}
|
|
| 19 |
+ .kodo_desc {height:45px;padding:5px 0 0 5px;float:left}
|
|
| 20 |
+ .kodo_name {padding-top:2px;font-size:14px;text-align:left}
|
|
| 21 |
+ .kodo_des {padding-top:2px;font-size:12px;line-height:23px;color:#8f8f8f;text-align:left}
|
|
| 22 |
+ .kodo_download {position:relative;top:5px;width:100px;height:35px;line-height:35px;text-align:center;background:#d13621;color:#fff;border-radius:5px;float:right;text-decoration:none}
|
|
| 23 | 23 |
/* For PC */ |
| 24 | 24 |
body, .download_section {
|
| 25 | 25 |
max-width: 414px !important; |
@@ -35,22 +35,22 @@ |
||
| 35 | 35 |
</div> |
| 36 | 36 |
|
| 37 | 37 |
<div id="download_section" class="download_section"> |
| 38 |
- <div class="pai2_icon"> |
|
| 39 |
- <img src="{% static 'pai2/img/paiai_96_96.png' %}">
|
|
| 38 |
+ <div class="kodo_icon"> |
|
| 39 |
+ <img src="{% static 'kodo/img/paiai_96_96.png' %}">
|
|
| 40 | 40 |
</div> |
| 41 |
- <div class="pai2_desc"> |
|
| 42 |
- <div class="pai2_name">拍爱</div> |
|
| 43 |
- <div class="pai2_des">即拍即分享</div> |
|
| 41 |
+ <div class="kodo_desc"> |
|
| 42 |
+ <div class="kodo_name">拍爱</div> |
|
| 43 |
+ <div class="kodo_des">即拍即分享</div> |
|
| 44 | 44 |
</div> |
| 45 |
- <a href="https://api.pai.ai/op/download" target="_blank" id="pai2_download" class="pai2_download">立即下载</a> |
|
| 45 |
+ <a href="https://api.pai.ai/op/download" target="_blank" id="kodo_download" class="kodo_download">立即下载</a> |
|
| 46 | 46 |
</div> |
| 47 | 47 |
|
| 48 | 48 |
<script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script> |
| 49 | 49 |
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> |
| 50 |
- <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
|
|
| 50 |
+ <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
|
|
| 51 | 51 |
<script> |
| 52 | 52 |
V.initWxData({
|
| 53 |
- imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png", |
|
| 53 |
+ imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png", |
|
| 54 | 54 |
link: window.location.href, |
| 55 | 55 |
desc: "我使用拍爱分享了一张美图,你也快来试试吧", |
| 56 | 56 |
title: "拍爱", |
@@ -14,12 +14,12 @@ |
||
| 14 | 14 |
|
| 15 | 15 |
/* For Download Section */ |
| 16 | 16 |
.download_section {position:fixed;right:0;bottom:0;left:0;height:55px;padding:5px;background:#f0f0f0;box-sizing:border-box}
|
| 17 |
- .pai2_icon {width:45px;height:45px;float:left}
|
|
| 18 |
- .pai2_icon>img {width:100%;height:100%}
|
|
| 19 |
- .pai2_desc {height:45px;padding:5px 0 0 5px;float:left}
|
|
| 20 |
- .pai2_name {padding-top:2px;font-size:14px;text-align:left}
|
|
| 21 |
- .pai2_des {padding-top:2px;font-size:12px;line-height:23px;color:#8f8f8f;text-align:left}
|
|
| 22 |
- .pai2_download {position:relative;top:5px;width:100px;height:35px;line-height:35px;text-align:center;background:#d13621;color:#fff;border-radius:5px;float:right;text-decoration:none}
|
|
| 17 |
+ .kodo_icon {width:45px;height:45px;float:left}
|
|
| 18 |
+ .kodo_icon>img {width:100%;height:100%}
|
|
| 19 |
+ .kodo_desc {height:45px;padding:5px 0 0 5px;float:left}
|
|
| 20 |
+ .kodo_name {padding-top:2px;font-size:14px;text-align:left}
|
|
| 21 |
+ .kodo_des {padding-top:2px;font-size:12px;line-height:23px;color:#8f8f8f;text-align:left}
|
|
| 22 |
+ .kodo_download {position:relative;top:5px;width:100px;height:35px;line-height:35px;text-align:center;background:#d13621;color:#fff;border-radius:5px;float:right;text-decoration:none}
|
|
| 23 | 23 |
/* For PC */ |
| 24 | 24 |
body, .download_section {
|
| 25 | 25 |
max-width: 414px !important; |
@@ -37,22 +37,22 @@ |
||
| 37 | 37 |
</div> |
| 38 | 38 |
|
| 39 | 39 |
<div id="download_section" class="download_section"> |
| 40 |
- <div class="pai2_icon"> |
|
| 41 |
- <img src="{% static 'pai2/img/paiai_96_96.png' %}">
|
|
| 40 |
+ <div class="kodo_icon"> |
|
| 41 |
+ <img src="{% static 'kodo/img/paiai_96_96.png' %}">
|
|
| 42 | 42 |
</div> |
| 43 |
- <div class="pai2_desc"> |
|
| 44 |
- <div class="pai2_name">拍爱</div> |
|
| 45 |
- <div class="pai2_des">即拍即分享</div> |
|
| 43 |
+ <div class="kodo_desc"> |
|
| 44 |
+ <div class="kodo_name">拍爱</div> |
|
| 45 |
+ <div class="kodo_des">即拍即分享</div> |
|
| 46 | 46 |
</div> |
| 47 |
- <a href="https://api.pai.ai/op/download" target="_blank" id="pai2_download" class="pai2_download">立即下载</a> |
|
| 47 |
+ <a href="https://api.pai.ai/op/download" target="_blank" id="kodo_download" class="kodo_download">立即下载</a> |
|
| 48 | 48 |
</div> |
| 49 | 49 |
|
| 50 | 50 |
<script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script> |
| 51 | 51 |
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> |
| 52 |
- <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
|
|
| 52 |
+ <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
|
|
| 53 | 53 |
<script> |
| 54 | 54 |
V.initWxData({
|
| 55 |
- imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png", |
|
| 55 |
+ imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png", |
|
| 56 | 56 |
link: window.location.href, |
| 57 | 57 |
desc: "我使用拍爱分享了一张美图,你也快来试试吧", |
| 58 | 58 |
title: "拍爱", |
@@ -1,6 +1,6 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 | 2 |
|
| 3 |
-from pai2.basemodels import PlatformMixin |
|
| 3 |
+from kodo.basemodels import PlatformMixin |
|
| 4 | 4 |
from utils.redis.connect import r |
| 5 | 5 |
from utils.redis.rkeys import APP_PATCH_INFO |
| 6 | 6 |
|
@@ -1,6 +1,6 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 | 2 |
|
| 3 |
-from pai2.basemodels import PlatformMixin |
|
| 3 |
+from kodo.basemodels import PlatformMixin |
|
| 4 | 4 |
from utils.redis.connect import r |
| 5 | 5 |
from utils.redis.rkeys import APP_SETTINGS_INFO |
| 6 | 6 |
|
@@ -4,5 +4,5 @@ from django.conf import settings |
||
| 4 | 4 |
from django.shortcuts import redirect |
| 5 | 5 |
|
| 6 | 6 |
|
| 7 |
-def pai2_home(request): |
|
| 7 |
+def kodo_home(request): |
|
| 8 | 8 |
return redirect(settings.WEBSITE_MOBI if request.mobile else settings.WEBSITE_PC) |