为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查文件是否已在缓存中?

如何检查文件是否已在缓存中?

LEATH 2023-05-23 10:50:30
我正在开发一种工具,可以在你的 Twitter 帐户上发布来自游戏的 Ingame 新闻更新,在过去的几天里,我搜索了一种解决方案,以找到一种方法来查看图像是否已经在缓存中,这样它就不会再次发布如果一个游戏的 News Feed 更新在线,它应该只发布新的并跳过旧的(实际上它会再次发布每个活动的 News Feed),问题是做不到。我测试了大约 100 次,但它不起作用。我真的希望你们中的任何一个能帮助我解决这个问题,因为如果这个工具能与这样的方法一起工作,那就太棒了。提前感谢您的每一个帮助。这是我的代码:import tweepyimport timefrom colorama import *init()auth = tweepy.OAuthHandler('API', 'APISECRET')auth.set_access_token('ACESS', 'ACESSSECRET')response = requests.get('https://fortnite-api.com/v2/news/br')newsData = response.json()["data"]#-----footer = '#Fortnite'delay = 5saveImages = True#-----while 1:    response = requests.get('https://fortnite-api.com/v2/news/br')    if response:        newsDataLoop = response.json()["data"]        print("2 - Checking for change in news feed...")        if newsData != newsDataLoop:        #if loop == True:            print("News Feed has changed...")            for i in newsDataLoop["motds"]:                try:                    print("Saving: "+i["id"])                    url = i["image"]                    r = requests.get(url, allow_redirects=True)                    open("NewsImages/"+i["id"]+'.png', 'wb').write(r.content)                    print("Saved: "+i["id"])                    try:                        api = tweepy.API(auth)                        api.update_with_media("NewsImages/"+i["id"]+'.png',"Fortnite News Update:\n\n"+i["title"]+":\n"+i["body"]+"\n\n"+footer)                        print("Tweeted: "+i["id"])                    except:                        print("Failed to tweet: "+i["id"])                    if saveImages == 'False':                        os.remove("NewsImages/"+i["id"]+'.png')                    response = requests.get('https://fortnite-api.com/v2/news/br')                    newsData = response.json()["data"]                except:                    print("Error in tweeting news feed: skipping")            print("Finished news feed publishing")    else:        print("FAILED TO GRAB NEWS DATA: URL DOWN")    time.sleep(delay)
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

您需要检查每一个motd以查看它是否存在于旧数据集中。


import tweepy

import time

from colorama import *

init()


auth = tweepy.OAuthHandler('API', 'APISECRET')

auth.set_access_token('ACESS', 'ACESSSECRET')


response = requests.get('https://fortnite-api.com/v2/news/br')

newsData = response.json()["data"]



#-----

footer = '#Fortnite'

delay = 5

saveImages = True

#-----


while 1:

    response = requests.get('https://fortnite-api.com/v2/news/br')

    if response:

        newsDataLoop = response.json()["data"]

        print("2 - Checking for change in news feed...")


        if newsData != newsDataLoop:

        #if loop == True:

            print("News Feed has changed...")

            for i in newsDataLoop["motds"]:

                if i in newsData["motds"]:

                    # has already been posted

                    print("Already posted")

                    continue

                try:

                    print("Saving: "+i["id"])

                    url = i["image"]

                    r = requests.get(url, allow_redirects=True)

                    open("NewsImages/"+i["id"]+'.png', 'wb').write(r.content)

                    print("Saved: "+i["id"])

                    try:

                        api = tweepy.API(auth)

                        api.update_with_media("NewsImages/"+i["id"]+'.png',"Fortnite News Update:\n\n"+i["title"]+":\n"+i["body"]+"\n\n"+footer)

                        print("Tweeted: "+i["id"])

                    except:

                        print("Failed to tweet: "+i["id"])

                    if saveImages == 'False':

                        os.remove("NewsImages/"+i["id"]+'.png')


                    response = requests.get('https://fortnite-api.com/v2/news/br')

                    newsData = response.json()["data"]

                except:

                    print("Error in tweeting news feed: skipping")

            print("Finished news feed publishing")

    else:

        print("FAILED TO GRAB NEWS DATA: URL DOWN")


    time.sleep(delay)


查看完整回答
反对 回复 2023-05-23
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信