注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 kejeon 于 2022-7-20 09:23 编辑
刷题太痛苦,刷累了写个chrome extension玩玩。第一次写extension,好多东西不了解,边写边查总算是搞个能用的Published了
功能:
Timer + Webhook
leetcode timer不稀奇,自动计时的插件也到处都是。但是想整理自己刷题记录就没那么容易了,我给某个插件的开发者留言问可不可以加这个功能,没有回复,干脆自己写一个。
下载:插件地址 因为需要在leetcode页面render一个计时器,还要判断提交结果,所以会要求一些权限,点ok就行,不放心的同学github地址 在这里
如果只是要计时功能,其实安装后直接用就可以。
主要说一下怎么设置Google Sheet来记录自己的record。
伸手党的同学可以直接用我做好的Google Sheet Template 文件菜单点击make copy到自己的account,
选Extensions -> Apps Script
Deploy -> New deployment
Copy Web app URL
然后右键点击插件,打开options,把刚才复制的url粘到这里,打开Automatically Start Timer,就可以开始做题了。
喜欢自己动手的朋友
Apps Script 代码供参考(缩进复制过来都没了,自己format一下吧)- function doPost(e) {
- var params = JSON.stringify(e.postData.contents);
- params = JSON.parse(params);
- var myData = JSON.parse(e.postData.contents);
- var result = myData.result;
- var question = myData.question;
- var title = myData.title;
- var runtime = myData.runtime;
- var memory = myData.memory;
- var time_elapsed = myData.time_elapsed;
- var url = myData.url;
- var datetime = myData.datetime.split(' ');
- var date = datetime[0];
- var time = datetime[1];
- var sheet = SpreadsheetApp.getActive().getSheetByName('leetcode_log');
- var lastRow = Math.max(sheet.getLastRow(),1);
- sheet.insertRowAfter(lastRow);
- var timestamp = new Date();
- var titleLink = SpreadsheetApp.newRichTextValue()
- .setText(title)
- .setLinkUrl(url)
- .build();
- sheet.getRange(lastRow + 1, 1).setValue(date);
- sheet.getRange(lastRow + 1, 2).setValue(time);
- sheet.getRange(lastRow + 1, 3).setValue(question);
- sheet.getRange(lastRow + 1, 4).setRichTextValue(titleLink)
- sheet.getRange(lastRow + 1, 5).setValue(result);
- sheet.getRange(lastRow + 1, 6).setValue(time_elapsed);
- sheet.getRange(lastRow + 1, 7).setValue(runtime);
- sheet.getRange(lastRow + 1, 8).setValue(memory);
- SpreadsheetApp.flush();
- return ContentService.createTextOutput(JSON.stringify({status:"received"})).setMimeType(ContentService.MimeType.JSON);
- }
复制代码 如果不想用Google Sheet,可以自己设个API server,payload格式如下- {
- "question": "1",
- "title": "Two Sum",
- "result": "Success",
- "runtime": "Runtime: 3 ms, faster than 97.80% of Go online submissions for Two Sum.",
- "memory": "Memory Usage: 4.3 MB, less than 33.53% of Go online submissions for Two Sum.",
- "time_elapsed": "00:00:10",
- "url": "https://leetcode.com/problems/two-sum/",
- "datetime": "2022/07/15 13:48:54"
- }
复制代码 生成的Google Sheet格式如下,可以根据自己的log来调整学习计划。
如果各位觉得这个插件对你有用,欢迎加米,Chrome Web Store点赞,如果发现bug或者希望加新功能,欢迎github issue/PR!
|