Skip to content

Commit

Permalink
アクセスログ記録
Browse files Browse the repository at this point in the history
  • Loading branch information
hakobe committed Jan 15, 2016
1 parent db66ff5 commit 761dccd
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 4 deletions.
35 changes: 35 additions & 0 deletions accesslogs/accesslogs.go
@@ -0,0 +1,35 @@
package accesslogs

import (
"database/sql"
"time"
)

func Prepare(db *sql.DB) error {
sql := `
CREATE TABLE IF NOT EXISTS accesslogs (
entry_id INT UNSIGNED NOT NULL,
created TIMESTAMP NOT NULL,
KEY(created),
KEY(entry_id)
) ENGINE=InnoDB DEFAULT CHARSET=binary
`
_, err := db.Exec(sql)
if err != nil {
return err
}

return nil
}

func Access(db *sql.DB, entryID int) error {
sql := `
INSERT INTO accesslogs
(entry_id, created) VALUES ( ?, ? )
`
_, err := db.Exec(sql, entryID, time.Now())
if err != nil {
return err
}
return nil
}
11 changes: 8 additions & 3 deletions present.go
Expand Up @@ -9,6 +9,7 @@ import (

_ "github.com/go-sql-driver/mysql"

"github.com/hakobe/present/accesslogs"
"github.com/hakobe/present/collector"
"github.com/hakobe/present/config"
"github.com/hakobe/present/entries"
Expand Down Expand Up @@ -51,7 +52,7 @@ func postTags(db *sql.DB) {
return
}
log.Printf("Posting tags: %s\n", strings.Join(tags, ", "))
err = slackIncoming.Post("Watching tags: " + strings.Join(tags, ", "), "")
err = slackIncoming.Post("Watching tags: "+strings.Join(tags, ", "), "")
if err != nil {
log.Printf("%v\n", err)
return
Expand Down Expand Up @@ -109,11 +110,15 @@ func main() {

err = entries.Prepare(db)
if err != nil {
log.Fatalf("Db(entries) preparation error: %v\n", err)
log.Fatalf("DB(entries) preparation error: %v\n", err)
}
err = tags.Prepare(db)
if err != nil {
log.Fatalf("Db(tags) preparation error: %v\n", err)
log.Fatalf("DB(tags) preparation error: %v\n", err)
}
err = accesslogs.Prepare(db)
if err != nil {
log.Fatalf("DB(accesslogs) preparation error: %v\n", err)
}

collectedEntries, updateTags := collector.Start()
Expand Down
18 changes: 17 additions & 1 deletion web/web.go
Expand Up @@ -5,10 +5,12 @@ import (
"html/template"
"log"
"net/http"
"net/url"
"os"
"regexp"
"strconv"

"github.com/hakobe/present/accesslogs"
"github.com/hakobe/present/entries"
slackOutgoing "github.com/hakobe/present/slack/outgoing"
)
Expand Down Expand Up @@ -79,7 +81,21 @@ func Start(db *sql.DB) chan *slackOutgoing.Op {
http.Error(rw, err.Error(), http.StatusInternalServerError)
return
}
http.Redirect(rw, r, entry.Url(), http.StatusFound)
accesslogs.Access(db, id)
tmpl, err := template.New("entry").Parse(`
<html>
<body></body>
<head>
<meta http-equiv="refresh" content="0;URL=data:text/html,%3Cmeta%20http-equiv%3D%22refresh%22%20content%3D%220%3BURL%3D{{.}}%22%3E"></meta>
</head>
</html>
`)
if err != nil {
http.Error(rw, err.Error(), http.StatusInternalServerError)
return
}

tmpl.Execute(rw, template.HTML(url.QueryEscape(entry.Url())))
},
)

Expand Down

0 comments on commit 761dccd

Please sign in to comment.