RuliaReader / Rulia

This is a manga reader. It gives you different feeling. Give it a shot.
https://lancercomet.com/rulia
131 stars 0 forks source link

能否添加Webdav支持? - WebDAV support #118

Open Meonthb opened 7 months ago

Meonthb commented 7 months ago

希望通过webdav实现windows和ios漫画同步,如果能支持通过webdav访问网盘就好了

LancerComet commented 7 months ago

理论上 webdav 只是一个协议,做好之后应该可以支持所有 webdav 服务器,我打算先从插件的方式去提供支持,因为本质上是 http 协议的东西,如果效果不好就做到原生中去

另外想请教一下,平时用其他阅读器看 webdav 上的漫画的时候,有预加载过程吗?特别是那些比较大的压缩包

Meonthb commented 7 months ago

感谢大佬,我ios用可达漫画通过webdav看cbz,第一次打开会有加载延迟 (extract),不过可能是由于有缓存,之后再打开就不会有延迟了。

LancerComet commented 6 months ago

关于 WebDAV 支持,我已经写好了基础设施代码,但我目前暂停了开发,因为我发现 Windows 对 WebDAV 的整合程度相当高,完全可以当本地磁盘来使用:

image

图里面画框框的都是 WebDAV,是 Windows 中对 WebDAV 的两种映射方式,使用起来和本地磁盘没有区别,目录直接可以添加到书架:

image

因此我觉得自己实现一个整合度完全比不上 Windows 的 WebDAV 是一个很蠢的行为,以前没有机会使用 WebDAV,所以没有提前了解 Windows 对其的支援程度,现在看来没有提前做研究有点草率;如果有机会的话,我想征求一下您的意见:Windows 对 WebDAV 的整合程度已经很高,是否有必要自己实现?

PS:Windows 系统中的 WebDAV 默认有两个限制,一个是地址必须是 https,一个是打不开 50MB 以上的文件,这两个限制都可以轻易使用注册表解除掉.

Meonthb commented 6 months ago

感谢大佬,首先说声抱歉,我也不知道Windows有自带webdav支持,因为之前用Zotero是软件内支持WebDav的就没有去想这个问题。

但我发现用Windows挂载WebDav这种方式似乎存在一些问题,文件传输老是中断,一直卡在0速度(同样的WebDav服务,Zotero就不会出现这种情况,同步速度很快),不太清楚是否是Windows挂载这种方式本身的问题?

然后就是我用Rulia在WebDav文件夹里创建书架是没法检索到文件夹的,当然这个在非WebDav书架里也是这样的,不知道大佬可以改进一下么?

LancerComet commented 5 months ago

子文件夹的访问功能开启在这里:

image

由于一些原因此功能目前在付费的功能中,开启后可以正常读取子目录:

image

我之前是在群晖上测试的,群晖是局域网内的设备,所以速度很快;刚才在坚果云上试了一下,断连倒是没有,但是 Rulia 会去读书架封面,封面来源于漫画文件,这会导致系统会去从互联网上下载文件,使得整体速度很慢,这确实是个问题,如果自己做 WebDav 可以针对性的去处理这些问题,包括这个封面预览慢的情况.

我一开始的设想是做一个 HttpStream 来抽象成一个本地文件流,背后使用 HTTP 206 去按需读取文件,理论上讲比如打开某个压缩包的某一页时不用下载全部压缩包,只需要下载特定字节;但是现实情况是大量的 .NET 基础设施在使用 Stream 的时候是使用同步的方式使用 Stream,导致线程阻塞,效果上看就是文件在下载时界面卡住,而且这个面太广,不好处理;因此只能提前下载文件并按照用户的设定是否进行缓存,但这样体验和系统的相比并没有什么优势,因为系统的 WebDAV 也是带 HTTP Cache 的,所以我就迟疑为什么不用系统的 WebDAV 映射.

所以我现在总结有两个情况:

我刚才又仔细想了一下体验细节,比我之前想的情况要复杂,因此我现在打算将 WebDav 推到 0.19 之后,将 0.18 已经做好的东西先发出去.

Meonthb commented 5 months ago

谢谢,之前也是因为WebDav和文件夹读取问题在犹豫没有购买的,现在看来文件夹读取是没有问题的,我目前用的互联网的WebDav,虽然用Windows自带的有些问题,不过也暂时能将就用,已经付费支持了,期待大佬更新内置WebDav

LancerComet commented 5 months ago

感谢支持!

dyphire commented 3 months ago

Windows 对 Webdav 的本机支持其实挺垃的,软件内置支持可以更好地实现封面加载和阅读流式加载