mirror of https://github.com/perkeep/perkeep.git
twitter importer: meaningful names for permanodes
Make meaningful titles for created permanodes, simplified. Change-Id: If0575b5c0ffec037feb8ce74e46f66556c582372
This commit is contained in:
parent
a9b25eca93
commit
98a73d966d
|
@ -191,6 +191,12 @@ func (im *imp) Run(ctx *importer.RunContext) error {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rootNode := r.RootNode()
|
||||||
|
if rootNode.Attr("title") == "" {
|
||||||
|
screenName := acctNode.Attr(importer.AcctAttrUserName)
|
||||||
|
rootNode.SetAttr("title", fmt.Sprintf("%s's Tweets", screenName))
|
||||||
|
}
|
||||||
|
|
||||||
userID := acctNode.Attr(importer.AcctAttrUserID)
|
userID := acctNode.Attr(importer.AcctAttrUserID)
|
||||||
if userID == "" {
|
if userID == "" {
|
||||||
return errors.New("UserID hasn't been set by account setup.")
|
return errors.New("UserID hasn't been set by account setup.")
|
||||||
|
@ -251,11 +257,7 @@ func (r *run) importTweets(userID string) error {
|
||||||
maxId := ""
|
maxId := ""
|
||||||
continueRequests := true
|
continueRequests := true
|
||||||
|
|
||||||
tweetsNode, err := r.getTopLevelNode("tweets", "Tweets")
|
tweetsNode := r.RootNode()
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
numTweets := 0
|
numTweets := 0
|
||||||
sawTweet := map[string]bool{}
|
sawTweet := map[string]bool{}
|
||||||
|
|
||||||
|
@ -346,10 +348,7 @@ func tweetsFromZipFile(zf *zip.File) (tweets []*zipTweetItem, err error) {
|
||||||
func (r *run) importTweetsFromZip(userID string, zr *zip.Reader) error {
|
func (r *run) importTweetsFromZip(userID string, zr *zip.Reader) error {
|
||||||
log.Printf("Processing zip file with %d files", len(zr.File))
|
log.Printf("Processing zip file with %d files", len(zr.File))
|
||||||
|
|
||||||
tweetsNode, err := r.getTopLevelNode("tweets", "Tweets")
|
tweetsNode := r.RootNode()
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
gate = syncutil.NewGate(tweetsAtOnce)
|
gate = syncutil.NewGate(tweetsAtOnce)
|
||||||
|
@ -376,7 +375,7 @@ func (r *run) importTweetsFromZip(userID string, zr *zip.Reader) error {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = grp.Err()
|
err := grp.Err()
|
||||||
log.Printf("zip import of tweets: %d total, err = %v", total, err)
|
log.Printf("zip import of tweets: %d total, err = %v", total, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -492,17 +491,6 @@ func (r *run) importTweet(parent *importer.Object, tweet tweetItem, viaAPI bool)
|
||||||
return !changes, err
|
return !changes, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *run) getTopLevelNode(path string, title string) (*importer.Object, error) {
|
|
||||||
tweets, err := r.RootNode().ChildPathObject(path)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if err := tweets.SetAttr("title", title); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return tweets, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(mpl): move to an api.go when we it gets bigger.
|
// TODO(mpl): move to an api.go when we it gets bigger.
|
||||||
|
|
||||||
type userInfo struct {
|
type userInfo struct {
|
||||||
|
@ -618,6 +606,7 @@ func (im *imp) ServeCallback(w http.ResponseWriter, r *http.Request, ctx *import
|
||||||
importer.AcctAttrUserID, u.ID,
|
importer.AcctAttrUserID, u.ID,
|
||||||
importer.AcctAttrName, u.Name,
|
importer.AcctAttrName, u.Name,
|
||||||
importer.AcctAttrUserName, u.ScreenName,
|
importer.AcctAttrUserName, u.ScreenName,
|
||||||
|
"title", fmt.Sprintf("%s's Twitter Account", u.ScreenName),
|
||||||
); err != nil {
|
); err != nil {
|
||||||
httputil.ServeError(w, r, fmt.Errorf("Error setting attribute: %v", err))
|
httputil.ServeError(w, r, fmt.Errorf("Error setting attribute: %v", err))
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue