权那他

1688 分类: 原创内容

南博 使用说明

南博 - typecho 客户端的使用说明, 确保照此就做

介绍/下载

keyvalue
介绍https://krait.cn/nabo.html
下载https://www.coolapk.com/apk/240898

友人的教程

欢迎大家留下你撰写的教程

keyvalue
使用教程优雅的Typecho安卓客户端nabo
使用教程欢迎提交
使用教程value
使用教程value

根据要求

keyvalue
原因为了南博更好的发展,南博不再使用官方给的xmlrpc方法
解决前往南博官网替换XmlRpc文件
下载https://github.com/kraity/typecho-xmlrpc
操作获取下载的 XmlRpc.php 文件
操作把下载 XmlRpc.php 替换你博客的 /var/Widget/XmlRpc.php
附言应和[南博]版本号相同使用。
附言不同版本有不同功能和算法。
keyvalue
step 1安卓手机
step 2安卓版本不低于 android 7
step 3下载南博
step 4安装南博
step 5打开博客的XmlRpc接口
step 6启动南博
step 7输入域名
step 8点击检测
step 9若XmlRpc过旧则需更新
step 10输入账号密码
step 11等待几秒钟
step 12进入主页面
step 13下拉刷新
step 14欢迎使用

打开博客的XmlRpc接口 (设置->基本->XMLRPC 接口)

提示XmlRpc接口不存在?

keyvalue
版本value
问题提示XmlRpc接口不存在
出错对象是博客的原因,不是南博的原因
原因博客阻断了南博发送的post请求
原因一个XML-RPC消息就是一个请求体为xml的http-post请求
解决关闭post过滤,关闭user-agent过滤

为了安全?

keyvalue
目的为了博客的安全
措施南博支持了密码md5加密过后密文登陆
原因众所周知md5加密的密文后一般不可以逆向的
获取密文打开数据库
对象找到表名typecho_users
对象找到你博客的账号
发现你会发现有 uid name password ....
找到password 对应的值(全部复制) 比如是: $P$B7REihLFP0nt5Ed06yw8Cig5IoC1dC/
加密加密成32位小写
加密用md5加密上述找到的对应值 比如加密后是bbe94415259eb11179f167a7f71241ea
登陆用上面加密过后的密文,就可以就它登陆南博了
keyvalue
目的为了更更安全?
措施使用上述的密文登陆
措施让博客的xmlrpc不支持明文登陆,仅许可密文登陆
更新修改/var/Widget/XmlRpc.php文件
位置按ctrl+f 搜索 if (preg_match("/^[a-f0-9]{32}$/", $password))
操作找到这个if(...){....}else{.....}
操作去掉这个if(...){....}else{.....} 后面的 else{.....}

Markdown

keyvalue
原因南博编辑器仅支持markdown
故然需要告知typecho我们用的markdown编辑
前往https://example.com/admin/profile.php
位置个人信息->撰写设置->在 XMLRPC 接口
操作使用 Markdown 语法->打开

评论管理

keyvalue
需求使用评论回复
解决关闭评论中的开启反垃圾保护
前往后台->设置->评论->评论提交->开启反垃圾保护
操作关闭它
附言它的上下几项在没有回复成功则也要关闭

探索与发现

keyvalue
版本v1.5
更新替换/var/Widget/XmlRpc.php文件
更新修改/var/Widget/Upload.php
修改位置126行
需修改代码if (!file_put_contents($path, $file['bytes'])) {}
目标代码if (!file_put_contents($path, base64_decode($file['bytes']))) {}
keyvalue
版本v1.3 - v1.4
更新替换/var/Widget/XmlRpc.php文件

附件

keyvalue
版本v1.5
通知已修复上传文件限制问题
更新修改/var/Widget/Upload.php
修改位置126行
需修改代码if (!file_put_contents($path, $file['bytes'])) {}
目标代码if (!file_put_contents($path, base64_decode($file['bytes']))) {}

如果你使用了其他的附件上传插件,则可能无法使用上传图片,应为都没有写byte流写入内容的考虑

keyvalue
南博版本v1.4
插件OssForTypecho
插件名字阿里云OSS上传插件
位置https://github.com/jqjiang819/typecho-plugin-ossfile/blob/master/Plugin.php

152行

$result = $ossClient->uploadFile($options->bucket, substr($path,1), $uploadfile);

改为

if (isset($file['tmp_name'])) {
    $result = $ossClient->uploadFile($options->bucket, substr($path, 1), $uploadfile);
} else {
    $result = $ossClient->putObject($options->bucket, substr($path, 1), $uploadfile);
}

169行

'mime' => @Typecho_Common::mimeContentType($path)

其改为

'mime' => (isset($file['tmp_name']) ? Typecho_Common::mimeContentType($file['tmp_name']) : $file['mime'])
keyvalue
南博版本v1.4
插件Qiniu File
插件名字Typecho 的附件上传至七牛云存储中
位置https://github.com/licxisky/typecho-Plugin-QiniuFile/blob/master/Plugin.php

108行

$filename = $file['tmp_name'];
if (!isset($filename)) return false;

将其删掉

116行到127行

if ($error == null)   .... else return false; 

将其改为

if (isset($file['bytes'])) {
            list($ret, $error) = $upManager->put($token, $option->savepath . $file['name'], $file['bytes']);
            if ($error == null) {
                return array(
                    'name' => $file['name'], 
                    'path' => $option->savepath . $file['name']  . ($option->imgstyle == '' ? '' : '-' . $option->imgstyle), 
                    'size' => $file['size'], 
                    'type' => $ext, 
                    'mime' => $file['mime']//Typecho_Common::mimeContentType($option->savepath . $file['name'])
                    );
                
            } else {
                return false;
            }
            
            
        } else {
    
        // 上传文件
        $filename = $file['tmp_name'];
        //if (!isset($filename)) return false;
        list($ret, $error) = $upManager->putFile($token, $option->savepath . $file['name'], $filename);
           if ($error == null) {
            return array(
                'name' => $file['name'], 
                'path' => $option->savepath . $file['name'] . ($option->imgstyle == '' ? '' : '-' . $option->imgstyle), 
                'size' => $file['size'], 
                'type' => $ext, 'mime' => Typecho_Common::mimeContentType($filename)
                );
                } else {
            return false;
        
           }
            
        }

#typecho客户端, typecho, nabo

作者: 权那他

版权: 除特别声明,均采用BY-NC-SA 4.0许可协议,转载请表明出处

目录Content

已有 42 条评论

  1.    

    不愧是大佬,挺实用的

    1. 哈哈,谢谢支持😄

      1. 针对腾讯云COS上传并且使用cosUploadV5插件的参考https://github.com/eocene317/cosUploadV5

  2. Lazyman Lazyman

    您好,小米5安卓9 成功登录后不显示文章,但显示rss订阅OωO

  3. 随说 随说

    能做成可以切换账号吗?多个网站也能管理

    1. 版本1.2已支持多博客账号使用了。

    2. 可能我会考虑到这个建议的。

  4. 文章计数你发现问题了吗?我这边后台看是 37 篇文章,但是软件里看是 47 篇,跟隐藏文章文章的话数好像也对不上。

    1. 计数是来自主界面展示的文章的计数。如果不对,文章就多了吧

  5. emmm...订阅错误的 RSS 地址好像会闪退呢

    1. 好的收到,下一个版本写入验证是否为rss地址和有无内容^O^

  6. typecho typecho

    你好,三星s8输入完信息后,点击登录会闪退,目前oneui

    1. 核对一下xmlrpc地址是否正确@_@

  7. 建议在 typecho 的库那边做一个 pr, 还能弄上个 contributer 岂不美哉(手动滑稽)

    1. 不错的提议O(∩_∩)O

评论