-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
91 lines (74 loc) · 1.46 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Copyright (c) 2021 zacksleo <zacksleo@gmail.com>
// MIT Licence - http://opensource.org/licenses/MIT
/*
金山文档 Workflow
1. 使用kdocs.cn中的sessionid 登录
2. 查询最近的文档
3. 根据关键词查询文档
*/
package main
import (
"os"
"strings"
aw "github.com/deanishe/awgo"
)
var (
wf *aw.Workflow
)
//注销登录时,删除钥匙串中存储的信息,删除缓存信息
func logout() {
wf.Keychain.Delete("wps_sid")
wf.ClearCache()
wf.WarnEmpty("注销成功", "")
wf.SendFeedback()
}
// 登录成功后,设置钥匙串
func login(user *User, query string) {
if query == "" {
wf.WarnEmpty("账号没有登录", "请先登录: wps {wps_sid}")
wf.SendFeedback()
return
}
wf.Keychain.Set("wps_sid", query)
user.Wps.sid = query
user.getLatest()
}
func init() {
wf = aw.New()
}
func run() {
query := ""
if len(wf.Args()) > 0 {
query = wf.Args()[0]
}
if query == "logout" {
logout()
return
}
wpsSid, err := wf.Keychain.Get("wps_sid")
wpsCacheDir := os.Getenv("wps_cache_dir")
user := User{wf, NewWps(wpsSid), wpsCacheDir}
// 如果没有找到钥匙串,则提醒用户登录
if err != nil {
login(&user, query)
return
}
// 默认搜索最近的文档
if len(query) < 1 {
user.getLatest()
return
}
if query == "/" {
user.getGroups()
return
}
if strings.HasPrefix(query, "/") {
user.getGroupFiles(query)
return
}
//使用关键词搜索
user.queryDocs(query)
}
func main() {
wf.Run(run)
}