版本路线表 | ||
---|---|---|
版本号 | 更新日期 | 重要改动备注 |
v0.10 | 20141102 | 创建 |
v0.11 | 20141104 | 容错性与友好性 |
v0.12 | 20141105 | 友好性 |
v0.13 | 20141116 | 友好性 |
v0.20 | 20141117 | 功能:集中打包下载 |
v0.21 | 20141120 | 容错性与友好性 |
v0.22 | 20141123 | bug fix |
v0.30 | 20141125 | 功能:参考文献格式生成 |
v0.31 | 20141126 | 功能扩展 |
v0.32 | 20150113 | 功能扩展 |
v0.40 | 20150321 | 功能扩展:RIS解析 |
v0.41 | 20150402 | 容错性:新文章命名 |
v0.42 | 20150403 | bug fix: ris结尾解析 |
v0.43 | 20150424 | bug fix: ris关键词解析 |
v0.44 | 20150519 | bug fix: Journal short解析 |
v0.50 | 20150714 | 重要功能扩展 |
v0.51 | 20150728 | 功能扩展; bug fix: record尸体处理 |
v0.52 | 20150918 | 功能扩展: ref line |
v0.53 | 20160106 | 功能扩展: ref line |
v1.00beta | 20170109 | 内核变更:PDFMiner/Google Request |
目前实现的功能:
- 上传google生成的endnote导入enw文件
- 解析enw文件结构,生成唯一标志的文件名
- 在enw文件中写入url及label,直接打开导入endnote
- 上传对应的pdf文件
- 采用唯一标志的文件名命名enw文件与pdf文件于仓储目录
1.从google获得enw导入文件
2.上传enw文件到Lab服务器
3.solve_enw.php解析enw文件并生成唯一标志的文件名,写url和label信息进入enw文件,并提供重新导出:
4.上传对应pdf文件,并命名唯一化,唯一化命名可以在本地同样使用:
5.enw和pdf命名唯一化后放入仓库:
6.可以直接通过endnote中的url打开Lab服务器的在线文件:
毕竟是v0.01,输入没有做合法性检查,美工几乎没有,距离自动通过doi进行解析下载以及引文信息生成还差太远。将来如果要实现类似endnote那种方便的查询增删功能,而且如果要共享涉及到账户用户权限的问题,不用关系数据库是不可能的,目前这种单纯用目录组织数据结构肯定行不通,可是mySQL一窍不通,我还是太水了,有空闲下来再慢慢玩吧,现在功能对我个人基本够用:-)
#Up to 20141102#
【注】文件名唯一标志:
%A1-%J-%V_%N_%Ps-%Pe
第一作者-期刊(简写)-卷号_期号_起始页-终了页
Giannini-Science-2003-302_5647_1027-1030
#Up to 20141103#
考虑到工程量不大,决定重新命名版本号:
- miner mod (细微更改) 占用第二位小数,例如友好性提高
- major mod (重要更改) 占据第一位小数,例如功能添加
- kernel mod (内核更改) 占据个位数字,例如新技术的引入(mySQL、R等),数据库结构调整,正式发布版本等。
v0.11
Miner Mods:
- 增加了对仓储的重复性检查,仓储数据列表位于list.dat中,提高容错性与健壮性
- 考虑了对仅有vol编号或者doi编号的文献命名的,提高容错性与健壮性
- 在个别页面增加了主页跳转链接,提高用户友好性
今天花了一个多小时时间,上传了80多篇文献,命名全部归一化,enw全部生成完毕,随时可以导入endnote。比起之前第一次手工整理时的效率,还是提升了很多的。
考虑:加入以日期命名的enw生成目录,以便将来定期整理文献时方便导入endnote。
#Up to 20141104#
v0.12
今天增加了一些更为客户友好的操作,提高文献归库效率
Miner Mods:
- 增加按日期命名的record目录,方便用户集中下载当日整理过的enw文件导入endnote
- 采用file_get_contents函数直接勾取google的enw文件,免除用户先下载后上传的麻烦
- 采用file_get_contents函数直接勾取pdf文件,免除用户先下载后上传的麻烦
- 在个别页面增加了主页跳转链接,提高用户友好性
#Up to 20141105#
v0.13
增加更为客户友好的操作,提高文献归库效率
Miner Mod:
- 增加上传文献结束后直接进入文献的链接
v0.20
用了一晚上的时间进行了Major mod,终于可以升级一级版本号啦。增加了文献打包下载的功能,php调用一堆系统函数实现,我真是弱爆了,数据量大的时候估计效率会是个问题,不过还好,个人使用的情况绝不会动辄几百篇文献地down吧,考虑版本公开后不允许批量下载pdf,只可以下载enw。目前计划公开版的版本本号为v1.xx
增加的文件:
package.php
package_down.php
打包页面示例:
Major Mod:
- 增加集中打包下载的功能
#Up to 20141117#
v0.21
Miner Mods:
- 增加了文献名模糊匹配搜索(子串匹配,大小写不敏感),提高文献归库效率
- 重复提交的文献提供旧文件链接,用户友好。
v0.22
Miner Mods:
- 修正集中打包下载buffer bug
v0.30
晚上画图,ncl出图太慢,间隙用来给paperhub加入文献格式生成的功能,加着加着就忘了画图了,索性今天搞定这个major mod。目前仅仅对 paper to be submitted to Climate Dynamics进行了设置。引入了1页php和一个针对CD的期刊名缩略库short_ref_cd.dat。每增加一个submit的期刊就要引入一个缩略库,目前在没有办法将数据封装到json或者用关系数据库的情况下只能这样,当然也只能作为个权宜之计,以后submit的文章多了(如果能办到的话~),一堆文件看着都头疼……寒假如果可以的话,学学R,把组织格式shift到json上。
Major Mods:
- 加入针对投稿期刊的参考文献样式自动生成,目前仅针对Climate Dynamics,考虑到中文名缩写问题,生成first name缩写与不缩写两种形式,正式写入文章时需要调整下
Chou Chia, Neelin J David (2004) Mechanisms of global warming impacts on regional tropical precipitation*. J Clim 17: 2688-2701.
Chou C, Neelin JD (2004) Mechanisms of global warming impacts on regional tropical precipitation*. J Clim 17: 2688-2701.
#Up to 20141125#
v0.31
Minor Mods:
- 加入针对JC的参考文献样式自动生成
v0.32
Minor Mods:
- 加入文献本地pdf附件的链接
v0.40
Major Mods:
- 加入对RIS格式记录的解析与支持,重写了solve_enw.php核心函数,加入对RIS标志字段识别与解析,默认存储格式取决于输入格式(RIS-->RIS,enw-->enw)
v0.41
Minor Mods:
- 加入对online但未定vol/number/page文章的命名考虑,规则:
Huang-GCB-2015-fv72_fn71_fp53.pdf#Up to 20150402#
v0.42
Minor Mods:
- BUG FIX: 修正了对RIS结尾标志符的判断问题
v0.43
Minor Mods:
- BUG FIX: 修正了对RIS某类期刊关键词标志符的判断问题
v0.44
Minor Mods:
- BUG FIX: 修正了对Nature子刊ris中对short term解析的问题
v0.50
要写文章,paperhub要更舒服才有动力!两天时间做了几处大改动。
Major Mods:
- 增加了对ris的参考文献格式生成
- 增加了对多行记录的参考文件格式生成
- 修改打包算法,按修改时间排序,直接在warehouse中选择操作,减少了record额外记录空间,并且能够精确定位文章
- 增加warehouse下僵尸记录检测删除,每次打开index.php自动检测
v0.51
Minor Mods:
- BUG FIX: 修正了对upload_page.php 中对record尸体目录的操作
- 功能扩展:集中打包页面更改为管理页面,增加记录删除功能,列表增加<a>标签指向warehouse文献pdf
v0.52
Minor Mods:
- 功能扩展:jc格式参考文献行内引用,ref_line,缩写完善;结果列表化
- 修改label传递为post方法
- 功能扩展:sr格式参考文献行内引用,ref_line,缩写完善;结果列表化
v1.00beta(测试版本) 这次做了非常大的改动,试图直接去解析pdf的内容,然后抽取出doi或者题目信息,请求google的citition。中间遇到不少坑,折腾了几天。 首先是pdf解析的问题,尝试了若干python库,发现只有pdfminer靠谱一些。之后是题目识别,有doi,明显title行的好说,但是很多没有明显标识的title行。这种情况只能根据自己了解的一些特征去识别,但是发现准确率并不是很高。后面考虑用机器学习方法去做识别吧,当然这又不知道要拖多久的任务了。 真正的大坑在google请求的问题上: 毫无疑问,由于伟光正,国内服务器发出的请求发生了不可描述。改hosts并不奏效,会卡死在某些请求处,看起来只有ss这类手段能行。测试期间为了方便,当然是选择外网啦。 google做了不少反爬策略,首先抓包找到了citition页面的url。然后发现这一url里文章标志做了唯一的hash function。所以要首先请求到这个hash value,然后再用这个hash value去请求citition数据。 爬了几十篇后,发现被ban掉了,查了下原来简单的浏览器模仿不行,需要处理cookies。算啦,先留坑吧。
General Mods:
- 内核更改:采用python PDFMiner试图直接解析pdf
- 采用解析pdf信息请求google,返回google citition