浏览器的各种存储
本地存储持久化的存储,作用域为同个浏览器的同个域名下,通过window.localStorage获取,存储容量5M
会话存储会话级别的存储,标签页关闭即丢失,作用在同个浏览器的同一个域名下,且需要是同源窗口。获取方式:window.sessionStorage,存储容量5M
IndexdDB浏览器提供的本地数据库,但不是关系型数据库且不支持SQl查询语句,键值对类型存储,所有类型的数据都可直接存入,包括JS对象。IndexdDB支持事务。
有同源限制:每个数据库对应创建它的域名,不可跨越访问。
Cookie持久化,可设置过期时间,作用在同一域名下,每次向服务器发请求时会发给服务器,存储容量4KB
专用状态令牌防止CSRF,浏览器自动管理,开发者无法操作
兴趣组通常用于向用户提供个性化广告,浏览器自动管理,开发者无法操作
共享存储允许跨标签页或者跨浏览器窗口访问,类似于本地存储,开发者可操作
缓存存储用于缓存请求的响应数据,通常用于离线应用或者加速访问,开发者可操作
存储桶
记录一款纯文本种地挂机游戏的思路
功能点农场
游戏开始给一种初始作物
作物自然生长,系统自动收割但是应该有损失
作物应该自动售卖,
作物可以留种?不如去商店购买
游戏初期地皮较少
可以购买地皮
可以购买作物种子
可以雇佣农民,增加作物产量
不同的作物价格应该不同
牧场
可以考虑添加牧场,但初始没有
可以购买牧场地皮
可以购买动物
自动售卖但有损失
可以雇佣员工进行副产品的收益,比如蛋奶等
商店
可以购买地皮、种子、幼崽
可以雇佣农民或者牧场员工
掉落
允许在收割农作物时发现新作物的种子
允许每台设备掉落独一无二的作物种子或者发现新的生物
逻辑
是否每个作物的种植时间以及成熟时间单独计算呢?毕竟每种作物的成熟时间不同,且同种作物的不同株种植时间也不同。
可以在作物种下的时候就算出该作物成熟时间,构造一个成熟时间列表,从列表头向后依次遍历,查看当前节点的时间到了没(是否小于当前时间戳),如果到时间了,则收获当前节点内所有的作物。
问题在于,在添加了buff的时候,收获时间应该是会变化的,可以在遍历列表节点时直接减掉时间
列表节点对象存储:
当前节点成熟时间
当前节点包含作物种类/数量
雇佣员 ...
bbmusic实现分析
参考资料B站鉴权部分 bilibili-API-collect/docs/misc/sign/wbi.md at master · SocialSisterYi/bilibili-API-collect
搜索获取音乐源部分 flutter-app/lib/origin_sdk/bili/client.dart at ae2792346d503f4d22ffd316f2389fe8435c9c88 · bb-music/flutter-app
具体调用接口部分 flutter-app/lib/modules/search/search.dart at ae2792346d503f4d22ffd316f2389fe8435c9c88 · bb-music/flutter-app
B站接口鉴权获取mixin_key调用接口https://api.bilibili.com/x/web-interface/nav获取两个字段,获取到的 sub_ke ...
Oracle数据库
参考资料模式在oracle中,数据库名称作模式名,又称为表的拥有者
查找某个模式下所有的表查找模式SAPSR3DB下名称中包含LOG的表
1SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'SAPSR3DB' AND TABLE_NAME LIKE '%LOG%';
创建用户
创建用户
create user username identified by password;
授权connect
grant connect to username
授权特定表的select权限
GRANT SELECT ON SCHEMA_A.TABLE_NAME TO USER_A;
分页oracle中查出的数据会有一个序号,可通过该序号来进行分页,oracle中没有limit
12# 取第一条SELECT * FROM BC_MSG_LOG where rownum = 1
Alhagi实现记录
参考资料https://spec.commonmark.org/0.31.2/
CommonMark解析策略
先将文档分解为块结构,但不解析文本,链接引用定义可以先收集起来
将标题和段落中的纯文本解析为行内元素,此时可使用之前收集好的链接引用定义
强调和链接的解析策略使用分隔符栈来解析,每个栈元素需要包含如下信息:
分隔符类型[, ![, *, _
分隔符数量?
分隔符是否激活状态
分隔符是否为潜在的开启符号,或者潜在的关闭符号,或者都是
当碰到符号]的时候,调用look for link or image
当碰到输入结束时,调用强调语法处理流程,此时直到碰到栈底元素为NULL
look for link or image 从分隔符栈顶倒找[或者![
如果没找到,则返回纯文本的]
如果找到一个,但没激活,则从栈里移除那个没激活的分隔符,接着返回纯文本的]
如果找到一个并且是激活的,则查看是否为行内/引用/压缩/short cut的链接或者图像
如果不是,则从栈中移除开始标签,并且返回纯文本的]
如果是,则
返回链接或者图像节点,添加到开启符号的文本 ...
CommonMarkdown
参考资料https://spec.commonmark.org/0.31.2/
字符和行行/空行
line ending:由换行符(U+000A)和回车符(U+000D)组成,如换行不加回车,回车不加换行,以及回车跟着换行
line:0到多个字符(除line ending之外),后面跟着line ending
blank line:一个行不包含任何字符或只包含空格(U+0020)或者tab(U+0009)
特殊字符
空格:(U+0020)
tab:(U+0009)
ASCII控制字符:a character between U+0000–1F (both including) or U+007F.
ASCII标点符号:!, ", #, $, %, &, ', (, ), *, +, ,, -, ., / (U+0021–2F), :, ;, <, =, >, ?, @ (U+003A–0040), [, \, ], ^, _, ` (U+005B–0060), {, |, }, or ~ (U+007B–007E). ...
sftp服务搭建以及连接
参考资料SFTP服务器的搭建与使用_sftp服务器搭建-CSDN博客
[SFTP搭建@windows using freeSHHd&FileZilla - 零一两二三 - 博客园 (cnblogs.com)](https://www.cnblogs.com/wzs2016/p/6394990.html#:~:text=重点讲一下认证吧, freesshd支持两种方式的认证,password和public key,你可以使用其中的任意一种,也可以要求客户端同时进行两种认证,也就是说,如果两个都设置为required,客户端要想连入服务器,得同时要有密码和public key。,都设为allowed,任意一种认证都可以进入服务器。 第一种认证简单,只要在客户端输入用户名和密码就可以,第二种就需要一对密钥了(公钥和私钥,私钥客户端持有,公钥要放到服务器上,图中的public key folder就是存放各个客户端私钥对应的公钥的).)
搭建sftp服务下载freeSSHd安装,另一款常用的ftp工具filezilla的服务端并不提供sftp的功能(只有ftp和ftps)。
安装
双击 ...
powershell
Powershell后缀powershell文件后缀为*.ps1
批量重命名文件-replace可使用正则表达式
注意必须使用单引号
1234Get-ChildItem -Filter "*.txt" -File | ForEach-Object{ $newname = $_.Name -replace '-(.*)-', '$1' Rename-Item $_.FullName $newname}
统计统计行数Measure-Object -Line
1ls|findstr "cgr" |Measure-Object -Line
统计字符数Measure-Object -Character
字数Measure-Object -Word
获取文件内容Get-Content
1Get-Content .\pom.xml
发送请求1234567891011121314151617echo "mantain wifi"if ( Test-Connectio ...
cloudflare内网穿透
参考资料没有公网IP? 免费域名搭建cloudflare内网穿透,不限流量 - 哔哩哔哩 (bilibili.com)
前置
需要cloudflare账户
需要有一个在cf上托管的域名
配置Tunnel进入首页的Zero Trust,(随便)取一个组织名,选择免费的服务,到选择付款方式时,返回cloudflare首页,重新进入Zero Trust(免的添加付款方式),找到左侧Network下的Tunnels,进入Add一个Tunnel,选择Cloudflare(另一个是WARP),取一个名字,接着下载要穿透的系统的版本。
wifi棒子穿透穿透Wifi棒子时,选择debian arm64的版本,下面会展示下载以及安装启动命令,由于网络的问题,可以先用迅雷云盘下载好安装包,传到wifi棒子上,再执行下面的安装与启动命令,启动成功后(启动时可能会报错,但以服务运行状态以及当前页面显示为准),当前页面下方会显示有连接的系统。
配置域名点击下一步后,进入域名与映射的配置
配置成功后点击保存。
连接测试本地启动一个网络服务后,访问上方配置的域名查看是否能够访问到。
vbs脚本
使用vbs批量替换文件内容其中使用到了正则表达式进行搜索
123456789101112131415161718192021222324252627282930313233343536Const ForReading = 1Const ForWriting = 2Set objFSO = CreateObject("Scripting.FileSystemObject")Set folder = objFSO.GetFolder("E:\test\vbtest\testdir")i = 0for each file in folder.Filesif lcase(objFSO.getExtensionName(file.path))="xml" theni=i+1Set objFile = objFSO.OpenTextFile(file.path, ForReading)strOriginal = "<a>[^<]*</a>"strReplacement = "&l ...