wo-auto-reader

A auto reader for wo-read website, cheat to read large amount of chapters

npm install wo-auto-reader
4 downloads in the last week
16 downloads in the last month

[deploy]

从开发者机器同步软件到目标服务器

rsync -av -C -e "ssh -p 60222" ~/dev/project/autoReader/ node@noradle.com:autoReader2/ rsync -av -C -e "ssh -p 60222" ~/dev/project/node-queue-pool node@noradle.com:

// toLogin("15620009233", "32746805");

从命令行启动各个服务

ssh -p 60222 node@61.181.22.93 cd autoReader/lib nohup forever --minUptime 3000 --spinSleepTime 60000 node_wave.js > all.log &

[是否资源的 URL 是固定的] 经证明是一致的,因此完全可以缓冲所有的非章节页面,这样就可以避免重复阅读非章节页面。 同时,对于章节的 url 可以缓存,以后只要对着章节 url 列表进行抓取即可。

[problems]

  1. (done) request timeout, all concurrency is used,经查证是因为 jsdom window.close() 没写
  2. visualization,需要方便的查看已读书目
  3. multiple users can login in to start respective scan sessions and when reach the limit, end
  4. (done) long url > ~ 500, will fail to load, change from shred to superagent, all are well
  5. http user-agent can support larger connection

todos

  • (done) 首页上显示功能特性清单
  • (done) 当内存到达指定大小后,就要拒绝新的请求,显示不能再做了
  • 如果发现出现错误,则立即暂停,并重新登录,然后再恢复队列执行
  • 每分钟进行重新登录,确保在线状态. 如果对端存在最大登录时间的限制的化。
  • (done) 到达极限仅仅暂停是不够的,还不能让他恢复(除非过了一定的周期)
  • (done) 用户登录成功后可查看已完整读完的信息,
  • (has problem) 按章节阅读帮您选中
  • (done) 职工书屋还缺几个部分
  • (done / bug found) 动态读取 profile 版本,每次登录后重新从数据库中读取
  • (done) 使用正常的 referrer
  • (done) 使用标准浏览器的 http request header,让它更加真实
  • (done) 进度条显示. 使用 long pull 即可。单起一个页面。
  • (done) 将全部书目都先读取,然后再直接读章节。这样可以加快读取速度。每个章节都需要有正确的 referer
  • (done) 如何能够更好的支持 referer,而且是完全自动的
  • 将阅读统计在暂停时更新到数据库中去
  • 全读完一遍后,告知用户已经全部读完一遍,是否清除阅读记录重新扫描阅读
  • (canceled) log 能对不同用户分别输出 buffered log 才好
  • 解决不能读取下一章的问题,对存在“按章阅读”链接进行扫描
  • (done) 增加获取图书的实时更新,让用户实时跟踪界面显得更快些
  • (done) 增加一本书全部章节都读取的实时更新
  • (done) 干脆所有的 log 都同时输出到界面上好了。
  • ActionQueue rate 计算应该抛去 suspend 的时间
  • (done) 登录后直接进入实时跟踪页面,启动、停止都放到这个页面,使用 hidden iframe src 控制调用启停,通过 alert 反馈
  • (done) template 改进
  • (done) 实时跟踪界面对读完章节记录进行特殊样式显示,或者普通日志使用浅色显示
  • (done?) 使用章列表进行扫表,但是使用的是节代替章
  • (done) ip filter 在 proxy 后还正确吗?
  • (done) solve bug Can't set headers after they are sent.
  • (done)记录每本书有多少章
  • (done) 如何确保一章被完全读取,必须先读目录下一页,然后再读本页章节,而且下一页级别更高,这样同一本书的下一页总要在本页的章节前开始读取,但是这不能保证本页先返回从而认为没有后续章节。因此必须要对全部章节数了解完只一个标志。
  • (done) 如何在实时跟踪中显示出一本书已经被全读完

  • (done) 如何在已读书目中显示先前已读的信息,显示为往日已读

  • 如何在已读书目中显示全部章节已读完的信息
  • 如何在已读书目中显示全部已探知章节和其是否已阅读的状态
  • (done) 使用 textContent,对于不支持 innerText 就解决了

  • (done) 主网页就一个主页面,其他的都从 socket.io 进行通信

  • (done) 没登陆iread成功不能展示成功
  • (done) 当 socket 断了有恢复,原先从服务器emit的消息应该不要了,使用 socket.volatile 实现
  • (done) 当 socket 断了, 重新登录还可以获得原先的任务
  • (done) 当同一个用户从不同地方打开多个窗口,都可以对应到同一个任务
  • (done) 当多个终端使用同一用户登录时的问题,只有实时 trace 会只显示一个登录的日志,可以考虑使用 socket.io 的 room.emit 功能
  • (done) 暂停恢复时对所有该号码的浏览器实例都起作用
  • (done )底栏:使用的技术,作者和其联系方式
  • (done) 每种引用的技术应用在什么地方
  • (done) 每种使用的技术起到的作用的简要说明
  • (done) features 改为使用自动的播放方式
  • (done) 已读书目都可以增加打开收起的功能
  • (done) 主网页做成是 webapp 的,支持 manifest 配置文件,可以提示用户使用chrome添加到桌面使用

  • 投票功能,当一个批量运行完后,自动以 model 方式弹出

  • 使用 restful API

  • (done) 进度条,使用 bootstrap 实现

  • (done) 当手机号格式对时,应该解除错误展示 style
  • (done) 重新登录后自动启动任务应该通知浏览器端
  • 菜单和当前菜单和当前页的切换和标示应该拥有更简洁的设计
  • (done) bug: 菜单变灰的还可以点击
  • 将 alert 替换成更加友好的信息展示方式,如状态行或者 glow like

#

  • jade
  • AMD / dojo
  • jQuery
  • WebSocket
  • connect 改造
  • jQuery mobile
  • progressive API 是怎么设计的

-- 异步支持

  • 如果是天津IP,才显示登录页,否则提示自动阅读已关闭,并直接导航到沃阅读
  • 查看用户号码在企号通对应的手机 UA、姓名、组织;并缓存
  • 如在企号通中没有,则提示打击作弊,并直接导航到沃阅读

实验性项目

  • 如何防止重复阅读,必须保存已读完书目名称。这样开始预读时先从文件加载已全部读完书目,这样在进行读下一节时就不用重复了
  • 当全部书目都读完后,可以选择重新阅读一遍,界面上带有连接可以删除已读书目 todo
  • 读完一个批次后,需要重新登录以确保会话身份还在

  • 可以暂停,继续;控制队列,允许在途的执行完,但是排队的不再允许执行,直到恢复

  • 登录后记录登录时间,如果和上次登录时间不在一天,则删除老的任务队列,并启动新的任务队列。
  • 如果在同一天,则清除复用原先的任务队列,但是自动执行回复执行。

  • 每日自动清除前日的所有数据,setTimeout 到凌晨,然后 setInterval 每日做清理

  • 阅读代理暂停(手动暂停或到达批次自动暂停)后,重新回复前,无论如何也要再登录,以确保会话身份还在 只能是在 beforeResume 事件中,强制登录,然后调用 cb(err),若成功登录,AQ.resume() 被最终调用 beforeSuspend 事件中,可以有机会保存状态

-- optional features

  • 使用 jade 绑定书目 tree 做输出
  • 使用 css 来实现一个书目样式
  • 使用 jQuery 来实现书目折叠

  • 从 connect 错误报告中查看如何最终捕获错误并得到执行栈

  • 当读完指定书目的章节后,自动停止,并且通过短信告知用户
  • 提供短信上行请求,请求读多少章;到达该章数,自动结束并发短信告知结果

  • 使用 noradle 保存分类、书目、章节、内容

  • 使用 noradle 保存每个人的阅读史
  • 使用 noradle 支持另外一个阅读界面;支持字体选择,缩放,配色,关灯等效果;支持键盘导航。
  • 在本界面阅读时,可以配置成同步阅读源站点,累计阅读量
npm loves you