问题描述
我正在尝试创建一个程序,该程序从 Google 表格中收集文本并使用 APScheduler 模块将其发布到 Twitter 上。
我认为最好的解决方案是创建一个无限循环,不断寻找新行并将其添加为新作业。
这是代码
import gspread
import tweepy
from apscheduler.schedulers.background import BackgroundScheduler
from datetime import datetime
auth = tweepy.OAuthHandler(consumer_key,consumer_secret)
auth.set_access_token(token,token_secret)
api = tweepy.API(auth)
gc = gspread.service_account('credentials.json')
wks = gc.open("sheet").sheet1
sched = BackgroundScheduler()
def tuitar(text):
api.update_status(text)
cell = wks.find(text)
wks.update(f'D{cell.row}','ok')
to_schedule = lambda x: datetime.strptime(x,'%Y-%m-%d %H:%M')
sched.start()
while True:
tweets = wks.col_values(1)[1:]
schedules = wks.col_values(2)[1:]
for i in range(len(tweets)):
# only add if the cell in column D is empty
if wks.acell(f'D{i + 1}').value != 'ok':
tweet = tweets[i]
schedule = to_schedule(schedules[i])
sched.add_job(tuitar,'date',run_date=schedule,args=[tweet])
如何让每个作业只添加一次?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)