Linpx是一个小说阅读器。
Linpx旨在帮助读者快速、方便地阅读小说,有效地找到喜欢的作者和作品;帮助作者将作品带给更多读者、引流、增大关注度,并适当结合程序拓展小说表现形式。
Linpx目前完全依托于pixiv,没有自建数据库,后端仅提供基本的转发pixiv数据接口的功能。
后续可能会结合实际情况大幅改动。
亦为“LINpicio's PiXiv”
logo作者:apoto5
我个人在用pixiv(或者其他平台)看那种文的时候,往往会有以下问题:
1、手机阅读太过麻烦
以前如何在手机上看文:
- (挂VPN)pixiv上找到
- (用chrome插件)下载到本地
- 传到手机上
- 跨越层层目录来到接收文件夹
- wps打开,之后wps有记录,可以直接在wps里点开
- 看的涩文多了以后查找翻阅啥的也还是不方便,跟其他的文档混在一起
太麻烦了,只是看个文而已,许多操作是可以通过程序简化的
我想要达到的效果
- 点开关注作者或者推荐作者
- 点开作品
自动记录最近阅读、收藏,下次可以快速开始阅读
2、缺乏统一入口,难以找到更多潜在的优秀作者
不同作者往往分布在不同平台、账号、主页
我喜欢的文的类型(兽文)比较小众,相关推荐效果不太好
小众圈本身是很内聚的,大家因为相同的兴趣,彼此间认识、交流其实很简单,但是很多优秀的作者,仅仅因为我不知道他们的名字、没有接触过,就错过他的所有作品
我想要达到的效果
大家一起推荐出自己喜欢的小众文作者,打破信息壁垒
任何一个使用软件的用户,都能在推荐列表中找到所有优秀的作者
每个优秀的小众文作者,都能让自己的作品被更多人看到
同时,作为作者可能也有一些问题:
3、没有合适的平台,缺少内容分发的渠道
pixiv本身有不低的门槛,在日本、以图为主、需要翻墙、读者难以主动接触到作者
国内主流平台审查过严,往往不可能过审
QQ群内聚性太高,没有办法带给更多陌生的读者
为了解决以上问题,以及一些其他原因,我便制作了Linpx
显示读者 最近阅读的小说/收藏的小说/关注的作者
列出了一些优秀的推荐作者(主要是兽文作者)
给小众文爱好者提供了快速、全面、优质的阅读通道
支持pixiv作者id搜索和作品id搜索
【todo:模糊搜索】
读者开始阅读小说后,状态栏和底部虚拟按钮会自动收起,并根据读者阅读时上下拉操作实时反馈
带来沉浸式的阅读体验
用户使用过程中请求的作者信息、作品详情、图片会在本地缓存,下载一次后下次直接从本地读取
提高访问速度、减小后端压力
【todo:用户可以清除缓存】
统一了下载接口, 所有的二维码、下载链接、软件更新都是通过同一个接口进行的下载
检测到服务器有新版本后客户端会弹出更新提示,点击后能直接下载更新,不需要通过QQ群或者重新网页下载
下次阅读时能接着上次退出的地方继续看
通过分享神秘代码,复制后打开app,能够快速读取出分享的作者或者作品
首页banner
自建数据库
重新排版布局
适配长篇小说的阅读模式
定义一种创作格式,作者按照这种格式编辑内容,能够形成带有逻辑跳转、条件分支的小说
类似于简易avg
名称 | 工作描述 |
---|---|
林彼丢 | 主策划,主程序 |
安卓 | 主UI设计 |
可可虎 | 上面两位的好朋友 |
鱼市街、橘猫的阅读器群员 | 测试 |
技术类型 | 技术描述 |
---|---|
后端 | node |
前端 | uni-app |
bug描述(懒得记了,改完一条删一条吧) | 解决方法 |
---|---|
快速连续收藏多个未缓存内容时,会中断之前的下载、收藏过程 | 改为模态窗口 |
描述 | 完成 |
---|---|
【不同收藏夹】新建收藏夹、将小说自由添加到收藏夹中 | |
【本地添加】允许用户从本地或手动创建小说 | |
【微博、b站添加】允许用户从微博、b站添加小说,或搜索作者作品 | |
关键字搜索 | |
阅读进度保存,断点续读 | |
作者详情中,小说列表下拉加载更多,而不仅是最多30条 |
描述 | 完成 |
---|---|
允许用户自由调整小说详情的字体、间距、边距 | |
【动画】给首页卡片等各种能加入动画的地方加入简单动画 | √再多一点 |
重做支持页面的UI | |
基础教程、用户导引、制作初衷部分内容填充 |
描述 | 完成 |
---|---|
【演示视频】演示软件的使用方法 | |
【微博】发微博文字描述软件功能、下载渠道、附上演示视频 |
开源仓库地址:https://github.com/libudu/linpx-frontend
快来点个Star吧!
此处页面名称对应前端项目pages目录下的页面
页面名称 | 页面内容 |
---|---|
launch【启动】 | 显示logo、应用名、提示信息 |
search【搜索】 | 目前的主页面,提供其他页面的卡片按钮入口和搜索框 |
novelDetail【小说详情】 | 一篇小说的详细信息(封面、标题、作者、tags、正文) |
novelsFav【收藏小说】 | 用户收藏的小说 |
novelsRecent【最近阅读】 | 用户最近阅读的小说 |
novelsLocal【本地小说】 | 本地添加的小说【todo】 |
authorDetail【作者详情】 | 一个作者的详细信息(名称、id、头像、背景图、简介、小说列表) |
authorsFollow【关注作者】 | 用户关注的作者列表 |
authorsRecommend【推荐作者】 | 推荐的作者列表 |
support【支持】 | 支持页面【todo】 |
user【用户】 | 用户界面【todo】 |
userSetting【用户设置】 | 用户设置【todo】 |
downloadLinpx【热更新】 | 热更新时的下载页面 |
此处组件名称对应前端项目components目录下的组件
组件名称 | 组件功能 |
---|---|
img-cache | 第三方图片缓存插件,网络图片下载到本地,自动记录,下载加载直接本地 (魔改过,把内部存储从列表改成了字典等) |
lp-author-item | 作者项 【props】作者的name、id、comment、sideImgUrl |
lp-author-list | 【props】作者信息的列表 |
lp-button-menu | 从下弹出的菜单,用在作者和小说详情的右上角菜单 传入titile和点击callback的对象 |
lp-button | Linpx风格的按钮,粗体字、黄红渐变背景 |
lp-empty-page | 空页组件,用在关注、收藏、最近、本地为空时,点击跳转推荐作者 |
lp-fav-item | 本地缓存的fav抽象组件 【props】本地缓存的键、当前元素、收藏/取消收藏/收藏失败的提示 另可传入尝试收藏的回调,会在收藏前调用,根据返回值判断是否成功 (用在因网络等原因,收藏可能不成功的情况) 【slot】yes:收藏时的显示;no:未收藏时的显示;default:默认,总是显示 |
lp-nav-bar | linpx封装uni-nav-bar的顶部导航栏 【props】是否带返回按钮、标题、是否固定 【slot】right:右侧内容 |
lp-novel-item | 小说项 【props】标题、简介、id、作者、封面、tags、平台(默认pn) |
lp-novel-list | 作者项 【props】小说信息的列表 |
lp-search-input | linpx搜索框 【event】startSearch:点击开始搜索 |
lp-tags | linpx的tags 【props】tag的列表,tag的样式 |
模块名 | 描述 |
---|---|
andriod.js | Andriod相关操作 底部透明化、底部显示、底部隐藏 |
api.js | 各种网络数据接口 1、linpx后端请求、linpx缓存请求 2、获取小说内容(id、id列表、id本地缓存key) 3、获取作者小说(以及带偏移获取) 4、获取作者详细信息(id、id列表) 5、获取推荐作者、版本号(检查版本号) |
config.js | 放同步缓存的全局变量 get、save、set方法 存取变量前需注册 |
route.js | 路由方法,封装跳转逻辑 1、navigateTo、navTo,简化跳转逻辑,统一跳转动画 2、gotoPixivNovel、gotoPixivAuthor,封装跳转逻辑,跳转前验证,失败提示不跳转 |
share.js | 分享方法 1、抽取分享字符串,实现easy share 2、设置剪切板、生成linpx分享id文本、生成并复制linpx分享id文本,实现easy share 3、系统分享文本、系统分享图片 4、系统分享linpx下载文本、系统分享linpx下载二维码 5、打开一个QQ群,打开Linpx官群 6、打开网页、打开pixiv网页 |
接口名称 | 接口描述 |
---|---|
pnXXXXX | pixiv小说数据 |
paXXXXX | pixiv作者数据(不包括该作者的小说) |
lnXXXXX【todo】 | 本地小说 |
favNovels | 收藏的小说id字典 |
favAuthors | 关注的作者id字典 |
recentNovels | 最近阅读小说的id字典 |
MaxRecentNovels | 最大存储的最近阅读 |
recommendPixivAuthors | 推荐的Pixiv作者id |
pixiv相关的很多信息需要科学上网,故必须通过后端接口
但是对于国内网站,以及pixiv中没有被墙的获取图片的接口,是直接通过前端网络请求访问的
平台 | 内容描述 | 网址 | 备注 |
---|---|---|---|
pixiv | 小说封面图片 | novelDetail中的coverUrl字段 | 请求头Referer必须为https://pixiv.net/ |
bilibili | 获取用户全部文章 | https://api.bilibili.com/x/space/article?mid=[用户id] | 请求头Referer必须为https://www.bilibili.com/ |
bilibili | 获取特定文章内容 |
后端目前工作量并不大,主要只是转发pixiv的api请求
http://api.linpx.linpicio.com/
接口名称 | 参数 | 内容 |
---|---|---|
/pixiv/user/:id | id:pixiv作者id | 该作者的第一页小说概览 |
/pixiv/novel/:id | id:pixiv作品id | 该作品的详细信息 |
/recommend/author | 无 | 当前的推荐作者信息 |
/version | 无 | 当前最新版本号 |
URL | 内容 |
---|---|
https://www.pixiv.net/ajax/novel/${novelId} | 获取指定小说的详细信息 |
https://www.pixiv.net/ajax/user/${userId}?full=1 | 获取作者所有小说id |
https://www.pixiv.net/ajax/user/${userId}/profile/all?lang=zh | 获取作者基本信息 |
项目 | 说明 |
---|---|
官群 | 橘猫的阅读器:576268549 |
爱发电 | https://afdian.net/@LINPX |
官博 | 暂无,不想开太大,应该不会整 |
官网 | 暂无,估计懒得整 |
二维码下载链接
用户名 | 账号 | 金额 | 时间 | 形式 |
---|---|---|---|---|
神采飞扬 | QQ437175144 | 20 | 2020.11.8 | QQ群红包 |