/linpx-app

uniapp做的Linpx客户端,不再维护,转为网页版,详见linpx-web

Primary LanguageVue

图片名称

Linpx是什么

Linpx是一个小说阅读器。

Linpx旨在帮助读者快速、方便地阅读小说,有效地找到喜欢的作者和作品;帮助作者将作品带给更多读者、引流、增大关注度,并适当结合程序拓展小说表现形式。

Linpx目前完全依托于pixiv,没有自建数据库,后端仅提供基本的转发pixiv数据接口的功能。

后续可能会结合实际情况大幅改动。

图标和名字

图片名称
Linpx,即“Linpx Is Not PiXiv”
亦为“LINpicio's PiXiv”
logo作者:apoto5

创作原因?

我个人在用pixiv(或者其他平台)看那种文的时候,往往会有以下问题:

1、手机阅读太过麻烦

以前如何在手机上看文:

  1. (挂VPN)pixiv上找到
  2. (用chrome插件)下载到本地
  3. 传到手机上
  4. 跨越层层目录来到接收文件夹
  5. wps打开,之后wps有记录,可以直接在wps里点开
  6. 看的涩文多了以后查找翻阅啥的也还是不方便,跟其他的文档混在一起

太麻烦了,只是看个文而已,许多操作是可以通过程序简化的

我想要达到的效果

  1. 点开关注作者或者推荐作者
  2. 点开作品

自动记录最近阅读、收藏,下次可以快速开始阅读

2、缺乏统一入口,难以找到更多潜在的优秀作者

不同作者往往分布在不同平台、账号、主页

我喜欢的文的类型(兽文)比较小众,相关推荐效果不太好

小众圈本身是很内聚的,大家因为相同的兴趣,彼此间认识、交流其实很简单,但是很多优秀的作者,仅仅因为我不知道他们的名字、没有接触过,就错过他的所有作品

我想要达到的效果

大家一起推荐出自己喜欢的小众文作者,打破信息壁垒

任何一个使用软件的用户,都能在推荐列表中找到所有优秀的作者

每个优秀的小众文作者,都能让自己的作品被更多人看到

同时,作为作者可能也有一些问题:

3、没有合适的平台,缺少内容分发的渠道

pixiv本身有不低的门槛,在日本、以图为主、需要翻墙、读者难以主动接触到作者

国内主流平台审查过严,往往不可能过审

QQ群内聚性太高,没有办法带给更多陌生的读者

为了解决以上问题,以及一些其他原因,我便制作了Linpx

特性一览

最近/收藏/关注

显示读者 最近阅读的小说/收藏的小说/关注的作者

推荐作者

列出了一些优秀的推荐作者(主要是兽文作者)

给小众文爱好者提供了快速、全面、优质的阅读通道

搜索

支持pixiv作者id搜索和作品id搜索

【todo:模糊搜索】

沉浸式阅读

读者开始阅读小说后,状态栏和底部虚拟按钮会自动收起,并根据读者阅读时上下拉操作实时反馈

带来沉浸式的阅读体验

缓存

用户使用过程中请求的作者信息、作品详情、图片会在本地缓存,下载一次后下次直接从本地读取

提高访问速度、减小后端压力

【todo:用户可以清除缓存】

下载

统一了下载接口, 所有的二维码、下载链接、软件更新都是通过同一个接口进行的下载

热更新

检测到服务器有新版本后客户端会弹出更新提示,点击后能直接下载更新,不需要通过QQ群或者重新网页下载

【todo:阅读进度保存】

下次阅读时能接着上次退出的地方继续看

快速分享

通过分享神秘代码,复制后打开app,能够快速读取出分享的作者或者作品

将来可能的特性【todo】

增强社区性

首页banner

自建数据库

重新排版布局

支持长篇小说

适配长篇小说的阅读模式

选项分支小说

定义一种创作格式,作者按照这种格式编辑内容,能够形成带有逻辑跳转、条件分支的小说

类似于简易avg

开发人员

名称 工作描述
林彼丢 主策划,主程序
安卓 主UI设计
可可虎 上面两位的好朋友
鱼市街、橘猫的阅读器群员 测试

技术栈

技术类型 技术描述
后端 node
前端 uni-app

bug记录表

bug描述(懒得记了,改完一条删一条吧) 解决方法
快速连续收藏多个未缓存内容时,会中断之前的下载、收藏过程 改为模态窗口

Todo List

功能性Todo
描述 完成
【不同收藏夹】新建收藏夹、将小说自由添加到收藏夹中
【本地添加】允许用户从本地或手动创建小说
【微博、b站添加】允许用户从微博、b站添加小说,或搜索作者作品
关键字搜索
阅读进度保存,断点续读
作者详情中,小说列表下拉加载更多,而不仅是最多30条
展示性Todo
描述 完成
允许用户自由调整小说详情的字体、间距、边距
【动画】给首页卡片等各种能加入动画的地方加入简单动画 √再多一点
重做支持页面的UI
基础教程、用户导引、制作初衷部分内容填充
运营性Todo
描述 完成
【演示视频】演示软件的使用方法
【微博】发微博文字描述软件功能、下载渠道、附上演示视频

前端文档

开源信息

开源仓库地址: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 当前最新版本号
Pixiv API
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
官博 暂无,不想开太大,应该不会整
官网 暂无,估计懒得整

分享

二维码下载链接

downloadQrcode.png

捐赠列表

用户名 账号 金额 时间 形式
神采飞扬 QQ437175144 20 2020.11.8 QQ群红包