add to transmet button
This commit is contained in:
parent
6ccf2a6898
commit
b45c66c94e
|
@ -5,5 +5,6 @@
|
||||||
"Username": "transmet",
|
"Username": "transmet",
|
||||||
"Password": "asdfasdf"
|
"Password": "asdfasdf"
|
||||||
},
|
},
|
||||||
"Port": "8001"
|
"Port": "8001",
|
||||||
|
"Url": "http://localhost:8001/"
|
||||||
}
|
}
|
||||||
|
|
1
main.go
1
main.go
|
@ -23,6 +23,7 @@ type Config struct {
|
||||||
Password string
|
Password string
|
||||||
}
|
}
|
||||||
Port string
|
Port string
|
||||||
|
Url string
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
@ -114,6 +114,25 @@ func LogoutHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||||
http.Redirect(w, r, "/", http.StatusFound)
|
http.Redirect(w, r, "/", http.StatusFound)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getUrlTitle(url string) string {
|
||||||
|
resp, err := http.Get(url)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error looking up link", url, ":", err)
|
||||||
|
} else {
|
||||||
|
body, err := ioutil.ReadAll(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error reading link", url, ":", err)
|
||||||
|
} else {
|
||||||
|
re := regexp.MustCompile("< *[Tt][Ii][Tt][Ll][Ee] *>(.*)</ *[Tt][Ii][Tt][Ll][Ee] *>")
|
||||||
|
title := re.FindStringSubmatch(string(body))
|
||||||
|
if title != nil {
|
||||||
|
return strings.TrimSpace(title[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
// ?url=
|
// ?url=
|
||||||
func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||||
categories.LoadCategories(db)
|
categories.LoadCategories(db)
|
||||||
|
@ -136,28 +155,17 @@ func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = r.URL.Query().Get("url")
|
var url = r.URL.Query().Get("url")
|
||||||
reHttp := regexp.MustCompile("^http://")
|
reHttp := regexp.MustCompile("^https?://")
|
||||||
if url != "" && ! reHttp.Match([]byte(url)) {
|
if url != "" && ! reHttp.Match([]byte(url)) {
|
||||||
url = "http://" + url
|
url = "http://" + url
|
||||||
}
|
}
|
||||||
resp, err := http.Get(url)
|
|
||||||
if err != nil {
|
title = r.URL.Query().Get("title")
|
||||||
fmt.Println("Error looking up link", url, ":", err)
|
if title == "" && url != "" {
|
||||||
} else {
|
title = getUrlTitle(url)
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Error reading link", url, ":", err)
|
|
||||||
} else {
|
|
||||||
re := regexp.MustCompile("< *[Tt][Ii][Tt][Ll][Ee] *>(.*)</ *[Tt][Ii][Tt][Ll][Ee] *>")
|
|
||||||
title := re.FindStringSubmatch(string(body))
|
|
||||||
if title != nil {
|
|
||||||
ShowTemplate("add", w, map[string]interface{}{"user": user, "flashes": flashes, "link": url, "categories": categories.CategoriesTree, "title": strings.TrimSpace(title[1])})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ShowTemplate("add", w, map[string]interface{}{"user": user, "link": url, "categories": categories.CategoriesTree, "flashes": flashes})
|
ShowTemplate("add", w, map[string]interface{}{"user": user, "flashes": flashes, "link": url, "categories": categories.CategoriesTree, "title": title})
|
||||||
}
|
}
|
||||||
|
|
||||||
func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||||
|
@ -208,7 +216,7 @@ func templateFormHandler(w http.ResponseWriter, r *http.Request, user *user.User
|
||||||
fmt.Println("Exec err: ", err)
|
fmt.Println("Exec err: ", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ShowTemplate("list", w, map[string]interface{}{"user": user, "flashes": flashes, "template": &templateBuf})
|
ShowTemplate("list", w, map[string]interface{}{"user": user, "flashes": flashes, "template": &templateBuf, "url": config.Url})
|
||||||
}
|
}
|
||||||
|
|
||||||
func templatePostHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
func templatePostHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="collapse navbar-collapse">
|
<div class="collapse navbar-collapse">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
|
<li><a href="/add">add</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
{{if .user}}
|
{{if .user}}
|
||||||
|
|
|
@ -4,12 +4,32 @@
|
||||||
|
|
||||||
<form class="form-add" action="/" method="post" role="form" class="container col-form">
|
<form class="form-add" action="/" method="post" role="form" class="container col-form">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-10"></div><div class="col-xs-2">
|
<div class="col-xs-2">
|
||||||
|
<a class="btn btn-lg btn-primary btn-block" href="{{template "launch-add" .}}">Add to transmet</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-4"></div>
|
||||||
|
<div class="col-xs-4"></div>
|
||||||
|
|
||||||
|
<div class="col-xs-2">
|
||||||
<input class="btn btn-lg btn-primary btn-block" type="submit" value="Export" />
|
<input class="btn btn-lg btn-primary btn-block" type="submit" value="Export" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-6">
|
||||||
|
Drag this link to bookmark bar and click anywhere to add a link
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6">
|
||||||
|
Click this to mark the current queue of news items as exported (clearing them)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-12"> </div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<textarea class="form-control" name="template" placeholder="Template" rows="16" cols="80">{{.template}}</textarea>
|
<textarea class="form-control" name="template" placeholder="Template" rows="16" cols="80">{{.template}}</textarea>
|
||||||
|
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
{{define "launch-add"}}
|
||||||
|
javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='{{.url}}add',l=d.location,e=encodeURIComponent,u=f+'?url='+e(l.href)+'&title='+e(d.title);a=function(){if(!w.open(u,'t','toolbar=0,resizable=1,scrollbars=1,status=1,width=720,height=570'))l.href=u;};if (/Firefox/.test(navigator.userAgent)) setTimeout(a, 0); else a();void(0)
|
||||||
{{end}}
|
{{end}}
|
Loading…
Reference in New Issue