CozyRSS开发记录10-RSS源管理

CozyRSS开发记录10-RSS源管理

1、RSS源树结构

做解析体力活很多,把RSS解析的优化先放放,先玩一玩RSS源的管理。

虽然在初步的设计中,RSS源是以一个列表的方式来展示,但是,我觉得如果可以对RSS源进行分类管理,那就更好了。分类又可以分成三种情况:

A、单层分组

B、一个RSS源可以属于多个分类的图

C、树状结构

随便想了想,这里就用树状结构来管理RSS源吧,跟浏览器的收藏夹管理形式类似。

对RSS源树相关的定义如下:

随便写点代码,试一下构造一颗树。这里没有考虑如何方便使用,也没有考虑到删除节点,总之先让这颗树出来再说:

2、用json序列化到文件

存储RSS源,自然要将RSS源树这个model给序列化一下。序列化的话,C#自带的二进制和XML其实都挺好用的,然而我更喜欢用json。Json处理用的是当前最流行的库,是开源并且跨平台的:Newtonsoft.Json,也可以叫Json.NET。

用nuget的方式把Newtonsoft.Json添加进工程,然后随便写几行代码:

真是简单得丧心病狂(当然,并没有考虑异常)。并没有什么问题:

时间: 2024-07-29 05:30:50

CozyRSS开发记录10-RSS源管理的相关文章

CozyRSS开发记录14-RSS源管理初步完工

CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添加按钮响应时,将文本框里的字符串作为命令参数: 响应时,如果参数是string类型,就做添加源的操作: 2.读写到文件 在FeedManageService中,我们内部调用读写文件.在第一次取时读,每次修改时写: 就这样简单的几步,源管理的界面和功能就基本都完工了,接下来我们要开始真正的把RSS的内

CozyRSS开发记录21-默认RSS源列表

CozyRSS开发记录21-默认RSS源列表 1.默认列表 在第一次使用CozyRSS的情况下,我们让它内置五个RSS源吧: 2.响应RSS源的更新 先不处理RSS源列表项的点击,响应下下拉菜单里的更新: 分别通知主窗口和RSS订阅内容栏: 主窗口负责把侧滑菜单缩回去: 内容栏里更新内容: 最终效果一般般,但是能用,不过有时候会异常,后面再来看吧:

CozyRSS开发记录8-解析一份RSS

CozyRSS开发记录8-解析一份RSS 1.使用Rss20FeedFormatter解析RSS 使用Rss20FeedFormatter配合XmlReader来解析RSS非常的简单,几行搞定: 来试试效果: 貌似一切顺利,爽的一笔. 2.这是一个悲伤的故事 然而,故事总是没有这么简单.我们再试一下另一个网站的RSS. 虽然可能是因为这个网站提供的RSS不规范造成的,但是这个RSS在别的RSS阅读器都没问题啊! 看看Mono里的代码: 真是呵呵啊. 3.CozyRSS.Syndication 所

CozyRSS开发记录0-RSS阅读器开坑

CozyRSS开发记录0-RSS阅读器开坑 1.RSS RSS,全名是Really Simple Syndication,简易信息聚合. 关于RSS相关的介绍,网上可以很容易的找到.RSS阅读器是我几乎每天都用到的一个工具类软件,他的优点是: A.没有广告,只关注内容: B.可以轻松快捷的关注到一批博客和新闻网站的更新. RSS本身涉及到的技术点: A.XML,RSS使用XML来编写,它是XML的子集: B.HTTP,RSS的内容源通常是使用HTTP协议来提供的. 2.CozyRSS的目标 初步

CozyRSS开发记录5-订阅列表栏里的项

CozyRSS开发记录5-订阅列表栏里的项 1.订阅列表栏里的项的原型图 这里列表项依然参考傲游的RSS阅读器,以后可能会微调. 2.使用ControlTemplate来定制ListBoxItem 给展示RSS源名称的TextBlock设置MaxWidth和ToolTip,是为了优化名称过长的情况. 这里暂时把内容都写死,后面会使用MVVM和bindling来处理. 3.ListBox效果展示 最后,我们修改ListBox的xaml,用上我们的模版. 效果还行

CozyRSS开发记录17-Html2Xaml

CozyRSS开发记录17-Html2Xaml 1.RssContentView还需要优化 上回做了RssContentView的显示,但是对于rss返回的描述(摘要),连换行的没有,更别说里面还有html描述符了.换行比较好解决,加个限定大小,再加一个自动换行的描述就可以了: TextWrapping="Wrap"  Margin="10 12 10 10" 2.在wpf里显示html的方法 显示html,有两个方向: A.直接显示html B.将html转换成别

CozyRSS开发记录1-原型图与Grid

CozyRSS开发记录1-原型图与Grid 1.使用MockPlus画出最简陋的原型图 这个界面参考了目前我最常使用的RSS阅读-傲游浏览器的内置RSS阅读器.主体框架划分为上.左下.右下三块,分别是标题栏(工具类)TitleBar.订阅列表栏RSSListFrame.订阅内容栏RSSContentFrame.订阅内容栏又划分为上.左下.右下三部分,分别是RSSContentTitle.RSSContentList.RssContentView. 2.建立CozyRSS工程,用Grid划分窗口

CozyRSS开发记录2-酷炫的皮肤库

CozyRSS开发记录2-酷炫的皮肤库 1.MaterialDesignToolkit 最开始微软推出Metro设计风格的时候,有人喜欢有人喷.紧接着,Ios也开始做扁平化的UI,这时候,扁平化已成为新的设计趋势.再往后,谷歌也推出了Material Design. MaterialDesignToolkit是一个帮助桌面程序快速应用Material Design的库,并且它是开源的,github地址为: https://github.com/ButchersBoy/MaterialDesign

CozyRSS开发记录16-RssContentView显示

CozyRSS开发记录16-RssContentView显示 1.RssContentView的布局和绑定 继续参照原型图来写xaml: 然后在RSSContentFrameViewModel里提供绑定的几个属性: 后面,这些属性会根据左侧RSSContentList里所选择的来显示. 2.RSSContentList选定项变色 为了体现当前选择项和其它项的区别,我们在xaml里来描述一下.这里处理了IsMouseOver和IsFocused两种触发器: 3.显示所选 最后,我们来控制显示的内容