草庐IT

Chatgpt接入Csdn:实现自动回复、评论、点赞

德宏大魔王(自动化助手) 2023-04-14 原文

背景

起初,我只是想自己弄个工具,用来处理一下大佬们的三连支持,后面我发现大家都在讨论chatgpt,于是我将自动回复和评论消息接入到了Csdn中,不知道这篇文章能不能发出来,代码的话暂时不开源,后面完善了会考虑客户端形式分享,今天只是分享一下逻辑,欢迎大家关注支持我!

已完成的工作

20230405

  • 支持点赞、收藏回访(被动模式)
  • 关注回访(需要发表过博客)
  • 评论回访

20230406优化

  • 私信检测到群发消息自动三连/满足模板设定给予三连触发
  • 优化检测模式,防止出现多触发情况
  • 为了防止操作额度不够,只处理最新发表的博客(第一条),不在继续往下操作
  • 暂未对动态blink进行调整,理论可以
  • 评论多评检测(防止有人故意而为之)

20230408

  • 接入chatgpt,可对话、可自动评论

评论自动回复

今天刚刚接入chatgpt,用的是3.5的接口,没用api和密钥,用的是github某个项目的,可直接使用,替换掉原来的固定模式

原固定:

# content = "优质好文,感谢博主分享《" + blog_list['data']['list'][0]['title'] + "》!欢迎查看我新发布的文章呀,code:" + str(random_)  
# 评论

新的方式:
通过构造“请写一条关于xxxxx为标题的评价,50字数以”
发送请求给chatgpt接口,并等待返回数据,这里因为接口是一个字一个字的返回,

所以需要用到

for line in response.iter_lines():
        if line:
            data = json.loads(line.decode("utf-8"))
            # 对Python对象进行相应的处理
            # print('接口返回的数据:', data)
    return data

来对总的数据整合处理,然后再返回评价

 text_val = "请写一条关于“" + blog_list['data']['list'][0]['title'] + "”为标题的评价,50字数以内"
 content = chatgpt(text_val)

通过接口完成对该文章的评论请求

comment_result = comment_sub(content,blog_list['data']['list'][0]['articleId'])

检测文章互动数据

现在支持动态、文章点赞/收藏的监控,并能按需处理对方的文章,也就是说,你点我一次赞,我也会回你一次,在使用过程中发现了某博主会重复对我的某一篇文章,取消点赞再回赞的做法,这样就可以一直帮他打工了,考虑到额度限制,于是我加了评论检测,对于已经评论过的文章,不在处理

   print("正在检测是否重复评论")
                            flages = "0"  # 0评论1不
                            get_comment_list_result = get_comment_list_(blog_list['data']['list'][0]['articleId'])
                            if get_comment_list_result['code'] == 200:
                                for comment_info in get_comment_list_result['data']['list']:
                                    if comment_info['info']['userName'] == UserName:
                                        # 我已经评论过了,跳出本次
                                        flages = "1"
                                        break
                                if flages == "0":
                                    #
                                    print("检测到:未评论");
                                    text_val="请写一条关于“"+blog_list['data']['list'][0][
                                        'title']+"”为标题的评价,50字数以内"
                                    text=chatgpt(text_val)
                                    random_ = random.randint(0, 9)

若检测到有“我”的账号评论的消息直接pass处理

对于收藏和点赞也是一样

消息检测

针对消息这一块,数据读取到了不代表,消息已被查看,在最开始使用的时候,因为没对这个做处理导致消息轰炸了某位博主,十分抱歉

 im_history = get_sixin_history(im_list['data'][i]['username'], millis)
                        if im_history['code'] == "0":
                            data = im_history['data']
                            last_message_toUsername = data[0]["toUsername"]
                            last_message_message = data[0]["messageBody"]
                            if last_message_toUsername != UserName:
                                print("最后一条消息不是对方发的")
                                pass
                            else:
                                print("检测是否三连")
                                text = last_message_message
                                if text.find("http") != -1:
                                    print("text中包含http")

检测到http连接信息,开始自动访问对方的最新博客信息,完成三连操作

自动回关

回关,我这里做的策略是,没有发表过文章的用户不采取关注,因为没意义

  follow_data_result = follow_list['data']['resultList']
                for i in range(0, message['data']['follow']):
                    print(f"第{i + 1}条,id:{follow_data_result[i]['id']}|账户{follow_data_result[i]['content']['username']}{follow_data_result[i]['time']}关注了你,正在解析对方数据中..")
                    get_userinfo_list = get_userinfo(follow_data_result[i]['content']['username'])
                    if get_userinfo_list['code'] == 200:
                        print("个人信息查询成功-判断博客是否有发布")
                        if get_userinfo_list['data']['blog'] == 0:
                            print("不满足发表文章-不关注")
                            pass
                        else:
                            follow_list = follow(follow_data_result[i]['content']['username'])
                            if follow_list['code'] == "0":
                                print("回关成功")
                                text = "已自动回关,时间:" + datetime.datetime.now().strftime(
                                    '%Y-%m-%d  %H:%M:%S')
                                im_sends(follow_data_result[i]['content']['username'], text)
                            else:
                                print("未知返回码,标识42546")
                                pass

有关Chatgpt接入Csdn:实现自动回复、评论、点赞的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  3. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  4. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  5. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  6. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  7. unity---接入Admob - 2

    目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里​编辑 3.解析依赖到项目中

  8. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  9. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  10. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

随机推荐