নিউজ অ্যাপ

প্র্যাকটিস প্রোজেক্টস - পাইথন প্রোগ্রামিং (Python Programming) - Computer Programming

347

একটি নিউজ অ্যাপ হলো এমন একটি অ্যাপ্লিকেশন যা ব্যবহারকারীদের রিয়েল-টাইম নিউজ এবং শিরোনাম দেখতে সহায়তা করে। Python, Tkinter এবং একটি নিউজ API ব্যবহার করে সহজেই একটি নিউজ অ্যাপ তৈরি করা যায়।


প্রয়োজনীয়তা

Python: Python দিয়ে অ্যাপ তৈরি করতে হবে।

Tkinter: GUI তৈরি করতে Tkinter ব্যবহার করা হবে।

requests লাইব্রেরি: API থেকে ডেটা সংগ্রহ করতে requests ব্যবহার করা হবে। এটি ইন্সটল করতে:

pip install requests

News API (নিউজ ডেটা প্রাপ্তি): নিউজ অ্যাপ তৈরি করতে আমরা News API ব্যবহার করতে পারি। এটির জন্য একটি API কী প্রয়োজন। News API-এর ওয়েবসাইটে অ্যাকাউন্ট তৈরি করে ফ্রি API কী পেতে পারেন।


প্রজেক্ট: নিউজ অ্যাপ

ফিচারস

  1. নিউজ হেডলাইন দেখানো: শিরোনাম প্রদর্শন।
  2. ক্যাটাগরি অনুযায়ী নিউজ ফিল্টার: বিভিন্ন ক্যাটাগরি যেমন business, entertainment, sports ইত্যাদি।
  3. 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()

কোড ব্যাখ্যা

  1. get_news(category): এই ফাংশনটি News API থেকে নির্দিষ্ট ক্যাটাগরির শিরোনাম সংগ্রহ করে এবং সেগুলো headlines তালিকায় রিটার্ন করে।
  2. show_headlines(category): ক্যাটাগরি বেছে নেয়ার পর হেডলাইনগুলো headline_text উইজেটে প্রদর্শন করে।
  3. Tkinter GUI: Tkinter দিয়ে GUI তৈরি করা হয়েছে, যেখানে ক্যাটাগরি বাটন এবং হেডলাইন দেখানোর জন্য টেক্সট বক্স রয়েছে।

উপসংহার

এই নিউজ অ্যাপটি একটি সহজ টুল, যা ব্যবহারকারীদের রিয়েল-টাইমে নিউজ পেতে সহায়ক। এর মাধ্যমে Python Tkinter ও API ইন্টিগ্রেশন বোঝা যায়। চাইলে আরও কিছু ফিচার যোগ করা যেতে পারে, যেমন:

  • অল্টারনেট নিউজ সাইট থেকে ডেটা সংগ্রহ
  • সার্চ ফিচার: নির্দিষ্ট কীওয়ার্ড অনুসারে সার্চ করার সুবিধা।
  • বিভিন্ন ভাষার সাপোর্ট: বহুভাষী নিউজ সাপোর্ট।

এই প্রজেক্টটি Python-এ API এবং GUI প্রোগ্রামিং শিখতে সহায়ক হবে।

Content added By
Promotion

Are you sure to start over?

Loading...