用node.js弄點小玩具吧

node.js鎖屏 (mac)

純粹是爲了實現本身的一些小需求,利用閒時作了一些小功能。node

工做中,咱們常常要離開座位,有時候會忘記鎖上電腦,咱們能不能利用node去作這種事情呢?答案是不能的,由於咱們不能調用系統的接口,能夠作的語言有objective-cswift。可是咱們能夠用簡單的方法去實現,因爲離開工做也是在公司範圍,同一個局域網下,咱們是能夠經過http來操做的。git

...
const spawn = require('child_process').spawn;

const lock = spawn('/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession', ['-suspend']);

核心的代碼其實就只有2行,當咱們發送一個請求的時候,利用child_process能夠執行一個命令。github

下載中轉

有時候到github上下載軟件特別慢,若是本身有vps,何不用vps來作箇中轉呢?利用node,寫一些代碼就能夠實現。web

  1. 獲取你要下載的urlobjective-c

  2. 我用到了aria2,把url交給aria2下載swift

  3. aria2下載完畢就發送郵件給我websocket

  4. 完成socket

代碼寫着就多了,我就把它發到github上。ui

在使用aria2這個模塊,遇到了一個問題。aria2的通知事件會遞增,這就很尷尬了,它會給我發送N多個郵件。因而我決定去看看它的源碼,粗看一遍,它的源碼也沒寫太多的東西。就是用websocket連到aria2的rpc服務,而後就能夠發送指令了。再看到通知事件那裏的實現,我傻眼了,這只是一個佔位的。一時不知道怎麼去解綁這些事件,我就把它丟一邊了。直到後面再回去看,我發現能夠手動的空掉事件,再收到請求的時候,再次監聽。感受有點傻,可是問題就這樣解決了。url

相關文章
相關標籤/搜索