编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

RPA之Python代码帮你过滤垃圾短信

wxchong 2024-08-10 22:10:50 开源技术 16 ℃ 0 评论

想实现的功能是获取所有短信中的验证码并且过滤短信中的骚扰信息,翻了翻 sl4a 的文档,有获取未读短信的方法,有标记短信为已读的方法,虽然没有对接收新短信的事件的监听,但可以循环地检查嘛(好的,中心句已经出现,=.= 本文到此结束)。

至于骚扰短信的过滤,我翻了下各种烦人的通知类短信,发现它们都是挺客气的,不是“你好”就是“您”,要么就是“尊敬的”,当然还有开发票的“本公司”,还有“长期” <_< 。反正,带“验证码”或者“校验码”三个字的肯定是可以我要的。

环境
sl4a_r6 .apk

上代码

#coding:utf8
'''
自动转发、过滤短信
'''
import android
import time

droid = android.Android()
stop = False

def not_harass(sms_body):
 '''\
 判断骚扰短信
 '''
 if '验证码' in sms_body\
 or '校验码' in sms_body:
 return True
 if '您' in sms_body\
 or '你好' in sms_body\
 or '尊敬的' in sms_body\
 or '长期' in sms_body\
 or '本公司' in sms_body\
 or '退订' in sms_body:
 print '判断为骚扰短信,未转发:',sms_body,'\n'
 return False
 return True

def do_transfer():
 '''\
 获取未读短信,检查短信内容,转发,标记为已读
 '''
 global stop
 sms_id_list = droid.smsGetMessageIds(True).result
 for sms_id in sms_id_list:
 sms_body = droid.smsGetMessageById(sms_id)\
 .result['body']\
 .encode('utf8')
 if sms_body == 'stop':
 stop = True
 return
 if not_harass(sms_body):
 droid.smsSend('1××××××4201', sms_body)
 droid.smsMarkMessageRead(sms_id_list, True)

while not stop:
 do_transfer()
 time.sleep(1.5)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表