推特监控

非教程,纯记录,准备慢慢打造成好用的工具。

最近很多项目都搞关门,烦得很。写一个监控程序,在指定推特发文的时候进行提醒。大概逻辑是指定一个间隔时间,每隔N分钟查询一次指定的推特在上一个N分钟内有没有发文。

使用比较成熟的tweepy模块,需要先去developer.twitter.com注册自己的应用,并生成Bearer Token。网上的中文教程都是用的v1的接口,现在貌似只支持v2了。

首先是认证模块,注册自己的client。

import tweepy 
client = tweepy.Client("Bearer Token")

然后设定一下监控的时间间隔,这里设置为3分钟查询一次。

interval = 3

tweepy的api需要使用推特ID作为参数进行查询,只知道用户名的话,可以通过get_user接口获取对应ID。

client.get_user(“Drew20135733”)

获得的结果是这样的.

Response(data=<User id=1172784929941229568 name=dreworld.eth( 👻, 👻) username=Drew20135733>, includes={}, errors=[], meta={})

把Userid拿出来留着用。

然后就是监控的逻辑。

无限循环,设置获取时间为当前时间的3分钟前到现在所发的推特。

while True:
  s = ""
  st = datetime.datetime.utcnow()-datetime.timedelta(minutes=interval)
  st = st.strftime("%Y-%m-%dT%H:%M:%SZ")
  tweets = client.get_users_tweets("1172784929941229568", start_time=st)

判断是否有获取到推文,有的话,就把推文打印出来。

if (tweets[0] is not None and len(tweets[0]) > 0):
  for i in range(len(tweets[0])):
    s += '{}\r\n'.format(tweets[0][i].text)
print(s)

最后暂停3分钟后再运行。

time.sleep(180)

要监控多个项目的话,只需要加一个字典,写入用户的用户名和ID对。

userid ={ "xxx":"xxx", "Drew":"1172784929941229568" }

然后在循环的时候遍历一下,这个后面再写。

后面再加上监测到以后发邮件提醒的环节,以及正则捕获discord邀请码和图片ocr识别的逻辑。

看了下好像完全没什么技术含量,ORZ,今天先这样了。

Subscribe to DrewL
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.