小爱课程表 新版正方教务系统通用代码 作者: Chuwen 时间: 2020-06-10 分类: JQuery 评论 ![Snipaste_2020-06-10_20-10-18.png][1] ![Snipaste_2020-06-10_20-10-18.png][2] # 代码 ``` function scheduleHtmlParser(html) { //除函数名外都可编辑 //传入的参数为上一步函数获取到的html //可使用正则匹配 //可使用解析dom匹配,工具内置了$,跟jquery使用方法一样,直接用就可以了,参考:https://juejin.im/post/5ea131f76fb9a03c8122d6b9 //以下为示例,您可以完全重写或在此基础上更改 let course = $('#table1 .timetable_con'); var courseInfos = [];//课程信息 var sectionsTimes = [];//节次信息,非必须 for (let i = 0; i < course.length; i++) { var _name = $(course[i]).find("p[class=title]").text();//课程名 var _day_session = $(course[i]).parent().attr("id").split("-"); var day = _day_session[0];//星期几的课 var _postion = '',//上课地点 _teacher = '',//教师 sectionsTmp = [],//临时储存节次 array weeksTmp = [];////临时存储周次 array $(course[i]).find("p").each(function (index, item) { var _typeName = $(this).children("span").attr("data-original-title");//类别名。节/周、上课地点、教师、教学班名... if(_typeName !== undefined) _typeName = _typeName.trim(); var _text = $(this).text().trim(); if (_typeName === '节/周') { var _length = _text.match(/\((.+?)节\)/); //判断是否存在节次 if (_length === null) { return 0;//不存在就跳出本次循环 } //当前课程节次信息 sectionsTmp = function () { let num = _length[1].split("-"); let tmp = []; for (let i = parseInt(num[0]); i <= parseInt(num[1]); i++) { tmp.push({ section: parseInt(i) }); } return tmp; }(); //临时存储周次 weeksTmp = function () { var tmp = [], _week = _text.replace(_length[0], "").split("周")[0],//周次 _weekRange = _week.split("-"), _weeekType = -1;//-1:不分单双周,1:单周,0:双周 if (_text.indexOf("(单)") !== -1) { _weeekType = 1; } else if (_text.indexOf("(双)") !== -1) { _weeekType = 0; } for (let i = parseInt(_weekRange[0].trim()); i <= parseInt(_weekRange[1]); i++) { if (i % 2 === _weeekType && _weeekType !== -1) tmp.push(i);//特殊单双周压入 if (_weeekType === -1) tmp.push(i);//部分单双周压入 } return tmp; }(); } else if (_typeName === '上课地点') { _position = _text; } else if (_typeName === '教师') { _teacher = _text; } }); courseInfos.push({ name: _name,//课程名 position: _position,//位置 teacher: _teacher,//教师名 day: day, weeks: weeksTmp,//哪几周有课 sections: sectionsTmp,//哪几节次 }) } console.info(courseInfos); return { courseInfos: courseInfos } } ``` [1]: https://cdn.nowtime.cc/2020/06/10/1914996304.jpg [2]: https://cdn.nowtime.cc/2020/06/10/383694665.png
Windows 10 新建/删除 文件夹、文件 不刷新解决办法 作者: Chuwen 时间: 2020-06-08 分类: Windows 2 条评论 # 序言 就这几天,我不知道做了什么,导致在文件管理器 新建/删除 文件夹、文件,都不会立即显示,而要 刷新/按F5 才能看到,这就很烦了,我以为是我机械硬盘坏了(现在删除一个空白文件都要几秒钟....) # 解决办法 网上查了一下,有说修改注册表、禁用音频面板检测 可以解决,但是对于我来说都没有用。 指导看到了一个 执行一行命令就可以解决的办法 Win + R 弹出 **运行创窗口**,然后输入 `ie4uinit -show` 按回车,就解决了我的问题 ![Snipaste_2020-06-08_09-34-26.png][1] --- 参考:https://jingyan.baidu.com/article/e5c39bf5f0c4d839d76033b2.html [1]: https://cdn.nowtime.cc/2020/06/08/3442822281.png
FFmpeg 精准剪切视频 作者: Chuwen 时间: 2020-05-30 分类: Linux,Windows 评论 将-ss, -t 参数放在-i参数之前 > 对输入文件执行seek操作,会seek到-ss设置的时间点前面的关键帧上。 > 时间不精确,但是不会出现黑屏 ``` ffmpeg -ss 10 -t 15 -i test.mp4 -codec copy cut.mp4 ``` `accurate_seek` 剪切时间更加精确 > accurate_seek必须放在-i参数之前 ``` ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy cut.mp4 ``` `avoid_negative_ts` > 如果编码格式采用的copy 最好加上 -avoid_negative_ts 1参数 ``` ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy -avoid_negative_ts 1 cut.mp4 ``` 想非常精确,就重新编码 ``` ffmpeg -ss [start] -t [duration] -i [in].mp4 -c:v libx264 -c:a aac -strict experimental -b:a 180k [out].mp4 ```
MySQL 分别统计 男女数量 作者: Chuwen 时间: 2020-05-24 分类: MySQL 评论 ``` SELECT uSex, COUNT(*) FROM `Users ` WHERE `uSex` IN ( '男', '女' ) GROUP BY `uSex`; ```
MySQL GROUP BY 不会对 NULL 进行分组统计解决办法(表述可能不正确,具体看内容...) 作者: Chuwen 时间: 2020-05-23 分类: MySQL 评论 # 数据表结构 ## goods (商品信息)表结构 ``` +------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+-------------------+----------------+ | gdID | int(11) | NO | PRI | NULL | auto_increment | | tID | int(11) | YES | MUL | NULL | | | gdCode | varchar(50) | YES | | NULL | | | gdName | varchar(100) | NO | | NULL | | | gdPrice | float | YES | | 0 | | | gdQuantity | int(11) | YES | | 0 | | | gdSaleQty | int(11) | YES | | 0 | | | gdCity | varchar(50) | YES | | 长沙 | | | gdInfo | longtext | NO | | NULL | | | gdAddTime | timestamp | YES | | CURRENT_TIMESTAMP | | | gdHot | tinyint(11) | YES | | 0 | | | gdImage | varchar(255) | YES | | NULL | | +------------+--------------+------+-----+-------------------+----------------+ ``` ## orderdetail (商品订单信息、评论)表结构 ``` +------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------+------+-----+---------+----------------+ | odID | int(11) | NO | PRI | NULL | auto_increment | | oID | int(11) | YES | | NULL | | | gdID | int(11) | YES | | NULL | | | odNum | int(11) | YES | | NULL | | | dEvalution | varchar(8000) | YES | | NULL | | | odTime | datetime | YES | | NULL | | +------------+---------------+------+-----+---------+----------------+ ``` # 需求 > 需要列出商品信息及评价数量 > > 当时想到的解题思路是,通过查询 `OrderDetail` 表,通过外连接(RIGHT JOIN) goods 表,然后进行分组查询,然后就有了以下语句 ``` SELECT Goods.gdID, Goods.gdName, Goods.gdPrice, Goods.gdSaleQty, Goods.gdImage, COUNT( OrderDetail.gdID ) AS noe FROM `OrderDetail` RIGHT JOIN `Goods` ON `Goods`.`gdID` = `OrderDetail`.`gdID` GROUP BY `OrderDetail`.`gdID` ORDER BY noe DESC; ``` 运行结果: > 发现,当商品没有评价的,不会列出来 ``` +------+-------------+---------+-----------+--------------------------------------------------------------------------------------------------------------------+-----+ | gdID | gdName | gdPrice | gdSaleQty | gdImage | noe | +------+-------------+---------+-----------+--------------------------------------------------------------------------------------------------------------------+-----+ | 10 | 华为P9_PLUS | 3980 | 7 | 【华为官方买就送Type C 转接头】Huawei/华为 P9 plus全网通手机 | 5 | | 3 | 牛肉干 | 94 | 61 | 牛肉干一般是用黄牛肉和其他调料一起腌制而成的肉干。牛肉干中的风干牛肉源于蒙古铁骑的战粮,携带方便,并且有丰富的营养 | 2 | | 5 | 运动鞋 | 400 | 200 | 运动,健康等 | 1 | | 6 | 咖啡壶 | 50 | 45 | 一种冲煮咖啡的器具。咖啡壶是欧洲最早的发明之一,约在1685年于法国问世,在路易十五时期在各地广为流传。 | 1 | | 8 | A字裙 | 128 | 200 | 2016秋季新品韩版高腰显瘦圆环拉链a字半身裙双口袋包臀短裙子女 | 1 | | 1 | 迷彩帽 | 63 | 29 | 透气夏天棒球帽男女鸭舌帽网帽迷彩帽子太阳帽防晒韩版休闲遮阳帽 | 0 | +------+-------------+---------+-----------+--------------------------------------------------------------------------------------------------------------------+-----+ ``` # 解决 再网上找到了一个类似的问题:https://blog.csdn.net/u011277123/article/details/79883855 这篇文章参考的是:https://stackoverflow.com/questions/4588935/group-by-do-not-group-null 他是这么写的 > 增加一个 UUID(),把 b.name 的 NULL 的值都转化为具有专一性的 uuid,这样每个 b.name 都会不同, GROUP 就不会对他们进行分组 我也没怎么理解他说的,但是按照他的方法做,可以实现我想要的结果 SQL 语句: ``` SELECT Goods.gdID, Goods.gdName, Goods.gdPrice, Goods.gdSaleQty, Goods.gdImage, COUNT( OrderDetail.gdID ) AS noe FROM `OrderDetail` RIGHT JOIN `Goods` ON `Goods`.`gdID` = `OrderDetail`.`gdID` GROUP BY IFNULL( `OrderDetail`.`gdID`, UUID()); ORDER BY noe DESC; ``` 运行结果: > 评价数为 0 的结果也输出了,这正是我想要的结果 ``` +------+-------------+---------+-----------+--------------------------------------------------------------------------------------------------------------------+-----+ | gdID | gdName | gdPrice | gdSaleQty | gdImage | noe | +------+-------------+---------+-----------+--------------------------------------------------------------------------------------------------------------------+-----+ | 10 | 华为P9_PLUS | 3980 | 7 | 【华为官方买就送Type C 转接头】Huawei/华为 P9 plus全网通手机 | 5 | | 3 | 牛肉干 | 94 | 61 | 牛肉干一般是用黄牛肉和其他调料一起腌制而成的肉干。牛肉干中的风干牛肉源于蒙古铁骑的战粮,携带方便,并且有丰富的营养 | 2 | | 5 | 运动鞋 | 400 | 200 | 运动,健康等 | 1 | | 6 | 咖啡壶 | 50 | 45 | 一种冲煮咖啡的器具。咖啡壶是欧洲最早的发明之一,约在1685年于法国问世,在路易十五时期在各地广为流传。 | 1 | | 8 | A字裙 | 128 | 200 | 2016秋季新品韩版高腰显瘦圆环拉链a字半身裙双口袋包臀短裙子女 | 1 | | 1 | 迷彩帽 | 63 | 29 | 透气夏天棒球帽男女鸭舌帽网帽迷彩帽子太阳帽防晒韩版休闲遮阳帽 | 0 | +------+-------------+---------+-----------+--------------------------------------------------------------------------------------------------------------------+-----+ ```