- 파이썬과 PyGTK를 활용한 RSS 피드 리더 애플리케이션 개발

이번 포스트에서는 파이썬과 PyGTK를 사용하여 간단한 RSS 피드 리더 애플리케이션을 개발하는 방법에 대해 알아보겠습니다. RSS 피드는 다양한 웹사이트에서 내용을 구독할 수 있는 표준 포맷이며, 피드 리더는 사용자가 구독한 피드의 업데이트를 읽을 수 있도록 도와줍니다.

필요한 라이브러리 설치

먼저, 이 프로젝트를 위해 파이썬과 PyGTK를 설치해야 합니다. 아래 명령어를 사용하여 필요한 라이브러리를 설치하세요.

pip install pygtk

애플리케이션 구조

우선, 프로젝트의 기본 구조를 설정해야 합니다. 아래와 같이 파일과 폴더를 생성하세요.

rss_reader
├── rss_reader.py  # 메인 애플리케이션 파일
└── feeds.txt  # 구독할 피드 목록 파일

메인 애플리케이션 파일

rss_reader.py 파일을 열고 아래와 같이 코드를 작성하세요.

import pygtk
pygtk.require("2.0")
import gtk
import webbrowser
import feedparser

class RSSReader:
    def __init__(self):
        # 윈도우 생성
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_size_request(800, 600)
        self.window.connect("delete_event", gtk.main_quit)

        # 피드 목록 로드
        self.feeds = self.load_feeds()

        # 피드 목록을 트리뷰에 표시
        self.treeview = gtk.TreeView()
        column = gtk.TreeViewColumn("피드 목록")
        cell = gtk.CellRendererText()
        column.pack_start(cell)
        column.add_attribute(cell, "text", 0)
        self.treeview.append_column(column)
        self.selection = self.treeview.get_selection()
        self.selection.connect("changed", self.on_selection_changed)

        # 스크롤 가능한 뷰에 트리뷰 추가
        scrolled_window = gtk.ScrolledWindow()
        scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        scrolled_window.add(self.treeview)

        # 윈도우에 스크롤 가능한 뷰 추가
        self.window.add(scrolled_window)

        self.window.show_all()

    def load_feeds(self):
        feeds = []
        with open("feeds.txt", "r") as file:
            for line in file:
                feeds.append(line.strip())
        return feeds

    def on_selection_changed(self):
        model, selected_paths = self.selection.get_selected_rows()
        for path in selected_paths:
            feed_url = self.feeds[path[0]]
            self.open_feed(feed_url)

    def open_feed(self, feed_url):
        feed = feedparser.parse(feed_url)
        for entry in feed.entries:
            title = entry.title
            link = entry.link
            print(f"제목: {title}")
            print(f"링크: {link}")
            print("-----")

        webbrowser.open(feed_url)

    def run(self):
        gtk.main()

if __name__ == "__main__":
    reader = RSSReader()
    reader.run()

위 코드는 PyGTK를 사용하여 RSSReader 클래스를 정의합니다. 초기화 함수에서는 메인 윈도우를 생성하고 피드 목록을 로드합니다. 그리고 트리뷰를 생성하여 피드 목록을 표시하고, 선택이 변경될 때마다 선택된 피드를 열도록 합니다. 피드를 열 때는 feedparser 라이브러리를 사용하여 피드의 제목과 링크를 출력하고, 웹브라우저로 엽니다.

위 코드를 실행하면 RSS 피드를 구독할 수 있는 간단한 애플리케이션이 실행됩니다.

구독할 피드 목록 추가

feeds.txt 파일을 열고 구독할 피드를 한 줄에 하나씩 추가하세요.

https://example.com/rss-feed-1
https://example.com/rss-feed-2
https://example.com/rss-feed-3

마무리

이번 포스트에서는 파이썬과 PyGTK를 활용하여 간단한 RSS 피드 리더 애플리케이션을 개발하는 방법을 알아보았습니다. 이 예제를 활용하여 자신만의 피드 리더를 만들어 보세요. Happy coding!

해시태그: #파이썬 #PyGTK