Pinclub社区系统 Nodeclub​ 的二次开发

联合创作 · 2023-10-02 10:51

介绍


Pinclub 是基于 Nodeclub 进行的二次开发. 增加了瀑布流展示方式, 主要参考花瓣网的设计风格(感谢花瓣网的设计师和前端工程师的辛勤工作), 加入了hanming距离的算法, 当然是在mongodb中使用了 function 的形式实现.


状态


Pinclub 目前处于开发阶段,尚未发布 Stable 版本.


图片相似度算法说明


在 Topic 模型中加入了 image 的相关属性值, 其中就包括 image_hash, 使用 imghash 模块生成了 16 bits 的二进制字符串.


在 Mongodb 中创建了一个 function 命名为 hammingDistance, 代码如下:


function (a, b) {
    if (typeof(a) === "undefined" || typeof(b) === "undefined") return 64;
    var aa = a.split("");
    var bb = b.split("");
    var count = 0;
    for (var i = 0; i < aa.length; i++) if (aa[i] !== bb[i]) count++;
        return count;
}

通过 mongo 命令行创建 Function


创建脚本:


db.system.js.save(
   {
     _id: "hammingDistance",
     value : function (a, b) {
                 if (typeof(a) === "undefined" || typeof(b) === "undefined") return 64;
                 var aa = a.split("");
                 var bb = b.split("");
                 var count = 0;
                 for (var i = 0; i < aa.length; i++) if (aa[i] !== bb[i]) count++;
                     return count;
             }
   }
)

Chrome 插件获取外部图片


如果目标网站做了引用保护,则无法完成图片的 Get 操作


插件下载地址 / Download Chrome plugin


插件应用商店地址 / Download Chrome plugin from web store


插件项目地址 / Plugin Project


TODO / How to Contribute


如果你想贡献一份力量, 请查看 TODO 列表


安装部署


不保证 Windows 系统的兼容性


线上跑的是 Node.js v4.4.0,MongoDB 是 v3.0.5,Redis 是 v3.0.3。


1. 安装 `Node.js[必须]` `MongoDB[必须]` `Redis[必须]`
2. 启动 MongoDB 和 Redis
3. `$ make install` 安装 Nodeclub 的依赖包
4. `cp config.default.js config.js` 请根据需要修改配置文件
5. `$ make test` 确保各项服务都正常
6. `$ node app.js`
7. visit `http://localhost:3000`
8. done!

API接口文档


使用 npm run apidoc 命令在本地生成文档后, 访问: http://localhost:3000/public/apidoc


截图


首页上传图片设置board图片box Get图片


关于 Nodeclub


Nodeclub 是使用 Node.js 和 MongoDB 开发的社区系统,界面优雅,功能丰富,小巧迅速, 已在Node.js 中文技术社区 CNode(http://cnodejs.org) 得到应用,但你完全可以用它搭建自己的社区。


测试(完善中)


跑测试


$ make test

跑覆盖率测试


$ make test-cov

贡献


Pinclub 可以联系 @hhdem


Nodeclub 有任何意见或建议都欢迎提 issue,或者直接提给 @alsotang


License


Pinclub is released under the MIT License. Have at it.

浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报