提交 5d9ec8bc 编写于 作者: P peterq

Merge branch 'master' into demo

# Conflicts:
#	server/.gitignore
#	server/pan-light-server.go
#	server/pan-light-server.yaml
......@@ -75,8 +75,6 @@ Item {
width: tabWidth * tabs.length + 2 * padding
height: parent.height * 0.7
anchors.verticalCenter: parent.verticalCenter
anchors.left: taskLeft.right
anchors.leftMargin: 30
x: 10
Rectangle {
anchors.fill: parent
......
......@@ -5,7 +5,7 @@ Item {
property var tabsUrl: {'我的网盘': 'pan', '传输列表': 'transfer', '探索': 'explore'}
property var tabs: ['我的网盘', '传输列表', '探索']
property var colors: ['blue', 'red', 'green']
property string activeTab: '探索'
property string activeTab: '我的网盘'
anchors.fill: parent
Header {
id: header
......
......@@ -21,6 +21,7 @@ var urlMap = map[string]string{
"refresh-token": "/api/pc/refresh-token",
"share": "/api/pc/share",
"share-list": "/api/pc/share/list",
"share-hit": "/api/pc/share/hit",
"link-md5": "/api/pc/link/md5",
}
var httpClient = http.Client{
......
pan-light-server.yaml
cmd/data
static/
\ No newline at end of file
package conf
const (
CollectionVip string = "vip"
CollectionVipSaveFile = "vip_save_file"
CollectionUser = "user"
CollectionFeedback = "feedback"
CollectionFileShare = "file_share"
CollectionVip string = "vip"
CollectionVipSaveFile = "vip_save_file"
CollectionUser = "user"
CollectionFeedback = "feedback"
CollectionFileShare = "file_share"
CollectionFileShareHit = "file_share_hit"
)
const (
......
......@@ -4,11 +4,13 @@ import (
"github.com/peterq/pan-light/server/artisan/cache"
"github.com/peterq/pan-light/server/conf"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
"math"
"time"
)
type FileShareModel struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Uk string
Title string
Md5 string
......@@ -25,6 +27,9 @@ type fileShareDao struct{}
func (*fileShareDao) collection(s *mgo.Session) *mgo.Collection {
return s.DB(conf.Conf.Database).C(conf.CollectionFileShare)
}
func (*fileShareDao) hitCollection(s *mgo.Session) *mgo.Collection {
return s.DB(conf.Conf.Database).C(conf.CollectionFileShareHit)
}
func (d *fileShareDao) Insert(data FileShareModel) (err error) {
s := conf.MongodbSession.Clone()
......@@ -153,4 +158,36 @@ func (d *fileShareDao) HotList() (data []gson, err error) {
return
}
func (d *fileShareDao) Hit(uk string, id string) (err error) {
s := conf.MongodbSession.Clone()
defer s.Refresh()
collection := d.collection(s)
var model FileShareModel
err = collection.FindId(bson.ObjectIdHex(id)).One(&model)
if err != nil {
return
}
hit := gson{
"uk": uk,
"share_id": id,
}
err = d.hitCollection(s).Find(hit).One(&hit)
if err == nil {
return
}
hit["time"] = time.Now().Unix()
err = d.hitCollection(s).Insert(hit)
if err != nil {
return
}
collection.Update(bson.M{
"_id": model.Id,
}, gson{
"$set": gson{
"hot_index": model.HotIndex + 1,
},
})
return
}
var FileShareDao = &fileShareDao{}
......@@ -4,8 +4,8 @@ import (
"github.com/kataras/iris"
"github.com/kataras/iris/context"
"github.com/peterq/pan-light/server/artisan"
"github.com/peterq/pan-light/server/pc-api"
"github.com/peterq/pan-light/server/demo"
"github.com/peterq/pan-light/server/pc-api"
"log"
"os"
)
......@@ -13,6 +13,9 @@ import (
func main() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
app := artisan.NewApp()
//app.Get("/", func(ctx context.Context) {
// ctx.Write([]byte("Hello pan-light"))
//})
app.Get("/", func(ctx context.Context) {})
cnf, ok := os.LookupEnv("pan_light_server_conf")
......@@ -23,6 +26,7 @@ func main() {
demo.Init(app.Party("/demo"), configuration.Other["demo"].(map[interface{}]interface{}))
app.Use(artisan.ApiRecover)
app.StaticWeb("/", "./static")
pc_api.Init(app)
app.Run(iris.Addr("127.0.0.1:8081"))
}
......@@ -11,5 +11,3 @@ Other:
hosts:
- name: asus-test
password: asus-test
- name: asus-home
password: PeterQ-is-doomed-to-SucceSS
......@@ -259,7 +259,6 @@ func (v *Vip) SaveFileByMd5(md5, sliceMd5, path string, contentLength int64) (fi
}
func (v *Vip) LinkByFid(fid string) (link string, err error) {
log.Println(fid)
ss := v.loginSession()
data, err := v.request("GET", "https://pan.baidu.com/api/download", gson{
......@@ -278,7 +277,6 @@ func (v *Vip) LinkByFid(fid string) (link string, err error) {
err = errors.Wrap(err, "")
return
}
log.Println(data)
link = data["dlink"].([]interface{})[0].(map[string]interface{})["dlink"].(string)
link = v.getRedirectedLink(link)
return
......
......@@ -227,3 +227,9 @@ func handleLinkMd5(ctx context.Context, param artisan.JsonMap) (result interface
cache.RedisSet(cacheKey, link, time.Hour)
return
}
func handleHitShare(ctx context.Context, param artisan.JsonMap) (result interface{}, err error) {
id := param.Get("id").String()
err = dao.FileShareDao.Hit(middleware.ContextLoginInfo(ctx).Uk(), id)
return
}
......@@ -59,6 +59,11 @@ func pcAuthRoutes(r router.Party) {
Number: 5,
}, handleShareList)
post("share/hit", artisan.ThrottleOption{
Duration: time.Second * 5,
Number: 5,
}, handleHitShare)
post("link/md5", artisan.ThrottleOption{
Duration: time.Second * 5,
Number: 5,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册