TeStore最初诞生于博友蚂蚱(ShingChi)13年底创建的GitHub组织Typecho-Fans(以下简称TF),当时那里主要用于存放肥皂群40412938大大们的各种插件主题作品。14年我加入时为群设计了logo和主页,后来随着几位元老管理都不再活跃TF也归于沉寂。
17年我又重新整理其中的部分作品,发现车坤的AppStore在几经调整后也关闭了源站。与TeStore一样,没了抓取和储存zip包的服务端,似乎所有非官方扩展商店都难逃寿终正寝的结局。
后来在翻看他们的代码时,一段简单的正则匹配表格部分偶然间启发到了我。因为TF的README文档就是用表格来记录作品信息的,如果直接抓取其内容做列表数据,那稳定的GitHub岂不就能做永久服务端了?虽然要人工手写但更新频率也不高,TF便是这么记过来的,以Markdown语法的确简单易行。这样作者们主动更新表格,其他成员随时补充,有点像wiki接力的意思。
于是乎在此理念的驱动下,我把尘封已久的TeStore又拿出来仔细翻新了一遍。除配合表格内容更新为5栏列表并用releases实现各个zip包的单独寄存外,还在原作基础上大幅改进了安装机制,可以适应不同打包情况做到准确解压。由于GitHub国内访问速度时有波动,页面我做了ajax加载效果,完成即可在本地生成缓存,之后无论分页还是搜索便能飞速响应;再加上些图标标记和版本升级提示效果……如此这般,Typecho首个免服务端插件商店终于被我满血复活~
由于所有插件信息都读取自TF目录下的两个MD格式文档,也算是让这个GitHub上最大的非官方Typecho组织有了新的使命与动力。过去由群内作者自发上传的近百款插件主题被重新定位为“社区维护版”,以和外部仅登记下载链接的插件或其他修改分支相区别,其实也更符合TF这些年偶尔有多人自发翻新其中老作品的实际效用。现在那些能保持活跃的新作更多被鼓励仅添加信息到TESTORE.md里,即只需按格式写入稳定的zip包下载地址就能让用户在TeStore里一键安装到了。
当然,TF的插件目录依然接受新作上传。如README.md里注明的,由于组织内源码可由所有成员任意修改,如果作者不在意或已放弃维护,存在这里可能是个不错的主意。虽然实际参与接力维护的人还不多,也已经有好几个多作者署名使老插件重生的成功案例了。“社区维护版”的可用指数更高,或许对插件数量一般的Typecho是个好现象。
承蒙70和版主大大关照,新版TeStore在官方论坛发布后马上即被提为置顶。目前在大家的热心提交下收录插件总数已经达到220余款。我也在今年回归后决定继续大幅更新一波,修复上一版遗留的bug,重点改善下读取速度的问题——
目前除TF外插件作品集中地还有官方GitHub的plugins目录、wiki的插件列表和小夜的插件专题站等。
之前同名插件安装只走第一款的bug现在已经连同非管理员可查看列表页等安全问题一并修复。1.1.4版中从按钮样式到操作提交及反馈效果都回归原汁原味的系统风格;解压缩功能也抛弃掉庞大陈旧的pclzip库使用原生的ZipArchive方法,在格式判断与升级清理等方面增加了更严谨的处理。
最新版的显著改变在于针对国内用户反应GitHub有时被墙造成难以使用的问题开始全面整合jsDelivr和GitCDN两家镜像代理服务。开启后不仅列表数据几乎能做到秒读,zip包也会优先下载TF内加速专用目录ZIP_CDN下的镜像文件地址,使响应速度和成功率大幅提高。所以大家登记插件信息时最好也在ZIP_CDN里放一份zip(重名插件用名称_作者名区别),这样就能让开启相关功能的小伙伴们加速下载了。
强烈推荐使用jsDelivr,因为是官方主打的镜像功能,国内节点很多;GitCDN虽然由CloudFlare赞助但脚本是个人作者写的,稳定性和同步速度表现不甚理想。
以上便是大致的更新说明了。今后这个基于TF目录文档的数据源能否保持长期可用还需要大家共同监督与维护,希望新版TeStore能长期造福于TE用户吧!有问题或建议可以提issues,我会在有余力的情况下继续跟进插件与TF目录的维护工作。:)
特别鸣谢——
神龙见首不见尾的原作者zhulin3141;
Changlog
1.1.5
修正非CDN下表格源码解析bug;
作者信息全取html提高兼容性;
本地信息过滤标签提高准确性;
列表页筛选功能支持作者名称。
1.1.4
列表顶部可分标签显示已安装;
列表图标改为清晰的SVG格式;
美化按钮样式点击提示插件名;
安装删除由ajax改为同步post;
使用系统反馈效果移除sticky;
安装增加目录检测和升级清理;
用PHP原生解压缩移除pclzip;
data移入cacert转为常规目录。
1.1.3
优化代码清除冗余增强可读性;
修正路由访问漏洞提高安全性;
修复同名插件只安装第1个bug;
可选jsDelivr/GitCDN镜像加速;
表格或zip为raw地址自动加速;
加速时优先下载ZIP_CDN文件;
API检测ZIP_CDN目录支持缓存。
1.1.2
新增cURL下载方式选项与验证;
cURL方式下支持SSL证书识别;
使用转码hack改善中文兼容性;
修正解析http源主页链接问题;
修正作者链接为空时报错问题。
1.1.1
修正PHP7兼容和DOM编码问题;
修正多人作者时链接解析问题;
修正父文件夹/单文件插件判断;
优化报错反馈和缺省筛选效果。
1.1.0
用PHP DOM解析HTML表格作源;
异步加载列表并更新缓存逻辑;
按字母排序且已安装自动提前;
支持列表的分页和按简介筛选;
支持附加图标和提醒版本升级;
安装可递归扫描智能判断路径;
优化ajax效果增加action校验。
(Last modified: 2020-06-14 11:04)
2024了,来考古了!
来看大佬
有没有gitee的库,我们省访问不了github了,哪怕使用技巧访问,也不行。
无论安装什么插件好像都只会跳报错呢:
安装插件 - 失败: 压缩包校验错误
安装插件 zbgray 失败: 压缩包校验错误
已经解决了,报压缩包效验错误的直接将缓存设为无缓存就好了
感谢分享 赞一个
无法创建临时目录的问题可以在插件目录下创建 .tmp 文件夹,赋予写入权限就行了
请问一下,我配置没有空格了,但是就是提示邮件发送失败,
[Aliyun] 2021-03-06 11:29:45:
邮件发送失败,错误代码:InvalidFromAlias.Malformed,错误提示:The specified fromAlias is wrongly formed.
邮件发送返回数据:s:278:"{"RequestId":"ADA5CB97-5B97-4C2C-8FEF-DD4EC8809D31","HostId":"dm.aliyuncs.com","Code":"InvalidFromAlias.Malformed","Message":"The specified fromAlias is wrongly formed.","Recommend":"https://error-center.aliyun.com/status/search?Keyword=InvalidFromAlias.Malformed&source=PopGw"}";
-------------------------------------------
然后查到显示:发信人别名格式错误,长度不超过15个符。
这个我不会怎么改了,请问应该怎么改?
[...]https://www.yzmb.me/archives/net/testore-for-typecho[...]
大神,为什么我安装完以后打开显示404错误? 老薛的香港空间
如果你用的是nginx,你要在linux控制台用root执行下面这条命令。其实是因为你上传插件的用户权限和nginx的权限不一致,基本上是因为你用了root上传而nginx无法修改root的文件导致的。
chown -R nginx:nginx 你的网站目录
当然如果你不是nginx,自己查一下网页系统和数据库用的用户组和用户是什么
然后 chown -R 用户名:用户组 网站目录 就可以了
安装错误,它显示:无法创建临时目录,请问如何解决?