Spiritの小站 https://spiritx.xyz Sat, 07 Dec 2019 00:53:58 +0800 zh-CN hourly 1 我为什么不将微信作为常用软件 https://spiritx.xyz/1031.html https://spiritx.xyz/1031.html#comments Fri, 06 Dec 2019 14:10:48 +0000
“加个微信吧!” “抱歉,我用QQ。”]]>

只一次遇到别人惊讶:“你居然没用微信!” 作为一名学生,虽然我对QQ的一些方面也不大满意,但我觉得QQ已经满足我所有的需求了,我非常不想在我的手机上安装两个功能重叠的app,但碍于一些原因,我也不得不在手机上安装一个微信,但每次打开微信时各种订阅号、公众号推送让我很是心烦。屏蔽吧怕错过一些重要消息,不屏蔽吧待处理消息分分钟99+。我的家长亲戚中很多人都用微信,在得知我居然在用QQ,他们都会诧异道:“什么年代了,你居然还在用QQ!” 也许我就是那个落后于潮流前沿的人吧 :doge笑哭: :doge笑哭:

我常用的IM和IRC软件为:QQ > Telegram > yaaic/HexChat > 微信。QQ的功能十分完善,但也有不少臃肿的东西,比如会员,Q钻什么的,这点不如微信;至于Telegram,就不用多说,详见这篇文章这篇文章;相较于IM软件,IRC软件就比较简陋,但作为聊天来使用却是十分合适,没有太多无用信息刷屏,操作方式带有极客范儿,不过由于年代久远,服务器数目已经大不如前,目前我主要在freenode的服务器上。微信的话,我将在接下来提到。

理念
在微信之前的时代,网民们的网络身份通常是电子邮件地址。而微信的出现,改变了这一点:把手机号以做成了第一身份认证手段。把手机号做成了凌驾于身份证之上的认证手段。这与一些要求手机号绑定但手机号并非第一认证手段的app,是不相同的。我第一个微信号时在初中时创建的,当时的注册方式是一张未实名的移动卡,在手机掉了之后,那个微信号就随之消失了,也不知道被谁注册到了那个手机号,然后再通过手机号登上了我的微信 :捂脸: 。虽然我非常不喜欢这种通过手机号认证的方式,奈何有几个常用的App无法舍弃,只得老老实实去用手机号注册。现在用的微信号是我初二的时候通过关联QQ号注册得到的,那时候的微信有个很方便的功能:收发QQ消息。为了尝鲜,我使用了一段时间,然而有一天,点击接收的QQ消息后,它却告诉我不再支持此功能了(???黑人问号脸),把QQ用户骗到这里来,然后就不管了??
啥也干不了的PC端
使用过PC端微信的人,都会遇到一个蛋疼的问题:扫码登录。不知道微信的策划是怎么想的,难道怕用户记不住密码吗 :doge笑哭: ,之后还有“密码不如扫码安全”的逻辑,对此,我敢苟同。只能说各有各的好处,但并没有直接证据可证明扫码比密码安全,只能说这是一个很蛋疼的设计。受此荼毒,企业邮箱现在也是扫码登录,所以,我选择迁移到了Yandex。此外,微信的PC端功能很少,许多操作只能在手机上完成,就连红包功能也是最近才加入PC端的。
辣鸡的相册
微信的Android端在选取图片时,并没有调用系统相册,反而是自己造了个轮子,关键是还不如系统自带的相册好用,反而多出来一大堆预览图缓存,占用手机的存储空间
备份麻烦的聊天记录
腾讯微信官方一直不提供导出聊天记录到CSV或TXT文件的功能,用户的数据安全无法得到保障。即使其表明用户聊天数据点对点加密服务器不留底不储存,所以聊天记录只能保存在双方设备上,然而由于聊到敏感话题被封禁甚至被拘留这种新闻屡屡可见,那么问题来了,证据是从哪收集到的 :喷2: 我想说:既然立了牌坊就别去当**
不成熟的群聊
QQ群在功能上碾压微信群聊——发公告发通知,永久保存群文件,传文档,下表格,共享资源,回复功能,压缩包,管理员组织能力,碾压微信。更别说QQ还自带邮箱和网盘了。 至于QQ空间的日志相册评论转发等多媒体功能更是碾压微信朋友圈。
烂大街的公众号
开通公众号门槛极低,所以导致了一大堆辣鸡公众号天天发一些震惊、养生、鸡汤,也不管信息可信,只管发,为了引入流量,真什么都敢写...如果你加了长辈群,那么群里一定充斥着震惊养生造谣鸡汤等等,我本人特讨厌鸡汤还有那种没什么质量的短视频,长辈们居然觉得很不错。

以上所述即为我不用微信的几个理由,但世事无绝对,我只能说在现在的情况,因为谁也不能保证未来一切尽在掌握,也许有一天微信填补了它所有的缺陷,也许有一天我因为特殊原因不得不24小时开着微信...... :傲慢:

近年来移动端发展迅速,社交软件中微信可以说是首当其冲了(简陋的电脑端、必须扫码、文件大小限制等),似乎微信设计之初就没有将PC端作为其主要战场,而是将这片土地留给了它的兄弟QQ,但是它在移动端领域却是有取代QQ之势,反观手机QQ却一直没有碰微信的市场的意思,虽然推出了办公使用的Tim(一年没更新了),但没有触及到微信的核心利益,QQ、微信各有不可替代的作用和定位,作为同一家公司的软件,我想,如果要将功能都做得相同在技术上很容易实现,但这样结果必定不会好。毕竟,利益最大化才是问题关键。

]]>
https://spiritx.xyz/1031.html/feed/ 2
Spiritの日记 2019.12 https://spiritx.xyz/1030.html https://spiritx.xyz/1030.html#respond Mon, 02 Dec 2019 14:49:35 +0000 2019年12月日记]]>

2日

  • 一旦临近考试,我的状态简直不像是在复习,浪的飞起
  • 今天好冷,感觉照这个节奏下去,这天儿连秋裤都不能拯救我了(笑哭

3日

  • 今天折腾了一下小站的QQ头像输出,估计之后不再暴露源链接了,而是通过加密后的链接(虽然我还没做出来

6日

  • 期末复习,启动!
  • 这几天睡眠不是很好,半夜经常醒,白天又困,今晚早点休息

]]>
https://spiritx.xyz/1030.html/feed/ 0
Posting file via wp_remote_post https://spiritx.xyz/1029.html https://spiritx.xyz/1029.html#comments Tue, 26 Nov 2019 08:47:41 +0000 https://spiritx.xyz/1029.html send an HTTP POST request using wp built-in function]]>

For several reasons I don't want to use curl, and I have known that WordPress has methods for HTTP request, so I choose wp_remote_post(), which allows you to send an HTTP post request, and return an array. Here's the code example:

<?php
$upload_url = "URL_YOUR_UPLOAD_FILE_TO";
$local_file = "PATH/TO/FILE";
$filename = basename($local_file);
$name = $local_file;  //name of Form Control
$Boundary = wp_generate_password();  //split signal, see: https://www.ietf.org/rfc/rfc1867.txt
$bits = file_get_contents($local_file);

$args = array(
    "headers" => "Content-Type: multipart/form-data; boundary=$Boundary",
    "body" => "--$Boundary\r\nContent-Disposition: form-data; name=\"$name\"; filename=\"$filename\"\r\n$bits\r\n--$Boundary--"
);

$response = wp_remote_post($upload_url, $args);
if (!is_wp_error($response)) {
    $reply = $response["body"];  //the remote server's reply
    var_dump($reply);
}
?>

reference: https://www.jianshu.com/p/29e38bcc8a1d

]]>
https://spiritx.xyz/1029.html/feed/ 4
评论修改 https://spiritx.xyz/1028.html https://spiritx.xyz/1028.html#respond Sun, 17 Nov 2019 12:32:07 +0000 https://spiritx.xyz/?p=1028 主题内置评论 Markdown 解析,评论上传图片服务方改为 Imgur]]>

主题内置评论 Markdown 解析,评论上传图片服务方改为 Imgur

]]>
https://spiritx.xyz/1028.html/feed/ 0
Spiritの日记 2019.11 https://spiritx.xyz/1025.html https://spiritx.xyz/1025.html#respond Sun, 17 Nov 2019 12:10:03 +0000 https://spiritx.xyz/?p=1025 2019年11月日记]]>

说好的坚持在小站写日记来着,结果前段时间一直太忙就咕咕咕了好久 ,现在继续

17日

  • 把主题又修改了下,不过只是小小的修改,大改估计等重构版出来了
  • 研究了一下午的算法,脑袋有点晕

18日

  • 许久不联系的朋友今天聊了聊,还不错

19日

  • 沉迷学习无法自拔

21日

  • 编译原理虐我千百遍,我待之如初恋
  • 晚饭吃了个大份香锅,爽啊~

22日

  • 又到了一年一季的雾霾天,晚上睡觉没关窗的后果就是第二天因为吸霾过多而头昏脑涨-_-
  • 剥柚失败~弄得满身都是柚子汁
  • 日常沉迷学习

23日

  • 宿舍宅了一天,无心学习(-_-)

26日

  • 临近期末就是忙啊~

27日

  • 编译原理感觉又懂了(苦笑
  • 算法是真的难啊

28日

  • 宿舍的快乐肥宅生活~

29日

  • 捣鼓wp rest api,绕晕了

30日

  • 心情十分浮躁,看书看不进去

]]>
https://spiritx.xyz/1025.html/feed/ 0
WordPress评论支持Markdown https://spiritx.xyz/1026.html https://spiritx.xyz/1026.html#respond Sun, 17 Nov 2019 12:09:22 +0000 https://spiritx.xyz/?p=1026
WordPress评论免插件支持Markdown]]>

缘由

之前有过一篇记一次小站评论功能的修改,目的是为了防止xss攻击,当时我使用的评论 Markdown 解析器是 WP-Editor.md 插件,最近更新WP发现插件有冲突,遂禁用了它,换用代码实现,如果你和我一样使用的是同一款主题的话,commit 已提交,快去更新吧~

引入Markdown解析器

原理很简单,与 WP-Editor.md 类似,在评论提交时,首先检查评论的合法性,再将评论转换为 HTML 并写入数据库,同时,原 Markdown 评论也储存进数据库,为了这样,我在 wp_comments 里增加了一个字段 comment_markdown,在读取评论打印的时候,直接显示转换好的html,这样做有个好处就是不用每次都转换评论,节省了不少资源,同时,原格式的评论有一个存档,虽然增加了数据库的一点点体积,但我认为不错。
用到了下面这个程序

这里下载源码,我们所需要的是压缩包里面的 Parsedown.php ,将它放入主题目录的任一位置
functions.php 里面引入它:

...
include path/to/Parsedown.php
...

之后,就可以在想要使用的地方像下面这样来使用啦~

$Parsedown = new Parsedown();

echo $Parsedown->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p>

转换评论

使用WP的 preprocess_comment 在评论写入数据库之前拦截它

function markdown_parser($incoming_comment) {
    global $comment_markdown_content;
    $comment_markdown_content = $incoming_comment['comment_content'];
    include 'path/to/Parsedown.php';
    $Parsedown = new Parsedown();
    $incoming_comment['comment_content'] = $Parsedown->text($incoming_comment['comment_content']);
    return $incoming_comment;
}
add_filter('preprocess_comment' , 'markdown_parser');

储存原评论

原评论也很重要,因为kses的关系,部分评论可能会被转义,这时候就需要原评论啦~

新建字段

global $wpdb;
$myCustomer = $wpdb->get_row("SELECT * FROM wp_comments");
if (!isset($myCustomer->comment_markdown)) {
    $wpdb->query("ALTER TABLE wp_comments ADD comment_markdown text");
}

存入数据

在之前我定义了一个全局变量 $comment_markdown_content,现在就要用到它啦,do_action("comment_post") ,写入数据库立即触发

//保存Markdown评论
function save_markdown_comment($comment_ID, $comment_approved) {
    global $wpdb,$comment_markdown_content;
    $comment = get_comment($comment_ID);
    $comment_content = $comment_markdown_content;
    $wpdb->query("UPDATE wp_comments SET comment_markdown='".$comment_content."' WHERE comment_ID='".$comment_ID."';");
}
add_action('comment_post', 'save_markdown_comment', 10, 2);

打开评论HTML标签限制

为了安全,除管理员外wp的评论都会经过kese,甚至有时候管理员的评论也会过滤,这就需要我们来打开这个限制

function allow_more_tag_in_comment() {
    global $allowedtags;
    $allowedtags['pre'] = array('class'=>array());
    $allowedtags['code'] = array('class'=>array());
    $allowedtags['h1'] = array('class'=>array());
    $allowedtags['h2'] = array('class'=>array());
    $allowedtags['h3'] = array('class'=>array());
    $allowedtags['h4'] = array('class'=>array());
    $allowedtags['h5'] = array('class'=>array());
    $allowedtags['ul'] = array('class'=>array());
    $allowedtags['ol'] = array('class'=>array());
    $allowedtags['li'] = array('class'=>array());
    $allowedtags['td'] = array('class'=>array());
    $allowedtags['th'] = array('class'=>array());
    $allowedtags['tr'] = array('class'=>array());
    $allowedtags['table'] = array('class'=>array());
    $allowedtags['thead'] = array('class'=>array());
    $allowedtags['tbody'] = array('class'=>array());
    $allowedtags['span'] = array('class'=>array());
}
add_action('pre_comment_on_post', 'allow_more_tag_in_comment');

为了更加安全,可以更进一步

...
$allowedtags['pre'] = array(
    'class' => true,
    'id' => true,
);
$allowedtags['code'] = array(
    'class' => true,
);
...

或者采用我的方法,直接禁止HTML代码

后记

大功告成啦,这次修改又学到了好多东西,后续我可能会把前端的评论给改了,加个编辑器

]]>
https://spiritx.xyz/1026.html/feed/ 0
失误 https://spiritx.xyz/1022.html https://spiritx.xyz/1022.html#comments Fri, 11 Oct 2019 09:02:35 +0000 https://spiritx.xyz/?p=1022
一直以来享受dd操作的便利性,没想到这次却翻了车]]>


一直以来我都觉得dd很方便,之前看到网友戏称 dd=disk destroyer 还觉得我怎么可能会出错,对之不屑一顾,没想到这次却因为我小小的输入失误损失了如此多的数据。前天下午,在烧录树莓派镜像时错把备份镜像烧进了移动硬盘,虽然我及时终止了dd操作,但还是损坏了我的分区表,在此操作前我还特意用了fdisk -l查看磁盘号,可惜输入错误。我移动硬盘只有一个大小为4TB的NTFS分区,经过两天的各种尝试(包括TestDisk和DiskGenious),没能恢复分区表。万般无奈下只能在Windows下尝试使用恢复软件进行恢复,直至目前还在扫描中......这块希捷STDR4000301移动硬盘陪伴了我几年了,里面存了不少东西,我还往里面放了一个大小为1T的VeraCrypt的虚拟磁盘文件,用于加密我的一些重要数据,没想到这次却。。
目前还不能保证能恢复多少数据,但损失是不可避免的,罢了,也算是一次教训吧,之后的dd相关操作我都将使用/dev/disk/by-id的方式,避免出错,写下这篇文章提醒我自己,也提醒我的访客们,涉及到数据的操作一定得谨慎谨慎再谨慎!!!切记!切记!特别是像dd命令这样的高风险操作!!

]]>
https://spiritx.xyz/1022.html/feed/ 6
添加番組页面 https://spiritx.xyz/1018.html https://spiritx.xyz/1018.html#respond Fri, 04 Oct 2019 13:59:37 +0000 https://spiritx.xyz/?p=1018 添加番組页面,用于展示看番状态。另:添加评论链接安全性检查 查看页面]]>

添加番組页面,用于展示看番状态。另:添加评论链接安全性检查
查看页面

]]>
https://spiritx.xyz/1018.html/feed/ 0
Spiritの日记 2019.10 https://spiritx.xyz/1015.html https://spiritx.xyz/1015.html#respond Tue, 01 Oct 2019 14:40:13 +0000 2019年10月日记]]>

1日

晴,今天没打字

  • 早起看了阅兵,心里感慨万千啊~
  • 中午的饭菜很棒,开心+1
  • 学校网络中心升级,接下来的几天都没网,今天流量已超,开始限速了,难受。。

2日

  • 没网我快无聊死了,,,
  • 《MR ROBOT》看到第三季了,两天刷完一季,第一次整天看剧
  • 许久不打字,手感生疏了不少

3日

  • 捣鼓了一天番組页面,终于做出来了一个像样的界面,css搞得我脑袋有点晕...

4日

阴,今天没运动

  • 早上起来,突然降温十多度,感觉很酸爽~
  • 经过我不断地修改,番組页面终于上线,采用3栏瀑布流样式,不得不吐槽一句,调CSS是真的难受

5日

晴,今天没打字

  • 又把番組页面修改了,这次的样式我比较满意

6日

  • 继续完善番組页面
  • 打字水平逐渐下降。。。

7日

  • 滴~假期余额已不足,在宿舍宅了一天

11日

  • 一顿操作把移动硬盘的数据给搞没了,忙活了两天没有收获,我3.2TB的数据啊~

12日

  • 一整天都在恢复数据。。

14日

  • 终于把移动硬盘里的数据全部抠出来了,等慢慢转移进去
  • 我感觉我在有关电路的实验课上就是个傻子,N次接错。。

21日

  • 这个月事儿好多,咕咕咕了好多天。。。
  • 硬盘数据差不多全部还原了
  • 改了网站部分内容
  • 算法课快一个月没上了,总是那么巧,课总是被冲掉~打开教材一脸懵逼o_o

29日

  • 感冒了,咳嗽了一天,头好痛...
]]>
https://spiritx.xyz/1015.html/feed/ 0
Spiritの日记 2019.9 https://spiritx.xyz/1008.html https://spiritx.xyz/1008.html#comments Sun, 01 Sep 2019 12:12:56 +0000 https://spiritx.xyz/?p=1008 2019年9月日记]]>

以后会在小站坚持写日记,特此搞了个这么个东西。一月一文,点击日历中的日期可达相应位置。特别感谢 @Kiosr 的代码,给大佬递茶 :茶:

1日

  • 开学物品筹备中,疯狂购物。快递每天都有,快递柜又远,我取快递快累死了
  • 简单看了下书,这学期学的东西挺多的(可以从厚度看出来),说实话有点枯燥
  • 打算开启新学期的锻炼模式了,嗯,就从明天开始吧,运动 go go go!!
  • 补番《我的妹妹不可能那么可爱》ing...

2日

晴,热!!

  • 上课时才发现买错书了,买成了习题解析(讲真封面真的太像啦),于是我又重新下单了(汗
  • md 今天老师上课居然咕咕咕了将近一节小课,没 ppt 不能讲课吗??
  • 太久没运动,再加上肥宅快乐水的神奇功效( ,我腹部的皱纹已经完全消失不见了(手动滑稽 ,做几个卷腹都感觉累,,,
  • 把柜子和桌面又收拾了下,现在看起来不错,又买了个架子来放东西(剁手

3日

  • 编译原理听的我难受,得再好好琢磨琢磨
  • 忘记交电费,晚上断电了。。。这么热的天啊~我想静静...

4日

晴,今天没运动

  • 肚子不舒服...........今天总是打瞌睡(丧
  • 取快递时路过操场,看到了军训的学弟学妹们,话说这届学生好高啊,看来我得多补补,多运动,再长高一点!
  • 今天和同学聊了聊,我打算写一个网站系统当毕设,大四可能要实习没时间,所以从现在开始构思
  • 查看nginx日志发现一大堆垃圾爬虫产生的访问,所以我配合 CloudFlare Workers 写了一个脚本,只要是辣鸡爬虫来就重定向到百度上搜索我的网站哈哈哈哈哈哈哈哈哈哈,这样做的好处是 Serverless ,节省了服务器的一部分资源,又提升了我的 SEO 嘻嘻嘻

5日

晴,闷热

  • 今天运动明显感觉到腹部力量恢复了不少,比起第一天好很多,以后运动主要练背部、腹部和腿
  • 又是取快递的日子,这周每天都有。。。。
  • 把木架子放到桌面上的格子,有收拾了下,总算看起来整洁些了,看来提高空间利用率很重要啊 哈哈
  • 今天的两节课都在同一个教室上的,空调坏的、麦克风也是坏的,加上今天的天气,简直折磨人啊啊啊啊啊

6日

  • 搞了个新域名,还不知道干啥用。。。
  • 今天居然玩了好几个小时的2048,就是我太菜了233
  • 晚上舍友回来,喝多了,,,妈耶,还好我从不喝酒

7日

  • 宿舍宅了一天

8日

  • 又宅了一天。。。
  • 发现我打字很差劲,开始练习
  • 话说我感觉和前几天相比做同样强度的运动越来越轻松了,慢慢加大运动量吧

9日

晴,闷热

  • 今天感觉有点累,学习状态很不好
  • 打字练习,我是真的手残(笑哭)

10日

  • 编译原理真TM枯燥!!上课听得我头昏脑胀
  • 再次被打字练习虐哭了,不过我会坚持的(笑
  • 这几天右边肩膀酸痛,做个俯卧撑都疼,与手臂相关的运动看来要停停了,,

11日

  • 修改了网站的一些细节,性能应该会提升一点吧~~

12日

  • 肩膀日益酸痛,我以毒攻毒,锻炼时特别照顾了它(
  • 沉迷于小霸王游戏。。。

13日

多云

  • 今天四处走动,有点累
  • 中秋佳节,居然没有月亮!差评!!
  • 晚上吃了火锅,爽~~

14日

  • 睡了一天。。。。。

15日

晴,今天没运动

  • 给网站添加了一只Tia,这样Pio就不会孤单啦~
  • 最近学习会很忙,我打算在国庆做一个番組页面出来
  • 编译原理真的难啊~(哭

16日

晴,凉爽

  • 现在才发现算法也很难,唉,我太南了(丧
  • 清理了下宿舍,心情也变好了^_^
  • 和朋友聊天,勾起了我一段久远的记忆。。。

17日

  • 开始入坑CSS,哈哈哈,张大神的魔法世界

18日

  • 尝试修改了一部分CSS,我的玄学优化操作hhhhhhh
  • 不知怎么的,今天晚上很累,看来得早点睡了

19日

多云,凉爽

  • 昨天运动过量了,今天早上起来腰酸背痛,一整天都焉焉的-_-

20日

  • 今天也是无精打采的一天(大雾

21日

  • 今天又看了一遍几年前写的东西,觉得自己很幼稚
  • 尝试为小站新功能,用到了ajax

22日

晴,今天没打字

  • 被算法设计虐哭了

23日

  • 早上被人鸽了,难受
  • 写了个爬虫,准备用树莓派干坏事了(嘿嘿

24日

  • 把网站js减少了将近一半,采用动态js,按需加载
  • 晚上去散了散步,又胡思乱想了很多。。。

25日

  • 今天取快递,发现我买了俩勺子,结果卖家发了4把给我,这是什么操作(
  • 完蛋,运动快一个月体重不减反增,看来我吃的太好了(不排除我又长高的可能性哈哈

26日

晴,今天没运动

  • 这几天晚上都睡不好,一整天困。。。心情烦躁

27日

晴,今天没打字

  • 打字练习暂停一周,国庆啦啦啦啦~

28日

晴,今天没运动,没打字

  • 宅了一整天~

29日

晴,今天没打字

  • 今天也是肥宅的一天(雾
  • 把《C座802》从头刷到了尾,不得不说挺有意思的,不过没《朱一旦的枯燥生活》把握的好

30日

晴,今天没打字

  • 成了仰卧起坐,感觉好累~
  • 这两天睡眠严重不好,白天脑袋昏昏沉沉,国庆假期得好好补补觉

]]>
https://spiritx.xyz/1008.html/feed/ 8