67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
import httpx
|
|
import os
|
|
import random
|
|
from datetime import datetime, timedelta
|
|
from dotenv import load_dotenv
|
|
from time import sleep
|
|
from pprint import pprint
|
|
|
|
|
|
load_dotenv()
|
|
|
|
|
|
def auth():
|
|
sleep(180)
|
|
data = {
|
|
"client_id": os.environ["CLIENT_ID"],
|
|
"client_secret": os.environ["CLIENT_SECRET"],
|
|
"grant_type": "client_credentials",
|
|
}
|
|
resp = httpx.post("https://lgapi-us.libapps.com/1.2/oauth/token", data=data)
|
|
token = resp.json()["access_token"]
|
|
return token
|
|
|
|
|
|
def main(token):
|
|
params = {"access_token": token, "status": 1}
|
|
resp = httpx.get("https://lgapi-us.libapps.com/1.2/guides", params=params)
|
|
data = resp.json()
|
|
now = datetime.now()
|
|
output = []
|
|
for item in data:
|
|
item["dt"] = datetime.strptime(item["updated"], "%Y-%m-%d %H:%M:%S")
|
|
if now - item["dt"] > timedelta(days=365):
|
|
output.append(item)
|
|
if len(output) < 1:
|
|
print("No outdated guides found!")
|
|
return None
|
|
ri = random.randint(0, len(output) - 1)
|
|
card = {
|
|
"type": "AdaptiveCard",
|
|
"version": "1.4",
|
|
"body": [
|
|
{
|
|
"type": "TextBlock",
|
|
"text1": f"Is this your LibGuide? [{output[ri]['name']}]({output[ri]['url']})",
|
|
},
|
|
{
|
|
"type": "TextBlock",
|
|
"text2": "It is a published guide, and it has been more than 1 year since it was last updated!",
|
|
},
|
|
],
|
|
}
|
|
pprint(card)
|
|
return card
|
|
|
|
|
|
def send(card):
|
|
resp = httpx.post(os.environ["TEAMS_URL"], json=card)
|
|
resp.raise_for_status()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
token = auth()
|
|
card = main(token)
|
|
if card:
|
|
send(card)
|