একটি নিউজ অ্যাপ হলো এমন একটি অ্যাপ্লিকেশন যা ব্যবহারকারীদের রিয়েল-টাইম নিউজ এবং শিরোনাম দেখতে সহায়তা করে। Python, Tkinter এবং একটি নিউজ API ব্যবহার করে সহজেই একটি নিউজ অ্যাপ তৈরি করা যায়।
প্রয়োজনীয়তা
Python: Python দিয়ে অ্যাপ তৈরি করতে হবে।
Tkinter: GUI তৈরি করতে Tkinter ব্যবহার করা হবে।
requests লাইব্রেরি: API থেকে ডেটা সংগ্রহ করতে requests ব্যবহার করা হবে। এটি ইন্সটল করতে:
pip install requests
News API (নিউজ ডেটা প্রাপ্তি): নিউজ অ্যাপ তৈরি করতে আমরা News API ব্যবহার করতে পারি। এটির জন্য একটি API কী প্রয়োজন। News API-এর ওয়েবসাইটে অ্যাকাউন্ট তৈরি করে ফ্রি API কী পেতে পারেন।
প্রজেক্ট: নিউজ অ্যাপ
ফিচারস
- নিউজ হেডলাইন দেখানো: শিরোনাম প্রদর্শন।
- ক্যাটাগরি অনুযায়ী নিউজ ফিল্টার: বিভিন্ন ক্যাটাগরি যেমন
business,entertainment,sportsইত্যাদি। - GUI ইন্টারফেস: Tkinter দিয়ে তৈরি সহজ ইউজার ইন্টারফেস।
ধাপ ১: Tkinter এবং অন্যান্য মডিউল ইম্পোর্ট করা
import tkinter as tk
from tkinter import messagebox
import requests
ধাপ ২: API থেকে ডেটা ফেচ করার ফাংশন
API ব্যবহার করে নির্দিষ্ট ক্যাটাগরির নিউজ হেডলাইন ফেচ করার জন্য একটি ফাংশন তৈরি করতে হবে।
def get_news(category="general"):
api_key = "YOUR_API_KEY" # এখানে আপনার News API কী লিখুন
url = f"https://newsapi.org/v2/top-headlines?country=us&category={category}&apiKey={api_key}"
try:
response = requests.get(url)
news_data = response.json()
if news_data["status"] == "ok":
articles = news_data["articles"]
headlines = [article["title"] for article in articles]
return headlines
else:
return ["No news found."]
except Exception as e:
return [f"Error fetching news: {e}"]
ধাপ ৩: Tkinter GUI সেটআপ করা
Tkinter GUI তৈরি করে ক্যাটাগরি নির্বাচন এবং নিউজ হেডলাইন দেখানোর ব্যবস্থা করতে হবে।
# মেইন Tkinter উইন্ডো তৈরি
root = tk.Tk()
root.title("News App")
root.geometry("600x400")
# হেডলাইন দেখানোর জন্য টেক্সট বক্স
headline_text = tk.Text(root, wrap="word", font=("Arial", 12), width=60, height=15)
headline_text.pack(pady=10)
ধাপ ৪: ক্যাটাগরি বাটন এবং হেডলাইন দেখানোর ফাংশন
নিউজ ক্যাটাগরি বেছে নিতে এবং API থেকে ফেচ করা হেডলাইনগুলো GUI-তে দেখানোর জন্য ফাংশন তৈরি করা হবে।
def show_headlines(category):
headline_text.delete(1.0, tk.END) # টেক্সট বক্স ক্লিয়ার করা
headlines = get_news(category)
for headline in headlines:
headline_text.insert(tk.END, f"{headline}\n\n")
ধাপ ৫: ক্যাটাগরি বাটন যুক্ত করা
Tkinter GUI তে ক্যাটাগরি বাটন যুক্ত করুন যাতে ব্যবহারকারী নির্দিষ্ট ক্যাটাগরির নিউজ দেখতে পারেন।
category_frame = tk.Frame(root)
category_frame.pack(pady=5)
categories = ["general", "business", "entertainment", "sports", "technology"]
for category in categories:
btn = tk.Button(category_frame, text=category.capitalize(), command=lambda c=category: show_headlines(c))
btn.pack(side="left", padx=5)
ধাপ ৬: Tkinter মেইন লুপ চালানো
root.mainloop()
পূর্ণ কোড একসাথে
import tkinter as tk
from tkinter import messagebox
import requests
def get_news(category="general"):
api_key = "YOUR_API_KEY" # এখানে আপনার News API কী লিখুন
url = f"https://newsapi.org/v2/top-headlines?country=us&category={category}&apiKey={api_key}"
try:
response = requests.get(url)
news_data = response.json()
if news_data["status"] == "ok":
articles = news_data["articles"]
headlines = [article["title"] for article in articles]
return headlines
else:
return ["No news found."]
except Exception as e:
return [f"Error fetching news: {e}"]
# মেইন Tkinter উইন্ডো তৈরি
root = tk.Tk()
root.title("News App")
root.geometry("600x400")
# হেডলাইন দেখানোর জন্য টেক্সট বক্স
headline_text = tk.Text(root, wrap="word", font=("Arial", 12), width=60, height=15)
headline_text.pack(pady=10)
# হেডলাইন দেখানোর ফাংশন
def show_headlines(category):
headline_text.delete(1.0, tk.END) # টেক্সট বক্স ক্লিয়ার করা
headlines = get_news(category)
for headline in headlines:
headline_text.insert(tk.END, f"{headline}\n\n")
# ক্যাটাগরি বাটন ফ্রেম
category_frame = tk.Frame(root)
category_frame.pack(pady=5)
# ক্যাটাগরি বাটন
categories = ["general", "business", "entertainment", "sports", "technology"]
for category in categories:
btn = tk.Button(category_frame, text=category.capitalize(), command=lambda c=category: show_headlines(c))
btn.pack(side="left", padx=5)
root.mainloop()
কোড ব্যাখ্যা
- get_news(category): এই ফাংশনটি News API থেকে নির্দিষ্ট ক্যাটাগরির শিরোনাম সংগ্রহ করে এবং সেগুলো
headlinesতালিকায় রিটার্ন করে। - show_headlines(category): ক্যাটাগরি বেছে নেয়ার পর হেডলাইনগুলো
headline_textউইজেটে প্রদর্শন করে। - Tkinter GUI: Tkinter দিয়ে GUI তৈরি করা হয়েছে, যেখানে ক্যাটাগরি বাটন এবং হেডলাইন দেখানোর জন্য টেক্সট বক্স রয়েছে।
উপসংহার
এই নিউজ অ্যাপটি একটি সহজ টুল, যা ব্যবহারকারীদের রিয়েল-টাইমে নিউজ পেতে সহায়ক। এর মাধ্যমে Python Tkinter ও API ইন্টিগ্রেশন বোঝা যায়। চাইলে আরও কিছু ফিচার যোগ করা যেতে পারে, যেমন:
- অল্টারনেট নিউজ সাইট থেকে ডেটা সংগ্রহ।
- সার্চ ফিচার: নির্দিষ্ট কীওয়ার্ড অনুসারে সার্চ করার সুবিধা।
- বিভিন্ন ভাষার সাপোর্ট: বহুভাষী নিউজ সাপোর্ট।
এই প্রজেক্টটি Python-এ API এবং GUI প্রোগ্রামিং শিখতে সহায়ক হবে।
Read more