コード例 #1
0
ファイル: extractor.go プロジェクト: xeniah/ForrestFire
func rewriteAndDownloadImages(j *job.Job, doc *h5.Node) *h5.Node {
	var wg sync.WaitGroup
	root := j.Root()
	t := transform.NewTransform(doc)
	fix := transform.TransformAttrib("src", func(uri string) string {
		altered := fmt.Sprintf("%x.jpg", hashie.Sha1([]byte(uri)))
		wg.Add(1)
		go safely.Ignore(logger, func() {
			defer wg.Done()
			downloadToFile(uri, fmt.Sprintf("%s/%s", root, altered))
		})
		return altered
	})
	t.Apply(fix, "img")
	wg.Wait()
	return t.Doc()
}
コード例 #2
0
ファイル: blacklist.go プロジェクト: xeniah/ForrestFire
func IsBlacklisted(thing string) bool {
	if _, err := cache.Get(hashie.Sha1([]byte(thing))); err == nil {
		return true
	}
	return false
}
コード例 #3
0
ファイル: blacklist.go プロジェクト: xeniah/ForrestFire
func Blacklist(thing string) {
	cache.Set(hashie.Sha1([]byte(thing)), "blacklisted", TTL)
}
コード例 #4
0
ファイル: job.go プロジェクト: xeniah/ForrestFire
func (j *Job) Hash() string {
	return hashie.Sha1([]byte(j.Url.String()), j.Key)
}