mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
fix common
This commit is contained in:
@@ -4,4 +4,4 @@ from . import controllers
|
||||
from . import models
|
||||
from .hooks import pre_init_hook
|
||||
from .hooks import post_init_hook
|
||||
from .hooks import uninstall_hook
|
||||
from .hooks import uninstall_hook
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
{
|
||||
'name': "Sunpop Odooapp Common Func",
|
||||
'version': '13.21.01.27',
|
||||
'version': '13.21.06.13',
|
||||
'author': 'Sunpop.cn',
|
||||
'category': 'Base',
|
||||
'website': 'https://www.sunpop.cn',
|
||||
@@ -42,10 +42,6 @@
|
||||
'price': 0.00,
|
||||
'currency': 'EUR',
|
||||
'images': ['static/description/banner.png'],
|
||||
'depends': [
|
||||
'base',
|
||||
'web',
|
||||
],
|
||||
'summary': '''
|
||||
Core for common use sunpop apps.
|
||||
基础核心,必须没有要被依赖字段及视图等,实现auto_install
|
||||
@@ -64,6 +60,13 @@
|
||||
4. 多公司支持
|
||||
5. Odoo 13, 12, 企业版,社区版,多版本支持
|
||||
''',
|
||||
'depends': [
|
||||
'base',
|
||||
'web',
|
||||
],
|
||||
'external_dependencies': {
|
||||
'python': ['pyyaml', 'ua-parser', 'user-agents'],
|
||||
},
|
||||
'data': [
|
||||
# 'security/*.xml',
|
||||
# 'security/ir.model.access.csv',
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import main
|
||||
@@ -3,10 +3,16 @@
|
||||
import base64
|
||||
from io import BytesIO
|
||||
import requests
|
||||
from user_agents import parse
|
||||
|
||||
from odoo import api, http, SUPERUSER_ID, _
|
||||
from odoo import http, exceptions
|
||||
from odoo.http import request
|
||||
|
||||
class ImageController(http.Controller):
|
||||
import logging
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class AppController(http.Controller):
|
||||
|
||||
def get_image_from_url(self, url):
|
||||
if not url:
|
||||
@@ -17,3 +23,51 @@ class ImageController(http.Controller):
|
||||
return None
|
||||
# 返回这个图片的base64编码
|
||||
return base64.b64encode(BytesIO(response.content).read())
|
||||
|
||||
@http.route('/web/ua/show', auth='public', methods=['GET'])
|
||||
def app_ua_show(self):
|
||||
# https://github.com/selwin/python-user-agents
|
||||
ua_string = request.httprequest.headers.get('User-Agent')
|
||||
user_agent = parse(ua_string)
|
||||
ua_type = self.get_ua_type()
|
||||
ustr = "Request UA: <br/> %s <br/>Parse UA: <br/>%s <br/>UA Type:<br/>%s <br/>" % (ua_string, str(user_agent), ua_type)
|
||||
return request.make_response(ustr, [('Content-Type', 'text/html')])
|
||||
|
||||
def get_ua_type(self):
|
||||
ua = request.httprequest.headers.get('User-Agent')
|
||||
# 临时用 agent 处理,后续要前端中正确处理或者都从后台来
|
||||
# 微信浏览器
|
||||
# MicroMessenger: Mozilla/5.0 (Linux; Android 10; ELE-AL00 Build/HUAWEIELE-AL00; wv)
|
||||
# AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120
|
||||
# MQQBrowser/6.2 TBS/045525 Mobile Safari/537.36 MMWEBID/3135 MicroMessenger/8.0.2.1860(0x2800023B) Process/tools WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64
|
||||
# 微信浏览器,开发工具,网页 iphone
|
||||
# ,Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
|
||||
# wechatdevtools/1.03.2011120 MicroMessenger/7.0.4 Language/zh_CN webview/16178807094901773
|
||||
# webdebugger port/27772 token/b91f4a234b918f4e2a5d1a835a09c31e
|
||||
|
||||
# 微信小程序
|
||||
# MicroMessenger: Mozilla/5.0 (Linux; Android 10; ELE-AL00 Build/HUAWEIELE-AL00; wv)
|
||||
# AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2767 MMWEBSDK/20210302 Mobile Safari/537.36 MMWEBID/6689 MicroMessenger/8.0.2.1860(0x2800023B) Process/appbrand2 WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64
|
||||
# MiniProgramEnv/android
|
||||
# 微信浏览器,开发工具,小程序,iphone
|
||||
# Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
|
||||
# wechatdevtools/1.03.2011120 MicroMessenger/7.0.4 Language/zh_CN webview/
|
||||
# 微信内,iphone web
|
||||
# Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
|
||||
# MicroMessenger/8.0.3(0x1800032a) NetType/WIFI Language/zh_CN
|
||||
# 安卓app,h5
|
||||
# ELE-AL00(Android/10) (cn.erpapp.o20sticks.App/13.20.12.09) Weex/0.26.0 1080x2265
|
||||
|
||||
utype = 'web'
|
||||
# todo: 引入现成 py lib,处理企业微信
|
||||
if 'MicroMessenger' in ua and 'webdebugger' not in ua and ('MiniProgramEnv' in ua or 'wechatdevtools' in ua):
|
||||
# 微信小程序及开发者工具
|
||||
utype = 'wxapp'
|
||||
elif 'MicroMessenger' in ua:
|
||||
# 微信浏览器
|
||||
utype = 'wxweb'
|
||||
elif 'cn.erpapp.o20sticks.App' in ua:
|
||||
# 安卓app
|
||||
utype = 'native_android'
|
||||
_logger.warning('=========get ua %s,%s' % (utype, ua))
|
||||
return utype
|
||||
|
||||
@@ -48,5 +48,5 @@ class Base(models.AbstractModel):
|
||||
|
||||
@api.model
|
||||
def get_image_from_url(self, url):
|
||||
res = imgc.ImageController.get_image_from_url(url)
|
||||
res = imgc.AppController.get_image_from_url(url)
|
||||
return res
|
||||
Reference in New Issue
Block a user