コード例 #1
0
def str2qr_terminal(data, is_send):
    """
    @brief      convert string to qrcode matrix and outprint
    @param      data   The string
    """
    cm = ConfigManager()
    file_dir = cm.getpath('qrcode_path')
    with open(file_dir, 'wb') as f:
        f.write(data)

    if is_send:
        p = multiprocessing.Process(target=send_login_mail, args=(file_dir, ))
        p.start()

    scanner = zbar.ImageScanner()
    scanner.parse_config('enable')
    pil = Image.open(file_dir).convert('L')
    width, height = pil.size
    raw = pil.tobytes()
    image = zbar.Image(width, height, 'Y800', raw)
    scanner.scan(image)
    text = ''
    for symbol in image:
        text += symbol.data
    del image

    echo('二维码表示地址:%s\n' % text)

    qr = qrcode.QRCode()
    qr.border = 1
    qr.add_data(text)
    mat = qr.get_matrix()
    print_qr(mat)
コード例 #2
0
def send_mail(to_addr, type_name, name):
    try:
        host = Constant.send_mail_host
        port = Constant.send_mail_ssl_port
        sender = Constant.send_mail_addr
        pwd = Constant.send_mail_apikey
        receiver = to_addr

        msg = MIMEMultipart()
        text = '发送记录为:%s %s' % (name, type_name)
        msg.attach(MIMEText(text, 'plain', 'utf-8'))
        msg['subject'] = 'deepintell测试记录发送'  # 设置标题
        msg['from'] = sender  # 设置发送人
        msg['to'] = receiver  # 设置接收人

        cm = ConfigManager()
        file_dir = cm.getpath('datafile')
        file_name = type_name + 'z' + trans_unicode_into_int(
            trans_coding(name)) + '.csv'
        att1 = MIMEText(
            open(file_dir + file_name, 'rb').read(), 'base64', 'utf-8')
        att1["Content-Type"] = 'application/octet-stream'
        att1["Content-Disposition"] = 'attachment; filename="%s"' % file_name
        msg.attach(att1)

        s = smtplib.SMTP_SSL(host, port)  # 使用SSL端口
        s.login(sender, pwd)  # 登陆邮箱
        s.sendmail(sender, receiver, msg.as_string())  # 发送邮件
        s.quit()  # 关闭链接
        print '邮件发送成功\n'
    except:
        error(traceback.format_exc())
        print '邮件发送失败\n'
    finally:
        exit()  # 退出子进程
コード例 #3
0
ファイル: smartqq.py プロジェクト: deepintell/smartqqbot
    def recover_login_data(self):
        cm = ConfigManager()
        # 恢复鉴权参数
        self.clientid = int(cm.get('login_data', 'clientid'))
        self.urlPtwebqq = cm.get('login_data', 'url_ptwebqq')
        self.ptwebqq = cm.get('login_data', 'ptwebqq')
        self.vfwebqq = cm.get('login_data', 'vfwebqq')
        self.uin = int(cm.get('login_data', 'uin'))
        self.psessionid = cm.get('login_data', 'psessionid')
        self.hash = cm.get('login_data', 'hash')
        self.bkn = int(cm.get('login_data', 'bkn'))
        self.user['qq'] = cm.get('login_data', 'user_qq')
        self.user['nick'] = cm.get('login_data', 'user_nick')

        # 恢复cookies
        file_dir = cm.getpath('cookie')
        with open(file_dir, 'rb') as f:
            cookies = requests.utils.cookiejar_from_dict(pickle.load(f))
            self.session = requests.session()
            self.session.cookies = cookies
            self.session.headers.update({
                'User-Agent': ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9;'
                               ' rv:27.0) Gecko/20100101 Firefox/27.0'),
                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
            })

        return True
コード例 #4
0
    def __init__(self, msg_db):

        self.smartqq = None
        self.msg_db = msg_db

        cm = ConfigManager()
        self.data_file = cm.getpath('datafile')
        if not os.path.exists(self.data_file):
            os.makedirs(self.data_file)

        self.msg_col = '''
                    MsgOrder integer primary key,
                    Time text,
                    FromNick text,
                    ToNick text,
                    content text
                '''
        self.user_type = ['normal', 'group', 'discuss']
コード例 #5
0
ファイル: smartqq.py プロジェクト: deepintell/smartqqbot
    def save_login_data(self):
        cm = ConfigManager()
        # 保存鉴权参数
        cm.set('login_data', 'clientid', self.clientid)
        cm.set('login_data', 'url_ptwebqq', self.urlPtwebqq)
        cm.set('login_data', 'ptwebqq', self.ptwebqq)
        cm.set('login_data', 'vfwebqq', self.vfwebqq)
        cm.set('login_data', 'uin', self.uin)
        cm.set('login_data', 'psessionid', self.psessionid)
        cm.set('login_data', 'hash', self.hash)
        cm.set('login_data', 'bkn', self.bkn)
        cm.set('login_data', 'user_qq', self.user['qq'])
        cm.set('login_data', 'user_nick', self.user['nick'])

        # 保存cookies
        file_dir = cm.getpath('cookie')
        with open(file_dir, 'wb') as f:
            pickle.dump(requests.utils.dict_from_cookiejar(self.session.cookies), f)

        return True
コード例 #6
0
ファイル: weixin_bot.py プロジェクト: mazelinux/WeixinBot
from db import SqliteDB
from db import MysqlDB
from config import ConfigManager
from config import Constant
from config import Log
#---------------------------------------------------
import flask
import threading
import traceback
import os
import logging
import time
#===================================================

cm = ConfigManager()
db = SqliteDB(cm.getpath('database'))
# db = MysqlDB(cm.mysql())
wechat_msg_processor = WeChatMsgProcessor(db)
wechat = WeChat(cm.get('wechat', 'host'))
wechat.db = db
wechat.bot = Bot()
wechat.msg_handler = wechat_msg_processor
wechat_msg_processor.wechat = wechat

PORT = int(cm.get('setting', 'server_port'))
app = flask.Flask(__name__)
app.config['UPLOAD_FOLDER'] = cm.getpath('uploaddir')

logger = logging.getLogger('werkzeug')
log_format_str = Constant.SERVER_LOG_FORMAT
formatter = logging.Formatter(log_format_str)
コード例 #7
0
from smartqq.utils import *
from qq_handler import QQMsgHandler
from qq_handler import Bot
from db import SqliteDB
from config import ConfigManager
from config import Constant
from config import Log

import traceback
import os
import sys
import logging
import time

cm = ConfigManager()
msg_db = SqliteDB(cm.getpath('database'))
qq_msg_handler = QQMsgHandler(msg_db)
smartqq = SmartQQ()

smartqq.bot = Bot()
smartqq.msg_handler = qq_msg_handler
qq_msg_handler.smartqq = smartqq

logging.getLogger('requests').setLevel(logging.WARNING)
logging.getLogger('urllib3').setLevel(logging.WARNING)
logging.getLogger('PIL').setLevel(logging.WARNING)

while True:
    try:
        smartqq.start()
    except KeyboardInterrupt:
コード例 #8
0
ファイル: weixin_bot.py プロジェクト: Jolly23/WeixinBot
from db import MysqlDB
from config import ConfigManager
from config import Constant
from config import Log
#---------------------------------------------------
from flask import Flask, render_template, send_file, jsonify, request
import threading
import traceback
import os
import logging
import time
#===================================================


cm = ConfigManager()
db = SqliteDB(cm.getpath('database'))
# db = MysqlDB(cm.mysql())
wechat_msg_processor = WeChatMsgProcessor(db)
wechat = WeChat(cm.get('wechat', 'host'))
wechat.db = db
wechat.bot = Bot()
wechat.msg_handler = wechat_msg_processor
wechat_msg_processor.wechat = wechat

PORT = int(cm.get('setting', 'server_port'))
app = Flask(__name__, template_folder='flask_templates')
app.config['UPLOAD_FOLDER'] = cm.getpath('uploaddir')

logger = logging.getLogger('werkzeug')
log_format_str = Constant.SERVER_LOG_FORMAT
formatter = logging.Formatter(log_format_str)