def __init__(self, type, name):
     '''
     redis的默认参数为:host='localhost', port=6379, db=0, 其中db为定义redis database的数量;
     key 是hash的名称;
     type 是类型,比如:cookie, ip;
     name 是需要维护的网站名称,比如:sycm,huoniu;
     :param type:
     :param name:
     '''
     self.__db = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB_ID)
     self.key = '{type}:{user_name}'.format(type=type, user_name=name)
     self.logger = get_logger()
示例#2
0
# -*- coding: utf-8 -*-
import os
import sys
__project_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if __project_path not in sys.path:
    sys.path.append(__project_path)
import mongo_db
import datetime
from log_module import get_logger

ObjectId = mongo_db.ObjectId
logger = get_logger()
"""
员工模块
目前支持的数据库是mongodb 4.0+
基于角色的权限管理+扩展的访问规则
用于对项目的用户的权限进行管理.
"""


class Company(mongo_db.BaseDoc):
    """
    公司. 卡佑
    """
    _table_name = "company"
    type_dict = dict()
    type_dict['_id'] = ObjectId
    type_dict['name'] = str  # 公司名
    type_dict['license_id'] = str  # 工商许可证id
    type_dict['create_time'] = datetime.datetime  # 创建时间
示例#3
0
from tornado.options import define, options
import tornado.websocket
import random
import mongo_db
import hashlib
import requests
import urllib.request
import urllib.parse
import platform
from tools_module import get_platform_cors_session_dict
from tools_module import save_platform_cors_session
from tools_module import save_platform_cors_session
from api.data.item_module import Track
from manage.company_module import Employee

logger = log_module.get_logger("ws_server")
cache = mongo_db.cache


class BlackIpDict:
    """黑名单类"""
    cache_key = "ws_handler_black_ip_dict"
    black_ip_map = cache.get(cache_key)
    if black_ip_map is None:
        black_ip_map = dict()

    @classmethod
    def clear(cls) -> None:
        """清除缓存中的数据"""
        key = cls.cache_key
        cache.delete(key)
 def __init__(self):
     super(ProxyCheck, self).__init__()
     self.redis = RedisQueue('ip')
     self.my_utils = Utility()
     self.logger = get_logger()
示例#5
0
 def __init__(self):
     self.logger = get_logger()
示例#6
0
project_dir = os.path.split(os.path.split(sys.path[0])[0])[0]
if project_dir not in sys.path:
    sys.path.append(project_dir)
from log_module import get_logger
import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from werkzeug.contrib.cache import RedisCache
import datetime
"""客户经理的电子邮件模块"""

my_email = "*****@*****.**"
my_auth = "wsyargefvundcaej"  # 授权码
cache = RedisCache()
logger = get_logger(os.path.split(__file__)[-1].split(".", 1)[0])


def send_mail(to_email: str = "*****@*****.**",
              title: str = 'hello',
              content: str = '',
              files: list = None) -> bool:
    """
    发送邮件,
    :param to_email: 目的邮件地址
    :param title:  主题
    :param content: 正文
    :param files: 附件的list[{"path":file_path,"name":file_name},...]
    :return: 是否发送成功
    """
    msg = MIMEMultipart()
示例#7
0
from log_module import get_logger
from celery import Celery
from api.data import item_module
from bson.objectid import ObjectId
from api.data.item_module import *
from api.user.security_module import *
from api.data.file_module import when_upload_success
from api.data.file_module import unzip_all_user_file
from mongo_db import get_conn, get_obj_id, cache, replica_hosts
import telnetlib
from kombu import Exchange, Queue
from mail_module import send_mail
from manage.analysis_module import backup
import requests

logger = get_logger("celery")
"""
exchange 相同的是同一个队列
routing_key 会匹配函数名
save_gps: 存gps数据的而队列,现在不会被使用
save_sensor: 存传感器数据的而队列,现在不会被使用
unzip_file: 解压app用户上传的文件,是一个重负载的队列
"""

#
# CELERY_QUEUES = {
#     "test": {"queue": "test", "exchange_type": "direct", "routing_key": "test"},
#     "batch_generator_report":{"queue":"batch_generator_report_exchange", "exchange_type":"direct", "routing_key": "batch_generator_report"},
#     "real_time_gps": ""
#     # Queue(name="fanout_queue_01", exchange=Exchange(name='fanout_queue_01_exchange', type="fanout")),  # 广播类型
# }
示例#8
0
#  -*- coding: utf-8 -*-
from __future__ import absolute_import
import os
import sys
__project_dir__ = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if __project_dir__ not in sys.path:
    sys.path.append(__project_dir__)
from celery import Celery
from log_module import get_logger
"""celery主模块"""

app = Celery(main="first_celery",
             backend="redis://127.0.0.1:6379/15",
             broker="redis://127.0.0.1:6379/14",
             timezone="Asia/Shanghai",
             include=['celery_module.my_tasks'])
app.conf.update(result_expires=3600)
app.log.redirect_stdouts_to_logger(logger=get_logger("celery"), loglevel=10)

if __name__ == "__main__":
    app.start()
    pass
 def __init__(self, name, namespace='Base'):
     # redis的默认参数为:host='localhost', port=6379, db=0, 其中db为定义redis database的数量
     self.__db = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB_ID)
     self.key = '%s:%s' % (namespace, name)
     self.logger = get_logger()
示例#10
0
import pyowm
from flask import render_template, request, Blueprint
import log_module as logger
import wikipedia as wiki
import pycountry
import re
from wikipedia import DisambiguationError

the_logger = logger.get_logger(__name__)
"The logger object for this module"

weather_page = Blueprint('weather_page', __name__, template_folder='templates')
"The blueprint (sub-component) to be referenced by the main module (app.py)"

owm = pyowm.OWM('<keygoeshere>')
"The object to interact with OWM API"

owm_error_message = ''
"The error message in case an exception occurs on OWM side"

wiki_error_message = ''
"The error message in case an exception occurs on Wikipedia side"

observation = None
"The Observation object retrieved by OWM API, from which Location and Weather objects are retrieved"


@weather_page.route('/weather', methods=['GET', 'POST'])
def weather_info():
    """
    Function to manage the GET and POST requests from the /weather page of the application.
示例#11
0
# -*- coding: utf-8 -*-
from flask import Flask
from flask import request
from flask import session
from flask import render_template
from flask_socketio import SocketIO
import os
import json
from log_module import get_logger
"""这是一个flask-socketio服务器,用于提供实时的消息传递"""

app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
socket_io = SocketIO(app)
port = 5006
logger = get_logger("web_socket_server")


@app.route("/")
def client_demo_func():
    """socketio客户端示范页面"""
    return render_template("socket_io/io_client_demo.html")


@socket_io.on("demo")
def message_handler_func(mes):
    """socketio接收到消息的时候"""
    print(mes)
    return "ok"

示例#12
0
# -*- coding: utf-8 -*-
import os
import sys

__project_dir__ = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if __project_dir__ not in sys.path:
    sys.path.append(__project_dir__)
import orm_module
import datetime
import json
from log_module import get_logger
"""
条码模块
"""

logger = get_logger("条码查询")
ObjectId = orm_module.ObjectId
cache = orm_module.RedisCache()


def set_code_length(length: int = 0) -> int:
    """
    设置标准条码长度. 默认35
    :param length:
    :return:
    """
    if length == 0:
        """从数据库查询"""
        col = orm_module.get_conn(table_name="company_info")
        r = col.find_one()
        if isinstance(r, dict):