Integrate whole thingie to alfred
This commit is contained in:
parent
bd2e08e8f3
commit
1bc5ec5b73
48
main.go
48
main.go
@ -1,14 +1,54 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"./trans"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"fmt"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
"./trans"
|
||||||
|
"github.com/deanishe/awgo"
|
||||||
|
"regexp"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var wf *aw.Workflow
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
wf = aw.New()
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
results := trans.New(os.Args[1], "en", "hu").Translate()
|
wf.Run(run)
|
||||||
fmt.Println(strings.Join(results, "\n"))
|
}
|
||||||
|
|
||||||
|
func run() {
|
||||||
|
word, fromLang, toLang := parseProgramArgs(os.Args)
|
||||||
|
|
||||||
|
translations := trans.New(word, fromLang, toLang).Translate()
|
||||||
|
for _, translation := range translations {
|
||||||
|
wf.NewItem(translation).Arg(translation).Valid(true)
|
||||||
|
}
|
||||||
|
wf.WarnEmpty("No results", "Try a different query?")
|
||||||
|
wf.SendFeedback()
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseProgramArgs(args []string) (string, string, string) {
|
||||||
|
if len(args) < 2 {
|
||||||
|
log.Fatal("Not enough arguments!")
|
||||||
|
}
|
||||||
|
word := strings.Join(args[1:], " ")
|
||||||
|
fromLang, toLang := "", ""
|
||||||
|
|
||||||
|
if len(args) > 2 {
|
||||||
|
if isTransLanguageSpecifier(args[1]) {
|
||||||
|
languages := strings.Split(os.Args[1], ":")
|
||||||
|
fromLang, toLang = languages[0], languages[1]
|
||||||
|
word = strings.Join(os.Args[2:], " ")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return word, fromLang, toLang
|
||||||
|
}
|
||||||
|
|
||||||
|
func isTransLanguageSpecifier(arg string) bool {
|
||||||
|
ok, _ := regexp.MatchString("(\\w{2})?:(\\w{2})?", os.Args[1])
|
||||||
|
return ok
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user