吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1806|回复: 10
收起左侧

[Python 原创] 手搓一个python脚本每天钉钉机器人定时发资讯

[复制链接]
by12 发表于 2024-6-3 14:03
本帖最后由 by12 于 2024-6-3 14:09 编辑

用途:该脚本仅用来在钉钉群接收资讯使用
环境:python3,一个域名,一个宝塔环境最好
------------
脚本的执行思路:
第一步
首先运行脚本后会在同目录去查询60s文件夹下是否存在后缀.jpg文件,如果有就删除,没有就开始第二步
第二步
从api接口获取资讯图片,下载保存到60s文件夹,然后让钉钉机器人去用域名信息去访问并发送到钉钉群。
例如: //机器人访问是否存在并发送到钉钉群。
答疑:为什么不直接发送本地图片到钉钉群,非用这种方式。
答:由于钉钉机制,经过测试无法发送{也有可能是我太菜了.发送内容是空白的,所以我尝试这样的方式}
用法:
有一个可以直接访问图片的环境.
image.png
就是你访问是这种效果
image.png
然后在python脚本中需要修改这4个地方
image.png
这是是你的机器人hook跟加签信息
image.png
注:直接运行脚本就行了,文件夹是会自己自动创建的。.
执行看效果
image.png
如何定时呢当然还是这个宝塔的计划任务了。
image.png 好了,以上就是该脚本全部信息了。下载地址在下面
秋波CB币

https://www.lanzouw.com/ix0HV20pd7pi


免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
纯之风韵 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wodekuxiao1025 发表于 2024-6-6 15:19
改了一下  上传图片到阿里OSS里
[Python] 纯文本查看 复制代码
#!/usr/bin/python
# -*- coding: utf-8 -*-

import oss2
import os
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests
import json
import random

def generate_sign(timestamp, secret):
    secret_enc = secret.encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    string_to_sign_enc = string_to_sign.encode('utf-8')
    hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
    return sign

def clear_cache(image_path):
    try:
        os.remove(image_path)
        print(f"缓存文件已删除: {image_path}")
    except FileNotFoundError:
        print(f"缓存文件不存在: {image_path}")

def download_image(url, folder_path, filename):
    if not os.path.exists(folder_path):
        os.makedirs(folder_path)
    image_path = os.path.join(folder_path, filename)

    response = requests.get(url, headers={'Cache-Control': 'no-cache'})
    if response.status_code == 200:
        with open(image_path, 'wb') as f:
            f.write(response.content)
        print(f"图片下载成功: {image_path}")
        return image_path
    else:
        print(f"图片下载失败: {url}")
        return None

def upload_image_to_server(local_image_path,oss_key,oss_secret):
    access_key = oss_key
    access_secret = oss_secret
    auth = oss2.Auth(access_key, access_secret)
    bucket = oss2.Bucket(auth, 'oss-cn-zhangjiakou.aliyuncs.com', 'yunli-yunwei')
    file_path = local_image_path
    object_name = 'pic/60s.jpg'
    try:
        bucket.put_object_from_file(object_name, file_path)
    except ZeroDivisionError:
        print ("上传服务器失败")
    print(f"图片已上传到服务器: ")
    full_url="https://yunli-yunwei.oss-cn-zhangjiakou.aliyuncs.com/pic/60s.jpg"
    return full_url

def send_image_to_dingtalk(image_url, robot_webhook, secret):
    timestamp = str(round(time.time() * 1000))
    sign = generate_sign(timestamp, secret)
    webhook_url = f"{robot_webhook}&timestamp={timestamp}&sign={sign}"

    # 构建消息内容
    data = {
        "msgtype": "markdown",
        "markdown": {
            "title": "60s图片的自定义内容",
            "text": f"![image]({image_url})"
        }
    }

    headers = {'Content-Type': 'application/json'}
    response = requests.post(webhook_url, headers=headers, data=json.dumps(data))

    if response.status_code == 200 and response.json().get('errcode') == 0:
        print("图片发送成功")
    else:
        print("图片发送失败")
        print(response.text)

# 主函数
def main():
    folder_path = '60s'
    filename = '60s.jpg'
    oss_key = ""
    oss_secret = ""
    image_path = os.path.join(folder_path, filename)
    
    # 清除缓存文件
    clear_cache(image_path)
    
    image_source_url = 'https://api.03c3.cn/api/zb'
    
    # 先下载图片并保存
    local_image_path = download_image(image_source_url, folder_path, filename)
    
    if local_image_path:
        # 上传图片到服务器并获取新URL
        local_server_image_url = upload_image_to_server(local_image_path,oss_key,oss_secret)
        
        robot_webhook = 'https://oapi.dingtalk.com/robot/send?access_token='
        secret = ""
        
        # webhook里是机器人地址,secret是加签
        send_image_to_dingtalk(local_server_image_url, robot_webhook, secret)

if __name__ == '__main__':
    main()

海是倒过来的天 发表于 2024-6-3 15:14
你搜一下发现论坛全是这个东西了,不过学习精神不错
wkdxz 发表于 2024-6-3 16:18
请问api链接有没有文字版? 之前有个知乎的文字版,作者说“各位知友十分抱歉了,从今天开始每天60秒读懂世界知乎号正式停更”,然后就没然后了。
图片版不太适合手机看。
Javajsc 发表于 2024-6-3 22:04
好巧,同款咨询,不过图片看起来不太优雅,还是转文字好看点
图片_20240603220300.png
heyboy0306 发表于 2024-6-8 18:47
这类技术分享很多,不过举一反三的学习分享也是不错的。
finchliu 发表于 2024-6-16 13:54
能管多久呢
ffeiko 发表于 2024-6-16 22:10
学习一波
KeyFrror 发表于 2024-6-22 16:08
学习一下
flyzjl2024 发表于 2024-6-25 18:19
学习一下。感谢分享。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 17:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表