2022-04
8

二次验证必须备份

By xrspook @ 9:34:43 归类于: 烂日记

上周当我看到某个二次验证app推荐的时候才意识到我一直在用的Google Authenticator版本根本无法备份。所以如果我要换手机,我只能一个一个网站进去停掉二次验证,然后重新来。但问题是我得能进入那个网站,所以当我浏览器的cookie已经过期,且我的旧手机不见了或者突然坏掉的时候,那些做了二次验证的账号一点办法都没有,如果当初有留手机或许还能要回来,但如果当时根本没有那个操作,那就彻底完蛋了,而且即便有留手机,也未必可以拿回账号。有些网站有备用码,但是有些却没有。二次验证用好的话的确会更安全,但是一旦丢失二次验证,那比丢手机还要致命。丢失一部手机,里面的所有账号都可以冻结。支付宝微信之类的东西重新登录就可以,只要手机号还在,所有问题都不是问题。但是二次验证的app挂掉了,又没有备份的话,天真的要塌下来。当我从小米4c换成红米Note7的时候,用到二次验证的场合不多,估计不会超过5个,但自从我的网易域名邮箱被黑了以后,可以开二次验证的地方我全部都开了二次验证。那是个长长的清单。

要选择什么样的二次验证app?要以什么方式保存?要怎么备份?对我来说这些都非常重要。一开始我用的是Microsoft Authenticator,但不知道为什么安装的时候会有个提醒说需要Google框架,否则部分功能不能用,显然这个是不可能实现的。在两台手机上同时安装Microsoft Authenticator,不知道为什么老手机就是打不开微软账号的登录页面,这是很要命的,因为所有信息都会跟微软账号关联,登不上的话什么都没有。以前的Microsoft Authenticator没有云备份功能,现在的已经可以实现这个,但是当我打开了云备份以后发现创建时间和更新时间完全是一致的,即便我在创建之后又添加了一些东西进去,不知道是不是那个东西根本不懂得显示更新,所以云备份或许真的是备份了,但是备份了多少内容、那些内容是不是最新的,我要打个问号。与其信任那些放在云端服务器的东西不如信任我自己拿在手上的资源。所以我在老手机上安装了新版的Google Authenticator以及Aegis。之所以选择Aegis,是因为那是一个开源的软件,体积很小,而且每次打开的时候都强制要求必须使用密码、刷脸或者指纹。那个东西的好处是可以从很多地方导入密钥,也可以把已经添加二次验证的密钥导出。导出导入这个操作非常关键,这意味着只要你能找到这个app,只要你的备份文件放好了,那么任何时候换手机都不成问题,你甚至可以把手头上多个设备全部装上Aegis,然后导入同一份密钥。这就等于所有设备都可以成为有效的U盾。因为之前没用过这个东西,所以我同时也安装了新版的Google Authenticator,跟旧版最大的区别在于新版的有导出功能,只要你在旧的上面生成一个二维码,再用新的去扫。已经存在的密钥信息就可以一下子都过去了。这样看上去好像很靠谱,但是万一你的手机突然挂了呢,根本没办法做这个传递的工作。所以最根本的解决办法就是在每个网站开始进行二次验证的时候就把那个二维码保存下来。我直接开了个word,把截图贴进去,把最基本的信息也写进去,好让自己辨别那是什么账号,是什么时候生成的。只要有这个文档,哪怕手上所有二次验证app都失效,我依然可以用新的机器扫码关联通行。二次验证推广的时候都说这很安全,就从来没有人说过要如何备份。

昨天晚上我把9个账号的二次验证重新搞了一遍。在开启的时候三个app都扫了,同时也把那个藏着账号信息二维码截图保存了下来。Microsoft Authenticator可以云同步,当我把账号设置完以后,我就直接把那删掉了,因为那个app很大,经常更新会很麻烦,而且那个东西会自动填写密码,所以会后台驻留。Aegis结束后我把信息导出备份。然后再把Aegis和导出的备份在红米Note7上安装一遍。确定以这样的方式转移是完全可以的。二次验证这个东西本来就是为了在不联网的情况之下也能使用。所以我觉得尽量做到不云端同步反而更好。所以现在我两台设备上都已经安装了有效的二次验证app,同时最根本的账号信息二维码文档也已经妥善保存。

如果某天手机丢掉或者突然宕机,让我最担心的就是这个二步验证,现在我终于可以放下心头大石了。

2022-02
10

让自定义小工具复活

By xrspook @ 7:00:15 归类于: 烂日记

花了一整天都没搞懂的事情,突然晚上用了大概半个小时就开窍了。当然,其实功劳不在那30分钟,而是在前面的一直摸索积累。郁闷得要死要活,当然要总结一下经验,免得老是掉坑里。

上回说到自定义小工具时灵时不灵。通常,当我把网上的自定义小工具脚本(12)贴到functions.php,然后在小工具那里把相应的东西拖放到合适的位置,刷新前端就能看到。当我在functions.php修改代码,修改到一定程度的时候仍然可以看到,但改着改着,前端就没了。当我把改到最后还能显示的版本再贴回去,依然没反应。这到底是什么问题呢?后来我意识到不会是某些默认参数缺失导致。我不知道为什么在小工具的后台预览就没有这种缺失问题,但前端显示就有。非常有可能刚好碰上5.9前端和后台默认参数不完全一致。当我把所有之前空着,理论上应该自动带入默认参数的函数都补充为默认写法之后,奇迹发生了!所以折腾了一大轮非常有可能是5.9删掉了某些前端的默认参数,因为他们从这个版本开始可以使用区块进行全站模板编辑,既然所有东西都源于区块,所有东西都不是从自定义代码开始,在区块那里写入默认参数自然就不会有小工具默认参数缺失的问题。但是,他们万万没想到我这个从WordPress大概2.*版本就开始用的老土鬼依然在用很久很久很久很久很久以前的自定义小工具写法,而当时,当自定义小工具参数缺失时估计有默认参数补全……

要创建一个自定义小工具,可以在模板functions.php文件里通过代码方式实现。下面讲的只是创建小工具本身,有些模板没有自带容纳小工具的箱子,导致创建好的小工具后无法让其在前端显示,这里就不继续探讨了。

写一个自定义小工具主要有3步,其中第1步里有4个步骤需要完成:
1 创建小工具
1.1 设定小工具基本参数
1.2 设定小工具前端输出
1.3 设定小工具后台更新参数
1.4 设定小工具后台输出
2 注册小工具
3 激活小工具

转化为代码大概是这个样子:

class widget-ID extends WP_Widget //创建widget,widget-ID必须唯一,必须小写
{
	public function __construct() //widget基本参数设定
	{
		parent::__construct(
			'widget-ID',
			__('widget name'), //后台widget标题
			array('description' => __('widget description'),) //后台widget描述
		);
	}
	public function widget($args, $instance) //widget前端输出
	{
		echo $args['before_widget'];
		********** //要输出的全部放这里
		echo $args['after_widget'];
	}
	public function update( $new_instance, $old_instance ) //widget后台更新设定
	{ 
		return $new_instance; //public function form里更新了这里就更新,因为form没有内容,照抄默认写法
	}
	public function form( $instance ) //widget后台输出
	{
		echo '<p class="no-options-widget">' . __( 'There are no options for this widget.' ) . '</p>';
		return 'noform'; //因为是自定义小工具,参数都已就位,照抄默认写法
	}
}
function mi_register_widget() //注册自定义widget,mi_register_widget函数名随意
{
	register_widget('widget-ID1'); //多个自定义widget在这里全部列出
	register_widget('widget-ID2');
	register_widget('widget-ID3');
}
add_action('widgets_init', 'mi_register_widget'); //激活已注册的全部widget

之前我遇到的时灵时不灵根本原因在于public function update( $new_instance, $old_instance ){}和public function form( $instance ){}虽然我的确不需要表达什么,所以{}直接留空,于是就撞板了…… 所以这两个组后台参数设定可能对自定义的各位来说的确没啥用,但默认写法还是得继续保留,不能留空。

如果有人像我那样在WordPress 5.9之前自定义小工具好好的,但5.9后就前端不显示了,按照上面步骤对照修改后,还需要在后台小工具页面把之前失效的小工具从箱子里删除,然后重新拖放小工具归位。相信我,这个步骤非常重要!!!虽然看上去还是那个模样,但实际上拖放一圈的确就能解决修改代码后,前端无论如何仍然刷新不出来的问题。

撞板是痛苦的,但摸爬滚打后重新站起来的感觉非常好!

2022-02
9

后台预览和前端不一致

By xrspook @ 9:03:30 归类于: 烂日记

自从更新了WordPress 5.9以后,我的blog的自定义小工具在前端一律不显示,可以显示的只剩下系统自带的小工具,这到底是为什么呢?当我在后台用小工具实时预览界面的时候,我的小工具一个都没少,全部都有,为什么预览界面没有问题,实际上前端又有问题呢?5.9是我在春节放假之前更新上的,好长一段时间更新都没有任何问题,所以我根本没想过更新一个大版本会导致这样的事故。WordPress这个东西默认没办法回滚,要回到之前只有手动在服务器操作,而且还不一定兼容。到底是哪里出了状况?

可以肯定的是,5.9和之前的版本最大的区别可能在于全站都可以用可视化的方式用区块编辑,设计模板也不需要写代码了。但显然,对我这种人来说,我不太相信区块可视化编辑,我还是相信我的代码,但自从更新上这个版本以后,我的代码估计跟他们默认理解的有差异,所以就导致了这个问题。我觉得会不会是代码的某些钩子发生了变化,有些失效了,所以就导致我的自定义小工具失效呢?一开始我是这么认为的,但是当我研究过最新的那些模板后,却发现他们的模板里基本不自带小工具。我之所以要自定义小工具,是因为一般的模板、官方的模板通常不具备我需要的功能,所以我只能自己写代码实现。我从前的代码到底跟现在有效的那些语法在什么地方有冲突呢?我必须得找出来。让我觉得很困惑的是,如果是我代码语法有问题,理论上应该无论后台预览还是网站前端出来的效果是一样,也就是我的小工具应该都不起效才对,但实际上两个界面不一样。

当我好不容易找到了一些自定义小工具的脚本,当我把那往我的模板里贴了以后,的确一开始的时候是可以的,但改着改着就不行了。一开始我用的是正向修改,就是对比我自己的脚本跟可以显示的那些脚本,后来发现我觉得自己已经把需要改的地方都改完了,但还是没反应。于是我就开始反过来改,把我自己的东西贴到可以显示的脚本里面,结果发现依然没有问题的。起码可以这么说,核心部分的代码一点问题没有,但到底是什么地方出了问题呢?最后我修改到只剩下函数名称。一旦我把函数名称,东西就失效了。当我把没有失效还能显示的脚本贴回去以后,东西依然是失效的。所以到底怎么整才有效,怎么整会失效,到底是哪里的问题导致我的东西不能在前端显示呢?我花了一整天的时间都没找到原因,因为当我把可以显示和无法显示的脚本放在一起对比,除了自定义函数的名称以及缩进以外没有区别,而那个可以显示的脚本贴进WordPress里有时可以,有时不行。行就行,不行就不行,我写了那么多年的blog模板,无论是WordPress还是其它,从来没遇到过这种有时可以有时不行的情况。之所以这样,我猜他们是在某个地方用了缓存。那个缓存不是我浏览器的问题,因为这边我换浏览器问题依然存在,所以他们为了提高WordPress的运行速度,到底在这个5.9版本里做了什么呢?春节期间我一直没有主动修改,因为我希望过一段时间他们就会出一个新的版本解决前端和预览不一致的问题。如果我的小工具在预览界面也无法显示,我会心安理得。我不会像现在这样知道有问题,但完全不知道问题出在哪里。

可能当新版本出来以后会发现其实根本不是我的问题。

2021-06
26

喜欢搜索

By xrspook @ 13:15:16 归类于: 烂日记

我到底有多么喜欢搜集资料呢?这个东西连我自己都不知道,反正一定程度上我觉得在这个问题上我会上瘾,无论是什么话题。在八卦的问题上我会上瘾,在学术的问题上我同样会上瘾。

我一直都很喜欢大学的文献检索课。那门课程教会了我们做使用查找专业文献的中文的搜索引擎以及外文的搜索引擎。这种优势大概只有在综合性大学才能有。因为如果学校不够大,估计买不起那么多个数据库的查询权限。虽然华农买了很多,但是华农的人也很多,所以我们还是会塞车。不过塞车通常只会出现在中文期刊引擎,外文引擎极少人去蹲坑。相对于中文搜索引擎来说,其实外文的那些逻辑性更强,关键词搞对了,正中目标的概率更高,而且如果找对了一篇,你就可以从那一篇引出非常多其它东西。这个是拉一个出来就引出一串的节奏,非常好玩,但在中国的文献里面拉出来的那些有可能就像我自己投机取巧那样,只是用某个案例提一下凑一下数。这种事情在综述里面最为常见,实际上当我要搜索资料的时候,绝大多数情况之下,我想要的不是这种,而是某些确切的案例,想知道某些实在的现象。

专业搜索都是有套路可言的,但是在八卦搜索方面完全要发挥你的想象力。当然如果你不通过搜索,而只通过蹲点的方式就没有这种烦恼,但是搜索出来的东西可能会更加有趣,因为你说不准什么时候就会遇到一些让你很惊喜的内容。之所以会这样,大概是因为蹲点的那些发布的模式基本上都已经固定下来,无论是内容还是编排方式。人人都从那个渠道去获取信息的话,就没什么惊喜可言,而且当你习惯的那个发布的频率以后,你还会莫名着急等待,某一次等不到的时候可能会大发脾气。之所以要在八卦搜索的时候花心思,是因为我们在国内,外国的很多东西我们都无法直接看到。倒不是因为内容真的有什么问题,而是因为某些平台早就被一枪打死了。对我们而言,我们自己也很习惯在我们熟悉的平台发布我们的信息,在中国,我们用得最多的肯定是微信微博抖音快手之类的东西,当然也会有人用一些小众的平台,又或者像我这样喜欢独立建自己的网站,写自己的blog。多年以后我觉得要保留资料的话,其实最安全的方式还是自己说了算,不把东西发在平台上,哪怕你现在觉得那是一棵大树,肯定不会倒,但是“肯定”这两个字是不存在的。yahoo这棵树够大了吧,但是还是倒了。就更不用说其它平台上面的各种非主流的,那通常只是用来试一下水。这么多年观察下来,全世界范围之内依然能够撑下去的博客系统大概只有 Google属下的blogger,以及可以在平台玩,也可以自搭的WordPress,其他的东西都是浮云。图片可以找不到,视频可以找不着,但是当文字和数据文档找不到的时候真的让人很抓狂。比如前天晚上我找不到一个Excel文件,我觉得大概是因为我没有把它命名好,所以不知道为什么就删除掉了,但幸好我在我的坚果云的回收站里把它找到并存了回来。理论上那个文件应该不存在了,但是坚果云不知道为什么仍然留着。那个文件是我2019年就删掉了的。文件里的信息很重要,因为我在那个文件里记录了Dangal在中国上映61天的全部票房信息,里面也有我自己编排的Tabata,同时也有当年我为了备战广马半程马拉松给自己制定的跑步训练计划。这些关键的信息找不到那可是天大的可惜啊,因为全部都是精心记录编排出来的。我不知道坚果云是因为什么原因,居然还可以把我那些文件存回来,因为理论上他们只有1个月/3个月的后悔药(免费用户1个月,付费用户3个月)。这是非常伟大的功能,但问题是也让人觉得有些心寒。万一我某次不小心放了一些不该放的东西进去了呢?

找回来就好,总比找不回来活在记忆的纠结中强。

2021-05
19

终于有了BLF的官方字幕

By xrspook @ 9:49:52 归类于: 烂日记

NBC到底有没有外挂字幕,从我的观察看来是有的,而且那个外挂字幕好像是西班牙语(虽然他们写的是英语,骗谁呢!),但是怎么下载呢?用什么工具下载呢?能在线下载NBC的网站上去很少,就更加不用说下载NBC字幕的了,既然youtube-dl可以下载NBC的视频,为什么就不能下载它的字幕呢?为了这个东西,我研究了一番要怎么在youtube-dl上下载字幕。理论上视频和字幕可以分开下载,但现在人们的新玩法是下载视频的同时,而且把本来是外挂的字幕内嵌到视频里,这个想法很新颖,这样就可以一次性做完两件事了,但我感觉这种内嵌估计不是硬压,因为如果硬压的话,会需要比较多的时间。下载视频如果网速不好非常的耗时间,但下载字幕就只是个文本,相当简单的一件事。

对我来说,youtube-dl其实最大的障碍是不能直接使用,怎么才能使用呢?这又花了我一点时间。某个东西的技术我又不是很成熟,不确定一定可以,所以翻来覆去搞不清是下载不了字幕,还是说在下载之前的某个步骤做得不好。

最终我的确做到了下载NBC上面的BLF官方西班牙语tt字幕。tt字幕(全称SMPTE-TT,tt是它的文件后缀)是一个XML结构的东西,看上去很像网页文件,它的结构也的确跟网页文件没什么区别。也不管到底这个是什么东西,反正能下载回来,肯定有转换的方式,一开始我想到的是用Subtitle Edit, 结果发现我存的那个软件太久远,所以要使用那个软件的话,需要我装Net Framework 3.5,对老电脑来说,那显然是要安装的,但是对win10来说,这个是不一定安装的存在,我担心安装了这个东西会影响到我的office,因为office的power系列功能很大程度都依赖这个net framework,我一直都用的好好的,如果装了个低版本的导致我出状况,那就真的很郁闷了。所以我尝试过用其它字幕软件,接着发现我最常用的那个Aegisub不行。怎么才可以把tt文件转化为很大路的srt呢?其实当我看到那个tt文件的时候,我就意识到用普通的srt不能解决问题,因为字幕是西班牙语的,有非常多的特殊字符,必须用UTF-8才能解决问题,而srt字幕通常对应的是用ANSI。所以其实转换为ass文件会更好。不知道为什么,网上到处都是vtt或者webtt字幕,却几乎没有tt字幕。 vtt字幕是油管自带的,而webtt字幕是HTML5视频里面很流行的字幕。这两种字幕都可以在网上直接找到转换的地方,但是tt却不行。

纠结了一大轮以后,我甚至有想过要自己写python脚本转换。正在这个时候,网友给我发来好消息,他的Subtitle Edit可以转换这个字幕。之所以我的那个不行,是因为我不想安装框架,无法打开软件。我赶紧又下了一个最新版本的Subtitle Edit,非常快速高效地就把我想要的东西转换了出来了,但是,总感觉转换出来的时间轴怪怪的,tt格式的字幕的毫秒设定到底是什么规则呢?他们的时间表达居然是“00:00:00:00”,一般字幕文件的时间表达是“00:00:00.000”

知道如何从NBC下载BLF的外挂字幕,也知道了如何把下载回来的tt字幕转化为ass以后,所有痛点全部都打通了,最后的问题只是NBC最后会不会把这部电视剧全部都免费放出来。

youtube-dl单纯下载NBC网站视频外挂字幕的批处理脚本(复制下面的东西,做适量修改[比如文件路径],然后保存为.bat文件)

盘符
cd\改这里\改这里
youtube-dl –all-subs –skip-download NBC视频网址1(你得去播放页确定那个视频有外挂字幕哦)
youtube-dl –all-subs –skip-download NBC视频网址2(你得去播放页确定那个视频有外挂字幕哦)

困扰我的字幕问题终于有了一个非常完美的结局,实在让人喜出望外。

© 2004 - 2022 我的天 | Theme by xrspook | Power by WordPress