SCU URP 助手「UserScript 版」通用安装教程

如何安装 Userscript 呢?您可以参考当今最大的 Userscript 发布网站 Greasy Fork 首页上的教程,安装一个用户脚本管理器,然后就可以安装 Userscript 了:

第一步:安装用户脚本管理器。教程:https://greasyfork.org/zh-CN

第二步:安装 Userscript。

因为脚本昨天(2021-8-13)在 Greasy Fork 上遭到举报,在协商好之前,无法通过 Greasy Fork 源安装。现将脚本托管地址暂时迁移到码云(Gitee)平台,您可以在安装好一个用户脚本管理器(如 Tampermonkey 后),点击该链接安装:https://gitee.com/frederick-wang/scu-urp-assistant/raw/master/dist/scu-urp-assistant.user.js

注:如果需要自动更新,请确认在脚本管理器里「四川大学综合教务系统助手」的「检查更新」选项已被勾选(如下图),否则脚本将无法自动更新。

SCU URP 助手「Bookmarklet 版」通用安装教程

(2022-2-14 更新)注意!由于谷歌浏览器安全策略更新,Chrome 94 之后,教务系统无法加载来自外部 HTTPS 源的脚本,因此书签版的 URL 由 CDN 换到了我的服务器上。如果你的书签是在 2022 年 2 月 14 日之前创建的,请删除掉旧的书签,重新拖一次,否则将无法正常使用!

虽然使用 Userscript 是最方便的办法,但有的同学可能不会安装使用 Userscript,一些国产浏览器甚至可能不能安装 Tampermonkey 这样的用户脚本管理器,对于这部分同学,我还提供了 Bookmarklet 版本,就是一个集成在书签工具栏上的按钮,单击一下就可以加载使用。

只需要将下面这个链接,拖动到书签工具栏即可:

SCU URP 助手

然后打开综合教务系统的任意页面,点击书签工具栏上的「SCU URP 助手」按钮,等待几秒后即可加载程序。

优化中文网页排版样式

互联网的概念的是西洋人提出的,网页与网页浏览器也都发源于西方,因而在默认样式下,网页浏览器对中文网页排版总有些捉急——举个简单的例子,如果网页中的中文字符和英文字符相邻,那么排版出来的效果是「挤在一起的」,字符与字符之间没有间隙,过渡难称平滑。此外,还有如「标点挤压」「行尾点号悬挂」「章节边界调整」等问题,都是压在中文网页排版样式上的大山。

继续阅读

ThinkPHP 5.1 笔记(一)

最近在做一个需要大力出奇迹、快速开发的东西,听说 ThinkPHP 十分易于上手,就决定试一试用 ThinkPHP5.1 稳定版做程序的后端。因为过去基本没有用过 PHP 语言和 ThinkPHP 框架,所以基本是一边看手册一般写代码的。使用体验很好,ThinkPHP 不愧是风靡无数培训班的 PHP 框架,上手和使用都可以说是零门槛。

以下是我写代码时记录下的一些笔记。

继续阅读

为 SCU URP 助手增加「计算各种绩点与均分」的功能

期末考试结束了,又到了一年的出分季,若是在过去,算平均绩点和平均分不是什么难事,因为不论是飞扬的绩点计算器还是后来的「We 川大」(现川大圈校内通)都很好用。然而,因为教务处这学期的升级改造,帮助了无数学子多年的「川大圈校内通」牺牲了……

于是我身边的同学们不得不倒退回用 Excel 或者纸笔计算的原始时代……但作为半个程序猿,还用纸笔算这种事情实在是不大合适,于是我决定为我的四川大学综合教务系统助手增加一个自动计算绩点和平均分的功能。

四川大学综合教务系统助手-绩点与均分计算

现在脚本的新版本已经上传了,有需要的同学可以点击下面的链接安装使用:

https://zhaoji.wang/sichuan-university-urp-assistant/

下面的,我将记录一下编写这个功能时的要点。

继续阅读

用 INDEX 和 MATCH 函数的组合取代 VLOOKUP 函数

0x00 前言

在 Excel 里,有无数或简单或复杂的函数,有些函数如 COUNT 可能我们天天都会用到,有些函数则是一辈子都不会碰到的陌生人,爱情也是如此。

而在那些复杂一点的函数里,最广为人知的函数可能就是 VLOOKUP 函数了,这个函数的作用很简单也很强大,就是从表格里找出匹配的的数据。用严肃的语言来说就是:「在数组第一列中查找,然后在行之间移动以返回单元格的值」。

个人认为是否可以使用 VLOOKUP 与 HLOOKUP 函数,大抵是一个人是否对 Excel「略知一二」的分界线。

但 VLOOKUP 函数虽然简单、易用、强大,却仍然有一些呆板的地方,这也很正常,在计算机程序里,「简单易用」往往「灵活多变」的反义词。VLOOKUP 函数的「查阅值」必须位于单元格区域的第一列,这让我们在表格中使用 VLOOKUP 函数时,不得不按照自己的需求重新组织单元格区域的结构,以让 VLOOKUP 函数可以正常工作。

那有没有方法可以让我们在达到 VLOOKUP 函数功能的同时,又可以避开这个「查阅值必须在首列」的白璧微瑕呢?答案就是使用「INDEX 和 MATCH 函数的组合」,我将在下文具体说明这个技巧。

继续阅读

JavaScript 笔记(一):字符编码

作为一个比较懒的人,我没有记笔记的习惯,结果大量不算常用的的内容就都只是记了个大概,每次用到时都只能现场谷歌。为了改掉这个习惯,今后遇到有趣的事情都会记录这样一篇笔记。

一方面,这些笔记可以让我在习惯性的遗忘一些知识时能够更快的回想起了,另一方面,也许也可以给同样正在学习 JavaScript 的同志们一些经验。

——王兆基 二〇一八年十二月八日

0x00:URI 编码

不管知不知道 JavaScript,几乎所有人都在浏览器的地址栏里见过 URI 编码,也就是类似于这样的东西:

图 1 浏览器地址栏的汉字 URI 编码

图中被红框框住的「%E7%8E%8B%E4%BC%AF%E6%96%87」,实际上就是汉字「王伯文」在 URI(Uniform Resource Identifier,即统一资源标识符,也就是我们俗称的网址)中的「转义序列(escape sequences)」。这些转义序列按照标准,是用 UTF-8 的编码方式编码每个字符的。

当然,如果只是使用的话,其实只需要知道,JavaScript 里可以用 encodeURI 与 encodeURIComponent 方法将 URI 中的字符进行处理,使用一到四个转义序列来表示字符串中的每个字符的 UTF-8 编码。但是我们总是会有许许多多的疑问,比如:encodeURI 方法和 encodeURIComponent 方法有什么区别?为什么是一到四个转义序列?为什么用的是 UTF-8 编码? UTF-8 编码又是什么?这个转换过程是怎样的?这就需要去了解更多的知识了,我将记录在下面。

继续阅读