Home > Net >  How to put a condition that only runs when there is any change in API?
How to put a condition that only runs when there is any change in API?

Time:01-29

Hello Community Members,

I am very new to python language and programming, currently I am working on a news API that shows the news from that API. I want this program to check and update whenever there is any update to the API. Please help what can I do to complete this.

CODE:

url = 'https://cryptopanic.com/api/v1/posts/?auth_token=<my token>&filter=hot'
html_link = requests.get(url)
datatype = html_link.json()
news_info = datatype['results']
latest_news = news_info[0]['title']
source = news_info[0]['source']['title']
print(latest_news)

I want this latest_news variable which stores the news to print whenever there is new news in the list, I have tried comparison method but still didn't find anything so far.

CodePudding user response:

Does this fill your criteria? You have to run it every 5 minutes, or any time you want and you will get the latest titles.

import requests, json
old_news_info = {"news": []}
try:
    old_news_info = json.load(open("old_news_info.json", "r"))
except:
    pass

url = 'https://cryptopanic.com/api/v1/posts/?auth_token=<token>&filter=hot'
print("waiting for response")
html_link = requests.get(url)
datatype = html_link.json()
if datatype != {'status': 'Incomplete', 'info': 'Token not found'}:
    news_info = datatype['results']
    if not news_info[0] in old_news_info["news"]:
        for news in news_info:
            if news in old_news_info["news"]:
                break
            else:
                old_news_info["news"].append(news)
                print(news["source"]['title'])

        json.dump(old_news_info, open("old_news_info.json", "w"), indent = 4)
else:
    print("Token not found")
  •  Tags:  
  • Related