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
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
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)
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
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
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()
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)
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')
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)
def __init__(self): self.uuid = None self.core = itchat.Core() self.is_logging = True self.is_logged = False