VSC, 真香!
告诉我把 Visual Studio 2015 当做是 Visiual Stuido Code 的不是一个人.
浅尝了一下 VS2015 觉得唉也没有吹的那么神,好麻烦的样子我又不写C程序。
就这么和 VSC失之交臂好几年。
谁会知道娶了老婆也吃不到老婆饼呢..
告诉我把 Visual Studio 2015 当做是 Visiual Stuido Code 的不是一个人.
浅尝了一下 VS2015 觉得唉也没有吹的那么神,好麻烦的样子我又不写C程序。
就这么和 VSC失之交臂好几年。
谁会知道娶了老婆也吃不到老婆饼呢..
亲测有效
sudo vi /etc/hosts
151.101.72.249 github.global.ssl.fastly.net
192.30.255.112 github.com
朋友求助,他儿子停学不停课家长在家要监督上网课,容易错过上课签到。找来了个python的课程表导入工具问我怎么整。(链接文末)。
我看了下,要自己整理excel模板,还得手动编辑json文件,又要py环境。对文科生确实不太友善的样子。
我想既然目的是生成一个可以导入outlook日历/google日历/ios日历的 ics文件,我直接看看源码是个什么结构语法吧。
py代码片段
def icsCreateAndSave():
icsString = "BEGIN:VCALENDAR\nMETHOD:PUBLISH\nVERSION:2.0\nX-WR-CALNAME:课程表\nPRODID:-//Apple Inc.//Mac OS X 10.12//EN\nX-APPLE-CALENDAR-COLOR:#FC4208\nX-WR-TIMEZONE:Asia/Shanghai\nCALSCALE:GREGORIAN\nBEGIN:VTIMEZONE\nTZID:Asia/Shanghai\nBEGIN:STANDARD\nTZOFFSETFROM:+0900\nRRULE:FREQ=YEARLY;UNTIL=19910914T150000Z;BYMONTH=9;BYDAY=3SU\nDTSTART:19890917T000000\nTZNAME:GMT+8\nTZOFFSETTO:+0800\nEND:STANDARD\nBEGIN:DAYLIGHT\nTZOFFSETFROM:+0800\nDTSTART:19910414T000000\nTZNAME:GMT+8\nTZOFFSETTO:+0900\nRDATE:19910414T000000\nEND:DAYLIGHT\nEND:VTIMEZONE\n"
global classTimeList, DONE_ALARMUID, DONE_UnitUID
eventString = ""
for classInfo in classInfoList :
i = int(classInfo["classTime"]-1)
className = classInfo["className"]+"|"+classTimeList[i]["name"]+"|"+classInfo["classroom"]
endTime = classTimeList[i]["endTime"]
startTime = classTimeList[i]["startTime"]
index = 0
for date in classInfo["date"]:
eventString = eventString+"BEGIN:VEVENT\nCREATED:"+classInfo["CREATED"]
eventString = eventString+"\nUID:"+classInfo["UID"][index]
eventString = eventString+"\nDTEND;TZID=Asia/Shanghai:"+date+"T"+endTime
eventString = eventString+"00\nTRANSP:OPAQUE\nX-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC\nSUMMARY:"+className
eventString = eventString+"\nDTSTART;TZID=Asia/Shanghai:"+date+"T"+startTime+"00"
eventString = eventString+"\nDTSTAMP:"+DONE_CreatedTime
eventString = eventString+"\nSEQUENCE:0\nBEGIN:VALARM\nX-WR-ALARMUID:"+DONE_ALARMUID
eventString = eventString+"\nUID:"+DONE_UnitUID
eventString = eventString+"\nTRIGGER:"+DONE_reminder
eventString = eventString+"\nDESCRIPTION:事件提醒\nACTION:DISPLAY\nEND:VALARM\nEND:VEVENT\n"
index += 1
icsString = icsString + eventString + "END:VCALENDAR"
竟然不是json也不是xml。BEGIN:VCALENDAR
这格式好眼熟,和10多年前我做二维码名片的时候那个VCARD
协议很像,经过一番搜索,果然!
那就自己做一个网页版的好了!
最终成品如下:
https://gen8.orz.com.cn/beta/classtab/
用法:
设定一周的课程安排、
设置提前提醒的时间、
设置提醒的截止日期(不设置会永远每周循环下去),
点生成,就能到一个ics文件
在iphone/ipad/win10的outlook/部分安卓手机 上打开ics文件(或浏览器下载)
即可把日程导入到日历,可以随时查看和得到提醒。
作为变体,也适用于 周例行工作提醒、电视节目(追番)表、健身计划 提醒。
以下是实现的原理结构,前端细节就不po了,源码打包了可以下载自行研究
20年前构思过想要实现的这个东西,当时刻录盘太多了,需要找到某个东西很难。如今我把东西都往仓库硬盘里塞,逐渐硬盘数量也多起来。想找部旧电影来重温太麻烦,反复插拔了几个盘都没找到。
不能忍,用1小时把代码写了顺便把全部硬盘里的主要文件做了索引。
当年没有这个技术,现在用python+php+mysql实现起来相当简单的样子。
也不知道是技术变得平易近人还是我变厉害了..
无意间找到一个python 的微信库,授权后可以实现微信机器人
试用发现原理是模拟web版微信。可惜2019-7月微信已经砍掉了web版,所以这整个库已经作古。
君生我未生我生君已老
有那味了..