2020年8月14日 星期五

快速複製 Web 版 google drive 資料夾路徑對應的本機資料夾

 在使用google drive web版時,常常會遇到想在本機開啟這個檔案(如果有裝PC版程式),但是卻因為路徑太複雜,打開檔案總管要點很久所以很麻煩的情況,請把以下指令貼在chrome的書籤內容上,用chrome打開要開啟的google drive資料夾畫面,再點一下這個書籤就會產生出檔案總管的路徑囉,磁碟機代號記得改成自己的

var p="G:\\";
var o=document.getElementsByClassName('o-Yc-o-T');
for(var i=0;i<o.length;i++){
    console.log(o[i].textContent)
p+=o[i].textContent+"\\";
}
p+=document.getElementsByClassName('h-R-w-d-ff')[0].textContent
prompt('copy path',p);

懶人版:

javascript:(function()%7Bfor(var p%3D"G%3A%5C%5C"%2Co%3Ddocument.getElementsByClassName("o-Yc-o-T")%2Ci%3D0%3Bi<o.length%3Bi%2B%2B)p%2B%3Do%5Bi%5D.textContent%2B"%5C%5C"%3Bp%2B%3Ddocument.getElementsByClassName("h-R-w-d-ff")%5B0%5D.textContent%2Cprompt("copy path"%2Cp)%7D)()

2020年8月10日 星期一

快速產生 Rclone 複製 google drive 資料夾指令

 最近開始使用傳說中無限容量的google 共用雲端硬碟,搭配上AutoRclone,近乎完美,唯一缺點是rclone的指令好煩阿,每次都要在那邊剪剪貼貼,才能產出一組能用的指令,煩~~~

於是有了以下的產生器,請把以下指令貼在chrome的書籤內容上,用chrome打開要複製的google drive資料夾,再點一下這個書籤就會產生出所需的指令囉

P.S 指令內容請依照自身需求修改,XXXXXXXX改為目的資料夾ID

let a="python3 rclone_sa_magic.py -s ";
let b=location.href.split("/");
b=b[b.length-1];
let c=" -d ";
let d='XXXXXXXXXXXXXXXXXXXXX';
let e=' -dp "';
let f='/'+document.getElementsByClassName('h-R-w-d-ff')[0].textContent+'" -b 1 -e 600';
let g=a+b+c+d+e+f;
console.log(g);
prompt('copy to cmd',g)

懶人版:

javascript:(function()%7Blet%20a%3D%22python3%20rclone_sa_magic.py%20-s%20%22%2Cb%3Dlocation.href.split(%22%2F%22)%3Bb%3Db%5Bb.length-1%5D%3Blet%20c%3D%22%20-d%20%22%2Cd%3D%22XXXXXXXXXXXXXXXX%22%2Ce%3D'%20-dp%20%22'%2Cf%3D%22%2F%22%2Bdocument.getElementsByClassName(%22h-R-w-d-ff%22)%5B0%5D.textContent%2B'%22%20-b%201%20-e%20600'%2Cg%3Da%2Bb%2Bc%2Bd%2Be%2Bf%3Bconsole.log(g)%2Cprompt(%22copy%20to%20cmd%22%2Cg)%7D)()




2020年5月28日 星期四

在 cloudflare 免費使用無限多個 url redirect by workers

Cloudflare 是一家著名的免費CDN服務商,可以幫你把整個domain都做快取,而且他提供免費DNS的服務,一般免費的DNS服務大多可以設定50條左右的DNS規則,而Cloudflare 提供的免費DNS服務,可以免費使用1000條的規則,簡直完爆市面上所有DNS服務廠商。

但是這麼棒的DNS服務廠商也是有缺點的,就是他支援的domain URL redirect,免費的版本只能使用3個,對於我這麼愛用url redirect的人來說真是痛苦...

不過好在cloudflare提供workers這種serverless的服務,免費版一天最多能有10萬次request,寫點code就能使用一天10萬次的url redirect,對一般人來說,超級夠用拉~~~

使用方法
1.創造一個workers,命名為url_redirect
2.填入以下代碼

async function handleRequest(request) {
  let requestURL = new URL(request.url)
  console.log(requestURL.hostname)
  let path = requestURL.hostname.split('.')[0]
  let location = redirectMap[path]
  if (location) {
    return Response.redirect(location, 301)
  }
  return fetch(request)
}
addEventListener('fetch', async event => {
  event.respondWith(handleRequest(event.request))
})
const redirectMap = {
  apple: 'https://www.apple.com/',
  google: 'https://www.google.com/',
  yahoo: 'https://www.yahoo.com/',
}


3. redirectMap 就是要轉址的url 依此類推,填完後儲存並發布
4.到要部屬的domain下點worker,新增路由如下,並指定worker為url_redirect
*.your_domain/*

5.最重要的一點,dns那邊要配合設定CNAME,url隨便打就可以了,沒做此步驟是不會生效的

6.之後 打 xxx.you_domain 就會自動 URL redirect到想去的地方囉

2020年4月8日 星期三

MacOS上使用nw.js讀寫檔案的坑

最近用nw.js在寫桌面程式,想把原本的for windows的程式改為跨平台,但是一下子就遇到好 幾個坑,紀錄一下心得...


  • 最好使用絕對路徑
    • 在win底下,我把設定檔寫成javascript變數,存成.js檔,需要時用script src='setting.js' 讀取回來
    • 在mac底下,nw.js要讀取檔案前面要使用 file:// 開頭,否則nw.js會把他當成chrome的擴充程式要去讀取,就會出現 chrome-extension://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/setting.js 404 not found 的錯誤
      所以要寫成 script src='/var/tmp/setting.js'
  • 檔案權限問題
    • 在mac上,權限控管比較嚴格,選用的路徑當然會有限制了,精美的官方文件告訴我們使用者資料最好放在/usr/local底下,把特,人生最重要的就是這個把特!!! /usr/local 這個目錄的權限還是root,底下的其他目錄權限才是使用者,所以你如果沒用 sudo 先開好你要的資料夾並給予權限,還是寫不進去...,所以 /usr/local/xxx/setting.js 會無法寫入,要改成 /usr/local/var/xxx/setting.js 才可以,就...很醜 XD
    • 我個人建議,程式不重要的檔案暫存路徑就放 /var/tmp/ 底下吧,預設權限是777,爽~~~
  • 還是檔案權限問題...
    • 第一點說到,mac底下,nw.js讀取檔案要使用 file:// 開頭,是的! 只有讀取檔案要加 file:// ,如果你在寫入檔案的時候加入,就算你是要寫一個檔案到777權限的資料夾,他一樣會跳出 read only file system 的錯誤...真是無敵大的坑你知道嗎....
    • 所以,要寫一個跨平台的nw.js,如果要使用暫存檔的話,記得把讀取跟寫入的路徑分開,才不會出現錯誤...

2019年11月1日 星期五

Cordova inappbrowser iOS 上關掉 toolbar 的方法

inappbrowser 的大坑 文件上寫設定toolbar=no就能關掉都是騙人的

以下為暴力解

用記事本打開以下檔案

YOURAPPNAME/platforms/ios/YOURAPPNAME/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowserOptions.m

self.toolbar = YES;  改為  self.toolbar = NO;

存檔,重build,搞定

2019年5月24日 星期五

PowerShell 批次改名指令

將檔名中的ABB改為ABC

Dir | Rename-Item -NewName { $_.name -replace "ABB", "ABC" }

2018年8月16日 星期四

Tenda nova mw3 使用心得

家裡是透天,之前是每層樓都放一台wifi,然後把SSID都設成同一個名字,
理論上,走到那層樓,手機會自動連到該層的wifi,
可是這樣做有缺點,wifi還沒有完全斷開之前,不會改連訊號強的wifi,
所以會造成,走到別層樓,結果網速變超差,需要手動斷開重連。

後來有新技術MESH出現,號稱可以做到漫遊不斷線,但是價格都偏貴,
3件一組價格都快破萬,實在難以接受,後來看到tenda的nova系列,
算是最入門的mesh系統,mw3三件一組不到5000,
前幾天因為momo購物下殺1000,3件一組的mw3,4000有找,於是就拜下去了。

用了幾天的心得是

1. 完全傻瓜式安裝,主機弄好之後,其他兩台插電就能用了
2. 號稱:每台都是主機,假的!還是要透過有接Wan口的那台(主機)出去
3. 穿牆功能普普,就算訊號顯示非常好,過一層地版速度還是減半,所以在1樓速度是100M,2樓只有40-50M,3樓只有10-20M
4. 綜合 2,3 點,最適合的擺放方式是,主機放2樓,這樣就能達到最佳效果
5. 跟雞肋一樣的有線回程功能,有線回程的意思是,透過網路線,讓副機的走有線回到主機出去,所以距離再遠也不掉速,我本來以為這個功能wan是隨便接一條就行,所以我每台都接一條小烏龜出來的wan,想說他能透過小烏龜互通,結果他的接法是要主機的lan接副機的wan,副機的lan再去接第二台副機的wan...如下圖所示...



為什麼我說這功能雞肋呢?
如上圖所示,主機端 1F -> 2F 這很正常,有線通常能通,但是 2F -> 3F,家裡通常不會有這種有線配置,所以這功能就廢掉了...

結論:
想用Tenda nova mw3達成,全棟wifi不掉速,不可能
想用Tenda nova mw3達成,全棟wifi不斷線,可以
mw3不要買,直上mw6比較好,因為mw3 Wan/Lan孔 只支援到 100M,區網超慢...