def __init__(self, date_time, file_name, group_name, send_message):
     # def __init__(self, date_time):
     self.mychat = itchat.Core()
     self.date_time = date_time
     self.file_name = file_name
     self.group_name = group_name
     self.send_message = send_message
Exemple #2
0
    def __init__(
            self, save_path=None, console_qr=False, qr_path=None,
            qr_callback=None, login_callback=None, logout_callback=None
    ):
        """
        :param save_path:
            | 用于保存或载入登陆状态的文件路径,例如: 'wxpy.pkl',为空则不尝试载入。
            | 填写本参数后,可在短时间内重新载入登陆状态,避免重复扫码,失效时会重新要求登陆
        :param console_qr: 在终端中显示登陆二维码,需要安装 Pillow 模块
        :param qr_path: 保存二维码的路径
        :param qr_callback: 获得二维码时的回调,接收参数: uuid, status, qrcode
        :param login_callback: 登陆时的回调,接收参数同上
        :param logout_callback: 登出时的回调,接收参数同上
        """

        self.core = itchat.Core()
        itchat.instanceList.append(self)

        self.core.auto_login(
            hotReload=bool(save_path), statusStorageDir=save_path,
            enableCmdQR=console_qr, picDir=qr_path, qrCallback=qr_callback,
            loginCallback=login_callback, exitCallback=logout_callback
        )

        self.message_configs = MessageConfigs(self)
        self.messages = Messages(robot=self)

        self.file_helper = Chat(wrap_user_name('filehelper'))
        self.file_helper.robot = self
        self.file_helper.nick_name = '文件传输助手'

        self.self = Chat(self.core.loginInfo['User'])
        self.self.robot = self

        self.save_path = save_path
Exemple #3
0
    def __init__(self,
                 cache_path=None,
                 console_qr=False,
                 qr_path=None,
                 qr_callback=None,
                 login_callback=None,
                 logout_callback=None):
        """
        :param cache_path:
            * 设置当前会话的缓存路径,并开启缓存功能;为 `None` (默认) 则不开启缓存功能。
            * 开启缓存后可在短时间内避免重复扫码,缓存失效时会重新要求登陆。
            * 设为 `True` 时,使用默认的缓存路径 'wxpy.pkl'。
        :param console_qr:
            * 在终端中显示登陆二维码,需要安装 pillow 模块 (`pip3 install pillow`)。
            * 可为整数(int),表示二维码单元格的宽度,通常为 2 (当被设为 `True` 时,也将在内部当作 2)。
            * 也可为负数,表示以反色显示二维码,适用于浅底深字的命令行界面。
            * 例如: 在大部分 Linux 系统中可设为 `True` 或 2,而在 macOS Terminal 的默认白底配色中,应设为 -2。
        :param qr_path: 保存二维码的路径
        :param qr_callback: 获得二维码后的回调,可以用来定义二维码的处理方式,接收参数: uuid, status, qrcode
        :param login_callback: 登陆成功后的回调,若不指定,将进行清屏操作,并删除二维码文件
        :param logout_callback: 登出时的回调
        """

        self.core = itchat.Core()
        itchat.instanceList.append(self)

        enhance_connection(self.core.s)

        if cache_path is True:
            cache_path = 'wxpy.pkl'

        self.cache_path = cache_path

        if console_qr is True:
            console_qr = 2

        self.core.auto_login(hotReload=bool(cache_path),
                             statusStorageDir=cache_path,
                             enableCmdQR=console_qr,
                             picDir=qr_path,
                             qrCallback=qr_callback,
                             loginCallback=login_callback,
                             exitCallback=logout_callback)

        self.self = User(self.core.loginInfo['User'], self)
        self.file_helper = Chat(wrap_user_name('filehelper'), self)

        self.messages = Messages()
        self.registered = Registered(self)

        self.puid_map = None

        self.is_listening = False
        self.listening_thread = None

        self.temp_dir = tempfile.TemporaryDirectory(prefix='wxpy_')
        self.start()

        atexit.register(self._cleanup)
Exemple #4
0
    def __init__(self,
                 cache_path=None,
                 console_qr=False,
                 qr_path=None,
                 qr_callback=None,
                 login_callback=None,
                 logout_callback=None):
        """
        :param cache_path:
            * 设置当前会话的缓存路径,并开启缓存功能;为 `None` (默认) 则不开启缓存功能。
            * 开启缓存后可在短时间内避免重复扫码,缓存失效时会重新要求登陆。
            * 设为 `True` 时,使用默认的缓存路径 'wxpy.pkl'。
        :param console_qr:
            * 在终端中显示登陆二维码,需要安装 pillow 模块 (`pip3 install pillow`)。
            * 可为整数(int),表示二维码单元格的宽度,通常为 2 (当被设为 `True` 时,也将在内部当作 2)。
            * 也可为负数,表示以反色显示二维码,适用于浅底深字的命令行界面。
            * 例如: 在大部分 Linux 系统中可设为 `True` 或 2,而在 macOS Terminal 的默认白底配色中,应设为 -2。
        :param qr_path: 保存二维码的路径
        :param qr_callback: 获得二维码后的回调,接收参数: uuid, status, qrcode
        :param login_callback: 登陆成功后的回调,接收参数同上
        :param logout_callback: 登出时的回调,接收参数同上
        """

        self.core = itchat.Core()
        itchat.instanceList.append(self)

        if cache_path is True:
            cache_path = 'wxpy.pkl'

        if console_qr is True:
            console_qr = 2

        self.core.auto_login(hotReload=bool(cache_path),
                             statusStorageDir=cache_path,
                             enableCmdQR=console_qr,
                             picDir=qr_path,
                             qrCallback=qr_callback,
                             loginCallback=login_callback,
                             exitCallback=logout_callback)

        self.message_configs = MessageConfigs(self)
        self.messages = Messages(bot=self)

        self.file_helper = Chat(wrap_user_name('filehelper'), self)

        self.self = Chat(self.core.loginInfo['User'], self)
        self.self.bot = self

        self.cache_path = cache_path
Exemple #5
0
    def __init__(self,
                 cache_path=None,
                 console_qr=False,
                 qr_path=None,
                 qr_callback=None,
                 login_callback=None,
                 logout_callback=None):
        """
        :param cache_path:
            | 当前会话缓存的保存路径,不指定则不使用缓存功能。
            | 缓存后,可避免重复扫码,缓存失效时会重新要求登陆。
            | 缓存有效时间非常短暂,适用于修改代码后的重新运行。
        :param console_qr:
            | 在终端中显示登陆二维码。该功能需要安装 pillow 模块 (`pip3 install pillow`)。
            | 该参数可为整数(int),表示二维码单元格的宽度,通常为 2。当该参数被设为 `True` 时,也将在内部当作 2。
            | 该参数也可为负数,表示以反色显示二维码,适用于浅底深字的命令行界面。
            | 例如: 在大部分 Linux 系统中可设为 `True` 或 2,而在 macOS Terminal 的默认白底配色中,应设为 -2。
        :param qr_path: 保存二维码的路径
        :param qr_callback: 获得二维码后的回调,接收参数: uuid, status, qrcode
        :param login_callback: 登陆成功后的回调,接收参数同上
        :param logout_callback: 登出时的回调,接收参数同上
        """

        self.core = itchat.Core()
        itchat.instanceList.append(self)

        if console_qr is True:
            console_qr = 2

        self.core.auto_login(hotReload=bool(cache_path),
                             statusStorageDir=cache_path,
                             enableCmdQR=console_qr,
                             picDir=qr_path,
                             qrCallback=qr_callback,
                             loginCallback=login_callback,
                             exitCallback=logout_callback)

        self.message_configs = MessageConfigs(self)
        self.messages = Messages(bot=self)

        self.file_helper = Chat(wrap_user_name('filehelper'))
        self.file_helper.bot = self
        self.file_helper.nick_name = '文件传输助手'

        self.self = Chat(self.core.loginInfo['User'])
        self.self.bot = self

        self.cache_path = cache_path
Exemple #6
0
    def login(self):

        if not self.instance:
            if WeiXinHandler.instanceList:
                instance = WeiXinHandler.instanceList.pop()
            else:
                instance = itchat.Core()
            self.instance = instance
        try:
            uuid = self._open_QR()
        except Exception as e:
            print(e)
            # del instance
            self._removeId()
            return None

        if not uuid:
            return None
        threading.Thread(target=self._sub_fun, args=(uuid, )).start()
Exemple #7
0
    def __init__(self):
        self.master = False
        self.core = itchat.Core()
        itchat.instanceList.append(self)

        # 用于 "synccheck" 请求的 "_" 参数,每次请求时 + 1
        self._sync_check_iterations = int(time.time() * 1000)

        self.auto_mark_as_read = False
        enhance_connection(self.core.s)

        self.cache_path = None

        self.messages = Messages()
        self.registered = Registered(self)

        self.isLogging = True
        self.puid_map = None
        self.auto_send = False

        self.is_listening = False
        self.listening_thread = None

        self.crawler_articles = True
        self.app_id = None
        self.auto_accept = False
        self.notify_dingding = False
        self.master_phone = None

        self.last_msg = time.time()

        if PY2:
            from wxpy.compatible.utils import TemporaryDirectory
            self.temp_dir = TemporaryDirectory(prefix='wxpy_')
        else:
            self.temp_dir = tempfile.TemporaryDirectory(prefix='wxpy_')

        atexit.register(self._cleanup)
Exemple #8
0
import itchat, collections, os, codecs, re
import logging
from flask import Flask, jsonify, send_file, request, render_template, url_for, redirect
from snownlp import SnowNLP
from secretary import analyze, ifPersonalInfo
from wenzhi import zhengzhi, laji
import time, jieba
from itchat.content import *
from concurrent.futures import ThreadPoolExecutor

executor = ThreadPoolExecutor(1)

app = Flask(__name__)
logger = logging.getLogger('app')

mychat = mychat = itchat.Core()


@app.route("/", methods=['GET'])
def index():
    return redirect('static/index.html')


@app.route('/qr', methods=['GET'])
def get_QR():
    mychat.get_QRuuid()
    logger.info("----", mychat.uuid)
    qr_io = mychat.get_QR(enableCmdQR=2)
    qr_io.seek(0)
    return send_file(qr_io, mimetype='image/png')
Exemple #9
0
    def __init__(
            self, cache_path=None, console_qr=False, qr_path=None,
            qr_callback=None, login_callback=None, logout_callback=None
    ):
        """
        :param cache_path:
            * 设置当前会话的缓存路径,并开启缓存功能;为 `None` (默认) 则不开启缓存功能。
            * 开启缓存后可在短时间内避免重复扫码,缓存失效时会重新要求登陆。
            * 设为 `True` 时,使用默认的缓存路径 'wxpy.pkl'。
        :param console_qr:
            * 在终端中显示登陆二维码,需要安装 pillow 模块 (`pip3 install pillow`)。
            * 可为整数(int),表示二维码单元格的宽度,通常为 2 (当被设为 `True` 时,也将在内部当作 2)。
            * 也可为负数,表示以反色显示二维码,适用于浅底深字的命令行界面。
            * 例如: 在大部分 Linux 系统中可设为 `True` 或 2,而在 macOS Terminal 的默认白底配色中,应设为 -2。
        :param qr_path: 保存二维码的路径
        :param qr_callback: 获得二维码后的回调,可以用来定义二维码的处理方式,接收参数: uuid, status, qrcode
        :param login_callback: 登陆成功后的回调,若不指定,将进行清屏操作,并删除二维码文件
        :param logout_callback: 登出时的回调
        """

        self.core = itchat.Core()
        itchat.instanceList.append(self)

        enhance_connection(self.core.s)

        if cache_path is True:
            cache_path = 'wxpy.pkl'

        self.cache_path = cache_path

        if console_qr is True:
            console_qr = 2

        try:
            self.core.auto_login(
                hotReload=bool(cache_path), statusStorageDir=cache_path,
                enableCmdQR=console_qr, picDir=qr_path, qrCallback=qr_callback,
                loginCallback=login_callback, exitCallback=logout_callback
            )
        except FileNotFoundError as e:
            if 'xdg-open' in e.strerror:
                raise Exception('use `console_qr` arg while under pure console environment')
            raise

        # 用于 "synccheck" 请求的 "_" 参数,每次请求时 + 1
        self._sync_check_iterations = int(time.time() * 1000)

        enhance_webwx_request(self)

        self.self = User(self.core.loginInfo['User'], self)
        self.file_helper = Chat(wrap_user_name('filehelper'), self)

        self.messages = Messages()
        self.registered = Registered(self)

        self.puid_map = None
        self.auto_mark_as_read = False

        self.is_listening = False
        self.listening_thread = None

        if PY2:
            from ..compatible.utils import TemporaryDirectory
            self.temp_dir = TemporaryDirectory(prefix='wxpy_')
        else:
            self.temp_dir = tempfile.TemporaryDirectory(prefix='wxpy_')

        self.start()

        atexit.register(self._cleanup)
Exemple #10
0
 def __init__(self):
     self.uuid = None
     self.core = itchat.Core()
     self.is_logging = True
     self.is_logged = False