分类 杂谈 下的文章

比vmess和ss简单,不需要进行base64编码,因此 二维码可以做的非常的小

明文格式:协议 :// 秘钥 @ 域名 : 端口

具体举例说就是:

trojan://password123@domain.net:443

对应生成的QR是(不用试了,这个不是有效的链接)
sampletrojanqr.JPG

手贱尝试在运行frps 的主机上尝试安装BBR 修改导致系统无法重启。脑一抽 重灌了 ubuntu-18

然后才发现我在上面还跑着好几个其他应用,其中一个就是给博客转发的 frps

重新部署的时候引发大混乱
用一键部署脚本安装了 trojan (真香!) ,自带了 一个nginx。

原本以为全部流量是先渠道nginx然后做反向代理的

没想到竟然是
trojan:443 -> 反向 nginx:80

难怪在 nginx.conf 里找半天没有看到 ssl的设置,加上反向指向 frps.https 也不成功各种问题

让三个应用共享443端口可把我愁坏了。

最后的方案是

nginx:80 -> vhost反向 frp.http:非80
nginx:80 -> 默认 www
trojan: 非443 -> nginx:80
frp.https: 独占 443

终于不打架了,安逸。

再怀缅一下挂掉的服务: praysatoshi.top ... 我会尽快把你恢复的
最后的最后,舔多一口:trojan ...啊~真香。

纯技术研究,不深究行为目的。

告诉我把 Visual Studio 2015 当做是 Visiual Stuido Code 的不是一个人.

浅尝了一下 VS2015 觉得唉也没有吹的那么神,好麻烦的样子我又不写C程序。
就这么和 VSC失之交臂好几年。

谁会知道娶了老婆也吃不到老婆饼呢..

QQ截图20200508121950.png

朋友求助,他儿子停学不停课家长在家要监督上网课,容易错过上课签到。找来了个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文件(或浏览器下载)
即可把日程导入到日历,可以随时查看和得到提醒。

微信图片_20200312071852.png

作为变体,也适用于 周例行工作提醒、电视节目(追番)表、健身计划 提醒。

以下是实现的原理结构,前端细节就不po了,源码打包了可以下载自行研究

源码下载










- 阅读剩余部分 -