用户:
星度退了查看:48 回复:14 评论:48 创建时间:2024-08-14T14:21:39
【作品展示】

【作品介绍】
自动评论
【作品源代码】
import requests
import time
import random
import json
import threading
import tkinter as tk
from tkinter import ttk, messagebox
import logging
# 设置你的 cookie!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cookie = ''
# 设置请求头
headers = {
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0 (compatible; Googlebot/2.喵bot.html)",
"cookie": cookie
}
# 评论内容列表,添加表情符号
comments = [
"【自动】{nick_name}充满了无限的可能,愿你不断探索,勇攀技术高峰,创造出更加出色的作品!😊",
"【自动】你的作品展现出了非凡的创意和才华,相信在未来的编程之路上,你一定会创造出更多令人惊叹的成果!😃",
"【自动】{nick_name},你的作品就像一颗璀璨的星星✨,在编程的天空中闪耀着独特的光芒。坚持下去,未来定会有一片属于你的星海!🌟",
"【自动】{work_name}充满了创意的火花💥,只要不断积累,定会燃起熊熊大火,照亮你的编程之旅!🔥",
"【自动】继续加油,作品{work_name}很好!如同一条奔腾的智慧之河🌊,在编程的大地上流淌着无尽的创新。勇往直前,必将汇聚成波澜壮阔的知识海洋!🌊"
"【自动】{nick_name}的作品不错哟~继续加油!😊",
"【自动】很好!继续做出优秀作品吧!👍",
"【自动】{nick_name}的作品很棒!🎉",
"【自动】{work_name}这个作品我看好哟~👏",
"【自动】{nick_name}继续加油,作品{work_name}很好!💪"
"【自动】世上无难事,只怕有心人。{nick_name},司水祝愿你在创造的路上更进一步!"
"【自动】{nick_name}愿你带着自己的梦,以一种骄傲的姿态走下去!,加油,作品{work_name}做的很好!!"
"【自动】别人都能做到的事,你也一定可以做到,相信自己,加油"
"【自动】当你的能力还驾驭不了你的目标时,那你就应该沉下心来历练。加油,司水我看好你哦"
"【自动】{nick_name}吃苦耐劳,努力钻研业务知识;勤奋好学,不断提升个人能力。"
"【自动】{nick_name}一粒种子,是在痛苦中,萌生出新的希望 一个婴儿,是在痛苦中,分娩出新的生命 喵的雏鹰,是在痛苦中,倔强的展翅。一切的一切,都要经历过痛苦的探索,才会收到成功的喜悦。加油,我看好你"
"【自动】失败并不可怕,只要我们怀着一颗不服输的心,勇往直前,那么胜利将不会离我们太远。加油作品{work_name}做的很好,希望你在编程的路上更近一步!!!"
"【自动】努力不一定会成功,放弃必定会失败,只有义无反顾的朝着目标前进,才能创造出自己的价值和事业。"
"【自动】站在青春里,遍地美好。就算那里的烦恼特别多,那里的遗憾忘不掉,可是留白的青春,一样重要,一样美好。希望你在编程之路上更近一步"
"【自动】青春伴随着梦想,如诗如画,如歌如曲,追逐梦想的微光,即使前方荆棘满地,也依然要风雨兼程,永不言弃!加油,你做的很好"
"【自动】善于把握事物的规律,掌握事物的正确动向,你就会事半功倍,而后取得最后的成功。"
"【自动】我每看运动会时,常常这样想:优胜者固然可敬,但那虽然落后而仍非跑至终点不止的竞技者,和见了这样竞技者而肃然不笑的看客,乃正是中国将来的脊梁。"
"【自动】我的快乐,来源于痛苦;我的幸福,来源于痛苦;我的理想,也是在痛苦的咸涩中,得到成功。就让我们正视痛苦,拥抱痛苦,把它当成是好朋友,一道最最靓丽的风景。加油,只要你用心做好作品,你会更好"
"【自动】失败,是成功蝉蜕下的虚壳;成功,是失败破裂后的彩蝶。加油,你的作品{work_name}做的很好,继续努力吧!!!"
"【喵之翼(菲谢尔)】菲谢尔的翅膀,承载着你的梦想与努力,它将带你飞向更加辉煌的未来!🕊️{nick_name},你的作品很好,继续努力吧!!!加油"
"【自动】每一个潜力作品的诞生,都有我司水的身影"
"【自动】{nick_name},又遇到你了~你比上次又更进一步了哦~"
"【自动】每一个作品都是迈向成功的一步,坚持下去,你将超越自己的极限"
"【自动】{nick_name},成功的路上没有捷径,只有坚持和努力才能到达终点!"
"【自动】{nick_name},勇敢前行,你的梦想就在前方,继续加油,成功就在眼前!👊"
"{nick_name},永远不要低估自己的潜力,在黑暗中发光,创造属于自己的奇迹![编程猫_加油]"
"{nick_name},你的作品还挺不错的呢,加油!继续努力,为你点赞~[编程猫_加油]"
"{nick_name},愿你带着自己的梦,以一种骄傲的姿态走下去![编程猫_加油]"
"啊哈哈哈{nick_name}!我来给你送赞啦~[编程猫_加油]"
"又见面了呀,{nick_name}!这次比上次有进步,值得表扬![编程猫_加油]"
"呀~训练师,还要更努力才行呀![编程猫_加油]"
"{nick_name}!表现不错!继续努力吧![编程猫_加油]"
"恭喜你又成功创作并发布一个作品~在通往首页的道路上又前进一小步呀![编程猫_加油]"
"{nick_name},世上无难事,只怕有心人,愿你在愿你在创作的道路上更进一步![编程猫_加油]"
"每一次的努力,都会让你离成功更近一步。请继续前行,风雨无阻,你会收获阳光。[编程猫_加油]"
"每一次努力都是不凡的历练,每一点进步都是值得庆祝的胜利。{},你正在创造属于自己的辉煌,相信自己,一切皆有可能。[编程猫_加油]"
"{nick_name},在编程的宇宙里,你正星际穿越,每一行代码都是新世界的钥匙![编程猫_加油]"
"{nick_name},你的逻辑构建了源码世界的桥梁,让更多创意通行无阻![编程猫_加油]"
"嘿,{nick_name},代码的乐章因你而美妙,每个函数都是旋律,奏响未来之歌![编程猫_加油]"
"{nick_name},在源码的迷宫中,你正一步步绘制出解决方案的地图,非常出色![编程猫_加油]"
"干得漂亮,{nick_name}!你的作品证明了,创意与技术结合,能绽放最耀眼的光芒![编程猫_加油]"
"又一项杰作,{nick_name}!你发布的不仅是作品,更是通往梦想的另一块基石![编程猫_加油]"
"{nick_name},挑战是编程旅途的风景,你正勇敢地跨越,每一步都更接近顶峰![编程猫_加油]"
"不懈努力,{nick_name},你的汗水会化作编码河流,滋养成功的果实![编程猫_加油]"
"{nick_name},在编程的征途中,你的每一次尝试都是智慧的火花,继续点燃梦想的火焰吧![编程猫_加油]"
"{nick_name},你的逻辑构建如同精密的机械,每一行代码都是智慧的齿轮,转动出无限可能![编程猫_加油]"
"哈哈,{nick_name}!你的创新思维像流星划过夜空,点亮编程的世界,继续保持那份闪耀![编程猫_加油]"
"又一天的进步,{nick_name}!你的努力如同细流汇聚成海,广阔而深邃,令人赞叹不已![编程猫_加油]"
"嘿,源码训练师{nick_name}!前方还有更多挑战等着你,但记得,山再高,一步步总能登顶![编程猫_加油]"
"{nick_name},代码不仅仅是字符,更是你创意的画布,继续挥洒你的才智吧![编程猫_加油]"
"{nick_name},你的坚持和进步,就像编程界的灯塔,引领着同路人前行![编程猫_加油]"
"祝贺,{nick_name}!每完成一个作品,都是向着编程大师之路迈进的坚实步伐![编程猫_加油]"
"{nick_name},面对编程上难题,记得每个挑战背后都藏着成长的种子,让它在你的努力下开花结果![编程猫_加油]"
"记住,{nick_name},伟大的作品诞生于无数次的尝试,你的耐心和决心将成就非凡![编程猫_加油]"
"每一次思考,每一次实践,{nick_name},都是你编程实力的见证,相信自己,未来可期![编程猫_加油]"
"{nick_name},在编程的征途中,你的每一次尝试都是智慧的火花,继续点燃创造的火焰吧![编程猫_加油]"
"又一项杰作,{nick_name}!每一次发布都是新世界的开启,继续拓宽你的边界![编程猫_加油]"
"喂!{nick_name},编程路上的勇士,前方还有更多挑战,准备好征服了吗?[编程猫_加油]"
"{nick_name},你的进步轨迹如同攀登山峰,每一步都更接近顶峰的风景![编程猫_加油]"
"看这里,{nick_name}!你的努力已经结出了果实,保持这份劲头,未来无可限量![编程猫_加油]"
"庆贺之际,{nick_name}!每一次发布都让梦想更进一步,继续在编程的宇宙中翱翔![编程猫_加油]"
"{nick_name},在编程的迷宫中,你是最亮的灯塔,引领自己也照亮他人,继续照亮前行的路![编程猫_加油]"
"记住,{nick_name},每一个bug都是成长的垫脚石,跨越它们,胜利就在眼前![编程猫_加油]"
"每一次挑战,都是思维的体操,{nick_name},你正变得更强,继续你的思维探险吧![编程猫_加油]"
"{nick_name},在编程的森林中,你是一颗喵成长的树,每片叶子都映照着知识的光芒![编程猫_加油]"
"{nick_name},你的每一次尝试,都如同编程河流中激起的浪花,汇成智慧的海洋![编程猫_加油]"
"呀哈,{nick_name}!你的代码是解锁源码世界的密钥,每一次敲击都开启新世界的大门![编程猫_加油]"
"再次遇见,{nick_name}!你的进步仿佛编程天空中的流星,璀璨夺目,继续闪耀吧![编程猫_加油]"
"{nick_name},编程的征途中,你是一名勇敢的探险者,前方的宝藏等待着你的发现![编程猫_加油]"
"嘿,{nick_name},在编程的花园里,你细心培育的每一行代码,都绽放成了绚丽的花朵![编程猫_加油]"
"{nick_name},在,源码世界里,你的努力如同编程大地下的溪流,虽静默却坚定,滋养着成功的果实![编程猫_加油]"
"恭喜,{nick_name}!你的作品是编程星空中新添的星座,指引着后来者的方向![编程猫_加油]"
"{nick_name},在这个编程喵,你是一位编织梦想的艺术家,代码就是你的画笔![编程猫_加油]"
"每一步都算数,{nick_name},你的编程之旅,每一段代码都是通往卓越的基石![编程猫_加油]"
"每一次挑战,{nick_name},都是编程之旅中的山峰,攀登过后,风景这边独好![编程猫_加油]"
"{nick_name},你的编程世界,因你的创意而五彩斑斓,继续绘制这幅宏伟画卷![编程猫_加油]"
"哈哈,{nick_name}!你的代码魔法,让虚拟与现实交织,创造出不可思议的奇迹![编程猫_加油]"
"又一程精彩,{nick_name}!你的进步如同编程乐章中的高音,激昂而振奋,继续演奏吧![编程猫_加油]"
"嗨,{nick_name},在编程的迷雾中,你手握源码之灯,照亮前行的路,无比勇敢![编程猫_加油]"
"{nick_name},你的编程技艺,如同匠人的精心雕琢,每行代码都闪耀着匠心![编程猫_加油]"
"再次突破,{nick_name}!你的作品如同编程夜空中最亮的星,让所有人仰望![编程猫_加油]"
"继续前行,{nick_name},你的编程之旅,每一步都坚定而有力,直到梦想的彼岸![编程猫_加油]"
"我已给你的作品点赞了,{nick_name},能给我的作品点赞吗?谢谢!"
]
running = False
speed = 5
custom_comments = comments.copy()
# 用于记录已评论的作品 ID 及名称
commented_works_info = {}
# 用于记录屏蔽的用户 ID
blocked_user_ids = set()
# 设置日志记录
logging.basicConfig(filename='comments_likes.log', level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s')
def fetch_latest_works(session):
try:
response = session.get(
'https://api.codemao.cn/creation-tools/v1/pc/discover/newest-work?offset=0&limit=5')
response.raise_for_status()
return response.json().get('items', [])
except requests.RequestException as e:
error_message = f"无法获取最新作品:{e}"
if isinstance(e, requests.HTTPError):
error_message += f" 状态码: {e.response.status_code}"
logging.error(error_message)
return []
def check_self_comment(session, work_id):
"""
检查指定作品的评论区是否有自己的评论
"""
try:
response = session.get(
f'https://api.codemao.cn/creation-tools/v1/works/{work_id}/comments')
response.raise_for_status()
comments_data = response.json()
for comment in comments_data['items']:
if comment.get('user', {}).get('nickname') == 'VH': # 请替换为您在该平台的昵称
return True
return False
except requests.RequestException as e:
error_message = f"检查作品 {work_id} 的评论时出错:{e}"
if isinstance(e, requests.HTTPError):
error_message += f" 状态码: {e.response.status_code}"
logging.error(error_message)
return False
def post_comment(session, work_id, comment):
try:
comment_response = session.post(
f'https://api.codemao.cn/creation-tools/v1/works/{work_id}/comment',
headers=headers,
data=json.dumps({'content': comment})
)
logging.info(f"对作品 {work_id} 发表评论:{comment}")
print(f"评论响应: {comment_response.text}")
except requests.RequestException as e:
error_message = f"对作品 {work_id} 发表评论时出错:{e}"
if isinstance(e, requests.HTTPError):
error_message += f" 状态码: {e.response.status_code}"
logging.error(error_message)
def like_work(session, work_id):
try:
like_response = session.post(
f'https://api.codemao.cn/nemo/v2/works/{work_id}/like',
headers=headers,
data=json.dumps({})
)
logging.info(f"点赞作品 {work_id}")
print(f"点赞响应: {like_response.text}")
except requests.RequestException as e:
error_message = f"点赞作品 {work_id} 时出错:{e}"
if isinstance(e, requests.HTTPError):
error_message += f" 状态码: {e.response.status_code}"
logging.error(error_message)
def main():
global running
with requests.Session() as session:
session.headers.update(headers)
while running:
works = fetch_latest_works(session)
remaining_works = len(works) # 计算剩余待评论的作品数量
for work in works:
if all(key in work for key in ('work_id', 'work_name', 'nickname')) and work['work_id'] not in commented_works_info and not check_self_comment(session, work['work_id']) and work['user_id'] not in blocked_user_ids:
work_id = work['work_id']
work_name = work['work_name']
# 随机选择一条评论
comment = random.choice(custom_comments).format(
work_name=work_name, nick_name=work['nickname'])
# 发送评论请求
post_comment(session, work_id, comment)
# 发送点赞请求
like_work(session, work_id)
# 将作品信息添加到已评论记录中
commented_works_info[work_id] = work_name
# 更新正在评论的作品信息
currently_commenting_label.config(
text=f"正在评论: {work_name}")
remaining_works_label.config(
text=f"剩余待评论作品数量: {remaining_works}")
# 每次评论后等待指定时间
time.sleep(speed)
# 等待一段时间后再继续
time.sleep(60)
def start():
global running
running = True
threading.Thread(target=main).start()
def stop():
global running
running = False
messagebox.showinfo("Info", "脚本停止")
def set_speed():
global speed
new_speed = int(speed_entry.get())
if new_speed < 3:
messagebox.showwarning("Warning", "速度不可低于 3 秒,否则自动检测为刷屏")
else:
speed = new_speed
messagebox.showinfo("Info", f"速度设置为 {speed} 秒")
def user_comment():
global custom_comments
user_comment = user_comment_entry.get()
if user_comment:
custom_comments.append(user_comment)
messagebox.showinfo("Info", "用户评论已添加")
def show_commented_works():
"""
显示已评论过的作品
"""
if commented_works_info:
content = "\n".join(
[f"作品名: {name}, 作品 ID: {work_id}" for work_id, name in commented_works_info.items()])
messagebox.showinfo("已评论的作品", content)
else:
messagebox.showinfo("已评论的作品", "您尚未评论过任何作品")
def block_user():
"""
实现屏蔽用户的功能
"""
user_id = block_user_entry.get()
if user_id:
blocked_user_ids.add(user_id)
messagebox.showinfo("屏蔽用户", f"已屏蔽用户 ID: {user_id}")
else:
messagebox.showwarning("输入错误", "请输入要屏蔽的用户 ID")
def show_usage():
usage_text = (
"使用方法:\n"
"1. 设置您的 cookie。\n"
"2. 点击“开始”按钮启动脚本。\n"
"3. 脚本会自动获取最新的作品,并随机选择评论内容进行评论和点赞。\n"
"4. 您可以通过输入框添加自定义评论。\n"
"5. 点击“结束”按钮停止脚本。\n"
"6. 通过设置速度来调整每次评论和点赞的间隔时间。\n"
"7. 点击“查看自己评论过的作品”按钮可以查看已评论的作品。\n"
"8. 点击“屏蔽”按钮输入要屏蔽的用户 ID 以不再对其作品进行评论。"
)
messagebox.showinfo("使用方法", usage_text)
# 创建 GUI
root = tk.Tk()
root.title("不许做非法用途,否则后果自负")
style = ttk.Style()
style.configure("TButton", font=("Helvetica", 12), padding=10)
start_button = ttk.Button(root, text="开始", command=start, style="TButton")
start_button.pack(pady=10)
stop_button = ttk.Button(root, text="结束", command=stop, style="TButton")
stop_button.pack(pady=10)
settings_frame = ttk.LabelFrame(root, text="设置")
settings_frame.pack(pady=10, padx=10, fill="x")
ttk.Label(settings_frame, text="速度 (秒):").pack(side="left", padx=5)
speed_entry = ttk.Entry(settings_frame)
speed_entry.pack(side="left", padx=5)
set_speed_button = ttk.Button(settings_frame, text="设置速度", command=set_speed)
set_speed_button.pack(side="left", padx=5)
ttk.Label(settings_frame, text="用户评论:").pack(side="left", padx=5)
user_comment_entry = ttk.Entry(settings_frame)
user_comment_entry.pack(side="left", padx=5)
user_comment_button = ttk.Button(
settings_frame, text="添加评论", command=user_comment)
user_comment_button.pack(side="left", padx=5)
block_frame = ttk.LabelFrame(root, text="屏蔽用户")
block_frame.pack(pady=10, padx=10, fill="x")
block_user_entry = ttk.Entry(block_frame)
block_user_entry.pack(side="left", padx=5)
block_confirm_button = ttk.Button(block_frame, text="确定", command=block_user)
block_confirm_button.pack(side="left", padx=5)
show_commented_works_button = ttk.Button(
root, text="查看自己评论过的作品", command=show_commented_works)
show_commented_works_button.pack(pady=10)
usage_button = ttk.Button(
root, text="使用方法", command=show_usage, style="TButton")
usage_button.pack(pady=10)
# 添加标签用于显示运行状态
currently_commenting_label = ttk.Label(root, text="正在评论: 否")
currently_commenting_label.pack(pady=10)
remaining_works_label = ttk.Label(root, text="剩余待评论作品数量: 0")
remaining_works_label.pack(pady=10)
root.mainloop()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn
星度退了#设置请求头 headers={ "Content-Type":"application/json", "User-Agent":"Mozilla/5.0(compatible;Googlebot/2.1;+喵喵喵)", "cookie":cookie } 喵喵喵=h t t p : / / w w w . g o o g l e . c o m / b o t . h t m l
点赞0
评论
照清李什么78,连这都不会用可以重开了...imgsrc="http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/b6/sb_thumb.gif"alt="emotion_生病"
点赞0
评论