<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[2byte]]></title><description><![CDATA[why so serious]]></description><link>https://blog.csdn.net/twoByte</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; twoByte]]></copyright><item><title><![CDATA[【油猴脚本】优化知乎无限滚动时的内存占用（爬几千层楼的帖子用，防止浏览器卡住）]]></title><link>https://blog.csdn.net/twoByte/article/details/155425223</link><guid>https://blog.csdn.net/twoByte/article/details/155425223</guid><author>twoByte</author><pubDate>Sun, 30 Nov 2025 18:26:54 +0800</pubDate><description><![CDATA['当前模式：轻量优化 - 内容被替换为占位符，可以快速恢复''当前模式：完全移除 - 内容被完全删除，需要重新加载页面''切换到完全移除模式''切换到轻量优化模式']]></description><category></category></item><item><title><![CDATA[钉钉内部企业应用免登录 php js]]></title><link>https://blog.csdn.net/twoByte/article/details/120363818</link><guid>https://blog.csdn.net/twoByte/article/details/120363818</guid><author>twoByte</author><pubDate>Sat, 18 Sep 2021 11:26:47 +0800</pubDate><description><![CDATA[我这里采用前端获取免登录授权码，发给后端计算得到登录后的钉钉信息。
index.html
    dd.ready(function() {

        dd.runtime.permission.requestAuthCode({
            corpId: "你的corpid",
            onSuccess: function(info) {
            
             code = info.code

			//引入axios，ajax获取登]]></description><category></category></item><item><title><![CDATA[aardio 钉钉机器人范例]]></title><link>https://blog.csdn.net/twoByte/article/details/120292658</link><guid>https://blog.csdn.net/twoByte/article/details/120292658</guid><author>twoByte</author><pubDate>Tue, 14 Sep 2021 19:27:55 +0800</pubDate><description><![CDATA[aardio 钉钉机器人

企业内部机器人（@机器人 可进行交互）

import wsock.tcp.simpleHttpServer;
import console;

var server = wsock.tcp.simpleHttpServer("127.0.0.1",8080);

console.setTitle("web服务器已启动");
console.log("web服务器运行中")
console.log( server.getUrl() )

server.run(
	function]]></description><category></category></item><item><title><![CDATA[AARDIO中文字符根据首字母拼音排序]]></title><link>https://blog.csdn.net/twoByte/article/details/111913188</link><guid>https://blog.csdn.net/twoByte/article/details/111913188</guid><author>twoByte</author><pubDate>Tue, 29 Dec 2020 15:00:39 +0800</pubDate><description><![CDATA[完成一个打卡名单和总名单对比的需求，需要对两个数组内的人名进行排序，便于遍历处理。
官方的排序sort说明看不太懂，没有示例代码，自己试了一会儿才试出来：
定义getPinyin函数
import import string.conv.pinyin;
getPinyin = function(a){
    var pinyin = string.conv.pinyin(a);
	var str = string.replace(pinyin,"(\w)\w+\s*","\1");
		str = stri]]></description><category></category></item><item><title><![CDATA[FLAV0R，仿Decent Icons的Electron项目]]></title><link>https://blog.csdn.net/twoByte/article/details/103529359</link><guid>https://blog.csdn.net/twoByte/article/details/103529359</guid><author>twoByte</author><pubDate>Sat, 14 Dec 2019 22:34:16 +0800</pubDate><description><![CDATA[前言
前一段时间玩桌面，发现了decent icons这个软件，结果是STEAM上面的收费软件，看了一眼同花顺的账户，默默关掉了STEAM。。。
但是怎么调整桌面，都发现就是缺一个这样的启动器，于是萌生了自己仿一个想法。
分析了一下，决定用electron写，毕竟HTML/CSS写的很顺手，然后也学习一下electron。
截图、下载

...]]></description><category></category></item><item><title><![CDATA[基于nodejs+selenium自动过滑动验证码的QQ刷赞]]></title><link>https://blog.csdn.net/twoByte/article/details/103234356</link><guid>https://blog.csdn.net/twoByte/article/details/103234356</guid><author>twoByte</author><pubDate>Mon, 25 Nov 2019 11:07:28 +0800</pubDate><description><![CDATA[引子
不知道大家是否还记得之前让我刷赞的小朋友，自从他回到学校后，可能是由于学业太忙，把我们组成刷赞团队的事情忘记了，只是每天早上给我发信息帮他刷赞，迟迟没有新的用户，刷赞就没有量产的动力，我怠慢了几天没给他刷，他就不再理我了，我觉得是中了他的圈套，他只是嘴上说说要发展团队，其实只是贪恋我每天给他刷几万个赞。
效果
(稍后放出gif)
代码
const webdriver = require('s...]]></description><category></category></item><item><title><![CDATA[selenium模拟geetest极验滑动验证]]></title><link>https://blog.csdn.net/twoByte/article/details/101055665</link><guid>https://blog.csdn.net/twoByte/article/details/101055665</guid><author>twoByte</author><pubDate>Sat, 21 Sep 2019 11:59:23 +0800</pubDate><description><![CDATA[前言
前一阵子打球认识了一个小学生，为了骗他钱，吹了好半天，什么盗取心上人的QQ密码，吃鸡外挂，学校饭卡无限充值，最终达成交易10块钱帮他刷QQ赞。
回家赶快百度研究了一下，原来刷赞很简单：很多网站都可以每天免费领取100个赞，心想把这些网站统计一下，写个程序每天自动提交不就可以了。但是我仔细看了一下，几乎所有的网站都需要人工验证才能免费领取，由于暂时我的客户数量较少，先手工领一下吧。

然后又发...]]></description><category></category></item><item><title><![CDATA[给Jplayer加上声音可视化效果]]></title><link>https://blog.csdn.net/twoByte/article/details/90266194</link><guid>https://blog.csdn.net/twoByte/article/details/90266194</guid><author>twoByte</author><pubDate>Thu, 16 May 2019 16:22:38 +0800</pubDate><description><![CDATA[前一阵子有个网友通过之前写的一篇音频可视化的文章找到我，让我帮忙给他的音乐网站加个播放效果，自己正好没啥事做欣然答应。
由于疏于学习，基础掌握的不好，我一直以为音频可视化是通过Web audio API实现的，脑子不会转弯，总觉得只能通过这种方法载入音频：
	var audio = new Audio("hello.mp4");

然后打一套API的组合拳来读取音频数据：
	AudioContex...]]></description><category></category></item><item><title><![CDATA[微信公众号文章跨域展示]]></title><link>https://blog.csdn.net/twoByte/article/details/90265140</link><guid>https://blog.csdn.net/twoByte/article/details/90265140</guid><author>twoByte</author><pubDate>Thu, 16 May 2019 15:45:43 +0800</pubDate><description><![CDATA[帮朋友做了个整站，更新新闻的时候他用不惯我写的后台，老是发微信公众号，让我帮忙发到网站上，我觉得太麻烦了，就写了个调用的方法。
微信公众号自带保护，不让跨域访问。
只能用http://cors-anywhere.herokuapp.com/跨域访问接口。
http://cors-anywhere.herokuapp.com/+公众号文章地址就可以得到文章的源代码，加以正则匹配就可以得到文章的标题，...]]></description><category></category></item><item><title><![CDATA[炫龙dd2——黑苹果10.14 Clover EFI文件共享]]></title><link>https://blog.csdn.net/twoByte/article/details/88537239</link><guid>https://blog.csdn.net/twoByte/article/details/88537239</guid><author>twoByte</author><pubDate>Wed, 13 Mar 2019 17:22:41 +0800</pubDate><description><![CDATA[下载地址
链接: https://pan.baidu.com/s/1INIsC57Ji0zqH_ZMDfQ_Wg 提取码: z2kf
已驱动内容
10.14 mojave

核显Intel UHD 630，快捷键调亮度的ddst补丁
自定义显示器名称，缩放的 EDID补丁，实现HIDPI
声卡ALC269，麦克风可用，可快捷键调节音量
外置usb拓实N95（核心RT3037）无线网卡
睡眠
电源显...]]></description><category></category></item><item><title><![CDATA[PC通过Android代理服务器上网（USB共享网络）]]></title><link>https://blog.csdn.net/twoByte/article/details/87874539</link><guid>https://blog.csdn.net/twoByte/article/details/87874539</guid><author>twoByte</author><pubDate>Fri, 22 Feb 2019 11:07:59 +0800</pubDate><description><![CDATA[我的设备

小米Mix2
黑苹果笔记本
usb连接线

设置

手机通过wifi上网，usb连电脑，打开usb调试，usb共享网络。
打开手机上面的’blue light’，我是在百度上搜的无限流量版，设置全局流量代理。
阅读这个文章https://www.jianshu.com/p/f72b5bc34caf，照做手机设置和pc设置，运行后如下图）

最终效果如下


码完收工。


...]]></description><category></category></item><item><title><![CDATA[关闭chrome安全设置，实现跨域]]></title><link>https://blog.csdn.net/twoByte/article/details/79642094</link><guid>https://blog.csdn.net/twoByte/article/details/79642094</guid><author>twoByte</author><pubDate>Wed, 21 Mar 2018 16:36:35 +0800</pubDate><description><![CDATA[这几天在写一个自动交易比特币的前端脚本。就是直接在控制台执行的那种。 
根据交易平台提供的API，可以查询市价作出买卖判断。但是不同的交易所API不同，遇到了跨域的问题：在E平台执行脚本后，向其自身提交ajax API请求时，出现了禁止跨域的情况。 
百般尝试，发现利用屏蔽谷歌安全设置，可以完成跨域请求：

找到Chrome，新建快捷方式，加入如下启动参数：



&quot;F:\Program File...]]></description><category></category></item><item><title><![CDATA[grep匹配单引号(')，惰性匹配(.*?)]]></title><link>https://blog.csdn.net/twoByte/article/details/79397072</link><guid>https://blog.csdn.net/twoByte/article/details/79397072</guid><author>twoByte</author><pubDate>Wed, 28 Feb 2018 10:20:37 +0800</pubDate><description><![CDATA[昨天看到一个zhihu上面的视频不错，想下载下来。 
打开F12的network，看到视频是分隔开的多个m3u8，只能使用ffmpeg单独下载再合并。可是这些个记录怎么全选复制都复制不完全，于是右键 =&amp;gt; copy =&amp;gt; save all as curls，得到这么一大堆 



curl 'https://v.vzuu.com/video/951465191502848000' -H...]]></description><category></category></item><item><title><![CDATA[谈一谈匿名函数立即执行(IIFE)的写法]]></title><link>https://blog.csdn.net/twoByte/article/details/79028546</link><guid>https://blog.csdn.net/twoByte/article/details/79028546</guid><author>twoByte</author><pubDate>Wed, 10 Jan 2018 21:30:33 +0800</pubDate><description><![CDATA[谈一谈匿名函数立即执行(IIFE)的写法

今天在写setTimeout时，遇到了匿名函数执行的问题，记录研究一下。



写法

匿名函数立即执行，IIFE (Immediateoly-Invoked Function Expressions)，基本上差不多，都这样：



(function(){
  console.log('a IIFE ?')
})();

写法，还有很多种：



!f]]></description><category></category></item><item><title><![CDATA[谷歌扩展的通讯方式]]></title><link>https://blog.csdn.net/twoByte/article/details/77198252</link><guid>https://blog.csdn.net/twoByte/article/details/77198252</guid><author>twoByte</author><pubDate>Tue, 15 Aug 2017 18:11:18 +0800</pubDate><description><![CDATA[谷歌扩展的通讯方式前段时间写了一个英文字典的扩展dict，学习了不同页面间的通讯方式，以dict为例子，总结一下这几种不同的方式。扩展通讯页面的类型扩展页面一共有三大类：popup，content-scripts和background。一般情况下，需要持续使用的变量存在background页面中，该页面自浏览器打开一直留在内存中。popup和content-scripts页面随着打开关闭会释放相应的]]></description><category></category></item><item><title><![CDATA[知识点与实例代码]]></title><link>https://blog.csdn.net/twoByte/article/details/73758270</link><guid>https://blog.csdn.net/twoByte/article/details/73758270</guid><author>twoByte</author><pubDate>Tue, 27 Jun 2017 00:17:09 +0800</pubDate><description><![CDATA[知识点与实例代码闭包for循环情况下的常见闭包for (var i = 0; i < 5; i++) {
  (function(i) {
    setTimeout(function() {
      console.log(i);
    }, i * 1000);
  })(i);
}每隔一秒依次输出0 1 2 3 4。修改一下，去掉匿名函数里面的i：for (var i = 0; i <]]></description><category></category></item><item><title><![CDATA[可拖动DIV层的实现方法]]></title><link>https://blog.csdn.net/twoByte/article/details/73269653</link><guid>https://blog.csdn.net/twoByte/article/details/73269653</guid><author>twoByte</author><pubDate>Thu, 15 Jun 2017 01:00:26 +0800</pubDate><description><![CDATA[可拖动DIV层的实现方法这几天做了一个英文单词搜索的谷歌扩展，其中的划词搜索功能会产生一个可托拖动的DIV层来作为结果显示，为了做一个较为完善的拖动层，花费了很长时间进行设计与调试。在此把心得总结了一下，讲讲实现方法与关键点。先来看看效果：在线实例DEMO基本思路
有一个DIV层，设定position属性为absolute或fixed，通过更改其left，top来更改层的相对位置。
在DIV层上绑定]]></description><category></category></item><item><title><![CDATA[匹配括号( ( ),{ },[ ]等左右对应的字符 ) 的一种方法]]></title><link>https://blog.csdn.net/twoByte/article/details/70159999</link><guid>https://blog.csdn.net/twoByte/article/details/70159999</guid><author>twoByte</author><pubDate>Thu, 13 Apr 2017 17:14:43 +0800</pubDate><description><![CDATA[前两天写那个异步函数顺序执行的过程中，动态修改函数，遇到setTimeout，我需要提取执行的时间，形如：    setTimeout(function() {
        output.innerText += '第三个异步函数，延迟1秒执行\n';
    }, 1000);要截取1000这个值。经过分析，我发现setTimeout()这个函数闭合的圆括号)与前一个逗号,之间的内容，就是要截]]></description><category></category></item><item><title><![CDATA[我也谈谈闭包]]></title><link>https://blog.csdn.net/twoByte/article/details/68483468</link><guid>https://blog.csdn.net/twoByte/article/details/68483468</guid><author>twoByte</author><pubDate>Thu, 30 Mar 2017 09:55:34 +0800</pubDate><description><![CDATA[我也谈谈闭包今天第一次在实际运用中遇到闭包的问题。我要给几个视频video增加鼠标悬停自动播放的功能。刚开始时，我只有一个video。代码如下：HTML<li><video class="work-vidz" src='vids/vader-loader.mp4' loop="true" preload="auto" preload="metadata"></video>jumping-box</l]]></description><category></category></item><item><title><![CDATA[异步函数顺序执行的实现]]></title><link>https://blog.csdn.net/twoByte/article/details/65644499</link><guid>https://blog.csdn.net/twoByte/article/details/65644499</guid><author>twoByte</author><pubDate>Fri, 24 Mar 2017 20:21:06 +0800</pubDate><description><![CDATA[这几天在研究实现一个类似Promise思想的库，也不完全一样，主要目标是保证异步事件的执行顺序。
  比如有四个异步事件A,B,C,D 
  需要这样一个执行顺序 A => B => C => D
想了好几种方案。 
其中有一种是先建立一个任务链表，执行时修改每个事件的函数内容。假设现在任务链表顺序已经建立， A => B => C => D。taskList[function A,function]]></description><category></category></item></channel></rss>