From 769ca7c7ddb89ed74b7c521d5ec7fe59179028d9 Mon Sep 17 00:00:00 2001 From: vijay Date: Sun, 7 Nov 2021 13:58:04 +0530 Subject: [PATCH 1/8] Added disocrd logo, direct API link, setup for news_update --- assets/Discord_logo.png | Bin 0 -> 47312 bytes src/main.py | 8 +++++++- src/modules/osc_event_notif.py | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 assets/Discord_logo.png diff --git a/assets/Discord_logo.png b/assets/Discord_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3653ee84334b7d89ddd0b38776a5f7b234238c64 GIT binary patch literal 47312 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 Date: Sun, 7 Nov 2021 14:10:30 +0530 Subject: [PATCH 2/8] Completed setting up news feed --- src/modules/news_updates.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/modules/news_updates.py diff --git a/src/modules/news_updates.py b/src/modules/news_updates.py new file mode 100644 index 0000000..9e21371 --- /dev/null +++ b/src/modules/news_updates.py @@ -0,0 +1,32 @@ +from discord.ext import tasks, commands +from urllib.request import urlopen +from datetime import datetime +import discord +import json + +@tasks.loop(hours=12) +async def news_updates(news_channel): + urls = ["https://inshortsapi.vercel.app/news?category=technology"] + for url in urls: + response = urlopen(url) + data = json.loads(response.read())["data"] + + for i in range(2): + embed = discord.Embed( + title="📢 " + data[i]['title'], + url=data[i]['url'], + description=data[i]['content'], + color=discord.Color.blue(), + ) + + embed.set_author( + name="inshorts" + ) + + embed.set_image(url=data[i]['imageUrl']) + + date_and_time = "📰 " + data[i]['date'] + " " + data[i]['time'] + embed.set_footer(text=date_and_time) + response.close() + + await news_channel.send(embed=embed) \ No newline at end of file From 4ec05fcd3f09c19a93c9deae6b9c2209e8224817 Mon Sep 17 00:00:00 2001 From: vijay Date: Sun, 7 Nov 2021 14:10:53 +0530 Subject: [PATCH 3/8] Setup read more with tinyURL --- src/modules/news_updates.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/modules/news_updates.py b/src/modules/news_updates.py index 9e21371..866a71c 100644 --- a/src/modules/news_updates.py +++ b/src/modules/news_updates.py @@ -1,6 +1,7 @@ from discord.ext import tasks, commands from urllib.request import urlopen from datetime import datetime +import pyshorteners import discord import json @@ -23,6 +24,14 @@ async def news_updates(news_channel): name="inshorts" ) + shortener = pyshorteners.Shortener() + short_url = shortener.owly.short(data[i]['readMoreUrl']) + + embed.add_field( + name="📰 Read more at ", + value=short_url, + ) + embed.set_image(url=data[i]['imageUrl']) date_and_time = "📰 " + data[i]['date'] + " " + data[i]['time'] From b8f89ec9e85398fca3a0872905416b19ba706586 Mon Sep 17 00:00:00 2001 From: vijay Date: Sun, 7 Nov 2021 14:13:11 +0530 Subject: [PATCH 4/8] Switched from owly to tinryurl (avoiding api keys) --- src/modules/news_updates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/news_updates.py b/src/modules/news_updates.py index 866a71c..291dbf5 100644 --- a/src/modules/news_updates.py +++ b/src/modules/news_updates.py @@ -25,7 +25,7 @@ async def news_updates(news_channel): ) shortener = pyshorteners.Shortener() - short_url = shortener.owly.short(data[i]['readMoreUrl']) + short_url = shortener.tinyurl.short(data[i]['readMoreUrl']) embed.add_field( name="📰 Read more at ", From b4b9af4a3b1bd34d02803e99732ad92c2f3a0891 Mon Sep 17 00:00:00 2001 From: vijay Date: Sun, 7 Nov 2021 16:25:47 +0530 Subject: [PATCH 5/8] Refactored files --- src/main.py | 4 +- src/modules/news_updates.py | 30 +++++++-------- src/modules/osc_event_notif.py | 68 ++++++++++++++++------------------ 3 files changed, 48 insertions(+), 54 deletions(-) diff --git a/src/main.py b/src/main.py index 54b31f7..6f0c084 100644 --- a/src/main.py +++ b/src/main.py @@ -16,10 +16,10 @@ async def on_ready(): print(f"{client.user} has connected to Discord!") activity = discord.Activity(type=discord.ActivityType.listening, name=">help") await client.change_presence(activity=activity) - + message_channel = client.get_channel(904455110212591676) oscEventNotif.start(message_channel) - + news_channel = client.get_channel(904455110212591676) news_updates.start(news_channel) diff --git a/src/modules/news_updates.py b/src/modules/news_updates.py index 291dbf5..320996d 100644 --- a/src/modules/news_updates.py +++ b/src/modules/news_updates.py @@ -5,37 +5,37 @@ import discord import json + @tasks.loop(hours=12) async def news_updates(news_channel): urls = ["https://inshortsapi.vercel.app/news?category=technology"] for url in urls: response = urlopen(url) data = json.loads(response.read())["data"] - + for i in range(2): + curr = data[i] embed = discord.Embed( - title="📢 " + data[i]['title'], - url=data[i]['url'], - description=data[i]['content'], + title="📢 " + curr["title"], + url=curr["url"], + description=curr["content"], color=discord.Color.blue(), - ) + ) - embed.set_author( - name="inshorts" - ) + embed.set_author(name="inshorts") shortener = pyshorteners.Shortener() - short_url = shortener.tinyurl.short(data[i]['readMoreUrl']) + short_url = shortener.tinyurl.short(curr["readMoreUrl"]) embed.add_field( - name="📰 Read more at ", - value=short_url, - ) + name="📰 Read more at ", + value=short_url, + ) - embed.set_image(url=data[i]['imageUrl']) + embed.set_image(url=curr["imageUrl"]) - date_and_time = "📰 " + data[i]['date'] + " " + data[i]['time'] + date_and_time = "📰 " + curr["date"] + " " + curr["time"] embed.set_footer(text=date_and_time) response.close() - await news_channel.send(embed=embed) \ No newline at end of file + await news_channel.send(embed=embed) diff --git a/src/modules/osc_event_notif.py b/src/modules/osc_event_notif.py index 7a9526e..370601c 100644 --- a/src/modules/osc_event_notif.py +++ b/src/modules/osc_event_notif.py @@ -7,10 +7,11 @@ import os load_dotenv() -TOKEN = os.getenv('DISCORD_TOKEN') -bot = commands.Bot(command_prefix='>') +TOKEN = os.getenv("DISCORD_TOKEN") +bot = commands.Bot(command_prefix=">") client = discord.Client() + @tasks.loop(hours=12) async def oscEventNotif(message_channel): url = "https://osc-api.herokuapp.com/event/latest" @@ -18,58 +19,51 @@ async def oscEventNotif(message_channel): event_data = json.loads(response.read()) - with open ('data.json', 'r') as f: + with open("data.json", "r") as f: local_data = json.load(f) - if(local_data['eventID'] == event_data['id']): + if local_data["eventID"] == event_data["id"]: print("SERVER LOGS: NO NEW EVENT FOUND") else: - local_data['eventID'] = event_data['id'] - with open('data.json', 'w') as f: - json.dump(local_data, f, indent=4, separators=(',', ': ')) - + local_data["eventID"] = event_data["id"] + with open("data.json", "w") as f: + json.dump(local_data, f, indent=4, separators=(",", ": ")) + event = event_data embed = discord.Embed( - title="📢 " + event['eventName'], - url=event['eventURL'], - description=event['eventDescription'], + title="📢 " + event["eventName"], + url=event["eventURL"], + description=event["eventDescription"], color=discord.Color.blue(), - timestamp=datetime.utcnow() - ) + timestamp=datetime.utcnow(), + ) embed.set_author( - name="Vijay", - url="https://github.com/SVijayB", - icon_url="https://avatars.githubusercontent.com/svijayb" - ) + name="Vijay", + url="https://github.com/SVijayB", + icon_url="https://avatars.githubusercontent.com/svijayb", + ) embed.add_field( - name="📍 Event Venue", - value=event['eventVenue'], + name="📍 Event Venue", + value=event["eventVenue"], inline=True, - ) + ) - data_and_time = event['eventDate'] + " " + event['eventStartTime'] - embed.add_field( - name="⏰ Date and Time", - value=data_and_time, - inline=True) + data_and_time = event["eventDate"] + " " + event["eventStartTime"] + embed.add_field(name="⏰ Date and Time", value=data_and_time, inline=True) embed.add_field( - name=":speaker: Speakers", - value=event['eventSpeaker'], - inline=False + name=":speaker: Speakers", value=event["eventSpeaker"], inline=False ) - embed.add_field( - name="📖 Docs", - value=event['eventDocumentation'], - inline=True - ) + embed.add_field(name="📖 Docs", value=event["eventDocumentation"], inline=True) - embed.set_image(url=event['eventLogo']) + embed.set_image(url=event["eventLogo"]) - embed.set_footer(text=event['eventCaption'], icon_url="https://i.ibb.co/rFv3nXZ/001-like.png") + embed.set_footer( + text=event["eventCaption"], icon_url="https://i.ibb.co/rFv3nXZ/001-like.png" + ) response.close() - + await message_channel.send("@everyone", embed=embed) - print("SERVER LOGS: EVENT ALERT SENT") \ No newline at end of file + print("SERVER LOGS: EVENT ALERT SENT") From 65bcde25128ec31500460d1d855d56c2848324d4 Mon Sep 17 00:00:00 2001 From: KodeLogger Date: Mon, 8 Nov 2021 16:53:15 +0530 Subject: [PATCH 6/8] introduced a new key to hold the timestamp of news --- data.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data.json b/data.json index 4d1dc88..83ec897 100644 --- a/data.json +++ b/data.json @@ -7,5 +7,6 @@ "jokes": "function" } ], - "eventID": 40 + "eventID": 40, + "newsTimestamp": "08 Nov 2021 | 09:53 am" } \ No newline at end of file From 27141b609b40d102ccdbcaf8dc8ce8896f0c46a2 Mon Sep 17 00:00:00 2001 From: KodeLogger Date: Mon, 8 Nov 2021 16:54:24 +0530 Subject: [PATCH 7/8] fixed the bug, news data is synced to local json and sends latest news --- src/modules/news_updates.py | 112 +++++++++++++++++++++++++++++------- 1 file changed, 90 insertions(+), 22 deletions(-) diff --git a/src/modules/news_updates.py b/src/modules/news_updates.py index 320996d..86f5b28 100644 --- a/src/modules/news_updates.py +++ b/src/modules/news_updates.py @@ -1,7 +1,7 @@ from discord.ext import tasks, commands from urllib.request import urlopen -from datetime import datetime -import pyshorteners +from datetime import date +from pyshorteners import Shortener import discord import json @@ -9,33 +9,101 @@ @tasks.loop(hours=12) async def news_updates(news_channel): urls = ["https://inshortsapi.vercel.app/news?category=technology"] + + today = date.today().strftime("%d %b %Y") # today date. + max_time = "" # stores the latest news. + + with open("data.json", "r") as f: + cache_mem = json.load(f) + + # if last news was sent yesterday, then change data in the json file. + if today != cache_mem["newsTimestamp"].split("|")[0].strip(): + cache_mem["newsTimestamp"] = today + " | " + "00:00 AM" + with open("data.json", "w") as f: + json.dump(cache_mem, f) + for url in urls: + # get json data from the api response = urlopen(url) data = json.loads(response.read())["data"] + news_updates = dict() + news_count = 0 + + # get the news that were sent out today + for index in range(len(data)): + content = data[index] + if today == content["date"].split(",")[0]: + news_updates[news_count] = content + news_count += 1 + + time_stamps = list() + + # get the time of the news which were sent out today + for today_content in news_updates.values(): + time_stamps.append(today_content["time"]) + + # sort the time + time_stamps = sorted(time_stamps) + + # check if the latest news is already sent out + for item in time_stamps.copy(): + if item > cache_mem["newsTimestamp"].split(" | ")[1].strip(): + break + time_stamps.remove(item) + + # if there is some update, then print and update the local json file. + if time_stamps != list(): + for index in range(news_count): + for time_stamp in time_stamps: + current_content = news_updates[index] + if current_content["time"] == time_stamp: + embed = discord.Embed( + title="📢 " + current_content["title"], + url=current_content["url"], + description=current_content["content"], + color=discord.Color.blue(), + ) + + embed.set_author(name="inshorts") + + shortener = Shortener() + short_url = shortener.tinyurl.short( + current_content["readMoreUrl"] + ) - for i in range(2): - curr = data[i] - embed = discord.Embed( - title="📢 " + curr["title"], - url=curr["url"], - description=curr["content"], - color=discord.Color.blue(), - ) + embed.add_field( + name="📰 Read more at ", + value=short_url, + ) - embed.set_author(name="inshorts") + embed.set_image(url=current_content["imageUrl"]) - shortener = pyshorteners.Shortener() - short_url = shortener.tinyurl.short(curr["readMoreUrl"]) + date_and_time = ( + "📰 " + + current_content["date"] + + " " + + current_content["time"] + ) + embed.set_footer(text=date_and_time) + response.close() - embed.add_field( - name="📰 Read more at ", - value=short_url, - ) + # prints outs log message + print( + "[!] Updating news feed: " + + current_content["date"] + + " | " + + current_content["time"] + + " -> " + + current_content["title"] + ) - embed.set_image(url=curr["imageUrl"]) + # get the latest news time + if max_time < current_content["time"]: + max_time = current_content["time"] - date_and_time = "📰 " + curr["date"] + " " + curr["time"] - embed.set_footer(text=date_and_time) - response.close() + # update the latest time with the local json file + cache_mem["newsTimestamp"] = today + " | " + max_time + with open("data.json", "w") as f: + json.dump(cache_mem, f, indent=4, separators=(",", ": ")) - await news_channel.send(embed=embed) + await news_channel.send(embed=embed) From 7b154d916f02a653558d675a37283695f8dab859 Mon Sep 17 00:00:00 2001 From: vijay Date: Mon, 8 Nov 2021 20:14:27 +0530 Subject: [PATCH 8/8] Reduced loop recurrence time --- src/modules/news_updates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/news_updates.py b/src/modules/news_updates.py index 86f5b28..a76eeba 100644 --- a/src/modules/news_updates.py +++ b/src/modules/news_updates.py @@ -6,7 +6,7 @@ import json -@tasks.loop(hours=12) +@tasks.loop(hours=2) async def news_updates(news_channel): urls = ["https://inshortsapi.vercel.app/news?category=technology"]