Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ktmud/doubanj
Visualize your reading history.
https://github.com/ktmud/doubanj
douban javascript visualization
Last synced: 4 days ago
JSON representation
Visualize your reading history.
- Host: GitHub
- URL: https://github.com/ktmud/doubanj
- Owner: ktmud
- Created: 2013-02-18T16:12:19.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2022-12-09T09:06:44.000Z (about 2 years ago)
- Last Synced: 2024-12-16T04:05:27.870Z (11 days ago)
- Topics: douban, javascript, visualization
- Language: JavaScript
- Homepage:
- Size: 2.09 MB
- Stars: 337
- Watchers: 30
- Forks: 71
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [豆瓣酱] [![repo dependency](https://david-dm.org/ktmud/doubanj.png)](https://david-dm.org/ktmud/doubanj)
## This repo has been deprecated. 由于豆瓣关闭了 API 通道,本网站已下线。
[豆瓣](http://www.douban.com) 私人收藏数据可视化。
## 依赖
### 数据库服务器
同时依赖 mongodb 和 redis ,配置参数参见 `conf/default.conf.js` 。
### 工具包
npm install forever -g
npm install component -g
npm install grunt-cli -g
npm install## 开始开发
make init
make grunt
makemake 的默认命令是使用 `forever` 执行 `app.js` 。
如果需要修改静态文件,请执行 `make watch` ,利用 `grunt` 监视静态文件改动。
## 一点说明
### MongoDB 的用处
1. 存储用户账户信息、收藏信息、条目信息
2. 利用 [aggregation](http://docs.mongodb.org/manual/applications/aggregation/) 生成统计结果### redis 的用处
1. 替代 memcached 的缓存服务
2. 存储统计结果(计划中)### 队列管理
使用 [node-pool](https://github.com/coopernurse/node-pool),数据库请求、API请求、统计请求,都有分别的队列。
### 静态文件
- 依赖的开源库都用 component 来管理。
- 使用 grunt 来打包。具体配置参见 `Gruntfile.js` 。
- 服务器递送的总是 `/static/dist` 目录下的文件,调试时也要保证 dist 目录下有所有需要的文件。没有 fallback 。因此请保证修改静态文件时,watch 有运行。#### 客户端JS的模块化
- static/js/do.core.js 是由豆瓣的 do.js 修改而来的文件加载器
- 用了 component-build 的一套东西,参看 static/js/do.cmd.js
- Gruntfile.js 里定义了对 js 文件包裹 CommonJS `require` 定义的命令
- 使用模版配套的 `#{urlmap()}` 方法为 Do 生成所需文件的真实地址
- 使用 `Do('module1', 'module2', ...` 显式延时加载你需要的模块,模块名即文件名,在 Do 内部安全地使用 `require('xxx')`
具体使用实例参见 static/js/people/booter.js#### 版本管理
发布上线前执行 `grunt build` ,将为压缩后的文件生成一个 hashmap (即 static/hash.json ),并重命名文件为 static/dist/js/xx\_HASH.js 格式。
为了保证这套机制的顺利运行,请保证新加的静态文件名中不包括下划线(\_)。#### 提供 API Key
采集豆瓣数据需要使用豆瓣 API。请配置一下环境变量来制定豆瓣 API KEY:
- DOUBAN_APP_KEY
- DOUBAN_APP_SECRET
- DOUBAN_APP_MORE - 格式:key1:secret1, key2:secret2