微信数据小助手

简介: 微信数据小助手

1.简介


你想导出喜欢得表情包嘛?自定义的,购买的,想看怎么办?导不出来看不了?重要文件能不能默认接受?发的语音、视频能不能自动保存?聊天记录自动保存?那么微信数据小助手来了,可以根据发送的文件类型,按原文件名保存,聊天记录也可以保存下来,完美满足各类需求。


2.功能


  • 保存接收的图片到本地
  • 保存接收的表情到本地
  • 保存接收的语音到本地
  • 保存接收的视频到本地
  • 保存接收的文件到本地
  • 保存接收的聊天记录到本地


3.外挂文件管理系统


通过文件管理系统挂载数据目录,可提供WEB操作界面


4.图片、视频展示


v0.2版本


v0.1版本


5.实现代码


import asyncio
import logging
from typing import Optional, Union
import os
from wechaty_puppet import FileBox, ScanStatus  # type: ignore
from wechaty_puppet import MessageType
from wechaty import Wechaty, Contact
from wechaty.user import Message, Room
logging.basicConfig(level=logging.INFO)
log = logging.getLogger(__name__)
import time
class MyBot(Wechaty):
    """
    listen wechaty event with inherited functions, which is more friendly for
    oop developer
    """
    def __init__(self):
        super().__init__()
    async def on_message(self, msg: Message):
        """
        listen for message event
        """
        from_contact = msg.talker()
        text = msg.text()
        room = msg.room()
        if room:
            await room.ready()
        # 保存图片
        if msg.type() == MessageType.MESSAGE_TYPE_IMAGE:
            img = await msg.to_file_box()
            # save the image as local file
            await img.to_file(os.path.join('img', img.name))
        # 保存视频
        elif msg.type() == MessageType.MESSAGE_TYPE_VIDEO:
            video = await msg.to_file_box()
            # save the video as local file
            await video.to_file(os.path.join('video', video.name))
        # 保存语音
        elif msg.type() == MessageType.MESSAGE_TYPE_AUDIO:
            audio = await msg.to_file_box()
            # save the audio file as local file
            await audio.to_file(os.path.join('audio', audio.name))
        # 保存表情
        elif msg.type() == MessageType.MESSAGE_TYPE_EMOTICON:
            emoticon = await msg.to_file_box()
            # save the audio file as local file
            await emoticon.to_file(os.path.join('emoticon', emoticon.name))
        # 保存文件
        elif msg.type() == MessageType.MESSAGE_TYPE_ATTACHMENT:
            attachment = await msg.to_file_box()
            # save the audio file as local file
            await attachment.to_file(os.path.join('file', attachment.name))
        # 保存聊天记录
        elif msg.type() == MessageType.MESSAGE_TYPE_TEXT:
            txt = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + ',' + from_contact.name + ',' + text + '\n'
            print(txt)
            with open('chat_log.csv', 'a', encoding='utf-8') as f:
                f.write(txt)
        print('done')
    async def on_login(self, contact: Contact):
        log.info(f'user: {contact} has login')
    async def on_scan(self, status: ScanStatus, qr_code: Optional[str] = None,
                      data: Optional[str] = None):
        contact = self.Contact.load(self.contact_id)
        await contact.ready()
        print(f'user <{contact}> scan status: {status.name} , '
              f'qr_code: {qr_code}')
bot: Optional[MyBot] = None
async def main():
    """doc"""
    # pylint: disable=W0603
    global bot
    bot = MyBot()
    await bot.start()
asyncio.run(main())


目录
相关文章
|
16天前
|
缓存 小程序 API
微信小程序页面导航与路由:实现多页面跳转与数据传递
本文深入探讨微信小程序的页面导航与路由机制,介绍多种页面跳转方式如`wx.navigateTo`、`wx.redirectTo`、`wx.switchTab`等,并讲解通过URL、全局变量和事件传递数据的方法。结合案例实现多页面跳转与数据传递,帮助开发者掌握这一重要技能。
|
16天前
|
缓存 小程序 API
微信小程序网络请求与API调用:实现数据交互
本文深入探讨了微信小程序的网络请求与API调用,涵盖`wx.request`的基本用法、常见场景(如获取数据、提交表单、上传和下载文件)及注意事项(如域名配置、HTTPS协议、超时设置和并发限制)。通过一个简单案例,演示了如何实现小程序与服务器的数据交互。掌握这些技能将帮助你构建功能更丰富的应用。
|
5月前
|
人工智能 弹性计算 搜索推荐
打造个性化的微信公众号AI小助手:从人设到工作流程
在数字化时代,一个有个性且功能强大的AI小助手能显著提升用户体验。本文档指导如何在微信公众号上设置AI小助手“小智”,涵盖其人设、功能规划及工作流程设计,旨在打造一个既智能又具吸引力的AI伙伴。
270 0
|
5月前
|
小程序 JavaScript 开发工具
|
5月前
|
移动开发 小程序 数据可视化
微信小程序可视化开发工具之动态数据
微信小程序可视化开发工具之动态数据
94 3
|
6月前
|
存储 安全 小程序
在微信小程序中使用 Vant 时如何确保数据的安全?
在微信小程序中使用 Vant 时如何确保数据的安全?
69 1
|
6月前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用
|
6月前
详细教程:扫码提交表单后,数据直接推送到企业微信、钉钉、飞书群聊
在草料制作的表单中,填表人扫码填写并提交数据后,这些信息可以立即通过企业微信、钉钉或飞书自动推送到相应的群聊中,实现即时共享和沟通,提升团队协作效率。
193 2
|
6月前
|
小程序 JavaScript 开发工具
微信小程序——全局数据共享
微信小程序——全局数据共享
|
7月前
|
小程序 JavaScript 前端开发
微信小程序开发时数据是否是双向数据绑定的
微信小程序开发时数据是否是双向数据绑定的

热门文章

最新文章