2021年8月

[typecho]批量插入的做法

前言

最近想起写推特删除的插件,就往下做了点,结果发现,批量插入推文ID的时候,速度很慢,翻了下TYPECHO 关于DB的代码,发现都是自动提交事务的模式。必须得改,涉及到底层的修改(只是返回了两个私有的对象),修改之后,速度提升了不是一点半点,基本上毫秒级就能插入完成,原先要十几秒。

调整

修改home/var/Typecho/Db/Adapter/Pdo.php,增加


 public function getObject(){
        return $this->_object;
    }

修改home/var/Typecho/Db.php,增加

public function getAdapter(){
        return $this->_adapter;
}

使用

因为是pdo,抽象了具体的数据库实现,事务直接启动,最后提交,都是一样的操作,比如下面的代码:

        $sql = "INSERT INTO ".$prefix."tabletable(id_str,stete)  VALUES(?,?)";
        //改了两个文件就为了取到这个
        $stmt = $this->db->getAdapter()->getobject()->prepare($sql);
        $stmt->bindParam(1, $id_str);
        $stmt->bindParam(2, $state);
        //开启事务
        $this->db->getAdapter()->getobject()->beginTransaction();
        for ($x=0;$x<sizeof($ids);$x++) {
            $id_str=$ids[$x];
            $state=$st[$x];
            $stmt->execute();
        }
        //提交事务
        $this->db->getAdapter()->getobject()->commit();

[typecho]做了一个书架插件

前言

之前用的插件是熊猫小A写的一个同步豆瓣的插件,但现在不能用了,提示豆瓣的api接口过期。网上搜索了很久都没有找到能用的api。于是,就参考他的插件代码,改了一份本地化版的插件。

因为换工作了,时间多起来,现在做运维方面的工作,开发倒是生疏了很多,这个插件前端大量使用了熊猫小A的代码,后端的代码,参考了一些方法。有兴趣的可以自己翻阅。

特性

  1. 采用api.jike.xyz 提供的书籍接口
  2. 目前只能单个提交ISBN编码,加入书架
  3. 书籍信息落地到数据库中存储
  4. 后台管理书籍
  5. 后台管理支持按书籍状态筛选
  6. 缓存生成cache/book.json,移除了缓存到期配置,每次添加书籍,修改书籍等操作都会自动刷新缓存。
  7. 移除了单本书节点
  8. [熊猫小A]支持单个节点的方式插入HTML代码
  9. 移除了豆瓣电影(这只是书架插件,无关电影类)
  10. [熊猫小A]使用wordpress缓存豆瓣图片
  11. 书籍分页

- 阅读剩余部分 -

[vscode]升级到1.59版本后, vscode-sftp 插件无法使用的问题

前言

vscode自动升级到1.59的版本后,其中的插件vscode-sftp不能上传文件了。

提示:No Such file

排查

我先排查了自己最近是否有调整过sftp的配置文件,发现最后修改还是几个月前,而几个月前还是用的好好的。

然后排除了网络,因为download能够把文件同步下来。

发现原因

找到sftp的插件目录,按照提示的信息找到对应的代码,发现用的是sftp-stream这个库,于是上去找,究竟是被我找到了:Fix error "No such file" when using SFTP extension on vscode > v1.55.2. #174

解决

按照Fix error "No such file" when using SFTP extension on vscode > v1.55.2. #174上面的方式去修改即可,修改玩重启vscode,不然不生效哦