一、python开发的服务程序,调用钉钉接口向钉钉群推送信息的软件能申请专利吗

一、python开发的服务程序,调用钉钉接口向钉钉群推送信息的软件能申请专利吗,第1张

先在群里申请“群机器人”,得到access_token 然后调用接口: #!/usr/bin/python 从而快速解决问题,将线上问题尽早解决,那钉钉推送消息,它有什么好处呢?手机钉钉 消息可以第一时间查看,报警消息的即时性要求比较高,所以适合用钉钉通知。 本文介绍

先在群里申请“群机器人”,得到access_token 然后调用接口: #!/usr/bin/python 从而快速解决问题,将线上问题尽早解决,那钉钉推送消息,它有什么好处呢?手机钉钉 消息可以第一时间查看,报警消息的即时性要求比较高,

所以适合用钉钉通知。 本文介绍

实现推送的处理步骤:

创建机器人:

1、登录企业 - 拉取创建3人及其以上的群组 - 点击右键群设置 - 添加机器人,如图:

新建机器人:

给机器人取名:

创建完成:

获取机器人webhook: 复制webhook

>

就直接写脚本,给你举给例子:

编写工具:

1设计目标:

首先说一下我要工具的功能:

遍历某个目录下包括其下子目录中所有指定的后缀文件,然后为这些文件的头部插入指定的字符串。

2使用场景:

设计这样的工具起因是我最近在将之前 CSDN 中的博客搬运到自己的 Hexo 博客空间上,了解的应该知道,假如都是 Markdown 编写的话,搬运的时候只需要在文件头部加上如下的一串额外的内容:

---

title: 博客标题

date: 博客创建时间(例如:2016-09-03 17:15:22)

tags: 标签(如:[Hexo,Next],多个的话用,号隔开)

categories: 分类(如:Web)

---123456

标题 title 直接使用文件名称去掉 md 后缀即可;

时间 date 需要通过文件库获取文件的创建时间;

标签 tags 和分类 categories ,由于我的文件会根据分类放入不同的子目录下,所以直接获取当前文件所在目录的名称即可。

此外,为了在博客首页只展示部分内容,而不是展开博客的完整内容,还需要在博客中恰当的位置插入这个标签:<!--more--> ,通常加载第一段内容结束的位置。

3实现代码:

根据上面的思路,我们在 source/_posts 目录下创建一个工具脚本,起名为 SuitFileToHexopy ,然后依次完成以下步骤:

指定 Linux 环境下 Python 解释器目录,并指定编码方式:

#!/usr/bin/env python# -- coding: utf-8 --

引入的模块:

在脚本开始的地方,最先需要做的事情就是把需要用到的模块都先引入进来,大致分析一下我们这个功能需要用到的模块:

import ospath,time

1

遍历当前目录下所有 md 文件列表:

这就需要使用到 Python 的文件目录 *** 作模块 ospath ,使用 oslistdir 获取目录列表,然后通过 ospathsplitext 分割文件名称和后缀名,从而筛选合格的文件:

# 获取指定目录指定后缀名的文件列表def getFileList(path,endStr):'''获取指定目录下,指定后缀的文件列表'''r_list = []

f_list = oslistdir(path)   #获取目录列表for i in f_list:    # 分离文件名和后缀名,过滤掉工具脚本

file_endStr = ospathsplitext(i)[1]    # 判断是否是目录

if ospathisdir(i):

f_list1 = oslistdir(path+'/'+i)        for j in f_list1:            # 过滤出指定后缀 endStr 后缀的文件

if ospathsplitext(j)[1] == endStr:                # 为了清晰目录把文件所在目录也标识出来

r_listappend(i+'/'+j)                # print jdecode("string_escape")

elif file_endStr == endStr:

r_listappend(i)return r_list

这里发现了一个问题,就是在 ospathisdir(i) 在 2711 的版本莫名其妙地返回 false,需要做如下修改才能正常:

if file_endStr == '':

i = ospathjoin(path, i)   #=================〉这一行很必要

# print i

# 判断是否是目录

if ospathisdir(i):

获取文件的创建时间:

需要使用到 ostime 模块的功能:

# 获取文件创建时间def get_FileCreateTime(filePath):

t = ospathgetctime(filePath)  return TimeStampToTime(t)# 把时间戳转化为时间: 1479264792 to 2016-11-16 10:53:12'''def TimeStampToTime(timestamp):

timeStruct = timelocaltime(timestamp)  return timestrftime('%Y-%m-%d %H:%M:%S',timeStruct)

获取博客标题:

其实就是从目录字符串中截掉后缀名,再截掉最后一个 / 之前的内容即可得到博客名称:

# 获取目录中去掉前面路径和后缀的文件名字def getFileSimpleName(filePath):

name = ''

# 先去掉后缀

name = ospathsplitext(filePath)[0]  # 获取最后一个斜杠位置

index = namerfind('/')  # 找不到则返回 -1

if index != -1:  # 截取斜杠后面到结尾内容

name = name[index+1:]  # print name

return name

获取文件所在的目录名称作为页签值:

与获取博客名称思路略有相似,获取最后一个斜杠位置,截掉斜杠之后的内容,在获取一个最后一个斜杠位置,假如有则截取斜杠之后的内容即是文件所在目录的名称:

# 获得分类文件目录名称def getTypeNameByPath(filePath):fileTag = ''# 获取最后一个斜杠位置index = filePathrfind('/')# 找不到则返回 -1if index != -1:    # 截取斜杠后面到结尾内容

fileTag = filePath[:index]    # 截掉前面部分

index = fileTagrfind('/')    if index != -1:

fileTag = fileTag[index+1:]# print fileTagreturn fileTag

向文件中插入内容:

调用以上方法即可分别得到我们想要的信息:

# 指定目录path = '/'# 得到文件列表files = getFileList(path,'md')  

for i in files:  print 'title: '+getFileSimpleName((idecode("string_escape")))  print 'date: '+get_FileCreateTime((path+idecode("string_escape")))  print 'tags: ['+getTypeNameByPath((idecode("string_escape")))+']'

接下来要做的就是把这些内容按照格式插入到文件中去,当然插入之前需要先检查文件中是否已经插入过类似的内容了,可以简单地通过检查开头 40 个字符串中是否包含这个字符串来判别:

'''---

title: '''

关于展示分隔符 <!--more--> 插入的位置,大致逻辑是:第一个标题后面,而且刚好插入在第二个标题之前即可,而使用 Markdown 语法撰写的博客标题使用 # 来表示的,最终的插入方法如下:

# 向文件中插入指定数据def addHeadToFile(filePath,title,date,tags):file = open(filePath,"r")

content = fileread()

index = content[:40]find('''---

title:''')# 添加if index == -1:    print 'Undadded'

addContent = '''---

title: '''+title+'''

date: '''+date+'''

tags: ['''+tags+''']

categories: '''+tags+'''

<hr />

'''

# 检测是否插入部分显示标签

content = addContent + content

index = contentfind('''<!--more--> ''')    if index == -1:        # 获取第一段的位置

index = contentfind('''### ''')        if index != -1:            #print "first ### pos = ",index

# 下一个标题位置(在第二个标题之前插入即可)

pos = content[index:]find('''

#''',1)            if pos != -1:

index += pos                #print "second enter pos = ",index

content = content[:index]+'''

<!--more-->

'''+content[index:]

file = open(filePath,"w")

filewrite(content)else:    #print 'file head had added'# 记得要关闭文件fileclose()

最后完整的调用过程:

# 指定目录path = '/'# 得到文件列表files = getFileList(path,'md')  

# 声明一些全局变量title = ''date = ''tags = ''for i in files:

title = getFileSimpleName(idecode("string_escape"))

date = get_FileCreateTime(path+idecode("string_escape"))

tags = getTypeNameByPath(idecode("string_escape"))    print 'title: '+title    print 'date: '+date    print 'tags: ['+tags+']'

addHeadToFile(path+idecode("string_escape"),title,date,tags)

from qqbot import QQBotSlot as qqbotslot,RunBot

from random import randint

@qqbotslot

def onQQMessage(bot, contact, member, content):

#在这里过滤过来的输入, content的内容是监听qq上所有的输入

# 当群里有人@你的时候 传入过来的会被转化为[@ME]

# 所以使用 @ME 来过滤其他人在群里面at你

if '@ME' in content:

#四个参数的详细

#bot : QQBot 对象,提供 List/SendTo/Stop/Restart 四个接口,详见本文档第五节

#contact : QContact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 属性,这些属性都是 str 对象

#member : QContact 对象,仅当本消息为 群或讨论组 消息时有效,代表实际发消息的成员

#content : str 对象,消息内容

botSendTo(contact,'@'+ membername+ " 哈哈 ")

#这里是因为部分群里面的at无法转化为[@ME]所以自己过滤at自己的内容

elif '@' in content and '光' in content:

botSendTo(contact,'@'+ membername+ " 哈哈 ")

RunBot()```

以上就是关于一、python开发的服务程序,调用钉钉接口向钉钉群推送信息的软件能申请专利吗全部的内容,包括:一、python开发的服务程序,调用钉钉接口向钉钉群推送信息的软件能申请专利吗、python:消息推送 - 企业微信机器人推送、PYTHON怎样编写自动化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9695819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存