如何实现微信群打卡排行榜,提高活跃度

最近加入了一个早起打卡的微信群,里面有人提出如果每天早起打卡有个排行榜,他会更有动力早起。这种打卡进行排行榜的活动的方式在很多app都有,满足人们炫耀,攀比的一种方式。那在微信群里面能否实现这样的功能。下面讲一下我的实现思路。

实现思路

先介绍一下wxpy,实现的功能都是建立在这个基础上。可以用来做一些常见的场景如下:
  • 控制路由器、智能家居等具有开放接口的玩意儿
  • 运行脚本时自动把日志发送到你的微信
  • 加群主为好友,自动拉进群中
  • 跨号或跨群转发消息
  • 自动陪人聊天
  • 逗人玩

总而言之,可用来实现各种微信个人号的自动化操作

实现的思路:

监听打卡的微信群,微信群的用户在 @ 到打卡机器人(就是你登录的微信号) 并且发送“打卡”两个字,就触发监听的逻辑,计算该用户是第几名打卡的人,并发送信息到群里“xxx,打卡成功,你是第3个打卡” 类似这样的回复。

实现代码

先安装wxpy的包

pip install -U wxpy

排行版的数据是简单的存放在一个文本里面,文件的命名按日期进行存放,每一条记录为一行,下面的方法是获取文本里面行数。

 1#获取文件的行数
 2def get_count(file_name):
 3    count = 0
 4    fp = open(file_name, "r")
 5    while 1:
 6        buffer = fp.read(8*1024*1024)
 7        if not buffer:
 8            break
 9        count += buffer.count('\n')
10    fp.close()
11    return count

排行榜的逻辑:

  • 第2行的微信机器人的初始化,运行到这来会弹出一个二维码,需要用微信扫描进行登录。
  • 第4行注册了一个监听微信群(Group),监听的内容是文本(TEXT)。处理的逻辑代码的注释已经写清楚了。
  • 第24行主要作用是阻塞主线程
 1#缓存登录的信息,不用每次启动都要扫描
 2bot = Bot(cache_path=True)
 3#注册
 4@bot.register([Group], TEXT)
 5def auto_reply(msg):
 6    # 如果是群聊,并且被当前登录的人被@,群的名称叫打卡群
 7    if isinstance(msg.chat, Group) and  msg.is_at and msg.sender.name=="打卡群":
 8        text=msg.text #接收到的信息
 9        member_name=msg.member.name#群里发送信息的名称
10        create_time=msg.create_time#发送消息时间
11        #内容里面带有“打卡”两个字才算成功
12        if text.find("打卡")!=-1:
13            date=datetime.datetime.now().strftime('%Y-%m-%d')
14            file_name=f"排行榜_{date}.txt"
15            try:
16                count=get_count(file_name)+1
17            except Exception as e:
18                count=1
19            file=open(file_name,'a')
20            file.writelines(f"排行:{count},打卡人:{member_name},打卡时间:{create_time}\n") 
21            file.close();
22            return f"{member_name},打卡成功,你是第{count}个打卡"  
23#阻塞主进程      
24embed()

话题延伸

以上的实现只是简单讲了一下解决问题的思路,里面还有什么没有解决呢?例如:打卡时间的范围没有限制,重复打卡的处理等。

现在已经有很多微信群的相关工具,为什么还要自己重复造轮子。因为大部分的功能只是满足基本的功能,当我们要运营某个功能的时候,不满足的情况下,就需要自己能够实现。

上面的功能还可以有这样的玩法。监控某个人发送的“放榜”指令,把今天统计的打卡前十名的名单自动发到群里。可以统计一个星期连续排行榜前十名的人。当你有了数据后,很多方式可以玩。

欢迎关注公众:sjyy_python

    原文作者:数据运营python
    原文地址: https://www.jianshu.com/p/9a7410b347b4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞