分享业余时间开发的一个影视采集及管理系统
极大的可能会在最近离职加入一家极具挑战的公司,时间和精力都会有一个比较大的调整。做这个系统也是出于娱乐的目的,但目的绝对是单纯的。
因为最初规划的时间关系,一切从简从快,主要功能特性如下:
1,前端页面开发直接就bootstrap 3.0 。后台管理页面也用到了基于bootstrap的一套UI框架。(基本上都是Copy的)
2,数据抓取用的是HtmlAgiltyPack组件。
3,IOC方面尝试了一下Castle。结合 CommonServiceLocator 开源组件。
4,数据存储可以在MongoDb和SqlServer中进行简单的切换(AppSettings.config的StoreProvider配置节)。SqlServer的数据提供用到了EntityFramework的Code First。MongoDb的C#驱动为官方驱动包,自己简单的封装了一个Helper。
5,日志记录用到了Log4Net。
6,评论系统直接就嵌入了多说,感觉还不错。就是找了半天,似乎没有发现远程获取数据接口。
7,其它的没什么可说的。
本来是打算在月底之前搞定,现在看来是搞不定了。只有在真正做的过程中才发现需要解决的东西太多。好吧,也从侧面反映出自己的水平还是相当菜。大概总结了一下,需要完善的地方有以下几点(主要是后台管理):
1,用户权限控制(超级管理员和普通管理员)。
2,数据采集管理(类似增量采集,定时采集,采集配置等)。
3,后台管理页面导航菜单的控制(主要是判断左侧菜单项的active,面包屑导航生成等)。
4,影视的图片信息都直接调用的Http图片,未做本地存储(下载图片容易,恐怕需要单独的图片服务器)。
5,采集提供程序用到了多线程,可我基本不懂多线程。偶尔似乎会出问题的样子...
6,站点配置管理。这个就是一个页面,序列化与反序列化的问题。但就是没有实现 。
7,站点统计相当不完善。比如日志记录、访问者统计等。
希望以后还能找到时间和精力继续搞定这个东东...
没事截了几张图,贴上来看一看。
项目结构示意:
首页(采集了三类:电影,动漫,电视剧。出于测试目的,仅采集了50条):
这是详细页:
这个是详细页的评论框。字幕信息请求的是射手网的接口:
这是后台管理页面:
登录:
锁定:
影视管理列表页面:
影视管理详细信息编辑页面:
这是管理员管理页面(仅超级管理员可见,但目前没有做这个控制):
管理员详细信息页面(可锁定管理员):
还简单的做了一个访问者统计(统计这一块缺的东西相当多):
仅供新手学习。项目托管地址为:http://git.oschina.net/mcmurphy/Movi
补充:
项目的数据存储是可以在mongodb和Sqlserver中进行切换的。其中,mongodb的数据库连接字符串为:
<!--Mongodb-->
<add name="MoviMongoConnection" connectionString="mongodb://kangming:yqhkangming@127.0.0.1:27627/movi" />
我在开发的时候,配置了mongodb的权限,加了用户名和密码。出于安全性方面的考虑,将默认端口27017修改成了27627。这些配置因个人需求而异。另外,简单写了一个启动mongodb数据库的脚本,位置为 Movi.RazorWeb/App_Data 下的 mongodb_data.txt。当然,也可以直接添加为windows服务随系统启动。脚本内容为:
start bin/mongod.exe --dbpath .\db --logpath .\log\log.log --auth --port 27627 start bin/mongo.exe --port 27627 -u admin -p admin --authenticationDatabase movi
将上述脚本存储为bat格式,每次需要运行mongodb数据库的时候,点击即可。(当然,你得配置mongodb数据库匹配上述脚本内容)。关于mongodb配置方面的更多信息,可以参考 源代码项目 Movi.MongoRepository 下的 db.txt 文档。
对于EntityFramework,code first 的开发方式,除了配置正确的数据库连接字符串(这个没什么可说的),另外需要根据实际情况,结合 nuget 执行数据库初始或变更命令。经常用到的命令就下面三个:
Enable-Migrations
* 启动迁移功能,会在项目根目录下生成 Migrations 文件夹
Add-Migration -StartupProjectName
* 在指定的项目中增加一个迁移点,此命令后会要求输入一个 Name 参数,此参数的值为迁移点名称
* 假设输入的迁移点名称为 init 则会生成一个类似如下的文件 201202290718442_init.cs,其包含两个方法 Up() 和 Down(),分别用于此迁移点的升级和降级
Update-Database -StartupProjectName (将指定的项目的数据库结构升级到最新)
上述命令的执行方式为: 打开程序包管理器控制台,将默认项目选择为:Movi.EFRepository。另外,请将 Movi.EFRepository 设置为启动项目。
如遇错误,请自行上网查找资料解决。