如何获取洛谷的CSRF Token
在向洛谷的API发起POST请求的时候,需要在请求头中携带一个X-CSRF-Token请求头。
获取CSRF Token
我们打开洛谷,按F12,在元素项可以找到这个:
这个就是我们所需要的CSRF Token。
提取CSRF Token
通过正则表达式,我们很轻松就能写出代码:
12345678910111213141516171819const axios = require("axios").defaultconst cookieSupporter = require("axios-cookiejar-support").defaultconst cookieJar = require('tough-cookie')let jar = new cookieJar.CookieJar()let _ = cookieSupporter(axios.create({ baseURL: "https://www.luogu.com.cn", withCredentials: true, ...
如何处理Git的大小写问题
今天给博客搞SEO的时候,将多数的链接全部改成小写的了,然后就炸了……
问题原因
这个问题发生是因为Windows系统对大小写不敏感,所以Git也默认大小写不敏感。但像Github这类代码托管平台用的是Linux,Linux对大小写敏感。
解决过程
首先,在Git本地仓库下执行:
1git config core.ignorecase false
这行命令表示关闭忽略大小写。
然后,修改我们的本地文件/文件夹名:
修改完后push到Github上,然后查看效果:
1git push origin main #我用的是hexo,所以跑了hexo d,普通Git仓库push就好
好家伙,之前大写的没被删掉,不过小写的成功被push上去了。
目前只能一个个手动删除远程的文件/文件夹,因为本地的已经是小写了……不知道有什么解决方法😅……
【VS Code扩展】获取编辑框中的文本
在编写VS Code扩展的过程中,我们有时会需要获取编辑框中的文本。
准备工作
在获取编辑框中文本之前,我们需要创建一个编辑框的实例:
123const vscode = require("vscode")...let editor = vscode.window.activeEditor//获取当前激活的编辑框的实例
获取文本
获取整段文本
我们可以通过以下的代码获取到编辑框中的文本:
12let editorText = editor.document.getText()console.log(editorText)
getText()函数会返回一段文本,其为编辑框中的内容。
获取分行文本
我们可以通过以下代码获取到分行的文本:
12let textArray = editor._documentData._linesconsole.log(textArray)
editor._documentData._lines会返回一个字符串数组,我们可以通过textArray.length获取到代码的行数,也可以通过连接它们达到与获取整段文本一样的效果。
【NexT主题美化】点击页面浮现24字核心价值观
在许多时候,我们希望用户点击页面时会有一定的反馈(如浮现字幕、放烟花)。这次,我们来实现一下如何使用户点击页面时,弹出24字核心价值观。
创建clicker.js文件
在博客根目录往下找\themes\next\source\js文件夹,创建clicker.js,文件内容如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071!function (e, t, a) { function r() { for (var e = 0; e < s.length; e++) s[e].alpha <= 0 ? (t.body.removeChild(s[e].el), s.splice(e, 1)) : (s[e].y--, s[e].scale += .004, s[e].alpha -= .013, s[e].el.styl ...
【洛谷 P2393】yyy loves Maths II
这一道题要排坑的是关于精度的问题。
题目很简单,要做的只有一下三点:
读数据
加数据
输数据
在C++中,常用的输入方式有scanf()和cin。首先我们以scanf()函数进行讲解,因为这两种输入方式的判断结束方式不一样。
使用sacnf()函数
scanf()函数其在输入结束(即读不到数据时)将返回常数EOF(即-1),而读到数据时会返回读到数据的个数。所以我们可以得出第一版代码:
123456789101112#include<bits/stdc++.h>using namespace std;long double ans,tmp;int main(){ while((scanf("%Lf",&tmp))!=EOF) { ans+=tmp; } printf("%.5f",ans); return 0;}
Tips: scanf()函数输入long double类型时需使用%Lf占位符,但printf()函数无论输出float类型还是long double类型,均使 ...
【洛谷 P1601】A+B Problem(高精)
众所周知,高精度这种东西,在部分语言里,根本不是问题。这里我将使用Python。
在Python的两个大版本(即Python 2.x和Python 3.x)中,input这个函数的使用方法是不同的!所以这里我会分开两个版本来进行讲解。
Python 2
在Python 2中,有两种基本的输入方式:input()和raw_input()。其中,input()相当于eval(raw_input(prompt)),其希望能够读取到一个合法的Python表达式,而raw_input()则将所有输入当字符串处理。
既然如此,我们就可以得到以下代码:
123a=input()b=input()print(a+b)
Python 3
在Python 3中,原来的raw_input()与input()进行了整合,现有的input()函数读取到的输入默认处理为字符串。所以,我们需要将字符串转换为数字。
代码如下:
123a=input()b=input()print(int(a)+int(b))
总结
这篇题解主要是为了区分Python两个大版本中的不同之处,方便以后排坑。两者的核心语法看似相同 ...
pai233の小窝正式建站
pai233の小窝正式建站了!本博客基于Hexo搭建,托管于Github Pages上。
简介
这里是pai233の小窝!这里是这个大蒟蒻记录自己的学习历程的地方,既然你已经来到了这,不如收藏本站,说不定以后会有你想要的捏qaq
现有功能
左侧分享栏(窄屏模式下会自动隐藏)可供分享文章到各大媒体。
右下角Tidio可供与本蒟蒻聊天。
右下角为聊天室,欢迎大家来畅谈人生大道♂理!
页面下方中可以播放音乐(较老的浏览器可能不支持)。(网易云歌单:Click Here)