# -*- coding: utf-8 -*-

import logging

from django.conf import settings
from pywe_custom_message import send_custom_wxa_message
from pywe_media import media_upload
from pywe_storage import RedisStorage
from pywe_subscribe_message import send_wxa_subscribe_template_message
from pywe_template_message import send_template_message

from utils.redis.connect import r


WECHAT = settings.WECHAT


logger = logging.getLogger('console')


def mediaupload(media_file=None, media_file_path=None):
    wxcfg = WECHAT.get('JSAPI', {})

    appid = wxcfg.get('appID')
    secret = wxcfg.get('appsecret')

    res = media_upload(media_file=media_file, media_file_path=media_file_path, appid=appid, secret=secret, token=None, storage=RedisStorage(r))

    print(res)


# 发送客服消息 - 发送小程序卡片
def sendcustomwxamessage(openid=None, miniappid=None, pagepath=None, thumb_media_id=None, title=None):
    wxcfg = WECHAT.get('JSAPI', {})

    appid = wxcfg.get('appID')
    secret = wxcfg.get('appsecret')

    try:
        res = send_custom_wxa_message(openid=openid, miniappid=miniappid, pagepath=pagepath, thumb_media_id=thumb_media_id, title=title, appid=appid, secret=secret, token=None, storage=RedisStorage(r))
    except Exception as e:
        logger.info(e)


# 发送模版消息
def sendtemplatemessage(openid=None, template_id=None, data=None, url=None, miniappid=None, minipagepath=None):
    wxcfg = WECHAT.get('JSAPI', {})

    appid = wxcfg.get('appID')
    secret = wxcfg.get('appsecret')

    try:
        res = send_template_message(user_id=openid, template_id=template_id, data=data, url=url, miniappid=miniappid, minipagepath=minipagepath, appid=appid, secret=secret, storage=RedisStorage(r))
        logger.info(res)
    except Exception as e:
        logger.info(e)
        return e
    return res


# 发送订阅消息 - 小程序
def sendwxasubscribemessage(openid=None, template_id=None, data=None, miniprogram_state=None, lang=None, page=None):
    wxcfg = WECHAT.get('MINIAPP', {})

    appid = wxcfg.get('appID')
    secret = wxcfg.get('appsecret')

    try:
        res = send_wxa_subscribe_template_message(user_id=openid, template_id=template_id, data=data, page=page, miniprogram_state=miniprogram_state, lang=lang, appid=appid, secret=secret, storage=RedisStorage(r))
    except Exception as e:
        logger.info(e)
        return e
    return res