Pixeval是什么
Pixeval是由我在业余是开发的一个第三方免代理P站客户端,UI使用Windows Presentation Foundation实现,基于.NET Core 3.0,支持Windows7-10(计划取消Win10以外的支持),实现了大部分的浏览功能,并且做了诸多加强,目前已经在基于AGPL协议在Github上开源,该项目设想起源于2018年,当时用Java写了P站的api,当时还可以通过修改hosts的方法访问,之后GFW升级了封锁策略,将DNS污染升级成了SNI阻断,因此就去找资料开始了解GFW的不同阻断级别以及阻断机制,在2019年下半年开始写此项目,大约花费了3个月左右的时间实现(实际本项目的实现部分灵感来源于Notsfsssf(下称探姬),因为最初我使用的是硬编码ip,在看了探姬的源码之后发现可以使用dns查询来动态查找,使得实现优雅了很多),最终才呈现给各位,除了Pixeval之外,同样还有几个可以实现免代理访问P站的方法,在此将会一一列举:
- Pix_EzViewer(已经停止更新,建议使用Flutter版本)/Pixez_Flutter(推荐使用): 由Notsfsssf开发的免代理P站android客户端,也是国内首个免代理的P站android客户端,界面简洁优雅,连接稳定,是目前首推的android客户端
- Pixiv-Uwp: 由tobichiiamane(以下简称鱼姐姐)开发的UWP客户端,同样拥有稳定的链接和漂亮的界面,由于是UWP开发,不支持Win10一下的版本(不过我也计划去除win7支持了),但是下载安装非常便捷,傻瓜式操作,不需要任何相关知识
- Pixiv-Nginx: 由白猫(同样也是本blog主题的作者)所提出的解决P站代理问题的方案,相比起Pixeval/Pixiv UWP/Pixez而言,该解决方案并非针对客户端,而是直接允许通过web端访问p站,如果你不想下载客户端或者你更加偏向于使用浏览器浏览Pixiv的话,那么Pixiv-Nginx将会是不二之选
注:
* 如未指明,以上所有内容所使用的方案都是通过直接操作/转发流量实现,并不包含任何通过第三方服务器的转发过程,在安全方面大可放心
Pixeval可以做什么
- 快速且流畅的用户体验
Pixeval是基于.NET Core 3.0开发的WPF项目,其中使用到了诸多.NET的强大特性,所有的请求均使用.NET的异步架构并发处理,同时依赖C# 8.0的异步流来流畅的将图片加载至UI,所有的UI容器均使用了WPF的虚拟化技术,最大程度的减少内存占用,您可以尽情的体验高速浏览美图的快感 - 特辑浏览
许多用户都希望能够快速的浏览并收藏特辑——也就是Pixiv官方精心准备的集锦,但无论是Pixiv网页端还是App端都不能方便快捷的实现,在本应用里,你可以在片刻之间获取到数百个特辑集锦并且随时下载他们 - 批量下载
一张一张的点开大图,等待加载后再去右键保存,遇到网络波动还可能会前功尽弃,恐怕是下载过程中所遇到的最令人沮丧的事情了,而在这里,所有的下载任务都被集中到管理面板并且可视化,只需要轻点鼠标,作品就会被添加到下载列表 ,并且随时可以查看当前的下载进度,无论作品是只有一张,还是一个图集,抑或是一张GIF动态图片,Pixeval都可以轻松的处理完善,下载文件夹的格式经过统一,你一眼就能够分辨出刚刚下载的作品位于哪里 - 自定义过滤
除了选择过滤R-18/R-18G内容以外,Pixeval准备了多种的过滤方案,可以选择需要排除(Exclude)的标签,也可以选择需要包含(Include)的标签,除此之外,你甚至可以自定义作品的最低收藏数以满足口味,这些方案结合起来可以带来最舒适的浏览体验 - GIF在线预览
你可以流畅的预览任何Pixiv上面的动态图片,使用体验与查看普通的图片没有任何区别,同样,你也可以选择下载GIF,Pixeval将会自动合成动态图片 - 用户动态
Pixeval集成了用户动态功能,随时查看关注用户的动态,而这是大部分客户端所使用的APPAPI无法做到的,我们通过某些特殊手段实现了WEBAPI的访问,以此补全了这一短板 - 作品榜单
你可以在左侧的作品榜单页面查看今日以及过往日期的榜单,榜单包含十数个选项:- 日榜
- 月榜
- 周榜
- 男性向日榜
- 女性向日榜
- 多图/漫画日榜
- 多图/漫画周榜
- 原创
- 新人
- R-18日榜
- 男性向R-18日榜
- 女性向R-18日榜
- R-18周榜
- R-18G周榜
注:包含了R-18的所有选项需要在应用和p站的web端打开R-18开关
我应该在哪里下载?
你可以直接访问这里下载,也可以通过在Github上获取最新版本的Release,同样的,你也可以选择自行编译,自行编译时需注意你的电脑需要安装.NET Core 3.1或更高版本的.NET Core SDK,之后使用Windows Powershell执行Pixeval/src/Pixeval/build.ps1即可在bin/x64/Release/publish目录下生成可执行文件以及附加的运行库
一些常见的问题/我下载之后没法XXXX
在此列举了一些常见的问题,在问问题前请务必确保你已经满足下列条件:
- 本项目基于.NET Core,所以在使用前请确保自己安装了版本号>= 3.1的.NET Core Desktop Runtime
- 如果你想在没有梯子的情况下使用本应用,请确保在设置里打开了直连,否则你什么都搜索不到
- 如果你无法安装.NET Core Desktop Runtime,请确保你的系统至少是Windows 7 Service Pack 1,如果不是,请自行安装补丁
- 如果你发现热门tag搜索到的内容很少,那么很可能是你忘了去设置里设置搜索页数,默认为1,封顶100,每页搜索30张
- 如果登录时显示Webapi无法登陆/登录失败,请确保自己的杀毒软件没有拦截安装证书的操作(详见为什么要安装证书),如果还是不行,可以通过上文提到的方式向我提交issue
为什么需要安装证书?
安装不被信任的自签证书本身是一个不安全操作,但是本应用实现WEBAPI登录的方式是本地架设一个代理服务器,同时在应用内把流量转发到localhost,localhost再把流量转发给真正的服务器;由于P站强制使用HTTPS,因此在这个过程中SSL证书是必要的,很明显,我们没有办法拿到Pixiv官方的证书,因此退而求其次的办法就是使用自签证书(如果你有更好的见解/方法, 欢迎加群分享或者提交Pull Request,我个人保证证书私钥不会被泄露和分发,然而,如果你依然对安全性持怀疑态度,那么欢迎你clone下仓库,自己签发一张证书(具体如何签发请自行google/百度,有诸多教程,如果你实在不会可以联系我)替换掉Pixeval/src/Pixeval/Resources文件夹下的证书并且自行编译(如何编译?),注意此处有两个证书,一个是.cer格式(不包含私钥,用作客户端根证书校验),而另一个是pixeval_server_ca.pfx(包含私钥,用作服务端校验),其中pixeval_ca.cer是应当被放在受信任的根证书颁发机构中的自签根证书,而pixeval_server_ca.pfx是作为服务端校验的根证书(签发时请确保把对应证书的文件名改成这两个的),后者应当使用前者签发(什么意思?,我该怎么做?: https://infiniteloop.io/powershell-self-signed-certificate-via-self-signed-root-ca/, 或者google搜索"powershell sign certificate using a custom root-CA")。另外,用于安装证书的代码位于这里
更新日志
- 2020/1/9
- 将用户浏览器和作品浏览器集成到主窗口中
- 修改了图片列表的UI
- 压缩包内包含了完整的.NET Core运行环境,避免有些非常非常可爱的萌新不看说明不知道要装.net,缺点是体积大大增加
- 2020/2/14
- 优化了代码,删除了部分无用函数和工具类
- 2020/3/13
- 现在下载时可以查看进度了
- 你可以即时预览GIF了
- 新增了使用SauceNAO作为源的搜图功能
- 改进了核心API,优化了异常处理
- 优化了图片浏览弹窗的开启速度
- 现在可以在设置里选择不使用直连了
- 2020/3/14
- 标签趋势
- 密码不再使用明文管理,而是通过Windows Credential Manager保存
- 2020/3/15
- 添加了自动更新功能(尚处于测试)
- 添加了一个导航到介绍网址的超链接
- 2020/3/29
- 添加了缓存系统
- 搜图功能可以拖拽文件了
- 添加了自动下载Runtime的C++脚本
- 2020/4/13
- 新增"下载中"与"下载完成"选项卡,可以查看自己的下载历史,同时点击右侧文件夹图标可以导航到对应目录
- 新增二次过滤功能,在图片搜索结果页面(可以是关键字搜索也可以是用户上传/收藏),在该页面点击/ 键即可打开过滤文本框(不能开启输入法),按照以下规则 输入即可进行对应的过滤:
- #tag:<要搜索的tag>
- #tag:!<要排除的tag>
- #name:<要搜索的作品名>
- #id:<要搜索的id>
- 2020/4/14
- 现在可以直接复制图片了
- 改进了二次过滤的语法,现在不需要输入诸如#tag:的前缀了
- 2020/4/17
- 私人收藏夹与私人关注功能
- 2020/5/7
- 实现webapi
- 实现webapi登录
- 作品榜单
- 用户动态
- 2020/5/23
- 现在除了可以再应用内查看浏览记录外,还可以在Windows时间线里查看了(仅支持Windows 10 1803+)用户(感谢来自@tobiichiamane的灵感)
- Pixeval现在会自动注册自定义协议到注册表,可以使用如下方法使用:
- 当浏览作品时,替换url的协议部分(http/https)为自定义协议(pixeval) (例: https://www.pixiv.net/artworks/81470442 => pixeval://www.pixiv.net/artworks/81470442)
- 当浏览作者时,替换url的协议部分(http/https)为自定义协议(pixeval) (例: https://www.pixiv.net/users/28603589 => pixeval://www.pixiv.net/users/28603589)
- 当浏览特辑时,替换url的协议部分(http/https)为自定义协议(pixeval) (例: https://www.pixivision.net/en/a/5423 => pixeval://www.pixivision.net/en/a/5423)
- 可以直接在图片浏览页设置图片为当前的桌面了,如果你的windows版本 >= 8 (build number: 6.2.9200),则当图片长宽比超过1.7时会自动设置为Span样式)
- 2020/6/10
- 可以在右键菜单中选择"下载到"来手动指定下载位置了
- 可以在设置中选择将作者的作品下载到一个单独文件夹了
- 2020/9/24
- 修复了源站上了cf所以无法登陆的bug
- 2020/10/11
- 修复了源站上了cf所以无法正常工作的bug
- 2021/3/9
- 修复了P站鉴权接口更换导致的登录问题
- 修复了图片查看器高度不匹配的问题
- 优化了镜像站替换算法,现在可以支持http和https两种协议了
- 使用全局唯一的HttpClient(之前犯下的蠢错误)
- 尽量将所有MessageBox替换为模态窗口
- 由于P站鉴权接口更换,现在可以自动获取Cookie了
当前计划
撤掉对于Win7的支持
找到更好的WEBAPI登陆手段,不再使用Cefsharp和自签证书
修复默认排序的bug
修复二次过滤无法启动的bug
修复作者浏览页内存泄漏的bug
相关链接
鸣谢列表(没有他们的支持就没有这个作品)
- Sep
- 鱼姐姐
- 探姬
- CN
- 时间
- 对味 提供下载服务器
- LG nt
- 当妈 沙雕
- Sum 本项目的Collaborator
- Rigil-Kentaurus 本项目的Collaborator
- 使用并给予积极意见的各位
注: 排名不分先后
厚颜无耻的求发电
如果你觉得Pixeval还算合你的胃口的话,欢迎前往我的爱发电给我一点的支持(对目前的我来说将会是雪中送炭),我在学习的业余时间里写了这个作品,你们的支持是我维护的动力
Comments 46 条评论
博主 ControlNet
很棒
博主 Tory
点赞
博主 2955504512
呜哇,哭辽,安装了。NET还是提示未安装,不行啊。
("▔□▔)/
——来自于Win10家庭版 20H2
博主 dylech30th
@ 2955504512 emmm。你是使用的32位系统嘛,或者说安装的不是正确的.NET版本
https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-desktop-3.1.13-windows-x64-installer
去这个链接安装(x
博主 494355304
打开软件提示ERR_CONNECTION_RESET,没有了登陆界面,这是什么情况呢
博主 dylech30th
@494355304 请尝试加群提供更多信息…这个信息量太少,我目前只能怀疑是你的网络情况问题
博主 sfy
LG做错了什么被备注为nt
博主 俪瀚
你好 最新的版本好像下载功能出了一些问题。下载结束后文件会在选择的路径的上一级文件夹中,而且是以选中的文件夹命名。再下载新的图上一张就会被覆盖。。。
博主 dylech30th
@俪瀚 我最近忙高考,考完修
博主 憨星沉\^o^/
@dylech30th 博主高考加油
!
博主 Period
@俪瀚 对的,我和你一样。难受
博主 Period
以前能批量保存下载,怎么摆弄都是只有2张,还会蹦程序。
博主 dylech30th
@Period 已经在重写惹,暑假之内写出来
博主 true润壁
浏览图片时,希望不要裁剪图片的尺寸,而是保留原图片的尺寸,这样浏览时可以看到完整的图片而不是原图的一部分局部。由于点击进入图片时回加载原图速度较慢,所以我不喜欢这样看图。参考安卓shaft的图片浏览就很不错。谢谢大佬了。
博主 dylech30th
@true润壁 浏览图片的时候保持原图的尺寸会导致显示效果很差啊,我可以在新版本的Pixeval里加入一个选项来让用户自行决定浏览时候的图片如何缩放的
博主 无痕榛仁
我登陆最新pixeval提示服务器运行失败(0x80080005(CO E SERVER. EXEC. FAILURE)) 求助作者大大
怎么解决 上个月还能正常登陆的
博主 dylech30th
@无痕榛仁 感觉这个应该是你的电脑问题,你要不要尝试一下清除%localappdata%/pixeval文件夹然后重新下载解压一遍应用试试?
博主 zero_ky
昨天还能正常登陆,今天登陆就一直白屏,过了阵儿才弹出提示The operation was canceledHbg,不是太明白啥情况。。。
博主 zero_ky
博主 dylech30th
@zero_ky 见:https://github.com/Pixeval/Pixeval/issues/194
请重新下载,下载链接:https://60.214.102.125/dc/Pixeval.zip
博主 只是一个路过的恶魔猎人
最近用的好好的,几天前登录时白屏过会就弹出连接尝试失败,不是很明白什么情况求助作者大大
博主 1942982921
@只是一个路过的恶魔猎人 +1
关了杀毒软件也是如此
博主 dylech30th
@1942982921 见:https://github.com/Pixeval/Pixeval/issues/194
请重新下载,下载链接:https://60.214.102.125/dc/Pixeval.zip
博主 dylech30th
@只是一个路过的恶魔猎人 见:https://github.com/Pixeval/Pixeval/issues/194
请重新下载,下载链接:https://60.214.102.125/dc/Pixeval.zip
博主 只是一个路过的恶魔猎人
@dylech30th 感谢作者大佬 辛苦了
博主 sora
大佬可以给个新的下载链接吗,文件不存在
博主 dylech30th
@sora https://60.214.102.125/dc/Pixeval.zip
确定是这个链接嘛?试试从这个链接下载
博主 1159482640
reCAPTCHA加载不出来了。。。
博主 憨星沉\^o^/
我下载的图片无法自动命名,会被覆盖。这个怎么解决?
博主 dylech30th
@憨星沉\^o^/ 呀,下载路径宏是当前版本的一个小bug, 很抱歉回复晚了,最近在写新版本会修复这个bug,进度可以在这里追踪~,可以耐心等待新版本写完
博主 憨星沉\^o^/
@dylech30th 谢谢博主回复,等待博主修复。博主辛苦了。
博主 憨星沉\^o^/
我系统是win11的
博主 ghost丶凡酱
在哪里加群鸭
博主 dylech30th
@ghost丶凡酱 815791942
博主 610308859
大佬,一打开就提示安装webview2 runtime,明明已经安装有了
博主 dylech30th
@610308859 请前往GithubRelease下载新版本,已解决问题
博主 zero_ky
换了新电脑重新下了,然后安装到MicrosoftEdgeWebview2Setup时因为安到后面突然消失我以为闪退了,打开pixeval也提示需要安装于是多整了几回,后来能上去之后的弹窗说自动安装证书什么的然后就点确认了,之后就成了
这样了,目前不知道咋整。。。
博主 zero_ky
@zero_ky 这个解决了,发现MicrosoftEdgeWebview2能重复安装并且同时存在,但问题是。。。只有一个的时候会提示让安装这个。。。
博主 dylech30th
@zero_ky 啊,新版本已经解决这个问题了,是个我写的BUG(
博主 Aatrox
请问下载的一个图包为什么会只有一张和图包同名的图片……我记得原来是下载一个文件夹的
博主 dylech30th
@Aatrox 之前是没问题的…然后某次更新之后写了个BUG….现在正在重新写新版本但是因为学业所以进度可能会比较慢
博主 天宫一号
好奇的问一下,为什么要移除检查更新的代码啊? {{fadai}}
博主 dylech30th
@天宫一号 因为之后要重构用WinUI 3写的新版本
到时候更新的架构会完全重写,之前的更新写的非常粗暴,之后是要认真设计一下的
博主 kaij
WebView2 是装了的不知道为什么打不开
博主 asdfghjkl
大佬我改了pixiv密码后一直更新资料怎么办
博主 1942982921
在最新版本登录的时候,显示“请进行reCAPTCHA验证。”
就一直卡在这,即使我使用了魔法也是卡在这