# 桌面滚动新闻 **Repository Path**: deepin20/newsticker ## Basic Information - **Project Name**: 桌面滚动新闻 - **Description**: 桌面滚动新闻 (Desktop News Ticker):一款基于 PyQt5 开发的桌面新闻滚动条,从多个 RSS 源实时抓取新闻标题,在屏幕底部以跑马灯效果平滑滚动显示。支持自定义新闻源、字体、颜色、滚动速度等,并带有新闻抓取进度反馈。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-18 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 桌面滚动新闻 (Desktop News Ticker) 一款基于 PyQt5 开发的桌面新闻滚动条,从多个 RSS 源实时抓取新闻标题,在屏幕底部以跑马灯效果平滑滚动显示。支持自定义新闻源、字体、颜色、滚动速度等,并带有新闻抓取进度反馈。 ![News Ticker 截图](newsticker.png) --- ## ✨ 功能特性 - **滚动显示**:新闻标题以跑马灯形式在屏幕底部滚动,鼠标悬停时暂停滚动。 - **多源聚合**:支持同时从多个 RSS 源抓取新闻,自动去重并限制最大条数。 - **自动刷新**:按设定间隔(默认 10 分钟)自动更新新闻。 - **进度反馈**:抓取新闻时显示实时进度条,让您了解更新状态。 - **可定制配置**:通过 `settings.yaml` 轻松调整窗口大小、透明度、字体、颜色、速度、新闻源等。 - **日志记录**:日志输出至控制台和文件(`~/.local/share/newsticker/logs/ticker.log`),便于排查问题。 - **跨平台支持**:基于 Python 和 PyQt5,可在 Linux(Deepin/UOS)、Windows、macOS 上运行。 - **打包分发**:提供 PyInstaller 打包脚本和 Debian 安装包构建脚本,方便安装部署。 --- ## 📦 安装与运行 ### 方式一:直接运行源码(开发环境) 1. **克隆或下载项目代码**。 2. **安装依赖**(建议使用虚拟环境): ```bash pip install -r requirements.txt ``` 3. **运行程序**: ```bash python3 main.py ``` ### 方式二:使用 Debian 安装包(适用于 Deepin/UOS/Debian) 1. 在项目根目录执行打包脚本(见下文“构建与打包”)。 2. 安装生成的 `.deb` 包: ```bash sudo dpkg -i newsticker_1.0-1_amd64.deb ``` 3. 在系统菜单中找到 “News Ticker” 启动,或在终端执行 `NewsTicker`。 ### 方式三:PyInstaller 单文件可执行文件 运行打包脚本: ```bash ./build_exe.sh # Linux # 或 build_exe.bat (Windows) ``` 打包后的可执行文件位于 `dist/NewsTicker`,可直接运行。 --- ## ⚙️ 配置说明 配置文件位于 `config/settings.yaml`(用户配置优先位于 `~/.config/newsticker/settings.yaml`)。首次运行会自动生成默认配置。支持以下参数: | 配置项 | 说明 | 默认值 | |--------|------|--------| | `window.height` | 窗口高度(像素) | 70 | | `window.alpha` | 窗口透明度(0~1) | 0.85 | | `window.background_color` | 背景色(CSS 色值) | `#1e1e1e` | | `window.foreground_color` | 文字颜色 | `#f0f0f0` | | `marquee.speed_factor` | 滚动速度系数(值越大滚动越慢) | 8 | | `marquee.font_family` | 字体名称 | `文泉驿微米黑` | | `marquee.font_size` | 字号(像素) | 14 | | `refresh.interval_seconds` | 新闻刷新间隔(秒) | 600 | | `news.sources` | RSS 源列表(详见下方) | 预置多个源 | | `news.max_headlines` | 最大显示新闻条数 | 30 | | `news.timeout` | 网络请求超时(秒) | 10 | | `news.filter_keywords` | HTML 解析时过滤的关键词 | `["直播", "视频", "栏目", "客户端"]` | **RSS 源配置示例**: ```yaml news: sources: - name: "新浪国内新闻" url: "http://rss.sina.com.cn/news/marquee/ddt.xml" type: "rss" - name: "中国新闻网" url: "http://www.chinanews.com/rss/scroll-news.xml" type: "rss" ``` --- ## 🛠️ 构建与打包 ### 构建 Debian 包(Deepin/UOS) ```bash ./build_deb.sh ``` 生成的 `.deb` 文件位于项目根目录。 ### 构建 PyInstaller 单文件 ```bash ./build_exe.sh # Linux # 或 build_exe.bat (Windows) ``` 生成的可执行文件位于 `dist/` 目录。 --- ## 📁 项目结构 ``` cctv-news-ticker/ ├── main.py # 程序主入口 ├── config/ │ └── settings.yaml # 默认配置文件 ├── src/ │ ├── config.py # 配置加载模块 │ ├── news_fetcher.py # 新闻抓取服务(含RSS解析、重试、降级) │ ├── logger.py # 日志配置 │ └── __init__.py ├── NewsTicker_deb/ # Debian 打包目录 │ ├── DEBIAN/ # 控制文件 │ └── usr/ # 安装路径 ├── build_deb.sh # Debian 打包脚本 ├── build_exe.sh # PyInstaller 打包脚本 ├── requirements.txt # Python 依赖 ├── README.md # 项目说明 ├── newsticker.png # 图标(PNG) └── newsticker.svg # 图标(SVG) ``` --- ## 🧪 测试状态 已测试通过并稳定运行的新闻源(截至2026年7月): - ✅ 新浪国内新闻(`rss.sina.com.cn`) - ✅ 中国新闻网(`www.chinanews.com`) - ✅ 联合早报(`plink.anyfeeder.com`) - ✅ 百度新闻(`news.baidu.com` 国内/时政焦点) --- ## 🤝 贡献与反馈 欢迎提交 Issue 或 Pull Request。若您有可用的 RSS 源,也欢迎分享,以便丰富默认配置。 --- ## 📄 许可证 本项目采用 [MIT License](LICENSE) 开源协议。 --- ## 🙏 致谢 - [PyQt5](https://www.riverbankcomputing.com/software/pyqt/) – GUI 框架 - [requests](https://docs.python-requests.org/) – HTTP 请求库 - [BeautifulSoup4](https://www.crummy.com/software/BeautifulSoup/) – HTML/XML 解析 - [PyYAML](https://pyyaml.org/) – YAML 配置解析